diff --git a/crates/bin/pcli/src/command/tx.rs b/crates/bin/pcli/src/command/tx.rs index 7e691f4164..5d66401437 100644 --- a/crates/bin/pcli/src/command/tx.rs +++ b/crates/bin/pcli/src/command/tx.rs @@ -22,7 +22,7 @@ use penumbra_proto::{ EpochByHeightRequest, LiquidityPositionByIdRequest, ProposalInfoRequest, ProposalInfoResponse, ProposalRateDataRequest, ValidatorPenaltyRequest, }, - core::dex::v1alpha1::PositionId, + core::component::dex::v1alpha1::PositionId, }; use penumbra_stake::rate::RateData; use penumbra_stake::{DelegationToken, IdentityKey, Penalty, UnbondingToken, UndelegateClaimPlan}; diff --git a/crates/bin/pcli/src/command/validator.rs b/crates/bin/pcli/src/command/validator.rs index e05b8cabf2..d7d78d1aad 100644 --- a/crates/bin/pcli/src/command/validator.rs +++ b/crates/bin/pcli/src/command/validator.rs @@ -7,7 +7,9 @@ use anyhow::{Context, Result}; use penumbra_fee::Fee; use penumbra_governance::{ValidatorVote, ValidatorVoteBody, Vote}; use penumbra_keys::keys::AddressIndex; -use penumbra_proto::{core::stake::v1alpha1::Validator as ProtoValidator, DomainType, Message}; +use penumbra_proto::{ + core::component::stake::v1alpha1::Validator as ProtoValidator, DomainType, Message, +}; use penumbra_stake::{ validator, validator::{Validator, ValidatorToml}, diff --git a/crates/bin/pclientd/tests/network_integration.rs b/crates/bin/pclientd/tests/network_integration.rs index 94eb1d99c3..d13ac9981d 100644 --- a/crates/bin/pclientd/tests/network_integration.rs +++ b/crates/bin/pclientd/tests/network_integration.rs @@ -13,7 +13,7 @@ use penumbra_asset::{asset, Value, STAKING_TOKEN_ASSET_ID}; use penumbra_chain::test_keys; use penumbra_custody::soft_kms; use penumbra_proto::{ - core::{crypto::v1alpha1::Fee, ibc::v1alpha1::IbcAction}, + core::{component::fee::v1alpha1::Fee, component::ibc::v1alpha1::IbcAction}, custody::v1alpha1::{ custody_protocol_service_client::CustodyProtocolServiceClient, AuthorizeRequest, }, @@ -230,7 +230,7 @@ async fn swap_claim_flow() -> anyhow::Result<()> { // Here we don't want to use the Penumbra Rust libraries much, because // we're executing as if we were a Go program that had to construct all these // protos manually, with no access to Penumbra crypto. - use penumbra_proto::core::crypto::v1alpha1 as crypto; + use penumbra_proto::core::num::v1alpha1 as num; use penumbra_proto::view::v1alpha1::transaction_planner_request as tpr; // 5.1. Generate a transaction plan performing a swap. Since there are no liquidity positions @@ -252,7 +252,7 @@ async fn swap_claim_flow() -> anyhow::Result<()> { ), target_asset: Some(gm.into()), fee: Some(Fee { - amount: Some(crypto::Amount { lo: 0, hi: 0 }), + amount: Some(num::Amount { lo: 0, hi: 0 }), asset_id: None, }), claim_address: Some(test_keys::ADDRESS_1.clone().into()), diff --git a/crates/bin/pd/src/info/specific.rs b/crates/bin/pd/src/info/specific.rs index 4f4cd9ea11..d42b410f25 100644 --- a/crates/bin/pd/src/info/specific.rs +++ b/crates/bin/pd/src/info/specific.rs @@ -366,9 +366,11 @@ impl SpecificQueryService for Info { } }; Ok(tonic::Response::new( - s.map_ok(|p: penumbra_proto::core::dex::v1alpha1::Position| { - LiquidityPositionsByIdResponse { data: Some(p) } - }) + s.map_ok( + |p: penumbra_proto::core::component::dex::v1alpha1::Position| { + LiquidityPositionsByIdResponse { data: Some(p) } + }, + ) .map_err(|e: anyhow::Error| { tonic::Status::unavailable(format!( "error getting position value from storage: {e}" diff --git a/crates/core/asset/src/asset/denom.rs b/crates/core/asset/src/asset/denom.rs index 3c5019fd99..2c62a975fd 100644 --- a/crates/core/asset/src/asset/denom.rs +++ b/crates/core/asset/src/asset/denom.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::asset::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; /// An asset denomination. /// diff --git a/crates/core/asset/src/asset/denom_metadata.rs b/crates/core/asset/src/asset/denom_metadata.rs index 5b9be6fdc1..b3a81f7b7e 100644 --- a/crates/core/asset/src/asset/denom_metadata.rs +++ b/crates/core/asset/src/asset/denom_metadata.rs @@ -10,7 +10,7 @@ use ark_ff::fields::PrimeField; use decaf377::Fq; use penumbra_num::Amount; use penumbra_proto::{ - core::crypto::v1alpha1 as pb, view::v1alpha1::AssetsResponse, DomainType, TypeUrl, + penumbra::core::asset::v1alpha1 as pb, view::v1alpha1::AssetsResponse, DomainType, TypeUrl, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/asset/src/asset/id.rs b/crates/core/asset/src/asset/id.rs index f823a93ffb..cfa3a6d48e 100644 --- a/crates/core/asset/src/asset/id.rs +++ b/crates/core/asset/src/asset/id.rs @@ -3,7 +3,9 @@ use ark_serialize::CanonicalDeserialize; use decaf377::{FieldExt, Fq}; use once_cell::sync::Lazy; use penumbra_num::Amount; -use penumbra_proto::{core::crypto::v1alpha1 as pb, serializers::bech32str, DomainType, TypeUrl}; +use penumbra_proto::{ + penumbra::core::asset::v1alpha1 as pb, serializers::bech32str, DomainType, TypeUrl, +}; use serde::{Deserialize, Serialize}; use crate::Value; diff --git a/crates/core/asset/src/balance/commitment.rs b/crates/core/asset/src/balance/commitment.rs index 08844109a6..b45b7cb095 100644 --- a/crates/core/asset/src/balance/commitment.rs +++ b/crates/core/asset/src/balance/commitment.rs @@ -8,7 +8,7 @@ use decaf377::r1cs::ElementVar; use decaf377::Fq; use decaf377::Fr; use once_cell::sync::Lazy; -use penumbra_proto::core::crypto::v1alpha1 as pb; +use penumbra_proto::penumbra::core::asset::v1alpha1 as pb; use penumbra_proto::{DomainType, TypeUrl}; use crate::value::ValueVar; diff --git a/crates/core/asset/src/value.rs b/crates/core/asset/src/value.rs index c476428ffa..add7ebb7f8 100644 --- a/crates/core/asset/src/value.rs +++ b/crates/core/asset/src/value.rs @@ -12,7 +12,7 @@ use std::{ use anyhow::Context; use penumbra_num::{Amount, AmountVar}; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::asset::v1alpha1 as pb, DomainType, TypeUrl}; use regex::Regex; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/chain/src/effect_hash.rs b/crates/core/component/chain/src/effect_hash.rs index b83daa0dcc..8b2610e87f 100644 --- a/crates/core/component/chain/src/effect_hash.rs +++ b/crates/core/component/chain/src/effect_hash.rs @@ -1,4 +1,6 @@ -use penumbra_proto::{core::crypto::v1alpha1 as pb_crypto, DomainType, TypeUrl}; +use penumbra_proto::{ + penumbra::core::component::chain::v1alpha1 as pb_crypto, DomainType, TypeUrl, +}; /// Something that can be hashed to produce an [`EffectHash`]. pub trait EffectingData { diff --git a/crates/core/component/chain/src/epoch.rs b/crates/core/component/chain/src/epoch.rs index 49cdc2ef71..45b2d15179 100644 --- a/crates/core/component/chain/src/epoch.rs +++ b/crates/core/component/chain/src/epoch.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::chain::v1alpha1 as pb_chain, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::chain::v1alpha1 as pb_chain, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; /// Penumbra groups blocks into epochs and restricts validator changes to epoch boundaries. diff --git a/crates/core/component/chain/src/genesis/allocation.rs b/crates/core/component/chain/src/genesis/allocation.rs index e00c9e238d..cf3f1e1943 100644 --- a/crates/core/component/chain/src/genesis/allocation.rs +++ b/crates/core/component/chain/src/genesis/allocation.rs @@ -1,6 +1,6 @@ use penumbra_keys::Address; use penumbra_num::Amount; -use penumbra_proto::{core::chain::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::chain::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; /// A (transparent) genesis allocation. diff --git a/crates/core/component/chain/src/genesis/app_state.rs b/crates/core/component/chain/src/genesis/app_state.rs index 212416f541..e5d4a42bbe 100644 --- a/crates/core/component/chain/src/genesis/app_state.rs +++ b/crates/core/component/chain/src/genesis/app_state.rs @@ -1,6 +1,10 @@ use anyhow::Context; use penumbra_proto::{ - core::chain::v1alpha1 as pb, core::stake::v1alpha1 as pb_stake, DomainType, TypeUrl, + // TODO: avoid this import! + core::component::stake::v1alpha1 as pb_stake, + penumbra::core::component::chain::v1alpha1 as pb, + DomainType, + TypeUrl, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/chain/src/known_assets.rs b/crates/core/component/chain/src/known_assets.rs index 5c4eb3c0cd..6d60f87599 100644 --- a/crates/core/component/chain/src/known_assets.rs +++ b/crates/core/component/chain/src/known_assets.rs @@ -1,5 +1,5 @@ use penumbra_asset::asset::{self, DenomMetadata}; -use penumbra_proto::{core::chain::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::chain::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; #[derive(Clone, Debug, Default, Serialize, Deserialize)] diff --git a/crates/core/component/chain/src/note_source.rs b/crates/core/component/chain/src/note_source.rs index 032c69a632..98111ea99f 100644 --- a/crates/core/component/chain/src/note_source.rs +++ b/crates/core/component/chain/src/note_source.rs @@ -1,5 +1,5 @@ use anyhow::{anyhow, Result}; -use penumbra_proto::{core::chain::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::chain::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; #[derive(Clone, Copy, Serialize, Deserialize, PartialEq, Eq)] diff --git a/crates/core/component/chain/src/params.rs b/crates/core/component/chain/src/params.rs index faf119323d..6b63371787 100644 --- a/crates/core/component/chain/src/params.rs +++ b/crates/core/component/chain/src/params.rs @@ -8,7 +8,7 @@ use std::{ use anyhow::Context; use penumbra_num::Amount; use penumbra_proto::client::v1alpha1 as pb_client; -use penumbra_proto::core::chain::v1alpha1 as pb_chain; +use penumbra_proto::penumbra::core::component::chain::v1alpha1 as pb_chain; use penumbra_proto::view::v1alpha1 as pb_view; use penumbra_proto::{DomainType, TypeUrl}; @@ -16,6 +16,7 @@ use serde::{Deserialize, Serialize}; pub mod change; +// TODO: lift into the App #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde( try_from = "pb_chain::ChainParameters", diff --git a/crates/core/component/compact-block/src/compact_block.rs b/crates/core/component/compact-block/src/compact_block.rs index 361edaadcc..ea8639f897 100644 --- a/crates/core/component/compact-block/src/compact_block.rs +++ b/crates/core/component/compact-block/src/compact_block.rs @@ -4,7 +4,8 @@ use anyhow::Result; use penumbra_chain::params::{ChainParameters, FmdParameters}; use penumbra_dex::{BatchSwapOutputData, TradingPair}; use penumbra_proto::{ - client::v1alpha1::CompactBlockRangeResponse, core::chain::v1alpha1 as pb, DomainType, TypeUrl, + client::v1alpha1::CompactBlockRangeResponse, + penumbra::core::component::compact_block::v1alpha1 as pb, DomainType, TypeUrl, }; use penumbra_sct::Nullifier; use penumbra_tct::builder::{block, epoch}; diff --git a/crates/core/component/compact-block/src/state_payload.rs b/crates/core/component/compact-block/src/state_payload.rs index c412a50598..3fe17c8c41 100644 --- a/crates/core/component/compact-block/src/state_payload.rs +++ b/crates/core/component/compact-block/src/state_payload.rs @@ -2,7 +2,7 @@ use std::convert::TryFrom; use anyhow::Result; use penumbra_dex::swap::SwapPayload; -use penumbra_proto::core::chain::v1alpha1::{self as pb}; +use penumbra_proto::penumbra::core::component::compact_block::v1alpha1::{self as pb}; use penumbra_shielded_pool::{note, NotePayload}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/dao/src/action/dao_deposit.rs b/crates/core/component/dao/src/action/dao_deposit.rs index 14d72d7d49..f89f607a89 100644 --- a/crates/core/component/dao/src/action/dao_deposit.rs +++ b/crates/core/component/dao/src/action/dao_deposit.rs @@ -3,7 +3,8 @@ use serde::{Deserialize, Serialize}; use std::convert::{TryFrom, TryInto}; use penumbra_asset::{Balance, Value}; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +// TODO: why are the Dao actions not in the dao protos? +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(try_from = "pb::DaoDeposit", into = "pb::DaoDeposit")] diff --git a/crates/core/component/dao/src/action/dao_output.rs b/crates/core/component/dao/src/action/dao_output.rs index 3de22efed1..e86ff3e806 100644 --- a/crates/core/component/dao/src/action/dao_output.rs +++ b/crates/core/component/dao/src/action/dao_output.rs @@ -4,7 +4,7 @@ use std::convert::{TryFrom, TryInto}; use penumbra_asset::{Balance, Value}; use penumbra_keys::Address; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(try_from = "pb::DaoOutput", into = "pb::DaoOutput")] diff --git a/crates/core/component/dao/src/action/dao_spend.rs b/crates/core/component/dao/src/action/dao_spend.rs index 05de4ac917..71adf9104b 100644 --- a/crates/core/component/dao/src/action/dao_spend.rs +++ b/crates/core/component/dao/src/action/dao_spend.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; use std::convert::{TryFrom, TryInto}; use penumbra_asset::{Balance, Value}; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(try_from = "pb::DaoSpend", into = "pb::DaoSpend")] diff --git a/crates/core/component/dex/src/batch_swap_output_data.rs b/crates/core/component/dex/src/batch_swap_output_data.rs index 21af60a66c..b33b55baf8 100644 --- a/crates/core/component/dex/src/batch_swap_output_data.rs +++ b/crates/core/component/dex/src/batch_swap_output_data.rs @@ -8,7 +8,8 @@ use ark_r1cs_std::{ use ark_relations::r1cs::{ConstraintSystemRef, SynthesisError}; use decaf377::{r1cs::FqVar, Fq}; use penumbra_proto::{ - client::v1alpha1::BatchSwapOutputDataResponse, core::dex::v1alpha1 as pb, DomainType, TypeUrl, + client::v1alpha1::BatchSwapOutputDataResponse, penumbra::core::component::dex::v1alpha1 as pb, + DomainType, TypeUrl, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/dex/src/lp/action.rs b/crates/core/component/dex/src/lp/action.rs index 791f45e7ed..edd7dd4c55 100644 --- a/crates/core/component/dex/src/lp/action.rs +++ b/crates/core/component/dex/src/lp/action.rs @@ -1,7 +1,7 @@ use serde::{Deserialize, Serialize}; use penumbra_asset::{balance, Balance, Value}; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use super::{position, position::Position, LpNft}; diff --git a/crates/core/component/dex/src/lp/nft.rs b/crates/core/component/dex/src/lp/nft.rs index a2d9c34a46..1cb3e388d8 100644 --- a/crates/core/component/dex/src/lp/nft.rs +++ b/crates/core/component/dex/src/lp/nft.rs @@ -1,5 +1,5 @@ use penumbra_asset::asset; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use regex::Regex; use super::position::{Id, State}; diff --git a/crates/core/component/dex/src/lp/plan.rs b/crates/core/component/dex/src/lp/plan.rs index 1c19b6cab9..bb35aa3208 100644 --- a/crates/core/component/dex/src/lp/plan.rs +++ b/crates/core/component/dex/src/lp/plan.rs @@ -2,7 +2,7 @@ use ark_ff::Zero; use decaf377::Fr; use decaf377_rdsa::{Signature, SpendAuth}; use penumbra_asset::{balance, Balance, Value}; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_tct as tct; use rand_core::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/dex/src/lp/position.rs b/crates/core/component/dex/src/lp/position.rs index 712d15e10f..3d357e8b36 100644 --- a/crates/core/component/dex/src/lp/position.rs +++ b/crates/core/component/dex/src/lp/position.rs @@ -1,7 +1,9 @@ use anyhow::{anyhow, Context}; use penumbra_asset::asset; use penumbra_num::Amount; -use penumbra_proto::{core::dex::v1alpha1 as pb, serializers::bech32str, DomainType, TypeUrl}; +use penumbra_proto::{ + penumbra::core::component::dex::v1alpha1 as pb, serializers::bech32str, DomainType, TypeUrl, +}; use rand_core::CryptoRngCore; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/dex/src/lp/reserves.rs b/crates/core/component/dex/src/lp/reserves.rs index d4e89232c5..b0ce4dfd44 100644 --- a/crates/core/component/dex/src/lp/reserves.rs +++ b/crates/core/component/dex/src/lp/reserves.rs @@ -1,6 +1,6 @@ use penumbra_asset::{Balance, Value}; use penumbra_num::Amount; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use crate::TradingPair; diff --git a/crates/core/component/dex/src/lp/trading_function.rs b/crates/core/component/dex/src/lp/trading_function.rs index 2584c139a7..8bebe50473 100644 --- a/crates/core/component/dex/src/lp/trading_function.rs +++ b/crates/core/component/dex/src/lp/trading_function.rs @@ -1,7 +1,7 @@ use anyhow::{anyhow, Result}; use penumbra_asset::{asset, Value}; use penumbra_num::{fixpoint::U128x128, Amount}; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use tracing::instrument; diff --git a/crates/core/component/dex/src/swap/action.rs b/crates/core/component/dex/src/swap/action.rs index e23e335f0b..0790249fb8 100644 --- a/crates/core/component/dex/src/swap/action.rs +++ b/crates/core/component/dex/src/swap/action.rs @@ -4,7 +4,8 @@ use decaf377::Fr; use penumbra_asset::{balance, Balance, Value}; use penumbra_num::Amount; use penumbra_proto::{ - core::crypto::v1alpha1 as pbc, core::dex::v1alpha1 as pb, DomainType, TypeUrl, + core::component::dex::v1alpha1 as pbc, penumbra::core::component::dex::v1alpha1 as pb, + DomainType, TypeUrl, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/dex/src/swap/payload.rs b/crates/core/component/dex/src/swap/payload.rs index 011597a107..9291f326a9 100644 --- a/crates/core/component/dex/src/swap/payload.rs +++ b/crates/core/component/dex/src/swap/payload.rs @@ -1,6 +1,6 @@ use anyhow::anyhow; use penumbra_keys::FullViewingKey; -use penumbra_proto::core::dex::v1alpha1 as pb; +use penumbra_proto::penumbra::core::component::dex::v1alpha1 as pb; use serde::{Deserialize, Serialize}; use super::{SwapCiphertext, SwapPlaintext}; diff --git a/crates/core/component/dex/src/swap/plaintext.rs b/crates/core/component/dex/src/swap/plaintext.rs index 4c9ad3125f..60613348e2 100644 --- a/crates/core/component/dex/src/swap/plaintext.rs +++ b/crates/core/component/dex/src/swap/plaintext.rs @@ -8,7 +8,8 @@ use decaf377::{FieldExt, Fq}; use once_cell::sync::Lazy; use penumbra_fee::Fee; use penumbra_proto::{ - core::crypto::v1alpha1 as pb_crypto, core::dex::v1alpha1 as pb, DomainType, TypeUrl, + core::keys::v1alpha1 as pb_keys, penumbra::core::component::dex::v1alpha1 as pb, DomainType, + TypeUrl, }; use penumbra_tct::StateCommitment; use poseidon377::{hash_1, hash_4, hash_7}; @@ -334,7 +335,7 @@ impl From<&SwapPlaintext> for [u8; SWAP_LEN_BYTES] { bytes[80..96].copy_from_slice(&swap.delta_2_i.to_le_bytes()); bytes[96..112].copy_from_slice(&swap.claim_fee.0.amount.to_le_bytes()); bytes[112..144].copy_from_slice(&swap.claim_fee.0.asset_id.to_bytes()); - let pb_address = pb_crypto::Address::from(swap.claim_address); + let pb_address = pb_keys::Address::from(swap.claim_address); bytes[144..224].copy_from_slice(&pb_address.inner); bytes[224..256].copy_from_slice(&swap.rseed.to_bytes()); bytes @@ -373,7 +374,7 @@ impl TryFrom<&[u8]> for SwapPlaintext { let address_bytes: [u8; 80] = bytes[144..224] .try_into() .map_err(|_| anyhow!("error fetching address bytes"))?; - let pb_address = pb_crypto::Address { + let pb_address = pb_keys::Address { inner: address_bytes.to_vec(), alt_bech32m: String::new(), }; diff --git a/crates/core/component/dex/src/swap/plan.rs b/crates/core/component/dex/src/swap/plan.rs index 940a4a0b97..1a996d3abb 100644 --- a/crates/core/component/dex/src/swap/plan.rs +++ b/crates/core/component/dex/src/swap/plan.rs @@ -4,7 +4,7 @@ use ark_ff::{UniformRand, Zero}; use decaf377::{FieldExt, Fq, Fr}; use penumbra_asset::{balance, Balance, Value}; use penumbra_keys::FullViewingKey; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use rand_core::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/dex/src/swap/proof.rs b/crates/core/component/dex/src/swap/proof.rs index f7951c7442..9d518ee3e0 100644 --- a/crates/core/component/dex/src/swap/proof.rs +++ b/crates/core/component/dex/src/swap/proof.rs @@ -12,7 +12,7 @@ use decaf377::{Fq, Fr}; use decaf377_fmd as fmd; use decaf377_ka as ka; use penumbra_fee::Fee; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_tct as tct; use penumbra_tct::r1cs::StateCommitmentVar; diff --git a/crates/core/component/dex/src/swap/view.rs b/crates/core/component/dex/src/swap/view.rs index 79b1b3f694..d8a7c61300 100644 --- a/crates/core/component/dex/src/swap/view.rs +++ b/crates/core/component/dex/src/swap/view.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use super::{Swap, SwapPlaintext}; diff --git a/crates/core/component/dex/src/swap_claim/action.rs b/crates/core/component/dex/src/swap_claim/action.rs index b8e196c41d..288297d788 100644 --- a/crates/core/component/dex/src/swap_claim/action.rs +++ b/crates/core/component/dex/src/swap_claim/action.rs @@ -2,7 +2,7 @@ use anyhow::Context; use penumbra_asset::Balance; use penumbra_fee::Fee; use penumbra_proof_params::GROTH16_PROOF_LENGTH_BYTES; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_sct::Nullifier; use penumbra_tct as tct; use serde::{Deserialize, Serialize}; @@ -37,7 +37,7 @@ impl DomainType for SwapClaim { impl From for pb::SwapClaim { fn from(sc: SwapClaim) -> Self { pb::SwapClaim { - proof: sc.proof.0.into(), + proof: Some(sc.proof.into()), body: Some(sc.body.into()), epoch_duration: sc.epoch_duration, } @@ -47,7 +47,11 @@ impl From for pb::SwapClaim { impl TryFrom for SwapClaim { type Error = anyhow::Error; fn try_from(sc: pb::SwapClaim) -> Result { - let proof_bytes: [u8; GROTH16_PROOF_LENGTH_BYTES] = (sc.proof[..]) + let proof_bytes: [u8; GROTH16_PROOF_LENGTH_BYTES] = sc + .proof + .ok_or_else(|| anyhow::anyhow!("missing swap claim proof"))? + .inner + .as_slice() .try_into() .context("swap claim proof malformed")?; Ok(Self { diff --git a/crates/core/component/dex/src/swap_claim/plan.rs b/crates/core/component/dex/src/swap_claim/plan.rs index e03b00d9d6..34275e846d 100644 --- a/crates/core/component/dex/src/swap_claim/plan.rs +++ b/crates/core/component/dex/src/swap_claim/plan.rs @@ -5,7 +5,7 @@ use penumbra_keys::{ FullViewingKey, }; use penumbra_proof_params::SWAPCLAIM_PROOF_PROVING_KEY; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_sct::Nullifier; use penumbra_tct as tct; diff --git a/crates/core/component/dex/src/swap_claim/proof.rs b/crates/core/component/dex/src/swap_claim/proof.rs index 4551d8939d..a90ad34ac2 100644 --- a/crates/core/component/dex/src/swap_claim/proof.rs +++ b/crates/core/component/dex/src/swap_claim/proof.rs @@ -8,7 +8,7 @@ use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; use ark_snark::SNARK; use decaf377::{r1cs::FqVar, Bls12_377, Fq}; use penumbra_fee::Fee; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_tct as tct; use penumbra_tct::r1cs::StateCommitmentVar; diff --git a/crates/core/component/dex/src/swap_claim/view.rs b/crates/core/component/dex/src/swap_claim/view.rs index 1ed65032e1..01ba616c71 100644 --- a/crates/core/component/dex/src/swap_claim/view.rs +++ b/crates/core/component/dex/src/swap_claim/view.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::dex::v1alpha1 as pbd, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pbd, DomainType, TypeUrl}; use penumbra_shielded_pool::NoteView; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/dex/src/swap_execution.rs b/crates/core/component/dex/src/swap_execution.rs index cad55fed47..d5bcd8ebb8 100644 --- a/crates/core/component/dex/src/swap_execution.rs +++ b/crates/core/component/dex/src/swap_execution.rs @@ -1,7 +1,7 @@ use anyhow::Result; use penumbra_asset::Value; use penumbra_num::fixpoint::U128x128; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; /// Contains the summary data of a trade, for client consumption. diff --git a/crates/core/component/dex/src/trading_pair.rs b/crates/core/component/dex/src/trading_pair.rs index 132d925477..062a99fcf5 100644 --- a/crates/core/component/dex/src/trading_pair.rs +++ b/crates/core/component/dex/src/trading_pair.rs @@ -3,7 +3,7 @@ use ark_ff::ToConstraintField; use ark_r1cs_std::prelude::{AllocVar, EqGadget}; use ark_relations::r1cs::SynthesisError; use decaf377::{FieldExt, Fq}; -use penumbra_proto::{core::dex::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::dex::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use std::{fmt, str::FromStr}; diff --git a/crates/core/component/fee/src/fee.rs b/crates/core/component/fee/src/fee.rs index 5d4aa95c1e..cb396bead9 100644 --- a/crates/core/component/fee/src/fee.rs +++ b/crates/core/component/fee/src/fee.rs @@ -1,5 +1,5 @@ use anyhow::Context; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::fee::v1alpha1 as pb, DomainType, TypeUrl}; use decaf377::Fr; use penumbra_asset::{asset, balance, Balance, Value, STAKING_TOKEN_ASSET_ID}; diff --git a/crates/core/component/governance/src/delegator_vote/action.rs b/crates/core/component/governance/src/delegator_vote/action.rs index 57661300a8..b59dfc793e 100644 --- a/crates/core/component/governance/src/delegator_vote/action.rs +++ b/crates/core/component/governance/src/delegator_vote/action.rs @@ -4,7 +4,7 @@ use crate::{vote::Vote, DelegatorVoteProof}; use decaf377_rdsa::{Signature, SpendAuth, VerificationKey}; use penumbra_asset::Value; use penumbra_num::Amount; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_sct::Nullifier; use penumbra_tct as tct; diff --git a/crates/core/component/governance/src/delegator_vote/plan.rs b/crates/core/component/governance/src/delegator_vote/plan.rs index 12568663e8..0c7e1005d8 100644 --- a/crates/core/component/governance/src/delegator_vote/plan.rs +++ b/crates/core/component/governance/src/delegator_vote/plan.rs @@ -6,7 +6,7 @@ use penumbra_asset::{Balance, Value}; use penumbra_keys::FullViewingKey; use penumbra_num::Amount; use penumbra_proof_params::DELEGATOR_VOTE_PROOF_PROVING_KEY; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_sct::Nullifier; use penumbra_shielded_pool::Note; use penumbra_tct as tct; diff --git a/crates/core/component/governance/src/delegator_vote/proof.rs b/crates/core/component/governance/src/delegator_vote/proof.rs index 28a530716e..13cd7ab9f0 100644 --- a/crates/core/component/governance/src/delegator_vote/proof.rs +++ b/crates/core/component/governance/src/delegator_vote/proof.rs @@ -14,7 +14,7 @@ use ark_r1cs_std::prelude::AllocVar; use ark_relations::r1cs::{ConstraintSynthesizer, ConstraintSystemRef}; use ark_snark::SNARK; use decaf377_rdsa::{SpendAuth, VerificationKey}; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_tct as tct; use penumbra_tct::r1cs::StateCommitmentVar; use tct::r1cs::PositionVar; diff --git a/crates/core/component/governance/src/delegator_vote/view.rs b/crates/core/component/governance/src/delegator_vote/view.rs index da38e4eb5d..1934e2715d 100644 --- a/crates/core/component/governance/src/delegator_vote/view.rs +++ b/crates/core/component/governance/src/delegator_vote/view.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::transaction::v1alpha1 as pbt, DomainType, TypeUrl}; +use penumbra_proto::{core::component::governance::v1alpha1 as pbt, DomainType, TypeUrl}; use penumbra_shielded_pool::NoteView; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/governance/src/proposal.rs b/crates/core/component/governance/src/proposal.rs index e180f98d7f..a88b8fb5ab 100644 --- a/crates/core/component/governance/src/proposal.rs +++ b/crates/core/component/governance/src/proposal.rs @@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize}; use std::str::FromStr; use penumbra_chain::params::ChainParameters; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; /// A governance proposal. #[derive(Debug, Clone, Serialize, Deserialize)] diff --git a/crates/core/component/governance/src/proposal_deposit_claim/action.rs b/crates/core/component/governance/src/proposal_deposit_claim/action.rs index 3640e92a5d..725773f90a 100644 --- a/crates/core/component/governance/src/proposal_deposit_claim/action.rs +++ b/crates/core/component/governance/src/proposal_deposit_claim/action.rs @@ -5,7 +5,7 @@ use penumbra_asset::{ Balance, Value, STAKING_TOKEN_ASSET_ID, }; use penumbra_num::Amount; -use penumbra_proto::{core::governance::v1alpha1 as pb, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, TypeUrl}; use crate::proposal_state::{Outcome, Withdrawn}; diff --git a/crates/core/component/governance/src/proposal_state.rs b/crates/core/component/governance/src/proposal_state.rs index 1ec6e498f4..a000fc8eac 100644 --- a/crates/core/component/governance/src/proposal_state.rs +++ b/crates/core/component/governance/src/proposal_state.rs @@ -1,6 +1,6 @@ use serde::{Deserialize, Serialize}; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(try_from = "pb::ProposalState", into = "pb::ProposalState")] diff --git a/crates/core/component/governance/src/proposal_submit/action.rs b/crates/core/component/governance/src/proposal_submit/action.rs index 5b097d0610..288cbd53cf 100644 --- a/crates/core/component/governance/src/proposal_submit/action.rs +++ b/crates/core/component/governance/src/proposal_submit/action.rs @@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize}; use penumbra_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; use penumbra_num::Amount; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; use crate::proposal::Proposal; diff --git a/crates/core/component/governance/src/proposal_withdraw/action.rs b/crates/core/component/governance/src/proposal_withdraw/action.rs index 96a25e3ed3..af79700f17 100644 --- a/crates/core/component/governance/src/proposal_withdraw/action.rs +++ b/crates/core/component/governance/src/proposal_withdraw/action.rs @@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize}; use penumbra_asset::{Balance, Value}; use penumbra_num::Amount; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; use crate::ProposalNft; diff --git a/crates/core/component/governance/src/tally.rs b/crates/core/component/governance/src/tally.rs index dc3ed5efa7..c8cf21d249 100644 --- a/crates/core/component/governance/src/tally.rs +++ b/crates/core/component/governance/src/tally.rs @@ -3,7 +3,7 @@ use std::ops::{Add, AddAssign}; use serde::{Deserialize, Serialize}; use penumbra_chain::params::{ChainParameters, Ratio}; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; use crate::{ proposal_state::{Outcome as StateOutcome, Withdrawn}, diff --git a/crates/core/component/governance/src/validator_vote/action.rs b/crates/core/component/governance/src/validator_vote/action.rs index d7d8d1601b..b4da36ffea 100644 --- a/crates/core/component/governance/src/validator_vote/action.rs +++ b/crates/core/component/governance/src/validator_vote/action.rs @@ -1,5 +1,5 @@ use decaf377_rdsa::{Signature, SpendAuth}; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_stake::{GovernanceKey, IdentityKey}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/governance/src/vote.rs b/crates/core/component/governance/src/vote.rs index 105b583759..3109b4b89b 100644 --- a/crates/core/component/governance/src/vote.rs +++ b/crates/core/component/governance/src/vote.rs @@ -4,7 +4,7 @@ use std::{ }; use anyhow::anyhow; -use penumbra_proto::{core::governance::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::governance::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; /// A vote on a proposal. diff --git a/crates/core/component/ibc/src/component/client_counter.rs b/crates/core/component/ibc/src/component/client_counter.rs index 628b014bbd..72a8cb8d69 100644 --- a/crates/core/component/ibc/src/component/client_counter.rs +++ b/crates/core/component/ibc/src/component/client_counter.rs @@ -3,7 +3,7 @@ use ibc_types::core::client::Height; use ibc_types::core::connection::{ChainId, ConnectionId}; use ibc_types::lightclients::tendermint::TrustThreshold; use penumbra_chain::component::PENUMBRA_PROOF_SPECS; -use penumbra_proto::{core::ibc::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::ibc::v1alpha1 as pb, DomainType, TypeUrl}; #[derive(Clone, Debug)] pub struct ClientCounter(pub u64); diff --git a/crates/core/component/ibc/src/component/connection_counter.rs b/crates/core/component/ibc/src/component/connection_counter.rs index 3bab258a06..1f6efe179a 100644 --- a/crates/core/component/ibc/src/component/connection_counter.rs +++ b/crates/core/component/ibc/src/component/connection_counter.rs @@ -1,6 +1,6 @@ use ibc_types::core::connection::Version; use once_cell::sync::Lazy; -use penumbra_proto::{core::ibc::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::ibc::v1alpha1 as pb, DomainType, TypeUrl}; #[derive(Debug, Clone)] pub struct ConnectionCounter(pub u64); diff --git a/crates/core/component/ibc/src/component/transfer.rs b/crates/core/component/ibc/src/component/transfer.rs index 2e00ab0e83..052cebb589 100644 --- a/crates/core/component/ibc/src/component/transfer.rs +++ b/crates/core/component/ibc/src/component/transfer.rs @@ -18,7 +18,8 @@ use penumbra_asset::{asset, asset::DenomMetadata, Value}; use penumbra_keys::Address; use penumbra_num::Amount; use penumbra_proto::{ - core::ibc::v1alpha1::FungibleTokenPacketData, StateReadProto, StateWriteProto, + penumbra::core::component::ibc::v1alpha1::FungibleTokenPacketData, StateReadProto, + StateWriteProto, }; use penumbra_shielded_pool::component::{NoteManager, SupplyWrite}; use penumbra_storage::{StateRead, StateWrite}; diff --git a/crates/core/component/ibc/src/ibc_action.rs b/crates/core/component/ibc/src/ibc_action.rs index 239bf0479c..d8fb6afb1e 100644 --- a/crates/core/component/ibc/src/ibc_action.rs +++ b/crates/core/component/ibc/src/ibc_action.rs @@ -12,7 +12,7 @@ use ibc_types::core::{ use ibc_types::DomainType as IbcTypesDomainType; use ibc_types::TypeUrl as IbcTypesTypeUrl; -use penumbra_proto::core::ibc::v1alpha1::{self as pb}; +use penumbra_proto::penumbra::core::component::ibc::v1alpha1::{self as pb}; use penumbra_proto::{DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/ibc/src/ics20_withdrawal.rs b/crates/core/component/ibc/src/ics20_withdrawal.rs index 3d0531268d..a3e862b4c2 100644 --- a/crates/core/component/ibc/src/ics20_withdrawal.rs +++ b/crates/core/component/ibc/src/ics20_withdrawal.rs @@ -6,7 +6,7 @@ use penumbra_asset::{ use penumbra_keys::Address; use penumbra_num::Amount; use penumbra_proto::{ - core::ibc::v1alpha1::{self as pb, FungibleTokenPacketData}, + penumbra::core::component::ibc::v1alpha1::{self as pb, FungibleTokenPacketData}, DomainType, TypeUrl, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/sct/src/nullifier.rs b/crates/core/component/sct/src/nullifier.rs index 2d1fc68c2b..6666f26ef5 100644 --- a/crates/core/component/sct/src/nullifier.rs +++ b/crates/core/component/sct/src/nullifier.rs @@ -8,7 +8,7 @@ use poseidon377::hash_3; use once_cell::sync::Lazy; use penumbra_keys::keys::{NullifierKey, NullifierKeyVar}; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{core::component::sct::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; #[derive(PartialEq, Eq, Clone, Copy, Hash, PartialOrd, Ord, Serialize, Deserialize)] diff --git a/crates/core/component/shielded-pool/src/note.rs b/crates/core/component/shielded-pool/src/note.rs index f3af4e8d0c..68b57eda9d 100644 --- a/crates/core/component/shielded-pool/src/note.rs +++ b/crates/core/component/shielded-pool/src/note.rs @@ -12,7 +12,7 @@ use penumbra_keys::{ symmetric::{OutgoingCipherKey, OvkWrappedKey, PayloadKey, PayloadKind}, Address, AddressView, }; -use penumbra_proto::core::crypto::v1alpha1 as pb; +use penumbra_proto::penumbra::core::component::shielded_pool::v1alpha1 as pb; use rand::{CryptoRng, Rng}; use serde::{Deserialize, Serialize}; use thiserror; diff --git a/crates/core/component/shielded-pool/src/note_payload.rs b/crates/core/component/shielded-pool/src/note_payload.rs index c3ea35673d..7d317974f0 100644 --- a/crates/core/component/shielded-pool/src/note_payload.rs +++ b/crates/core/component/shielded-pool/src/note_payload.rs @@ -1,10 +1,10 @@ use anyhow::{Context, Error}; -use bytes::Bytes; - use penumbra_keys::keys::FullViewingKey; use penumbra_num::Amount; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{ + penumbra::core::component::shielded_pool::v1alpha1 as pb, DomainType, TypeUrl, +}; use serde::{Deserialize, Serialize}; use crate::{note, Note, NoteCiphertext}; @@ -82,7 +82,7 @@ impl From for pb::NotePayload { fn from(msg: NotePayload) -> Self { pb::NotePayload { note_commitment: Some(msg.note_commitment.into()), - ephemeral_key: Bytes::copy_from_slice(&msg.ephemeral_key.0), + ephemeral_key: msg.ephemeral_key.0.to_vec(), encrypted_note: Some(msg.encrypted_note.into()), } } diff --git a/crates/core/component/shielded-pool/src/nullifier_derivation.rs b/crates/core/component/shielded-pool/src/nullifier_derivation.rs index 1e983eca0e..6c5c05c38b 100644 --- a/crates/core/component/shielded-pool/src/nullifier_derivation.rs +++ b/crates/core/component/shielded-pool/src/nullifier_derivation.rs @@ -10,7 +10,9 @@ use ark_groth16::{ }; use ark_relations::r1cs::{ConstraintSynthesizer, ConstraintSystemRef}; use ark_snark::SNARK; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{ + penumbra::core::component::shielded_pool::v1alpha1 as pb, DomainType, TypeUrl, +}; use penumbra_tct as tct; use rand::{CryptoRng, Rng}; use tct::StateCommitment; diff --git a/crates/core/component/shielded-pool/src/output/action.rs b/crates/core/component/shielded-pool/src/output/action.rs index 25c32cbdd5..ea47e21cd4 100644 --- a/crates/core/component/shielded-pool/src/output/action.rs +++ b/crates/core/component/shielded-pool/src/output/action.rs @@ -1,11 +1,11 @@ use std::convert::{TryFrom, TryInto}; use anyhow::{Context, Error}; -use bytes::Bytes; use penumbra_asset::balance; use penumbra_keys::symmetric::{OvkWrappedKey, WrappedMemoKey}; use penumbra_proto::{ - core::crypto::v1alpha1 as pbc, core::transaction::v1alpha1 as pb, DomainType, TypeUrl, + core::component::shielded_pool::v1alpha1 as pb, + penumbra::core::component::shielded_pool::v1alpha1 as pbc, DomainType, TypeUrl, }; use serde::{Deserialize, Serialize}; @@ -75,8 +75,8 @@ impl From for pb::OutputBody { pb::OutputBody { note_payload: Some(output.note_payload.into()), balance_commitment: Some(output.balance_commitment.into()), - wrapped_memo_key: Bytes::copy_from_slice(&output.wrapped_memo_key.0), - ovk_wrapped_key: Bytes::copy_from_slice(&output.ovk_wrapped_key.0), + wrapped_memo_key: output.wrapped_memo_key.0.to_vec(), + ovk_wrapped_key: output.ovk_wrapped_key.0.to_vec(), } } } diff --git a/crates/core/component/shielded-pool/src/output/plan.rs b/crates/core/component/shielded-pool/src/output/plan.rs index 3574403b43..d5e1d94d7d 100644 --- a/crates/core/component/shielded-pool/src/output/plan.rs +++ b/crates/core/component/shielded-pool/src/output/plan.rs @@ -7,7 +7,7 @@ use penumbra_keys::{ symmetric::WrappedMemoKey, Address, PayloadKey, }; -use penumbra_proto::{core::transaction::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{core::component::shielded_pool::v1alpha1 as pb, DomainType, TypeUrl}; use rand_core::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; @@ -163,10 +163,10 @@ impl TryFrom for OutputPlan { .dest_address .ok_or_else(|| anyhow::anyhow!("missing address"))? .try_into()?, - rseed: Rseed(msg.rseed.as_ref().try_into()?), - value_blinding: Fr::from_bytes(msg.value_blinding.as_ref().try_into()?)?, - proof_blinding_r: Fq::from_bytes(msg.proof_blinding_r.as_ref().try_into()?)?, - proof_blinding_s: Fq::from_bytes(msg.proof_blinding_s.as_ref().try_into()?)?, + rseed: Rseed(msg.rseed.as_slice().try_into()?), + value_blinding: Fr::from_bytes(msg.value_blinding.as_slice().try_into()?)?, + proof_blinding_r: Fq::from_bytes(msg.proof_blinding_r.as_slice().try_into()?)?, + proof_blinding_s: Fq::from_bytes(msg.proof_blinding_s.as_slice().try_into()?)?, }) } } diff --git a/crates/core/component/shielded-pool/src/output/proof.rs b/crates/core/component/shielded-pool/src/output/proof.rs index f39813d084..34fb3db98f 100644 --- a/crates/core/component/shielded-pool/src/output/proof.rs +++ b/crates/core/component/shielded-pool/src/output/proof.rs @@ -15,7 +15,9 @@ use ark_r1cs_std::prelude::*; use ark_relations::r1cs::{ConstraintSynthesizer, ConstraintSystemRef}; use ark_snark::SNARK; use penumbra_keys::{keys::Diversifier, Address}; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{ + penumbra::core::component::shielded_pool::v1alpha1 as pb, DomainType, TypeUrl, +}; use penumbra_tct::r1cs::StateCommitmentVar; use crate::{note, Note, Rseed}; @@ -231,7 +233,7 @@ mod tests { use penumbra_proof_params::generate_prepared_test_parameters; use proptest::prelude::*; - use penumbra_proto::core::crypto::v1alpha1 as pb; + use penumbra_proto::penumbra::core::component::shielded_pool::v1alpha1 as pb; use rand_core::OsRng; use crate::{note, Note}; diff --git a/crates/core/component/shielded-pool/src/output/view.rs b/crates/core/component/shielded-pool/src/output/view.rs index 43b70324ee..3c40cf44d6 100644 --- a/crates/core/component/shielded-pool/src/output/view.rs +++ b/crates/core/component/shielded-pool/src/output/view.rs @@ -1,5 +1,5 @@ use penumbra_keys::PayloadKey; -use penumbra_proto::{core::transaction::v1alpha1 as pbt, DomainType, TypeUrl}; +use penumbra_proto::{core::component::shielded_pool::v1alpha1 as pbt, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::NoteView; @@ -48,7 +48,7 @@ impl TryFrom for OutputView { .payload_key .ok_or_else(|| anyhow::anyhow!("missing payload key field"))? .inner - .as_ref() + .as_slice() .try_into()?, }), pbt::output_view::OutputView::Opaque(x) => Ok(OutputView::Opaque { diff --git a/crates/core/component/shielded-pool/src/spend/action.rs b/crates/core/component/shielded-pool/src/spend/action.rs index 023b724117..85d4052bb5 100644 --- a/crates/core/component/shielded-pool/src/spend/action.rs +++ b/crates/core/component/shielded-pool/src/spend/action.rs @@ -1,10 +1,9 @@ use std::convert::{TryFrom, TryInto}; use anyhow::{Context, Error}; -use bytes::Bytes; use decaf377_rdsa::{Signature, SpendAuth, VerificationKey}; use penumbra_asset::balance; -use penumbra_proto::{core::transaction::v1alpha1 as transaction, DomainType, TypeUrl}; +use penumbra_proto::{core::component::shielded_pool::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_sct::Nullifier; use serde::{Deserialize, Serialize}; @@ -18,7 +17,7 @@ pub struct Spend { } #[derive(Clone, Debug, Deserialize, Serialize)] -#[serde(try_from = "transaction::SpendBody", into = "transaction::SpendBody")] +#[serde(try_from = "pb::SpendBody", into = "pb::SpendBody")] pub struct Body { pub balance_commitment: balance::Commitment, pub nullifier: Nullifier, @@ -30,12 +29,12 @@ impl TypeUrl for Spend { } impl DomainType for Spend { - type Proto = transaction::Spend; + type Proto = pb::Spend; } -impl From for transaction::Spend { +impl From for pb::Spend { fn from(msg: Spend) -> Self { - transaction::Spend { + pb::Spend { body: Some(msg.body.into()), auth_sig: Some(msg.auth_sig.into()), proof: Some(msg.proof.into()), @@ -43,10 +42,10 @@ impl From for transaction::Spend { } } -impl TryFrom for Spend { +impl TryFrom for Spend { type Error = Error; - fn try_from(proto: transaction::Spend) -> anyhow::Result { + fn try_from(proto: pb::Spend) -> anyhow::Result { let body = proto .body .ok_or_else(|| anyhow::anyhow!("missing spend body"))? @@ -76,25 +75,25 @@ impl TypeUrl for Body { } impl DomainType for Body { - type Proto = transaction::SpendBody; + type Proto = pb::SpendBody; } -impl From for transaction::SpendBody { +impl From for pb::SpendBody { fn from(msg: Body) -> Self { let nullifier_bytes: [u8; 32] = msg.nullifier.into(); let rk_bytes: [u8; 32] = msg.rk.into(); - transaction::SpendBody { + pb::SpendBody { balance_commitment: Some(msg.balance_commitment.into()), - nullifier: Bytes::copy_from_slice(&nullifier_bytes), - rk: Bytes::copy_from_slice(&rk_bytes), + nullifier: nullifier_bytes.to_vec(), + rk: rk_bytes.to_vec(), } } } -impl TryFrom for Body { +impl TryFrom for Body { type Error = Error; - fn try_from(proto: transaction::SpendBody) -> anyhow::Result { + fn try_from(proto: pb::SpendBody) -> anyhow::Result { let balance_commitment: balance::Commitment = proto .balance_commitment .ok_or_else(|| anyhow::anyhow!("missing value commitment"))? diff --git a/crates/core/component/shielded-pool/src/spend/plan.rs b/crates/core/component/shielded-pool/src/spend/plan.rs index 3342cec075..4bac126941 100644 --- a/crates/core/component/shielded-pool/src/spend/plan.rs +++ b/crates/core/component/shielded-pool/src/spend/plan.rs @@ -3,7 +3,7 @@ use decaf377::{FieldExt, Fq, Fr}; use decaf377_rdsa::{Signature, SpendAuth}; use penumbra_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; use penumbra_keys::{Address, FullViewingKey}; -use penumbra_proto::{core::transaction::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{core::component::shielded_pool::v1alpha1 as pb, DomainType, TypeUrl}; use penumbra_sct::Nullifier; use penumbra_tct as tct; use rand_core::{CryptoRng, RngCore}; @@ -161,10 +161,10 @@ impl TryFrom for SpendPlan { .ok_or_else(|| anyhow::anyhow!("missing note"))? .try_into()?, position: msg.position.into(), - randomizer: Fr::from_bytes(msg.randomizer.as_ref().try_into()?)?, - value_blinding: Fr::from_bytes(msg.value_blinding.as_ref().try_into()?)?, - proof_blinding_r: Fq::from_bytes(msg.proof_blinding_r.as_ref().try_into()?)?, - proof_blinding_s: Fq::from_bytes(msg.proof_blinding_s.as_ref().try_into()?)?, + randomizer: Fr::from_bytes(msg.randomizer.as_slice().try_into()?)?, + value_blinding: Fr::from_bytes(msg.value_blinding.as_slice().try_into()?)?, + proof_blinding_r: Fq::from_bytes(msg.proof_blinding_r.as_slice().try_into()?)?, + proof_blinding_s: Fq::from_bytes(msg.proof_blinding_s.as_slice().try_into()?)?, }) } } diff --git a/crates/core/component/shielded-pool/src/spend/proof.rs b/crates/core/component/shielded-pool/src/spend/proof.rs index 05432be038..33d913e577 100644 --- a/crates/core/component/shielded-pool/src/spend/proof.rs +++ b/crates/core/component/shielded-pool/src/spend/proof.rs @@ -17,7 +17,9 @@ use ark_r1cs_std::prelude::AllocVar; use ark_relations::r1cs::{ConstraintSynthesizer, ConstraintSystemRef}; use ark_snark::SNARK; use decaf377_rdsa::{SpendAuth, VerificationKey}; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{ + penumbra::core::component::shielded_pool::v1alpha1 as pb, DomainType, TypeUrl, +}; use penumbra_tct as tct; use penumbra_tct::r1cs::StateCommitmentVar; diff --git a/crates/core/component/shielded-pool/src/spend/view.rs b/crates/core/component/shielded-pool/src/spend/view.rs index 825057d8bd..b6fbb92b0f 100644 --- a/crates/core/component/shielded-pool/src/spend/view.rs +++ b/crates/core/component/shielded-pool/src/spend/view.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::transaction::v1alpha1 as pbt, DomainType, TypeUrl}; +use penumbra_proto::{core::component::shielded_pool::v1alpha1 as pbt, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::{NoteView, Spend}; diff --git a/crates/core/component/stake/src/changes.rs b/crates/core/component/stake/src/changes.rs index baf8f75da9..2f17151ab1 100644 --- a/crates/core/component/stake/src/changes.rs +++ b/crates/core/component/stake/src/changes.rs @@ -1,6 +1,6 @@ use crate::{Delegate, Undelegate}; use anyhow::Result; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; /// Data structure used to track queued delegation changes that have been diff --git a/crates/core/component/stake/src/component.rs b/crates/core/component/stake/src/component.rs index 2546f323f6..7c453abcea 100644 --- a/crates/core/component/stake/src/component.rs +++ b/crates/core/component/stake/src/component.rs @@ -1106,7 +1106,7 @@ pub trait StateReadExt: StateRead { // TODO: this is pulling out the whole proto, but only parsing // the consensus key. Alternatively, we could store the consensus // keys in a separate index. - self.get_proto::( + self.get_proto::( &state_key::validators::by_id(identity_key), ) .map_ok(|opt| { diff --git a/crates/core/component/stake/src/current_consensus_keys.rs b/crates/core/component/stake/src/current_consensus_keys.rs index 587a1c6bda..9a3e405258 100644 --- a/crates/core/component/stake/src/current_consensus_keys.rs +++ b/crates/core/component/stake/src/current_consensus_keys.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use tendermint::PublicKey; diff --git a/crates/core/component/stake/src/delegate.rs b/crates/core/component/stake/src/delegate.rs index 92d9550a0b..ade6f50a88 100644 --- a/crates/core/component/stake/src/delegate.rs +++ b/crates/core/component/stake/src/delegate.rs @@ -1,6 +1,6 @@ use penumbra_asset::{Balance, Value, STAKING_TOKEN_ASSET_ID}; use penumbra_num::Amount; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::{DelegationToken, IdentityKey}; diff --git a/crates/core/component/stake/src/funding_stream.rs b/crates/core/component/stake/src/funding_stream.rs index 0ec6aa6160..1afb23fa33 100644 --- a/crates/core/component/stake/src/funding_stream.rs +++ b/crates/core/component/stake/src/funding_stream.rs @@ -1,5 +1,5 @@ use penumbra_keys::Address; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::rate::BaseRateData; diff --git a/crates/core/component/stake/src/governance_key.rs b/crates/core/component/stake/src/governance_key.rs index 5266bb5ad1..c840c84456 100644 --- a/crates/core/component/stake/src/governance_key.rs +++ b/crates/core/component/stake/src/governance_key.rs @@ -1,7 +1,9 @@ use penumbra_proto::{ - core::crypto::v1alpha1 as pb, + // TODO: why is the governance key part of this crate? + core::keys::v1alpha1 as pb, serializers::bech32str::{self, validator_governance_key::BECH32_PREFIX}, - DomainType, TypeUrl, + DomainType, + TypeUrl, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/stake/src/identity_key.rs b/crates/core/component/stake/src/identity_key.rs index a62fc5a84f..5d1d313abe 100644 --- a/crates/core/component/stake/src/identity_key.rs +++ b/crates/core/component/stake/src/identity_key.rs @@ -1,8 +1,10 @@ use penumbra_proto::{ client::v1alpha1::{CurrentValidatorRateRequest, NextValidatorRateRequest}, - core::crypto::v1alpha1 as pb, + // TODO: why is this not in the keys crate? + core::keys::v1alpha1 as pb, serializers::bech32str::{self, validator_identity_key::BECH32_PREFIX}, - DomainType, TypeUrl, + DomainType, + TypeUrl, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/stake/src/penalty.rs b/crates/core/component/stake/src/penalty.rs index c47b7465e1..9e763b1d9a 100644 --- a/crates/core/component/stake/src/penalty.rs +++ b/crates/core/component/stake/src/penalty.rs @@ -4,7 +4,7 @@ use ark_ff::ToConstraintField; use ark_r1cs_std::prelude::*; use ark_relations::r1cs::SynthesisError; use decaf377::{r1cs::FqVar, FieldExt, Fq}; -use penumbra_proto::{core::stake::v1alpha1 as pbs, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pbs, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use penumbra_asset::{ diff --git a/crates/core/component/stake/src/rate.rs b/crates/core/component/stake/src/rate.rs index d458723ef2..cc3cec00b8 100644 --- a/crates/core/component/stake/src/rate.rs +++ b/crates/core/component/stake/src/rate.rs @@ -3,7 +3,8 @@ use penumbra_num::Amount; use penumbra_proto::client::v1alpha1::CurrentValidatorRateResponse; use penumbra_proto::{ - client::v1alpha1::NextValidatorRateResponse, core::stake::v1alpha1 as pb, DomainType, TypeUrl, + client::v1alpha1::NextValidatorRateResponse, penumbra::core::component::stake::v1alpha1 as pb, + DomainType, TypeUrl, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/stake/src/undelegate.rs b/crates/core/component/stake/src/undelegate.rs index a7741c6b98..5cc72dbf72 100644 --- a/crates/core/component/stake/src/undelegate.rs +++ b/crates/core/component/stake/src/undelegate.rs @@ -1,6 +1,6 @@ use penumbra_asset::{Balance, Value}; use penumbra_num::Amount; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::{DelegationToken, IdentityKey, UnbondingToken}; diff --git a/crates/core/component/stake/src/undelegate_claim/action.rs b/crates/core/component/stake/src/undelegate_claim/action.rs index 4e8581f74a..5045efbe34 100644 --- a/crates/core/component/stake/src/undelegate_claim/action.rs +++ b/crates/core/component/stake/src/undelegate_claim/action.rs @@ -1,5 +1,5 @@ use penumbra_asset::balance; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::{IdentityKey, Penalty, UndelegateClaimProof}; diff --git a/crates/core/component/stake/src/undelegate_claim/plan.rs b/crates/core/component/stake/src/undelegate_claim/plan.rs index 0700c47190..acb50cfb03 100644 --- a/crates/core/component/stake/src/undelegate_claim/plan.rs +++ b/crates/core/component/stake/src/undelegate_claim/plan.rs @@ -2,7 +2,7 @@ use decaf377::{FieldExt, Fq, Fr}; use penumbra_asset::{asset, balance, Balance}; use penumbra_num::Amount; use penumbra_proof_params::UNDELEGATECLAIM_PROOF_PROVING_KEY; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/stake/src/undelegate_claim/proof.rs b/crates/core/component/stake/src/undelegate_claim/proof.rs index 64b4833f4a..4e15e4deb2 100644 --- a/crates/core/component/stake/src/undelegate_claim/proof.rs +++ b/crates/core/component/stake/src/undelegate_claim/proof.rs @@ -8,7 +8,7 @@ use ark_groth16::{Groth16, PreparedVerifyingKey, Proof, ProvingKey}; use ark_r1cs_std::prelude::*; use ark_relations::r1cs::{ConstraintSynthesizer, ConstraintSystemRef}; use ark_snark::SNARK; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use decaf377::{FieldExt, Fq, Fr}; use penumbra_asset::{ diff --git a/crates/core/component/stake/src/uptime.rs b/crates/core/component/stake/src/uptime.rs index 27573b4edc..582c5fcd3d 100644 --- a/crates/core/component/stake/src/uptime.rs +++ b/crates/core/component/stake/src/uptime.rs @@ -1,6 +1,6 @@ use bitvec::prelude::*; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; /// Records information on a validator's uptime. diff --git a/crates/core/component/stake/src/validator.rs b/crates/core/component/stake/src/validator.rs index 36d063f6ec..95f64ebeb1 100644 --- a/crates/core/component/stake/src/validator.rs +++ b/crates/core/component/stake/src/validator.rs @@ -1,7 +1,7 @@ //! Penumbra validators and related structures. use penumbra_keys::Address; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use serde_unit_struct::{Deserialize_unit_struct, Serialize_unit_struct}; use serde_with::{serde_as, DisplayFromStr}; diff --git a/crates/core/component/stake/src/validator/bonding.rs b/crates/core/component/stake/src/validator/bonding.rs index 3effa88907..17dc96ca87 100644 --- a/crates/core/component/stake/src/validator/bonding.rs +++ b/crates/core/component/stake/src/validator/bonding.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; #[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)] diff --git a/crates/core/component/stake/src/validator/definition.rs b/crates/core/component/stake/src/validator/definition.rs index 3375316388..e5231b4885 100644 --- a/crates/core/component/stake/src/validator/definition.rs +++ b/crates/core/component/stake/src/validator/definition.rs @@ -1,5 +1,5 @@ use decaf377_rdsa::{Signature, SpendAuth}; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::validator::Validator; diff --git a/crates/core/component/stake/src/validator/info.rs b/crates/core/component/stake/src/validator/info.rs index c28ede822e..71523816a5 100644 --- a/crates/core/component/stake/src/validator/info.rs +++ b/crates/core/component/stake/src/validator/info.rs @@ -1,5 +1,6 @@ use penumbra_proto::{ - client::v1alpha1::ValidatorInfoResponse, core::stake::v1alpha1 as pb, DomainType, TypeUrl, + client::v1alpha1::ValidatorInfoResponse, penumbra::core::component::stake::v1alpha1 as pb, + DomainType, TypeUrl, }; use serde::{Deserialize, Serialize}; diff --git a/crates/core/component/stake/src/validator/state.rs b/crates/core/component/stake/src/validator/state.rs index 0720690b12..aa62290948 100644 --- a/crates/core/component/stake/src/validator/state.rs +++ b/crates/core/component/stake/src/validator/state.rs @@ -1,5 +1,5 @@ use anyhow::anyhow; -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; /// The state of a validator in the validator state machine. diff --git a/crates/core/component/stake/src/validator/status.rs b/crates/core/component/stake/src/validator/status.rs index e719e2954f..df8fb1c3be 100644 --- a/crates/core/component/stake/src/validator/status.rs +++ b/crates/core/component/stake/src/validator/status.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::stake::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::component::stake::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::{validator::BondingState, validator::State, IdentityKey}; diff --git a/crates/core/keys/src/address.rs b/crates/core/keys/src/address.rs index f18040353f..52049ad266 100644 --- a/crates/core/keys/src/address.rs +++ b/crates/core/keys/src/address.rs @@ -4,7 +4,9 @@ use anyhow::Context; use ark_serialize::CanonicalDeserialize; use decaf377::Fq; use f4jumble::{f4jumble, f4jumble_inv}; -use penumbra_proto::{core::crypto::v1alpha1 as pb, serializers::bech32str, DomainType, TypeUrl}; +use penumbra_proto::{ + penumbra::core::keys::v1alpha1 as pb, serializers::bech32str, DomainType, TypeUrl, +}; use rand::{CryptoRng, Rng}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/keys/src/address/view.rs b/crates/core/keys/src/address/view.rs index b8b738ae1c..1e9f4cae0b 100644 --- a/crates/core/keys/src/address/view.rs +++ b/crates/core/keys/src/address/view.rs @@ -1,4 +1,4 @@ -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::keys::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::keys::{AccountGroupId, AddressIndex}; diff --git a/crates/core/keys/src/keys/diversifier.rs b/crates/core/keys/src/keys/diversifier.rs index bcff11f5ca..8733a8a0ed 100644 --- a/crates/core/keys/src/keys/diversifier.rs +++ b/crates/core/keys/src/keys/diversifier.rs @@ -8,7 +8,7 @@ use aes::Aes128; use anyhow::Context; use ark_ff::PrimeField; use derivative::Derivative; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::keys::v1alpha1 as pb, DomainType, TypeUrl}; use rand::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/keys/src/keys/fvk.rs b/crates/core/keys/src/keys/fvk.rs index f3331227d2..a05b8bad45 100644 --- a/crates/core/keys/src/keys/fvk.rs +++ b/crates/core/keys/src/keys/fvk.rs @@ -4,7 +4,9 @@ use ark_serialize::CanonicalDeserialize; use decaf377::FieldExt; use decaf377::{Fq, Fr}; use once_cell::sync::Lazy; -use penumbra_proto::{core::crypto::v1alpha1 as pb, serializers::bech32str, DomainType, TypeUrl}; +use penumbra_proto::{ + penumbra::core::keys::v1alpha1 as pb, serializers::bech32str, DomainType, TypeUrl, +}; use poseidon377::hash_2; use rand_core::{CryptoRng, RngCore}; use serde::{Deserialize, Serialize}; diff --git a/crates/core/keys/src/keys/spend.rs b/crates/core/keys/src/keys/spend.rs index cb524bf568..329a25485f 100644 --- a/crates/core/keys/src/keys/spend.rs +++ b/crates/core/keys/src/keys/spend.rs @@ -3,7 +3,7 @@ use std::convert::TryFrom; use hmac::Hmac; use pbkdf2::pbkdf2; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::keys::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use super::{ diff --git a/crates/core/keys/src/symmetric.rs b/crates/core/keys/src/symmetric.rs index 9b8afea35a..c04423eabc 100644 --- a/crates/core/keys/src/symmetric.rs +++ b/crates/core/keys/src/symmetric.rs @@ -7,7 +7,7 @@ use chacha20poly1305::{ use decaf377::FieldExt; use decaf377_ka as ka; use penumbra_asset::balance; -use penumbra_proto::core::transaction::v1alpha1::{self as pb}; +use penumbra_proto::core::keys::v1alpha1::{self as pb}; use penumbra_tct::StateCommitment; use rand::{CryptoRng, RngCore}; @@ -173,7 +173,7 @@ impl From<[u8; 32]> for PayloadKey { impl TryFrom for PayloadKey { type Error = anyhow::Error; fn try_from(msg: pb::PayloadKey) -> Result { - msg.inner.as_ref().try_into() + msg.inner.as_slice().try_into() } } diff --git a/crates/core/num/src/amount.rs b/crates/core/num/src/amount.rs index 9c16ec67f9..6f94e26a5b 100644 --- a/crates/core/num/src/amount.rs +++ b/crates/core/num/src/amount.rs @@ -2,7 +2,7 @@ use ark_ff::{BigInteger, PrimeField, ToConstraintField}; use ark_r1cs_std::{prelude::*, uint64::UInt64}; use ark_relations::r1cs::{ConstraintSystemRef, SynthesisError}; use decaf377::{Fq, Fr}; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::core::num::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use std::{fmt::Display, iter::Sum, num::NonZeroU128, ops}; @@ -507,7 +507,7 @@ impl Sum for Amount { #[cfg(test)] mod test { use crate::Amount; - use penumbra_proto::core::crypto::v1alpha1 as pb; + use penumbra_proto::penumbra::core::num::v1alpha1 as pb; use rand::RngCore; use rand_core::OsRng; diff --git a/crates/core/transaction/src/effect_hash.rs b/crates/core/transaction/src/effect_hash.rs index 64654f7444..b161637c2a 100644 --- a/crates/core/transaction/src/effect_hash.rs +++ b/crates/core/transaction/src/effect_hash.rs @@ -14,9 +14,10 @@ use penumbra_governance::{ use penumbra_ibc::Ics20Withdrawal; use penumbra_keys::{FullViewingKey, PayloadKey}; use penumbra_proto::{ - core::crypto::v1alpha1 as pbc, core::dex::v1alpha1 as pbd, core::governance::v1alpha1 as pbg, - core::ibc::v1alpha1 as pbi, core::stake::v1alpha1 as pbs, core::transaction::v1alpha1 as pbt, - Message, + core::component::dex::v1alpha1 as pbd, core::component::fee::v1alpha1 as pbf, + core::component::governance::v1alpha1 as pbg, core::component::ibc::v1alpha1 as pbi, + core::component::shielded_pool::v1alpha1 as pb_sp, core::component::stake::v1alpha1 as pbs, + core::transaction::v1alpha1 as pbt, crypto::decaf377_fmd::v1alpha1 as pb_fmd, Message, }; use penumbra_proto::{DomainType, TypeUrl}; use penumbra_shielded_pool::{output, spend}; @@ -316,7 +317,7 @@ impl EffectingData for output::Body { fn effect_hash(&self) -> EffectHash { // The effecting data is in the body of the output, so we can // just use hash the proto-encoding of the body. - let body: pbt::OutputBody = self.clone().into(); + let body: pb_sp::OutputBody = self.clone().into(); hash_proto_effecting_data(output::Body::TYPE_URL, &body) } } @@ -325,7 +326,7 @@ impl EffectingData for spend::Body { fn effect_hash(&self) -> EffectHash { // The effecting data is in the body of the spend, so we can // just use hash the proto-encoding of the body. - let body: pbt::SpendBody = self.clone().into(); + let body: pb_sp::SpendBody = self.clone().into(); hash_proto_effecting_data(spend::Body::TYPE_URL, &body) } } @@ -494,7 +495,7 @@ impl EffectingData for DetectionData { impl EffectingData for Clue { fn effect_hash(&self) -> EffectHash { - let data: pbc::Clue = self.clone().into(); + let data: pb_fmd::Clue = self.clone().into(); hash_proto_effecting_data(Clue::TYPE_URL, &data) } } @@ -508,7 +509,7 @@ impl EffectingData for TransactionParameters { impl EffectingData for Fee { fn effect_hash(&self) -> EffectHash { - let proto_encoded_fee: pbc::Fee = self.clone().into(); + let proto_encoded_fee: pbf::Fee = self.clone().into(); hash_proto_effecting_data(Fee::TYPE_URL, &proto_encoded_fee) } } diff --git a/crates/core/transaction/src/plan/action.rs b/crates/core/transaction/src/plan/action.rs index f714c6e3f6..5ba541f26f 100644 --- a/crates/core/transaction/src/plan/action.rs +++ b/crates/core/transaction/src/plan/action.rs @@ -264,7 +264,7 @@ impl From for pb_t::ActionPlan { }, ActionPlan::PositionWithdraw(inner) => pb_t::ActionPlan { action: Some(pb_t::action_plan::Action::PositionWithdraw(Into::< - penumbra_proto::core::dex::v1alpha1::PositionWithdrawPlan, + penumbra_proto::core::component::dex::v1alpha1::PositionWithdrawPlan, >::into( inner ))), diff --git a/crates/core/transaction/src/plan/clue.rs b/crates/core/transaction/src/plan/clue.rs index ebebc70d7a..55a37f4111 100644 --- a/crates/core/transaction/src/plan/clue.rs +++ b/crates/core/transaction/src/plan/clue.rs @@ -63,7 +63,7 @@ impl TryFrom for CluePlan { .address .ok_or_else(|| anyhow::anyhow!("missing address"))? .try_into()?, - rseed: msg.rseed.as_ref().try_into()?, + rseed: msg.rseed.as_slice().try_into()?, precision_bits: msg.precision_bits.try_into()?, }) } diff --git a/crates/core/transaction/src/transaction.rs b/crates/core/transaction/src/transaction.rs index 86d031d4ae..22cb4c80b7 100644 --- a/crates/core/transaction/src/transaction.rs +++ b/crates/core/transaction/src/transaction.rs @@ -5,7 +5,6 @@ use std::{ use anyhow::{Context, Error}; use ark_ff::Zero; -use bytes::Bytes; use decaf377::Fr; use decaf377_fmd::Clue; use decaf377_rdsa::{Binding, Signature, VerificationKey, VerificationKeyBytes}; @@ -542,10 +541,10 @@ impl From for pbt::TransactionBody { fn from(msg: TransactionBody) -> Self { let encrypted_memo: pbt::MemoData = match msg.memo { Some(memo) => pbt::MemoData { - encrypted_memo: bytes::Bytes::copy_from_slice(&memo.0), + encrypted_memo: memo.0.to_vec(), }, None => pbt::MemoData { - encrypted_memo: Bytes::default(), + encrypted_memo: Default::default(), }, }; @@ -631,7 +630,7 @@ impl From for pbt::Transaction { pbt::Transaction { body: Some(msg.transaction_body.into()), anchor: Some(msg.anchor.into()), - binding_sig: Bytes::copy_from_slice(&sig_bytes), + binding_sig: sig_bytes.to_vec(), } } } diff --git a/crates/core/transaction/src/view.rs b/crates/core/transaction/src/view.rs index a317011ba8..df058db078 100644 --- a/crates/core/transaction/src/view.rs +++ b/crates/core/transaction/src/view.rs @@ -1,5 +1,4 @@ use anyhow::Context; -use bytes::Bytes; use decaf377_rdsa::{Binding, Signature}; use penumbra_fee::Fee; use penumbra_proto::{core::transaction::v1alpha1 as pbt, DomainType, TypeUrl}; @@ -209,7 +208,7 @@ impl From for pbt::TransactionView { Self { body_view: Some(v.body_view.into()), anchor: Some(v.anchor.into()), - binding_sig: Bytes::copy_from_slice(&v.binding_sig.to_bytes()), + binding_sig: v.binding_sig.to_bytes().to_vec(), } } } diff --git a/crates/crypto/tct/src/block.rs b/crates/crypto/tct/src/block.rs index c8d6b080aa..b5e3486d3c 100644 --- a/crates/crypto/tct/src/block.rs +++ b/crates/crypto/tct/src/block.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use decaf377::{FieldExt, Fq}; use hash_hasher::HashedMap; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::crypto::tct::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::error::block::*; diff --git a/crates/crypto/tct/src/commitment.rs b/crates/crypto/tct/src/commitment.rs index bc7f05fda4..108085dcfb 100644 --- a/crates/crypto/tct/src/commitment.rs +++ b/crates/crypto/tct/src/commitment.rs @@ -1,5 +1,5 @@ use decaf377::FieldExt; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::crypto::tct::v1alpha1 as pb, DomainType, TypeUrl}; use poseidon377::Fq; /// A commitment to a note or swap. diff --git a/crates/crypto/tct/src/epoch.rs b/crates/crypto/tct/src/epoch.rs index 2e263cd108..cef3a6c37b 100644 --- a/crates/crypto/tct/src/epoch.rs +++ b/crates/crypto/tct/src/epoch.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use decaf377::{FieldExt, Fq}; use hash_hasher::HashedMap; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::crypto::tct::v1alpha1 as pb, DomainType, TypeUrl}; use serde::{Deserialize, Serialize}; use crate::error::epoch::*; diff --git a/crates/crypto/tct/src/internal/path.rs b/crates/crypto/tct/src/internal/path.rs index 464409690b..7009486c58 100644 --- a/crates/crypto/tct/src/internal/path.rs +++ b/crates/crypto/tct/src/internal/path.rs @@ -235,7 +235,7 @@ mod test { pub struct PathDecodeError; use decaf377::{FieldExt, Fq}; -use penumbra_proto::core::crypto::v1alpha1 as pb; +use penumbra_proto::penumbra::crypto::tct::v1alpha1 as pb; use std::{ collections::VecDeque, ops::{Index, IndexMut}, diff --git a/crates/crypto/tct/src/internal/proof.rs b/crates/crypto/tct/src/internal/proof.rs index 4c7e5cad25..ed9789a4b7 100644 --- a/crates/crypto/tct/src/internal/proof.rs +++ b/crates/crypto/tct/src/internal/proof.rs @@ -70,7 +70,7 @@ impl VerifyError { pub struct ProofDecodeError; use decaf377::{FieldExt, Fq}; -use penumbra_proto::core::crypto::v1alpha1 as pb; +use penumbra_proto::penumbra::crypto::tct::v1alpha1 as pb; impl From> for pb::StateCommitmentProof where diff --git a/crates/crypto/tct/src/proof.rs b/crates/crypto/tct/src/proof.rs index 0dd804f143..4954f1d8b5 100644 --- a/crates/crypto/tct/src/proof.rs +++ b/crates/crypto/tct/src/proof.rs @@ -122,7 +122,7 @@ impl Proof { } } -use penumbra_proto::core::crypto::v1alpha1 as pb; +use penumbra_proto::penumbra::crypto::tct::v1alpha1 as pb; use rand::Rng; impl From for pb::StateCommitmentProof { diff --git a/crates/crypto/tct/src/tree.rs b/crates/crypto/tct/src/tree.rs index ea8896365a..54c0a3d11e 100644 --- a/crates/crypto/tct/src/tree.rs +++ b/crates/crypto/tct/src/tree.rs @@ -4,7 +4,7 @@ use std::{ }; use decaf377::{FieldExt, Fq}; -use penumbra_proto::{core::crypto::v1alpha1 as pb, DomainType, TypeUrl}; +use penumbra_proto::{penumbra::crypto::tct::v1alpha1 as pb, DomainType, TypeUrl}; use crate::error::*; use crate::prelude::{Witness as _, *}; diff --git a/crates/proto/src/gen/penumbra.client.v1alpha1.rs b/crates/proto/src/gen/penumbra.client.v1alpha1.rs index 8fca762b5a..5cc2e10fbf 100644 --- a/crates/proto/src/gen/penumbra.client.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.client.v1alpha1.rs @@ -58,7 +58,7 @@ pub struct CompactBlockRangeRequest { pub struct CompactBlockRangeResponse { #[prost(message, optional, tag = "1")] pub compact_block: ::core::option::Option< - super::super::core::chain::v1alpha1::CompactBlock, + super::super::core::component::compact_block::v1alpha1::CompactBlock, >, } /// Requests the global configuration data for the chain. @@ -79,14 +79,16 @@ pub struct EpochByHeightRequest { #[derive(Clone, PartialEq, ::prost::Message)] pub struct EpochByHeightResponse { #[prost(message, optional, tag = "1")] - pub epoch: ::core::option::Option, + pub epoch: ::core::option::Option< + super::super::core::component::chain::v1alpha1::Epoch, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ChainParametersResponse { #[prost(message, optional, tag = "1")] pub chain_parameters: ::core::option::Option< - super::super::core::chain::v1alpha1::ChainParameters, + super::super::core::component::chain::v1alpha1::ChainParameters, >, } /// Requests information on the chain's validators. @@ -105,7 +107,7 @@ pub struct ValidatorInfoRequest { pub struct ValidatorInfoResponse { #[prost(message, optional, tag = "1")] pub validator_info: ::core::option::Option< - super::super::core::stake::v1alpha1::ValidatorInfo, + super::super::core::component::stake::v1alpha1::ValidatorInfo, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -116,7 +118,7 @@ pub struct TransactionByNoteRequest { pub chain_id: ::prost::alloc::string::String, #[prost(message, optional, tag = "2")] pub note_commitment: ::core::option::Option< - super::super::core::crypto::v1alpha1::StateCommitment, + super::super::crypto::tct::v1alpha1::StateCommitment, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -124,7 +126,7 @@ pub struct TransactionByNoteRequest { pub struct TransactionByNoteResponse { #[prost(message, optional, tag = "1")] pub note_source: ::core::option::Option< - super::super::core::chain::v1alpha1::NoteSource, + super::super::core::component::chain::v1alpha1::NoteSource, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -135,7 +137,7 @@ pub struct ValidatorStatusRequest { pub chain_id: ::prost::alloc::string::String, #[prost(message, optional, tag = "2")] pub identity_key: ::core::option::Option< - super::super::core::crypto::v1alpha1::IdentityKey, + super::super::core::keys::v1alpha1::IdentityKey, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -143,7 +145,7 @@ pub struct ValidatorStatusRequest { pub struct ValidatorStatusResponse { #[prost(message, optional, tag = "1")] pub status: ::core::option::Option< - super::super::core::stake::v1alpha1::ValidatorStatus, + super::super::core::component::stake::v1alpha1::ValidatorStatus, >, } /// Requests the compounded penalty for a validator over a range of epochs. @@ -155,7 +157,7 @@ pub struct ValidatorPenaltyRequest { pub chain_id: ::prost::alloc::string::String, #[prost(message, optional, tag = "2")] pub identity_key: ::core::option::Option< - super::super::core::crypto::v1alpha1::IdentityKey, + super::super::core::keys::v1alpha1::IdentityKey, >, #[prost(uint64, tag = "3")] pub start_epoch_index: u64, @@ -166,7 +168,9 @@ pub struct ValidatorPenaltyRequest { #[derive(Clone, PartialEq, ::prost::Message)] pub struct ValidatorPenaltyResponse { #[prost(message, optional, tag = "1")] - pub penalty: ::core::option::Option, + pub penalty: ::core::option::Option< + super::super::core::component::stake::v1alpha1::Penalty, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -176,14 +180,16 @@ pub struct CurrentValidatorRateRequest { pub chain_id: ::prost::alloc::string::String, #[prost(message, optional, tag = "2")] pub identity_key: ::core::option::Option< - super::super::core::crypto::v1alpha1::IdentityKey, + super::super::core::keys::v1alpha1::IdentityKey, >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CurrentValidatorRateResponse { #[prost(message, optional, tag = "1")] - pub data: ::core::option::Option, + pub data: ::core::option::Option< + super::super::core::component::stake::v1alpha1::RateData, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -193,14 +199,16 @@ pub struct NextValidatorRateRequest { pub chain_id: ::prost::alloc::string::String, #[prost(message, optional, tag = "2")] pub identity_key: ::core::option::Option< - super::super::core::crypto::v1alpha1::IdentityKey, + super::super::core::keys::v1alpha1::IdentityKey, >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NextValidatorRateResponse { #[prost(message, optional, tag = "1")] - pub data: ::core::option::Option, + pub data: ::core::option::Option< + super::super::core::component::stake::v1alpha1::RateData, + >, } /// Requests batch swap data associated with a given height and trading pair from the view service. #[allow(clippy::derive_partial_eq_without_eq)] @@ -213,7 +221,7 @@ pub struct BatchSwapOutputDataRequest { pub height: u64, #[prost(message, optional, tag = "3")] pub trading_pair: ::core::option::Option< - super::super::core::dex::v1alpha1::TradingPair, + super::super::core::component::dex::v1alpha1::TradingPair, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -221,7 +229,7 @@ pub struct BatchSwapOutputDataRequest { pub struct BatchSwapOutputDataResponse { #[prost(message, optional, tag = "1")] pub data: ::core::option::Option< - super::super::core::dex::v1alpha1::BatchSwapOutputData, + super::super::core::component::dex::v1alpha1::BatchSwapOutputData, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -234,7 +242,7 @@ pub struct SwapExecutionRequest { pub height: u64, #[prost(message, optional, tag = "3")] pub trading_pair: ::core::option::Option< - super::super::core::dex::v1alpha1::DirectedTradingPair, + super::super::core::component::dex::v1alpha1::DirectedTradingPair, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -242,7 +250,7 @@ pub struct SwapExecutionRequest { pub struct SwapExecutionResponse { #[prost(message, optional, tag = "1")] pub swap_execution: ::core::option::Option< - super::super::core::dex::v1alpha1::SwapExecution, + super::super::core::component::dex::v1alpha1::SwapExecution, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -259,7 +267,7 @@ pub struct ArbExecutionRequest { pub struct ArbExecutionResponse { #[prost(message, optional, tag = "1")] pub swap_execution: ::core::option::Option< - super::super::core::dex::v1alpha1::SwapExecution, + super::super::core::component::dex::v1alpha1::SwapExecution, >, #[prost(uint64, tag = "2")] pub height: u64, @@ -279,7 +287,7 @@ pub struct SwapExecutionsRequest { /// If present, filter swap executions by the given trading pair. #[prost(message, optional, tag = "4")] pub trading_pair: ::core::option::Option< - super::super::core::dex::v1alpha1::DirectedTradingPair, + super::super::core::component::dex::v1alpha1::DirectedTradingPair, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -287,13 +295,13 @@ pub struct SwapExecutionsRequest { pub struct SwapExecutionsResponse { #[prost(message, optional, tag = "1")] pub swap_execution: ::core::option::Option< - super::super::core::dex::v1alpha1::SwapExecution, + super::super::core::component::dex::v1alpha1::SwapExecution, >, #[prost(uint64, tag = "2")] pub height: u64, #[prost(message, optional, tag = "3")] pub trading_pair: ::core::option::Option< - super::super::core::dex::v1alpha1::DirectedTradingPair, + super::super::core::component::dex::v1alpha1::DirectedTradingPair, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -314,7 +322,7 @@ pub struct ArbExecutionsRequest { pub struct ArbExecutionsResponse { #[prost(message, optional, tag = "1")] pub swap_execution: ::core::option::Option< - super::super::core::dex::v1alpha1::SwapExecution, + super::super::core::component::dex::v1alpha1::SwapExecution, >, #[prost(uint64, tag = "2")] pub height: u64, @@ -334,7 +342,9 @@ pub struct LiquidityPositionsRequest { #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionsResponse { #[prost(message, optional, tag = "1")] - pub data: ::core::option::Option, + pub data: ::core::option::Option< + super::super::core::component::dex::v1alpha1::Position, + >, } /// Requests liquidity positions for ordered by effective price. #[allow(clippy::derive_partial_eq_without_eq)] @@ -346,7 +356,7 @@ pub struct LiquidityPositionsByPriceRequest { /// The directed trading pair to request positions for #[prost(message, optional, tag = "2")] pub trading_pair: ::core::option::Option< - super::super::core::dex::v1alpha1::DirectedTradingPair, + super::super::core::component::dex::v1alpha1::DirectedTradingPair, >, /// The maximum number of positions to return. #[prost(uint64, tag = "5")] @@ -356,7 +366,9 @@ pub struct LiquidityPositionsByPriceRequest { #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionsByPriceResponse { #[prost(message, optional, tag = "1")] - pub data: ::core::option::Option, + pub data: ::core::option::Option< + super::super::core::component::dex::v1alpha1::Position, + >, } /// Requests specific liquidity position data from the view service. #[allow(clippy::derive_partial_eq_without_eq)] @@ -367,14 +379,16 @@ pub struct LiquidityPositionByIdRequest { pub chain_id: ::prost::alloc::string::String, #[prost(message, optional, tag = "2")] pub position_id: ::core::option::Option< - super::super::core::dex::v1alpha1::PositionId, + super::super::core::component::dex::v1alpha1::PositionId, >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionByIdResponse { #[prost(message, optional, tag = "1")] - pub data: ::core::option::Option, + pub data: ::core::option::Option< + super::super::core::component::dex::v1alpha1::Position, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -384,14 +398,16 @@ pub struct LiquidityPositionsByIdRequest { pub chain_id: ::prost::alloc::string::String, #[prost(message, repeated, tag = "2")] pub position_id: ::prost::alloc::vec::Vec< - super::super::core::dex::v1alpha1::PositionId, + super::super::core::component::dex::v1alpha1::PositionId, >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct LiquidityPositionsByIdResponse { #[prost(message, optional, tag = "1")] - pub data: ::core::option::Option, + pub data: ::core::option::Option< + super::super::core::component::dex::v1alpha1::Position, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -401,7 +417,7 @@ pub struct SpreadRequest { pub chain_id: ::prost::alloc::string::String, #[prost(message, optional, tag = "2")] pub trading_pair: ::core::option::Option< - super::super::core::dex::v1alpha1::TradingPair, + super::super::core::component::dex::v1alpha1::TradingPair, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -410,12 +426,12 @@ pub struct SpreadResponse { /// The best position when trading 1 => 2. #[prost(message, optional, tag = "1")] pub best_1_to_2_position: ::core::option::Option< - super::super::core::dex::v1alpha1::Position, + super::super::core::component::dex::v1alpha1::Position, >, /// The best position when trading 2 => 1. #[prost(message, optional, tag = "2")] pub best_2_to_1_position: ::core::option::Option< - super::super::core::dex::v1alpha1::Position, + super::super::core::component::dex::v1alpha1::Position, >, /// An approximation of the effective price when trading 1 => 2. #[prost(double, tag = "3")] @@ -433,7 +449,7 @@ pub struct DenomMetadataByIdRequest { pub chain_id: ::prost::alloc::string::String, /// The asset id to request information on. #[prost(message, optional, tag = "2")] - pub asset_id: ::core::option::Option, + pub asset_id: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -443,7 +459,7 @@ pub struct DenomMetadataByIdResponse { /// If the requested asset was unknown, this field will not be present. #[prost(message, optional, tag = "1")] pub denom_metadata: ::core::option::Option< - super::super::core::crypto::v1alpha1::DenomMetadata, + super::super::core::asset::v1alpha1::DenomMetadata, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -482,15 +498,17 @@ pub struct ProposalRateDataRequest { #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalRateDataResponse { #[prost(message, optional, tag = "1")] - pub rate_data: ::core::option::Option, + pub rate_data: ::core::option::Option< + super::super::core::component::stake::v1alpha1::RateData, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SimulateTradeRequest { #[prost(message, optional, tag = "1")] - pub input: ::core::option::Option, + pub input: ::core::option::Option, #[prost(message, optional, tag = "2")] - pub output: ::core::option::Option, + pub output: ::core::option::Option, #[prost(message, optional, tag = "3")] pub routing: ::core::option::Option, } @@ -524,7 +542,9 @@ pub mod simulate_trade_request { #[derive(Clone, PartialEq, ::prost::Message)] pub struct SimulateTradeResponse { #[prost(message, optional, tag = "1")] - pub output: ::core::option::Option, + pub output: ::core::option::Option< + super::super::core::component::dex::v1alpha1::SwapExecution, + >, } /// Performs a key-value query, either by key or by key hash. /// diff --git a/crates/proto/src/gen/penumbra.core.asset.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.asset.v1alpha1.rs new file mode 100644 index 0000000000..53e807d133 --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.asset.v1alpha1.rs @@ -0,0 +1,140 @@ +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BalanceCommitment { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +/// A Penumbra asset ID. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AssetId { + /// The bytes of the asset ID. + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, + /// Alternatively, a Bech32m-encoded string representation of the `inner` + /// bytes. + /// + /// NOTE: implementations are not required to support parsing this field. + /// Implementations should prefer to encode the `inner` bytes in all messages they + /// produce. Implementations must not accept messages with both `inner` and + /// `alt_bech32m` set. This field exists for convenience of RPC users. + #[prost(string, tag = "2")] + pub alt_bech32m: ::prost::alloc::string::String, + /// Alternatively, a base denomination string which should be hashed to obtain the asset ID. + /// + /// NOTE: implementations are not required to support parsing this field. + /// Implementations should prefer to encode the bytes in all messages they + /// produce. Implementations must not accept messages with both `inner` and + /// `alt_base_denom` set. This field exists for convenience of RPC users. + #[prost(string, tag = "3")] + pub alt_base_denom: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Denom { + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, +} +/// DenomMetadata represents a struct that describes a basic token. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DenomMetadata { + #[prost(string, tag = "1")] + pub description: ::prost::alloc::string::String, + /// denom_units represents the list of DenomUnit's for a given coin + #[prost(message, repeated, tag = "2")] + pub denom_units: ::prost::alloc::vec::Vec, + /// base represents the base denom (should be the DenomUnit with exponent = 0). + #[prost(string, tag = "3")] + pub base: ::prost::alloc::string::String, + /// display indicates the suggested denom that should be + /// displayed in clients. + #[prost(string, tag = "4")] + pub display: ::prost::alloc::string::String, + /// name defines the name of the token (eg: Cosmos Atom) + #[prost(string, tag = "5")] + pub name: ::prost::alloc::string::String, + /// symbol is the token symbol usually shown on exchanges (eg: ATOM). This can + /// be the same as the display. + #[prost(string, tag = "6")] + pub symbol: ::prost::alloc::string::String, + /// URI to a document (on or off-chain) that contains additional information. Optional. + #[prost(string, tag = "7")] + pub uri: ::prost::alloc::string::String, + /// URIHash is a sha256 hash of a document pointed by URI. It's used to verify that + /// the document didn't change. Optional. + #[prost(string, tag = "8")] + pub uri_hash: ::prost::alloc::string::String, + /// the asset ID on Penumbra for this denomination. + #[prost(message, optional, tag = "1984")] + pub penumbra_asset_id: ::core::option::Option, +} +/// DenomUnit represents a struct that describes a given denomination unit of the basic token. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct DenomUnit { + /// denom represents the string name of the given denom unit (e.g uatom). + #[prost(string, tag = "1")] + pub denom: ::prost::alloc::string::String, + /// exponent represents power of 10 exponent that one must + /// raise the base_denom to in order to equal the given DenomUnit's denom + /// 1 denom = 10^exponent base_denom + /// (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + /// exponent = 6, thus: 1 atom = 10^6 uatom). + #[prost(uint32, tag = "2")] + pub exponent: u32, + /// aliases is a list of string aliases for the given denom + #[prost(string, repeated, tag = "3")] + pub aliases: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Value { + #[prost(message, optional, tag = "1")] + pub amount: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub asset_id: ::core::option::Option, +} +/// Represents a value of a known or unknown denomination. +/// +/// Note: unlike some other View types, we don't just store the underlying +/// `Value` message together with an additional `Denom`. Instead, we record +/// either an `Amount` and `Denom` (only) or an `Amount` and `AssetId`. This is +/// because we don't want to allow a situation where the supplied `Denom` doesn't +/// match the `AssetId`, and a consumer of the API that doesn't check is tricked. +/// This way, the `Denom` will always match, because the consumer is forced to +/// recompute it themselves if they want it. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ValueView { + #[prost(oneof = "value_view::ValueView", tags = "1, 2")] + pub value_view: ::core::option::Option, +} +/// Nested message and enum types in `ValueView`. +pub mod value_view { + /// A value whose asset ID has a known denomination. + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct KnownDenom { + #[prost(message, optional, tag = "1")] + pub amount: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub denom: ::core::option::Option, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct UnknownDenom { + #[prost(message, optional, tag = "1")] + pub amount: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub asset_id: ::core::option::Option, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum ValueView { + #[prost(message, tag = "1")] + KnownDenom(KnownDenom), + #[prost(message, tag = "2")] + UnknownDenom(UnknownDenom), + } +} diff --git a/crates/proto/src/gen/penumbra.core.asset.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.asset.v1alpha1.serde.rs new file mode 100644 index 0000000000..c9fa67083e --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.asset.v1alpha1.serde.rs @@ -0,0 +1,1107 @@ +impl serde::Serialize for AssetId { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + if !self.alt_bech32m.is_empty() { + len += 1; + } + if !self.alt_base_denom.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1alpha1.AssetId", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + if !self.alt_bech32m.is_empty() { + struct_ser.serialize_field("altBech32m", &self.alt_bech32m)?; + } + if !self.alt_base_denom.is_empty() { + struct_ser.serialize_field("altBaseDenom", &self.alt_base_denom)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AssetId { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + "alt_bech32m", + "altBech32m", + "alt_base_denom", + "altBaseDenom", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + AltBech32m, + AltBaseDenom, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + "altBech32m" | "alt_bech32m" => Ok(GeneratedField::AltBech32m), + "altBaseDenom" | "alt_base_denom" => Ok(GeneratedField::AltBaseDenom), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AssetId; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.asset.v1alpha1.AssetId") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + let mut alt_bech32m__ = None; + let mut alt_base_denom__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::AltBech32m => { + if alt_bech32m__.is_some() { + return Err(serde::de::Error::duplicate_field("altBech32m")); + } + alt_bech32m__ = Some(map.next_value()?); + } + GeneratedField::AltBaseDenom => { + if alt_base_denom__.is_some() { + return Err(serde::de::Error::duplicate_field("altBaseDenom")); + } + alt_base_denom__ = Some(map.next_value()?); + } + } + } + Ok(AssetId { + inner: inner__.unwrap_or_default(), + alt_bech32m: alt_bech32m__.unwrap_or_default(), + alt_base_denom: alt_base_denom__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.asset.v1alpha1.AssetId", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for BalanceCommitment { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1alpha1.BalanceCommitment", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BalanceCommitment { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BalanceCommitment; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.asset.v1alpha1.BalanceCommitment") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(BalanceCommitment { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.asset.v1alpha1.BalanceCommitment", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Denom { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.denom.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1alpha1.Denom", len)?; + if !self.denom.is_empty() { + struct_ser.serialize_field("denom", &self.denom)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Denom { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "denom", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Denom, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "denom" => Ok(GeneratedField::Denom), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Denom; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.asset.v1alpha1.Denom") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut denom__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Denom => { + if denom__.is_some() { + return Err(serde::de::Error::duplicate_field("denom")); + } + denom__ = Some(map.next_value()?); + } + } + } + Ok(Denom { + denom: denom__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.asset.v1alpha1.Denom", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DenomMetadata { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.description.is_empty() { + len += 1; + } + if !self.denom_units.is_empty() { + len += 1; + } + if !self.base.is_empty() { + len += 1; + } + if !self.display.is_empty() { + len += 1; + } + if !self.name.is_empty() { + len += 1; + } + if !self.symbol.is_empty() { + len += 1; + } + if !self.uri.is_empty() { + len += 1; + } + if !self.uri_hash.is_empty() { + len += 1; + } + if self.penumbra_asset_id.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1alpha1.DenomMetadata", len)?; + if !self.description.is_empty() { + struct_ser.serialize_field("description", &self.description)?; + } + if !self.denom_units.is_empty() { + struct_ser.serialize_field("denomUnits", &self.denom_units)?; + } + if !self.base.is_empty() { + struct_ser.serialize_field("base", &self.base)?; + } + if !self.display.is_empty() { + struct_ser.serialize_field("display", &self.display)?; + } + if !self.name.is_empty() { + struct_ser.serialize_field("name", &self.name)?; + } + if !self.symbol.is_empty() { + struct_ser.serialize_field("symbol", &self.symbol)?; + } + if !self.uri.is_empty() { + struct_ser.serialize_field("uri", &self.uri)?; + } + if !self.uri_hash.is_empty() { + struct_ser.serialize_field("uriHash", &self.uri_hash)?; + } + if let Some(v) = self.penumbra_asset_id.as_ref() { + struct_ser.serialize_field("penumbraAssetId", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DenomMetadata { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "description", + "denom_units", + "denomUnits", + "base", + "display", + "name", + "symbol", + "uri", + "uri_hash", + "uriHash", + "penumbra_asset_id", + "penumbraAssetId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Description, + DenomUnits, + Base, + Display, + Name, + Symbol, + Uri, + UriHash, + PenumbraAssetId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "description" => Ok(GeneratedField::Description), + "denomUnits" | "denom_units" => Ok(GeneratedField::DenomUnits), + "base" => Ok(GeneratedField::Base), + "display" => Ok(GeneratedField::Display), + "name" => Ok(GeneratedField::Name), + "symbol" => Ok(GeneratedField::Symbol), + "uri" => Ok(GeneratedField::Uri), + "uriHash" | "uri_hash" => Ok(GeneratedField::UriHash), + "penumbraAssetId" | "penumbra_asset_id" => Ok(GeneratedField::PenumbraAssetId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DenomMetadata; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.asset.v1alpha1.DenomMetadata") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut description__ = None; + let mut denom_units__ = None; + let mut base__ = None; + let mut display__ = None; + let mut name__ = None; + let mut symbol__ = None; + let mut uri__ = None; + let mut uri_hash__ = None; + let mut penumbra_asset_id__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Description => { + if description__.is_some() { + return Err(serde::de::Error::duplicate_field("description")); + } + description__ = Some(map.next_value()?); + } + GeneratedField::DenomUnits => { + if denom_units__.is_some() { + return Err(serde::de::Error::duplicate_field("denomUnits")); + } + denom_units__ = Some(map.next_value()?); + } + GeneratedField::Base => { + if base__.is_some() { + return Err(serde::de::Error::duplicate_field("base")); + } + base__ = Some(map.next_value()?); + } + GeneratedField::Display => { + if display__.is_some() { + return Err(serde::de::Error::duplicate_field("display")); + } + display__ = Some(map.next_value()?); + } + GeneratedField::Name => { + if name__.is_some() { + return Err(serde::de::Error::duplicate_field("name")); + } + name__ = Some(map.next_value()?); + } + GeneratedField::Symbol => { + if symbol__.is_some() { + return Err(serde::de::Error::duplicate_field("symbol")); + } + symbol__ = Some(map.next_value()?); + } + GeneratedField::Uri => { + if uri__.is_some() { + return Err(serde::de::Error::duplicate_field("uri")); + } + uri__ = Some(map.next_value()?); + } + GeneratedField::UriHash => { + if uri_hash__.is_some() { + return Err(serde::de::Error::duplicate_field("uriHash")); + } + uri_hash__ = Some(map.next_value()?); + } + GeneratedField::PenumbraAssetId => { + if penumbra_asset_id__.is_some() { + return Err(serde::de::Error::duplicate_field("penumbraAssetId")); + } + penumbra_asset_id__ = map.next_value()?; + } + } + } + Ok(DenomMetadata { + description: description__.unwrap_or_default(), + denom_units: denom_units__.unwrap_or_default(), + base: base__.unwrap_or_default(), + display: display__.unwrap_or_default(), + name: name__.unwrap_or_default(), + symbol: symbol__.unwrap_or_default(), + uri: uri__.unwrap_or_default(), + uri_hash: uri_hash__.unwrap_or_default(), + penumbra_asset_id: penumbra_asset_id__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.asset.v1alpha1.DenomMetadata", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DenomUnit { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.denom.is_empty() { + len += 1; + } + if self.exponent != 0 { + len += 1; + } + if !self.aliases.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1alpha1.DenomUnit", len)?; + if !self.denom.is_empty() { + struct_ser.serialize_field("denom", &self.denom)?; + } + if self.exponent != 0 { + struct_ser.serialize_field("exponent", &self.exponent)?; + } + if !self.aliases.is_empty() { + struct_ser.serialize_field("aliases", &self.aliases)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DenomUnit { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "denom", + "exponent", + "aliases", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Denom, + Exponent, + Aliases, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "denom" => Ok(GeneratedField::Denom), + "exponent" => Ok(GeneratedField::Exponent), + "aliases" => Ok(GeneratedField::Aliases), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DenomUnit; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.asset.v1alpha1.DenomUnit") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut denom__ = None; + let mut exponent__ = None; + let mut aliases__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Denom => { + if denom__.is_some() { + return Err(serde::de::Error::duplicate_field("denom")); + } + denom__ = Some(map.next_value()?); + } + GeneratedField::Exponent => { + if exponent__.is_some() { + return Err(serde::de::Error::duplicate_field("exponent")); + } + exponent__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Aliases => { + if aliases__.is_some() { + return Err(serde::de::Error::duplicate_field("aliases")); + } + aliases__ = Some(map.next_value()?); + } + } + } + Ok(DenomUnit { + denom: denom__.unwrap_or_default(), + exponent: exponent__.unwrap_or_default(), + aliases: aliases__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.asset.v1alpha1.DenomUnit", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Value { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.amount.is_some() { + len += 1; + } + if self.asset_id.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1alpha1.Value", len)?; + if let Some(v) = self.amount.as_ref() { + struct_ser.serialize_field("amount", v)?; + } + if let Some(v) = self.asset_id.as_ref() { + struct_ser.serialize_field("assetId", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Value { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "amount", + "asset_id", + "assetId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Amount, + AssetId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "amount" => Ok(GeneratedField::Amount), + "assetId" | "asset_id" => Ok(GeneratedField::AssetId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Value; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.asset.v1alpha1.Value") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut amount__ = None; + let mut asset_id__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Amount => { + if amount__.is_some() { + return Err(serde::de::Error::duplicate_field("amount")); + } + amount__ = map.next_value()?; + } + GeneratedField::AssetId => { + if asset_id__.is_some() { + return Err(serde::de::Error::duplicate_field("assetId")); + } + asset_id__ = map.next_value()?; + } + } + } + Ok(Value { + amount: amount__, + asset_id: asset_id__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.asset.v1alpha1.Value", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ValueView { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.value_view.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1alpha1.ValueView", len)?; + if let Some(v) = self.value_view.as_ref() { + match v { + value_view::ValueView::KnownDenom(v) => { + struct_ser.serialize_field("knownDenom", v)?; + } + value_view::ValueView::UnknownDenom(v) => { + struct_ser.serialize_field("unknownDenom", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ValueView { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "known_denom", + "knownDenom", + "unknown_denom", + "unknownDenom", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + KnownDenom, + UnknownDenom, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "knownDenom" | "known_denom" => Ok(GeneratedField::KnownDenom), + "unknownDenom" | "unknown_denom" => Ok(GeneratedField::UnknownDenom), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ValueView; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.asset.v1alpha1.ValueView") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut value_view__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::KnownDenom => { + if value_view__.is_some() { + return Err(serde::de::Error::duplicate_field("knownDenom")); + } + value_view__ = map.next_value::<::std::option::Option<_>>()?.map(value_view::ValueView::KnownDenom) +; + } + GeneratedField::UnknownDenom => { + if value_view__.is_some() { + return Err(serde::de::Error::duplicate_field("unknownDenom")); + } + value_view__ = map.next_value::<::std::option::Option<_>>()?.map(value_view::ValueView::UnknownDenom) +; + } + } + } + Ok(ValueView { + value_view: value_view__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.asset.v1alpha1.ValueView", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for value_view::KnownDenom { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.amount.is_some() { + len += 1; + } + if self.denom.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1alpha1.ValueView.KnownDenom", len)?; + if let Some(v) = self.amount.as_ref() { + struct_ser.serialize_field("amount", v)?; + } + if let Some(v) = self.denom.as_ref() { + struct_ser.serialize_field("denom", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for value_view::KnownDenom { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "amount", + "denom", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Amount, + Denom, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "amount" => Ok(GeneratedField::Amount), + "denom" => Ok(GeneratedField::Denom), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = value_view::KnownDenom; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.asset.v1alpha1.ValueView.KnownDenom") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut amount__ = None; + let mut denom__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Amount => { + if amount__.is_some() { + return Err(serde::de::Error::duplicate_field("amount")); + } + amount__ = map.next_value()?; + } + GeneratedField::Denom => { + if denom__.is_some() { + return Err(serde::de::Error::duplicate_field("denom")); + } + denom__ = map.next_value()?; + } + } + } + Ok(value_view::KnownDenom { + amount: amount__, + denom: denom__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.asset.v1alpha1.ValueView.KnownDenom", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for value_view::UnknownDenom { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.amount.is_some() { + len += 1; + } + if self.asset_id.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.asset.v1alpha1.ValueView.UnknownDenom", len)?; + if let Some(v) = self.amount.as_ref() { + struct_ser.serialize_field("amount", v)?; + } + if let Some(v) = self.asset_id.as_ref() { + struct_ser.serialize_field("assetId", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for value_view::UnknownDenom { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "amount", + "asset_id", + "assetId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Amount, + AssetId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "amount" => Ok(GeneratedField::Amount), + "assetId" | "asset_id" => Ok(GeneratedField::AssetId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = value_view::UnknownDenom; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.asset.v1alpha1.ValueView.UnknownDenom") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut amount__ = None; + let mut asset_id__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Amount => { + if amount__.is_some() { + return Err(serde::de::Error::duplicate_field("amount")); + } + amount__ = map.next_value()?; + } + GeneratedField::AssetId => { + if asset_id__.is_some() { + return Err(serde::de::Error::duplicate_field("assetId")); + } + asset_id__ = map.next_value()?; + } + } + } + Ok(value_view::UnknownDenom { + amount: amount__, + asset_id: asset_id__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.asset.v1alpha1.ValueView.UnknownDenom", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.core.chain.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.chain.v1alpha1.rs similarity index 63% rename from crates/proto/src/gen/penumbra.core.chain.v1alpha1.rs rename to crates/proto/src/gen/penumbra.core.component.chain.v1alpha1.rs index ee81da699e..43d57874a6 100644 --- a/crates/proto/src/gen/penumbra.core.chain.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.component.chain.v1alpha1.rs @@ -1,3 +1,10 @@ +/// An authorization hash for a Penumbra transaction. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct EffectHash { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} /// Global chain configuration data, such as chain ID, epoch duration, etc. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -44,7 +51,7 @@ pub struct ChainParameters { /// The deposit required to create a proposal. #[prost(message, optional, tag = "21")] pub proposal_deposit_amount: ::core::option::Option< - super::super::crypto::v1alpha1::Amount, + super::super::super::num::v1alpha1::Amount, >, /// The quorum required for a proposal to be considered valid, as a fraction of the total stake /// weight of the network. @@ -81,91 +88,13 @@ pub struct FmdParameters { #[prost(uint64, tag = "2")] pub as_of_block_height: u64, } -/// Contains the minimum data needed to update client state. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct CompactBlock { - #[prost(uint64, tag = "1")] - pub height: u64, - /// State payloads describing new state fragments. - #[prost(message, repeated, tag = "2")] - pub state_payloads: ::prost::alloc::vec::Vec, - /// Nullifiers identifying spent notes. - #[prost(message, repeated, tag = "3")] - pub nullifiers: ::prost::alloc::vec::Vec, - /// The block root of this block. - #[prost(message, optional, tag = "4")] - pub block_root: ::core::option::Option, - /// The epoch root of this epoch (only present when the block is the last in an epoch). - #[prost(message, optional, tag = "17")] - pub epoch_root: ::core::option::Option, - /// If a proposal started voting in this block, this is set to `true`. - #[prost(bool, tag = "20")] - pub proposal_started: bool, - /// Latest Fuzzy Message Detection parameters. - #[prost(message, optional, tag = "100")] - pub fmd_parameters: ::core::option::Option, - /// Price data for swaps executed in this block. - #[prost(message, repeated, tag = "5")] - pub swap_outputs: ::prost::alloc::vec::Vec< - super::super::dex::v1alpha1::BatchSwapOutputData, - >, - /// Updated chain parameters, if they have changed. - #[prost(message, optional, tag = "6")] - pub chain_parameters: ::core::option::Option, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct StatePayload { - #[prost(oneof = "state_payload::StatePayload", tags = "1, 2, 3")] - pub state_payload: ::core::option::Option, -} -/// Nested message and enum types in `StatePayload`. -pub mod state_payload { - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct RolledUp { - #[prost(message, optional, tag = "1")] - pub commitment: ::core::option::Option< - super::super::super::crypto::v1alpha1::StateCommitment, - >, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Note { - #[prost(message, optional, tag = "1")] - pub source: ::core::option::Option, - #[prost(message, optional, tag = "2")] - pub note: ::core::option::Option< - super::super::super::crypto::v1alpha1::NotePayload, - >, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Swap { - #[prost(message, optional, tag = "1")] - pub source: ::core::option::Option, - #[prost(message, optional, tag = "2")] - pub swap: ::core::option::Option< - super::super::super::dex::v1alpha1::SwapPayload, - >, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum StatePayload { - #[prost(message, tag = "1")] - RolledUp(RolledUp), - #[prost(message, tag = "2")] - Note(Note), - #[prost(message, tag = "3")] - Swap(Swap), - } -} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct KnownAssets { #[prost(message, repeated, tag = "1")] - pub assets: ::prost::alloc::vec::Vec, + pub assets: ::prost::alloc::vec::Vec< + super::super::super::asset::v1alpha1::DenomMetadata, + >, } /// A spicy transaction ID #[allow(clippy::derive_partial_eq_without_eq)] @@ -217,13 +146,13 @@ pub mod genesis_content { pub struct Allocation { #[prost(message, optional, tag = "1")] pub amount: ::core::option::Option< - super::super::super::crypto::v1alpha1::Amount, + super::super::super::super::num::v1alpha1::Amount, >, #[prost(string, tag = "2")] pub denom: ::prost::alloc::string::String, #[prost(message, optional, tag = "3")] pub address: ::core::option::Option< - super::super::super::crypto::v1alpha1::Address, + super::super::super::super::keys::v1alpha1::Address, >, } } diff --git a/crates/proto/src/gen/penumbra.core.chain.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.chain.v1alpha1.serde.rs similarity index 69% rename from crates/proto/src/gen/penumbra.core.chain.v1alpha1.serde.rs rename to crates/proto/src/gen/penumbra.core.component.chain.v1alpha1.serde.rs index 5ef5790d65..b57886f79d 100644 --- a/crates/proto/src/gen/penumbra.core.chain.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.chain.v1alpha1.serde.rs @@ -60,7 +60,7 @@ impl serde::Serialize for ChainParameters { if self.dao_spend_proposals_enabled { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.ChainParameters", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.ChainParameters", len)?; if !self.chain_id.is_empty() { struct_ser.serialize_field("chainId", &self.chain_id)?; } @@ -234,7 +234,7 @@ impl<'de> serde::Deserialize<'de> for ChainParameters { type Value = ChainParameters; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.ChainParameters") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.ChainParameters") } fn visit_map(self, mut map: V) -> std::result::Result @@ -411,10 +411,10 @@ impl<'de> serde::Deserialize<'de> for ChainParameters { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.ChainParameters", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.ChainParameters", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for CompactBlock { +impl serde::Serialize for EffectHash { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -422,100 +422,29 @@ impl serde::Serialize for CompactBlock { { use serde::ser::SerializeStruct; let mut len = 0; - if self.height != 0 { - len += 1; - } - if !self.state_payloads.is_empty() { - len += 1; - } - if !self.nullifiers.is_empty() { - len += 1; - } - if self.block_root.is_some() { - len += 1; - } - if self.epoch_root.is_some() { - len += 1; - } - if self.proposal_started { - len += 1; - } - if self.fmd_parameters.is_some() { - len += 1; - } - if !self.swap_outputs.is_empty() { - len += 1; - } - if self.chain_parameters.is_some() { + if !self.inner.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.CompactBlock", len)?; - if self.height != 0 { - struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; - } - if !self.state_payloads.is_empty() { - struct_ser.serialize_field("statePayloads", &self.state_payloads)?; - } - if !self.nullifiers.is_empty() { - struct_ser.serialize_field("nullifiers", &self.nullifiers)?; - } - if let Some(v) = self.block_root.as_ref() { - struct_ser.serialize_field("blockRoot", v)?; - } - if let Some(v) = self.epoch_root.as_ref() { - struct_ser.serialize_field("epochRoot", v)?; - } - if self.proposal_started { - struct_ser.serialize_field("proposalStarted", &self.proposal_started)?; - } - if let Some(v) = self.fmd_parameters.as_ref() { - struct_ser.serialize_field("fmdParameters", v)?; - } - if !self.swap_outputs.is_empty() { - struct_ser.serialize_field("swapOutputs", &self.swap_outputs)?; - } - if let Some(v) = self.chain_parameters.as_ref() { - struct_ser.serialize_field("chainParameters", v)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.EffectHash", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for CompactBlock { +impl<'de> serde::Deserialize<'de> for EffectHash { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "height", - "state_payloads", - "statePayloads", - "nullifiers", - "block_root", - "blockRoot", - "epoch_root", - "epochRoot", - "proposal_started", - "proposalStarted", - "fmd_parameters", - "fmdParameters", - "swap_outputs", - "swapOutputs", - "chain_parameters", - "chainParameters", + "inner", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Height, - StatePayloads, - Nullifiers, - BlockRoot, - EpochRoot, - ProposalStarted, - FmdParameters, - SwapOutputs, - ChainParameters, + Inner, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -537,15 +466,7 @@ impl<'de> serde::Deserialize<'de> for CompactBlock { E: serde::de::Error, { match value { - "height" => Ok(GeneratedField::Height), - "statePayloads" | "state_payloads" => Ok(GeneratedField::StatePayloads), - "nullifiers" => Ok(GeneratedField::Nullifiers), - "blockRoot" | "block_root" => Ok(GeneratedField::BlockRoot), - "epochRoot" | "epoch_root" => Ok(GeneratedField::EpochRoot), - "proposalStarted" | "proposal_started" => Ok(GeneratedField::ProposalStarted), - "fmdParameters" | "fmd_parameters" => Ok(GeneratedField::FmdParameters), - "swapOutputs" | "swap_outputs" => Ok(GeneratedField::SwapOutputs), - "chainParameters" | "chain_parameters" => Ok(GeneratedField::ChainParameters), + "inner" => Ok(GeneratedField::Inner), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -555,99 +476,35 @@ impl<'de> serde::Deserialize<'de> for CompactBlock { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = CompactBlock; + type Value = EffectHash; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.CompactBlock") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.EffectHash") } - 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 height__ = None; - let mut state_payloads__ = None; - let mut nullifiers__ = None; - let mut block_root__ = None; - let mut epoch_root__ = None; - let mut proposal_started__ = None; - let mut fmd_parameters__ = None; - let mut swap_outputs__ = None; - let mut chain_parameters__ = None; + let mut inner__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::Height => { - if height__.is_some() { - return Err(serde::de::Error::duplicate_field("height")); + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); } - height__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) ; } - GeneratedField::StatePayloads => { - if state_payloads__.is_some() { - return Err(serde::de::Error::duplicate_field("statePayloads")); - } - state_payloads__ = Some(map.next_value()?); - } - GeneratedField::Nullifiers => { - if nullifiers__.is_some() { - return Err(serde::de::Error::duplicate_field("nullifiers")); - } - nullifiers__ = Some(map.next_value()?); - } - GeneratedField::BlockRoot => { - if block_root__.is_some() { - return Err(serde::de::Error::duplicate_field("blockRoot")); - } - block_root__ = map.next_value()?; - } - GeneratedField::EpochRoot => { - if epoch_root__.is_some() { - return Err(serde::de::Error::duplicate_field("epochRoot")); - } - epoch_root__ = map.next_value()?; - } - GeneratedField::ProposalStarted => { - if proposal_started__.is_some() { - return Err(serde::de::Error::duplicate_field("proposalStarted")); - } - proposal_started__ = Some(map.next_value()?); - } - GeneratedField::FmdParameters => { - if fmd_parameters__.is_some() { - return Err(serde::de::Error::duplicate_field("fmdParameters")); - } - fmd_parameters__ = map.next_value()?; - } - GeneratedField::SwapOutputs => { - if swap_outputs__.is_some() { - return Err(serde::de::Error::duplicate_field("swapOutputs")); - } - swap_outputs__ = Some(map.next_value()?); - } - GeneratedField::ChainParameters => { - if chain_parameters__.is_some() { - return Err(serde::de::Error::duplicate_field("chainParameters")); - } - chain_parameters__ = map.next_value()?; - } } } - Ok(CompactBlock { - height: height__.unwrap_or_default(), - state_payloads: state_payloads__.unwrap_or_default(), - nullifiers: nullifiers__.unwrap_or_default(), - block_root: block_root__, - epoch_root: epoch_root__, - proposal_started: proposal_started__.unwrap_or_default(), - fmd_parameters: fmd_parameters__, - swap_outputs: swap_outputs__.unwrap_or_default(), - chain_parameters: chain_parameters__, + Ok(EffectHash { + inner: inner__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.CompactBlock", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.EffectHash", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Epoch { @@ -664,7 +521,7 @@ impl serde::Serialize for Epoch { if self.start_height != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.Epoch", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.Epoch", len)?; if self.index != 0 { struct_ser.serialize_field("index", ToString::to_string(&self.index).as_str())?; } @@ -725,7 +582,7 @@ impl<'de> serde::Deserialize<'de> for Epoch { type Value = Epoch; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.Epoch") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.Epoch") } fn visit_map(self, mut map: V) -> std::result::Result @@ -760,7 +617,7 @@ impl<'de> serde::Deserialize<'de> for Epoch { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.Epoch", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.Epoch", FIELDS, GeneratedVisitor) } } impl serde::Serialize for FmdParameters { @@ -777,7 +634,7 @@ impl serde::Serialize for FmdParameters { if self.as_of_block_height != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.FmdParameters", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.FmdParameters", len)?; if self.precision_bits != 0 { struct_ser.serialize_field("precisionBits", &self.precision_bits)?; } @@ -839,7 +696,7 @@ impl<'de> serde::Deserialize<'de> for FmdParameters { type Value = FmdParameters; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.FmdParameters") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.FmdParameters") } fn visit_map(self, mut map: V) -> std::result::Result @@ -874,7 +731,7 @@ impl<'de> serde::Deserialize<'de> for FmdParameters { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.FmdParameters", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.FmdParameters", FIELDS, GeneratedVisitor) } } impl serde::Serialize for GenesisAppState { @@ -888,7 +745,7 @@ impl serde::Serialize for GenesisAppState { if self.genesis_app_state.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.GenesisAppState", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.GenesisAppState", len)?; if let Some(v) = self.genesis_app_state.as_ref() { match v { genesis_app_state::GenesisAppState::GenesisContent(v) => { @@ -954,7 +811,7 @@ impl<'de> serde::Deserialize<'de> for GenesisAppState { type Value = GenesisAppState; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.GenesisAppState") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.GenesisAppState") } fn visit_map(self, mut map: V) -> std::result::Result @@ -984,7 +841,7 @@ impl<'de> serde::Deserialize<'de> for GenesisAppState { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.GenesisAppState", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.GenesisAppState", FIELDS, GeneratedVisitor) } } impl serde::Serialize for GenesisContent { @@ -1004,7 +861,7 @@ impl serde::Serialize for GenesisContent { if !self.allocations.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.GenesisContent", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.GenesisContent", len)?; if let Some(v) = self.chain_params.as_ref() { struct_ser.serialize_field("chainParams", v)?; } @@ -1071,7 +928,7 @@ 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.chain.v1alpha1.GenesisContent") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.GenesisContent") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1110,7 +967,7 @@ impl<'de> serde::Deserialize<'de> for GenesisContent { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.GenesisContent", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.GenesisContent", FIELDS, GeneratedVisitor) } } impl serde::Serialize for genesis_content::Allocation { @@ -1130,7 +987,7 @@ impl serde::Serialize for genesis_content::Allocation { if self.address.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.GenesisContent.Allocation", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.GenesisContent.Allocation", len)?; if let Some(v) = self.amount.as_ref() { struct_ser.serialize_field("amount", v)?; } @@ -1196,7 +1053,7 @@ impl<'de> serde::Deserialize<'de> for genesis_content::Allocation { type Value = genesis_content::Allocation; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.GenesisContent.Allocation") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.GenesisContent.Allocation") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1235,7 +1092,7 @@ impl<'de> serde::Deserialize<'de> for genesis_content::Allocation { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.GenesisContent.Allocation", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.GenesisContent.Allocation", FIELDS, GeneratedVisitor) } } impl serde::Serialize for KnownAssets { @@ -1249,7 +1106,7 @@ impl serde::Serialize for KnownAssets { if !self.assets.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.KnownAssets", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.KnownAssets", len)?; if !self.assets.is_empty() { struct_ser.serialize_field("assets", &self.assets)?; } @@ -1303,7 +1160,7 @@ impl<'de> serde::Deserialize<'de> for KnownAssets { type Value = KnownAssets; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.KnownAssets") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.KnownAssets") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1326,7 +1183,7 @@ impl<'de> serde::Deserialize<'de> for KnownAssets { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.KnownAssets", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.KnownAssets", FIELDS, GeneratedVisitor) } } impl serde::Serialize for NoteSource { @@ -1340,7 +1197,7 @@ impl serde::Serialize for NoteSource { if !self.inner.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.NoteSource", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.NoteSource", len)?; if !self.inner.is_empty() { struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } @@ -1394,7 +1251,7 @@ impl<'de> serde::Deserialize<'de> for NoteSource { type Value = NoteSource; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.NoteSource") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.NoteSource") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1419,7 +1276,7 @@ impl<'de> serde::Deserialize<'de> for NoteSource { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.NoteSource", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.NoteSource", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Ratio { @@ -1436,7 +1293,7 @@ impl serde::Serialize for Ratio { if self.denominator != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.Ratio", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.Ratio", len)?; if self.numerator != 0 { struct_ser.serialize_field("numerator", ToString::to_string(&self.numerator).as_str())?; } @@ -1496,7 +1353,7 @@ impl<'de> serde::Deserialize<'de> for Ratio { type Value = Ratio; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.Ratio") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.Ratio") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1531,7 +1388,7 @@ impl<'de> serde::Deserialize<'de> for Ratio { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.Ratio", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.Ratio", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SpendInfo { @@ -1548,7 +1405,7 @@ impl serde::Serialize for SpendInfo { if self.spend_height != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.SpendInfo", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.chain.v1alpha1.SpendInfo", len)?; if let Some(v) = self.note_source.as_ref() { struct_ser.serialize_field("noteSource", v)?; } @@ -1610,7 +1467,7 @@ impl<'de> serde::Deserialize<'de> for SpendInfo { type Value = SpendInfo; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.SpendInfo") + formatter.write_str("struct penumbra.core.component.chain.v1alpha1.SpendInfo") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1643,436 +1500,6 @@ impl<'de> serde::Deserialize<'de> for SpendInfo { }) } } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.SpendInfo", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for StatePayload { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.state_payload.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.StatePayload", len)?; - if let Some(v) = self.state_payload.as_ref() { - match v { - state_payload::StatePayload::RolledUp(v) => { - struct_ser.serialize_field("rolledUp", v)?; - } - state_payload::StatePayload::Note(v) => { - struct_ser.serialize_field("note", v)?; - } - state_payload::StatePayload::Swap(v) => { - struct_ser.serialize_field("swap", v)?; - } - } - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for StatePayload { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "rolled_up", - "rolledUp", - "note", - "swap", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - RolledUp, - Note, - Swap, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "rolledUp" | "rolled_up" => Ok(GeneratedField::RolledUp), - "note" => Ok(GeneratedField::Note), - "swap" => Ok(GeneratedField::Swap), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = StatePayload; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.StatePayload") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut state_payload__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::RolledUp => { - if state_payload__.is_some() { - return Err(serde::de::Error::duplicate_field("rolledUp")); - } - state_payload__ = map.next_value::<::std::option::Option<_>>()?.map(state_payload::StatePayload::RolledUp) -; - } - GeneratedField::Note => { - if state_payload__.is_some() { - return Err(serde::de::Error::duplicate_field("note")); - } - state_payload__ = map.next_value::<::std::option::Option<_>>()?.map(state_payload::StatePayload::Note) -; - } - GeneratedField::Swap => { - if state_payload__.is_some() { - return Err(serde::de::Error::duplicate_field("swap")); - } - state_payload__ = map.next_value::<::std::option::Option<_>>()?.map(state_payload::StatePayload::Swap) -; - } - } - } - Ok(StatePayload { - state_payload: state_payload__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.StatePayload", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for state_payload::Note { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.source.is_some() { - len += 1; - } - if self.note.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.StatePayload.Note", len)?; - if let Some(v) = self.source.as_ref() { - struct_ser.serialize_field("source", v)?; - } - if let Some(v) = self.note.as_ref() { - struct_ser.serialize_field("note", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for state_payload::Note { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "source", - "note", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Source, - Note, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "source" => Ok(GeneratedField::Source), - "note" => Ok(GeneratedField::Note), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = state_payload::Note; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.StatePayload.Note") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut source__ = None; - let mut note__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Source => { - if source__.is_some() { - return Err(serde::de::Error::duplicate_field("source")); - } - source__ = map.next_value()?; - } - GeneratedField::Note => { - if note__.is_some() { - return Err(serde::de::Error::duplicate_field("note")); - } - note__ = map.next_value()?; - } - } - } - Ok(state_payload::Note { - source: source__, - note: note__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.StatePayload.Note", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for state_payload::RolledUp { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.commitment.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.StatePayload.RolledUp", len)?; - if let Some(v) = self.commitment.as_ref() { - struct_ser.serialize_field("commitment", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for state_payload::RolledUp { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "commitment", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Commitment, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "commitment" => Ok(GeneratedField::Commitment), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = state_payload::RolledUp; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.StatePayload.RolledUp") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut commitment__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Commitment => { - if commitment__.is_some() { - return Err(serde::de::Error::duplicate_field("commitment")); - } - commitment__ = map.next_value()?; - } - } - } - Ok(state_payload::RolledUp { - commitment: commitment__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.StatePayload.RolledUp", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for state_payload::Swap { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.source.is_some() { - len += 1; - } - if self.swap.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.chain.v1alpha1.StatePayload.Swap", len)?; - if let Some(v) = self.source.as_ref() { - struct_ser.serialize_field("source", v)?; - } - if let Some(v) = self.swap.as_ref() { - struct_ser.serialize_field("swap", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for state_payload::Swap { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "source", - "swap", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Source, - Swap, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "source" => Ok(GeneratedField::Source), - "swap" => Ok(GeneratedField::Swap), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = state_payload::Swap; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.chain.v1alpha1.StatePayload.Swap") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut source__ = None; - let mut swap__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Source => { - if source__.is_some() { - return Err(serde::de::Error::duplicate_field("source")); - } - source__ = map.next_value()?; - } - GeneratedField::Swap => { - if swap__.is_some() { - return Err(serde::de::Error::duplicate_field("swap")); - } - swap__ = map.next_value()?; - } - } - } - Ok(state_payload::Swap { - source: source__, - swap: swap__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.chain.v1alpha1.StatePayload.Swap", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.chain.v1alpha1.SpendInfo", FIELDS, GeneratedVisitor) } } diff --git a/crates/proto/src/gen/penumbra.core.component.compact_block.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.compact_block.v1alpha1.rs new file mode 100644 index 0000000000..35a5a928f1 --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.component.compact_block.v1alpha1.rs @@ -0,0 +1,92 @@ +/// Contains the minimum data needed to update client state. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct CompactBlock { + #[prost(uint64, tag = "1")] + pub height: u64, + /// State payloads describing new state fragments. + #[prost(message, repeated, tag = "2")] + pub state_payloads: ::prost::alloc::vec::Vec, + /// Nullifiers identifying spent notes. + #[prost(message, repeated, tag = "3")] + pub nullifiers: ::prost::alloc::vec::Vec, + /// The block root of this block. + #[prost(message, optional, tag = "4")] + pub block_root: ::core::option::Option< + super::super::super::super::crypto::tct::v1alpha1::MerkleRoot, + >, + /// The epoch root of this epoch (only present when the block is the last in an epoch). + #[prost(message, optional, tag = "17")] + pub epoch_root: ::core::option::Option< + super::super::super::super::crypto::tct::v1alpha1::MerkleRoot, + >, + /// If a proposal started voting in this block, this is set to `true`. + #[prost(bool, tag = "20")] + pub proposal_started: bool, + /// Latest Fuzzy Message Detection parameters. + #[prost(message, optional, tag = "100")] + pub fmd_parameters: ::core::option::Option< + super::super::chain::v1alpha1::FmdParameters, + >, + /// Price data for swaps executed in this block. + #[prost(message, repeated, tag = "5")] + pub swap_outputs: ::prost::alloc::vec::Vec< + super::super::dex::v1alpha1::BatchSwapOutputData, + >, + /// Updated chain parameters, if they have changed. + #[prost(message, optional, tag = "6")] + pub chain_parameters: ::core::option::Option< + super::super::chain::v1alpha1::ChainParameters, + >, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StatePayload { + #[prost(oneof = "state_payload::StatePayload", tags = "1, 2, 3")] + pub state_payload: ::core::option::Option, +} +/// Nested message and enum types in `StatePayload`. +pub mod state_payload { + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct RolledUp { + #[prost(message, optional, tag = "1")] + pub commitment: ::core::option::Option< + super::super::super::super::super::crypto::tct::v1alpha1::StateCommitment, + >, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Note { + #[prost(message, optional, tag = "1")] + pub source: ::core::option::Option< + super::super::super::chain::v1alpha1::NoteSource, + >, + #[prost(message, optional, tag = "2")] + pub note: ::core::option::Option< + super::super::super::shielded_pool::v1alpha1::NotePayload, + >, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Swap { + #[prost(message, optional, tag = "1")] + pub source: ::core::option::Option< + super::super::super::chain::v1alpha1::NoteSource, + >, + #[prost(message, optional, tag = "2")] + pub swap: ::core::option::Option< + super::super::super::dex::v1alpha1::SwapPayload, + >, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum StatePayload { + #[prost(message, tag = "1")] + RolledUp(RolledUp), + #[prost(message, tag = "2")] + Note(Note), + #[prost(message, tag = "3")] + Swap(Swap), + } +} diff --git a/crates/proto/src/gen/penumbra.core.component.compact_block.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.compact_block.v1alpha1.serde.rs new file mode 100644 index 0000000000..ee9c055b75 --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.component.compact_block.v1alpha1.serde.rs @@ -0,0 +1,666 @@ +impl serde::Serialize for CompactBlock { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.height != 0 { + len += 1; + } + if !self.state_payloads.is_empty() { + len += 1; + } + if !self.nullifiers.is_empty() { + len += 1; + } + if self.block_root.is_some() { + len += 1; + } + if self.epoch_root.is_some() { + len += 1; + } + if self.proposal_started { + len += 1; + } + if self.fmd_parameters.is_some() { + len += 1; + } + if !self.swap_outputs.is_empty() { + len += 1; + } + if self.chain_parameters.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.compact_block.v1alpha1.CompactBlock", len)?; + if self.height != 0 { + struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; + } + if !self.state_payloads.is_empty() { + struct_ser.serialize_field("statePayloads", &self.state_payloads)?; + } + if !self.nullifiers.is_empty() { + struct_ser.serialize_field("nullifiers", &self.nullifiers)?; + } + if let Some(v) = self.block_root.as_ref() { + struct_ser.serialize_field("blockRoot", v)?; + } + if let Some(v) = self.epoch_root.as_ref() { + struct_ser.serialize_field("epochRoot", v)?; + } + if self.proposal_started { + struct_ser.serialize_field("proposalStarted", &self.proposal_started)?; + } + if let Some(v) = self.fmd_parameters.as_ref() { + struct_ser.serialize_field("fmdParameters", v)?; + } + if !self.swap_outputs.is_empty() { + struct_ser.serialize_field("swapOutputs", &self.swap_outputs)?; + } + if let Some(v) = self.chain_parameters.as_ref() { + struct_ser.serialize_field("chainParameters", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for CompactBlock { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "height", + "state_payloads", + "statePayloads", + "nullifiers", + "block_root", + "blockRoot", + "epoch_root", + "epochRoot", + "proposal_started", + "proposalStarted", + "fmd_parameters", + "fmdParameters", + "swap_outputs", + "swapOutputs", + "chain_parameters", + "chainParameters", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Height, + StatePayloads, + Nullifiers, + BlockRoot, + EpochRoot, + ProposalStarted, + FmdParameters, + SwapOutputs, + ChainParameters, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "height" => Ok(GeneratedField::Height), + "statePayloads" | "state_payloads" => Ok(GeneratedField::StatePayloads), + "nullifiers" => Ok(GeneratedField::Nullifiers), + "blockRoot" | "block_root" => Ok(GeneratedField::BlockRoot), + "epochRoot" | "epoch_root" => Ok(GeneratedField::EpochRoot), + "proposalStarted" | "proposal_started" => Ok(GeneratedField::ProposalStarted), + "fmdParameters" | "fmd_parameters" => Ok(GeneratedField::FmdParameters), + "swapOutputs" | "swap_outputs" => Ok(GeneratedField::SwapOutputs), + "chainParameters" | "chain_parameters" => Ok(GeneratedField::ChainParameters), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = CompactBlock; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.compact_block.v1alpha1.CompactBlock") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut height__ = None; + let mut state_payloads__ = None; + let mut nullifiers__ = None; + let mut block_root__ = None; + let mut epoch_root__ = None; + let mut proposal_started__ = None; + let mut fmd_parameters__ = None; + let mut swap_outputs__ = None; + let mut chain_parameters__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Height => { + if height__.is_some() { + return Err(serde::de::Error::duplicate_field("height")); + } + height__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::StatePayloads => { + if state_payloads__.is_some() { + return Err(serde::de::Error::duplicate_field("statePayloads")); + } + state_payloads__ = Some(map.next_value()?); + } + GeneratedField::Nullifiers => { + if nullifiers__.is_some() { + return Err(serde::de::Error::duplicate_field("nullifiers")); + } + nullifiers__ = Some(map.next_value()?); + } + GeneratedField::BlockRoot => { + if block_root__.is_some() { + return Err(serde::de::Error::duplicate_field("blockRoot")); + } + block_root__ = map.next_value()?; + } + GeneratedField::EpochRoot => { + if epoch_root__.is_some() { + return Err(serde::de::Error::duplicate_field("epochRoot")); + } + epoch_root__ = map.next_value()?; + } + GeneratedField::ProposalStarted => { + if proposal_started__.is_some() { + return Err(serde::de::Error::duplicate_field("proposalStarted")); + } + proposal_started__ = Some(map.next_value()?); + } + GeneratedField::FmdParameters => { + if fmd_parameters__.is_some() { + return Err(serde::de::Error::duplicate_field("fmdParameters")); + } + fmd_parameters__ = map.next_value()?; + } + GeneratedField::SwapOutputs => { + if swap_outputs__.is_some() { + return Err(serde::de::Error::duplicate_field("swapOutputs")); + } + swap_outputs__ = Some(map.next_value()?); + } + GeneratedField::ChainParameters => { + if chain_parameters__.is_some() { + return Err(serde::de::Error::duplicate_field("chainParameters")); + } + chain_parameters__ = map.next_value()?; + } + } + } + Ok(CompactBlock { + height: height__.unwrap_or_default(), + state_payloads: state_payloads__.unwrap_or_default(), + nullifiers: nullifiers__.unwrap_or_default(), + block_root: block_root__, + epoch_root: epoch_root__, + proposal_started: proposal_started__.unwrap_or_default(), + fmd_parameters: fmd_parameters__, + swap_outputs: swap_outputs__.unwrap_or_default(), + chain_parameters: chain_parameters__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.compact_block.v1alpha1.CompactBlock", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for StatePayload { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.state_payload.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.compact_block.v1alpha1.StatePayload", len)?; + if let Some(v) = self.state_payload.as_ref() { + match v { + state_payload::StatePayload::RolledUp(v) => { + struct_ser.serialize_field("rolledUp", v)?; + } + state_payload::StatePayload::Note(v) => { + struct_ser.serialize_field("note", v)?; + } + state_payload::StatePayload::Swap(v) => { + struct_ser.serialize_field("swap", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for StatePayload { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "rolled_up", + "rolledUp", + "note", + "swap", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + RolledUp, + Note, + Swap, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "rolledUp" | "rolled_up" => Ok(GeneratedField::RolledUp), + "note" => Ok(GeneratedField::Note), + "swap" => Ok(GeneratedField::Swap), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = StatePayload; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.compact_block.v1alpha1.StatePayload") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut state_payload__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::RolledUp => { + if state_payload__.is_some() { + return Err(serde::de::Error::duplicate_field("rolledUp")); + } + state_payload__ = map.next_value::<::std::option::Option<_>>()?.map(state_payload::StatePayload::RolledUp) +; + } + GeneratedField::Note => { + if state_payload__.is_some() { + return Err(serde::de::Error::duplicate_field("note")); + } + state_payload__ = map.next_value::<::std::option::Option<_>>()?.map(state_payload::StatePayload::Note) +; + } + GeneratedField::Swap => { + if state_payload__.is_some() { + return Err(serde::de::Error::duplicate_field("swap")); + } + state_payload__ = map.next_value::<::std::option::Option<_>>()?.map(state_payload::StatePayload::Swap) +; + } + } + } + Ok(StatePayload { + state_payload: state_payload__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.compact_block.v1alpha1.StatePayload", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for state_payload::Note { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.source.is_some() { + len += 1; + } + if self.note.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.compact_block.v1alpha1.StatePayload.Note", len)?; + if let Some(v) = self.source.as_ref() { + struct_ser.serialize_field("source", v)?; + } + if let Some(v) = self.note.as_ref() { + struct_ser.serialize_field("note", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for state_payload::Note { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "source", + "note", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Source, + Note, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "source" => Ok(GeneratedField::Source), + "note" => Ok(GeneratedField::Note), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = state_payload::Note; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.compact_block.v1alpha1.StatePayload.Note") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut source__ = None; + let mut note__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Source => { + if source__.is_some() { + return Err(serde::de::Error::duplicate_field("source")); + } + source__ = map.next_value()?; + } + GeneratedField::Note => { + if note__.is_some() { + return Err(serde::de::Error::duplicate_field("note")); + } + note__ = map.next_value()?; + } + } + } + Ok(state_payload::Note { + source: source__, + note: note__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.compact_block.v1alpha1.StatePayload.Note", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for state_payload::RolledUp { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.commitment.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.compact_block.v1alpha1.StatePayload.RolledUp", len)?; + if let Some(v) = self.commitment.as_ref() { + struct_ser.serialize_field("commitment", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for state_payload::RolledUp { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "commitment", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Commitment, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "commitment" => Ok(GeneratedField::Commitment), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = state_payload::RolledUp; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.compact_block.v1alpha1.StatePayload.RolledUp") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut commitment__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Commitment => { + if commitment__.is_some() { + return Err(serde::de::Error::duplicate_field("commitment")); + } + commitment__ = map.next_value()?; + } + } + } + Ok(state_payload::RolledUp { + commitment: commitment__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.compact_block.v1alpha1.StatePayload.RolledUp", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for state_payload::Swap { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.source.is_some() { + len += 1; + } + if self.swap.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.compact_block.v1alpha1.StatePayload.Swap", len)?; + if let Some(v) = self.source.as_ref() { + struct_ser.serialize_field("source", v)?; + } + if let Some(v) = self.swap.as_ref() { + struct_ser.serialize_field("swap", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for state_payload::Swap { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "source", + "swap", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Source, + Swap, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "source" => Ok(GeneratedField::Source), + "swap" => Ok(GeneratedField::Swap), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = state_payload::Swap; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.compact_block.v1alpha1.StatePayload.Swap") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut source__ = None; + let mut swap__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Source => { + if source__.is_some() { + return Err(serde::de::Error::duplicate_field("source")); + } + source__ = map.next_value()?; + } + GeneratedField::Swap => { + if swap__.is_some() { + return Err(serde::de::Error::duplicate_field("swap")); + } + swap__ = map.next_value()?; + } + } + } + Ok(state_payload::Swap { + source: source__, + swap: swap__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.compact_block.v1alpha1.StatePayload.Swap", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.core.dex.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.dex.v1alpha1.rs similarity index 87% rename from crates/proto/src/gen/penumbra.core.dex.v1alpha1.rs rename to crates/proto/src/gen/penumbra.core.component.dex.v1alpha1.rs index a8e004f479..c6848558c3 100644 --- a/crates/proto/src/gen/penumbra.core.dex.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.component.dex.v1alpha1.rs @@ -1,10 +1,24 @@ +/// A Penumbra ZK swap proof. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ZkSwapProof { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +/// A Penumbra ZK swap claim proof. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ZkSwapClaimProof { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} /// A transaction action that submits a swap to the dex. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Swap { /// Contains the Swap proof. #[prost(message, optional, tag = "1")] - pub proof: ::core::option::Option, + pub proof: ::core::option::Option, /// Encapsulates the authorized fields of the Swap action, used in signing. #[prost(message, optional, tag = "4")] pub body: ::core::option::Option, @@ -17,8 +31,8 @@ pub struct Swap { #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapClaim { /// Contains the SwapClaim proof. - #[prost(bytes = "vec", tag = "1")] - pub proof: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "1")] + pub proof: ::core::option::Option, /// Encapsulates the authorized fields of the SwapClaim action, used in signing. #[prost(message, optional, tag = "2")] pub body: ::core::option::Option, @@ -32,19 +46,19 @@ pub struct SwapClaim { pub struct SwapClaimBody { /// The nullifier for the Swap commitment to be consumed. #[prost(message, optional, tag = "1")] - pub nullifier: ::core::option::Option, + pub nullifier: ::core::option::Option, /// The fee allows `SwapClaim` without an additional `Spend`. #[prost(message, optional, tag = "2")] - pub fee: ::core::option::Option, + pub fee: ::core::option::Option, /// Note output for asset 1. #[prost(message, optional, tag = "3")] pub output_1_commitment: ::core::option::Option< - super::super::crypto::v1alpha1::StateCommitment, + super::super::super::super::crypto::tct::v1alpha1::StateCommitment, >, /// Note output for asset 2. #[prost(message, optional, tag = "4")] pub output_2_commitment: ::core::option::Option< - super::super::crypto::v1alpha1::StateCommitment, + super::super::super::super::crypto::tct::v1alpha1::StateCommitment, >, /// Input and output amounts, and asset IDs for the assets in the swap. #[prost(message, optional, tag = "6")] @@ -59,17 +73,17 @@ pub struct SwapBody { pub trading_pair: ::core::option::Option, /// The amount for asset 1. #[prost(message, optional, tag = "2")] - pub delta_1_i: ::core::option::Option, + pub delta_1_i: ::core::option::Option, /// The amount for asset 2. #[prost(message, optional, tag = "3")] - pub delta_2_i: ::core::option::Option, + pub delta_2_i: ::core::option::Option, /// A commitment to a prepaid fee for the future SwapClaim. /// This is recorded separately from delta_j_i because it's shielded; /// in the future we'll want separate commitments to each delta_j_i /// anyways in order to prove consistency with flow encryption. #[prost(message, optional, tag = "4")] pub fee_commitment: ::core::option::Option< - super::super::crypto::v1alpha1::BalanceCommitment, + super::super::super::asset::v1alpha1::BalanceCommitment, >, /// The swap commitment and encryption of the swap data. #[prost(message, optional, tag = "5")] @@ -80,7 +94,7 @@ pub struct SwapBody { pub struct SwapPayload { #[prost(message, optional, tag = "1")] pub commitment: ::core::option::Option< - super::super::crypto::v1alpha1::StateCommitment, + super::super::super::super::crypto::tct::v1alpha1::StateCommitment, >, #[prost(bytes = "vec", tag = "2")] pub encrypted_swap: ::prost::alloc::vec::Vec, @@ -93,16 +107,18 @@ pub struct SwapPlaintext { pub trading_pair: ::core::option::Option, /// Input amount of asset 1 #[prost(message, optional, tag = "2")] - pub delta_1_i: ::core::option::Option, + pub delta_1_i: ::core::option::Option, /// Input amount of asset 2 #[prost(message, optional, tag = "3")] - pub delta_2_i: ::core::option::Option, + pub delta_2_i: ::core::option::Option, /// Pre-paid fee to claim the swap #[prost(message, optional, tag = "4")] - pub claim_fee: ::core::option::Option, + pub claim_fee: ::core::option::Option, /// Address that will claim the swap outputs via SwapClaim. #[prost(message, optional, tag = "5")] - pub claim_address: ::core::option::Option, + pub claim_address: ::core::option::Option< + super::super::super::keys::v1alpha1::Address, + >, /// Swap rseed (blinding factors are derived from this) #[prost(bytes = "vec", tag = "6")] pub rseed: ::prost::alloc::vec::Vec, @@ -191,11 +207,11 @@ pub mod swap_claim_view { pub swap_claim: ::core::option::Option, #[prost(message, optional, tag = "2")] pub output_1: ::core::option::Option< - super::super::super::crypto::v1alpha1::NoteView, + super::super::super::shielded_pool::v1alpha1::NoteView, >, #[prost(message, optional, tag = "3")] pub output_2: ::core::option::Option< - super::super::super::crypto::v1alpha1::NoteView, + super::super::super::shielded_pool::v1alpha1::NoteView, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -221,10 +237,10 @@ pub mod swap_claim_view { pub struct TradingPair { /// The first asset of the pair. #[prost(message, optional, tag = "1")] - pub asset_1: ::core::option::Option, + pub asset_1: ::core::option::Option, /// The second asset of the pair. #[prost(message, optional, tag = "2")] - pub asset_2: ::core::option::Option, + pub asset_2: ::core::option::Option, } /// Encodes a trading pair starting from asset `start` /// and ending on asset `end`. @@ -233,10 +249,10 @@ pub struct TradingPair { pub struct DirectedTradingPair { /// The start asset of the pair. #[prost(message, optional, tag = "1")] - pub start: ::core::option::Option, + pub start: ::core::option::Option, /// The end asset of the pair. #[prost(message, optional, tag = "2")] - pub end: ::core::option::Option, + pub end: ::core::option::Option, } /// Records the result of a batch swap on-chain. /// @@ -247,22 +263,22 @@ pub struct DirectedTradingPair { pub struct BatchSwapOutputData { /// The total amount of asset 1 that was input to the batch swap. #[prost(message, optional, tag = "1")] - pub delta_1: ::core::option::Option, + pub delta_1: ::core::option::Option, /// The total amount of asset 2 that was input to the batch swap. #[prost(message, optional, tag = "2")] - pub delta_2: ::core::option::Option, + pub delta_2: ::core::option::Option, /// The total amount of asset 1 that was output from the batch swap for 2=>1 trades. #[prost(message, optional, tag = "3")] - pub lambda_1: ::core::option::Option, + pub lambda_1: ::core::option::Option, /// The total amount of asset 2 that was output from the batch swap for 1=>2 trades. #[prost(message, optional, tag = "4")] - pub lambda_2: ::core::option::Option, + pub lambda_2: ::core::option::Option, /// The total amount of asset 1 that was returned unfilled from the batch swap for 1=>2 trades. #[prost(message, optional, tag = "5")] - pub unfilled_1: ::core::option::Option, + pub unfilled_1: ::core::option::Option, /// The total amount of asset 2 that was returned unfilled from the batch swap for 2=>1 trades. #[prost(message, optional, tag = "6")] - pub unfilled_2: ::core::option::Option, + pub unfilled_2: ::core::option::Option, /// The height for which the batch swap data is valid. #[prost(uint64, tag = "7")] pub height: u64, @@ -297,10 +313,10 @@ pub struct BareTradingFunction { pub fee: u32, /// This is not actually an amount, it's an integer the same width as an amount #[prost(message, optional, tag = "2")] - pub p: ::core::option::Option, + pub p: ::core::option::Option, /// This is not actually an amount, it's an integer the same width as an amount #[prost(message, optional, tag = "3")] - pub q: ::core::option::Option, + pub q: ::core::option::Option, } /// The reserves of a position. /// @@ -312,9 +328,9 @@ pub struct BareTradingFunction { #[derive(Clone, PartialEq, ::prost::Message)] pub struct Reserves { #[prost(message, optional, tag = "1")] - pub r1: ::core::option::Option, + pub r1: ::core::option::Option, #[prost(message, optional, tag = "2")] - pub r2: ::core::option::Option, + pub r2: ::core::option::Option, } /// Data identifying a position. #[allow(clippy::derive_partial_eq_without_eq)] @@ -485,7 +501,7 @@ pub struct PositionWithdraw { /// The chain will check this commitment by recomputing it with the on-chain state. #[prost(message, optional, tag = "2")] pub reserves_commitment: ::core::option::Option< - super::super::crypto::v1alpha1::BalanceCommitment, + super::super::super::asset::v1alpha1::BalanceCommitment, >, } /// A transaction action that claims retroactive rewards for a historical @@ -503,7 +519,7 @@ pub struct PositionRewardClaim { /// The chain will check this commitment by recomputing it with the on-chain state. #[prost(message, optional, tag = "2")] pub rewards_commitment: ::core::option::Option< - super::super::crypto::v1alpha1::BalanceCommitment, + super::super::super::asset::v1alpha1::BalanceCommitment, >, } /// Contains the entire execution of a particular swap. @@ -514,10 +530,10 @@ pub struct SwapExecution { pub traces: ::prost::alloc::vec::Vec, /// The total input amount for this execution. #[prost(message, optional, tag = "2")] - pub input: ::core::option::Option, + pub input: ::core::option::Option, /// The total output amount for this execution. #[prost(message, optional, tag = "3")] - pub output: ::core::option::Option, + pub output: ::core::option::Option, } /// Nested message and enum types in `SwapExecution`. pub mod swap_execution { @@ -528,7 +544,7 @@ pub mod swap_execution { /// Each step in the trade trace. #[prost(message, repeated, tag = "1")] pub value: ::prost::alloc::vec::Vec< - super::super::super::crypto::v1alpha1::Value, + super::super::super::super::asset::v1alpha1::Value, >, } } diff --git a/crates/proto/src/gen/penumbra.core.dex.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.dex.v1alpha1.serde.rs similarity index 90% rename from crates/proto/src/gen/penumbra.core.dex.v1alpha1.serde.rs rename to crates/proto/src/gen/penumbra.core.component.dex.v1alpha1.serde.rs index 00e51dae49..8ac2f411df 100644 --- a/crates/proto/src/gen/penumbra.core.dex.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.dex.v1alpha1.serde.rs @@ -15,7 +15,7 @@ impl serde::Serialize for BareTradingFunction { if self.q.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.BareTradingFunction", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.BareTradingFunction", len)?; if self.fee != 0 { struct_ser.serialize_field("fee", &self.fee)?; } @@ -81,7 +81,7 @@ impl<'de> serde::Deserialize<'de> for BareTradingFunction { type Value = BareTradingFunction; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.BareTradingFunction") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.BareTradingFunction") } fn visit_map(self, mut map: V) -> std::result::Result @@ -122,7 +122,7 @@ impl<'de> serde::Deserialize<'de> for BareTradingFunction { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.BareTradingFunction", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.BareTradingFunction", FIELDS, GeneratedVisitor) } } impl serde::Serialize for BatchSwapOutputData { @@ -160,7 +160,7 @@ impl serde::Serialize for BatchSwapOutputData { if self.epoch_starting_height != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.BatchSwapOutputData", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.BatchSwapOutputData", len)?; if let Some(v) = self.delta_1.as_ref() { struct_ser.serialize_field("delta1", v)?; } @@ -270,7 +270,7 @@ impl<'de> serde::Deserialize<'de> for BatchSwapOutputData { type Value = BatchSwapOutputData; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.BatchSwapOutputData") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.BatchSwapOutputData") } fn visit_map(self, mut map: V) -> std::result::Result @@ -361,7 +361,7 @@ impl<'de> serde::Deserialize<'de> for BatchSwapOutputData { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.BatchSwapOutputData", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.BatchSwapOutputData", FIELDS, GeneratedVisitor) } } impl serde::Serialize for DirectedTradingPair { @@ -378,7 +378,7 @@ impl serde::Serialize for DirectedTradingPair { if self.end.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.DirectedTradingPair", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.DirectedTradingPair", len)?; if let Some(v) = self.start.as_ref() { struct_ser.serialize_field("start", v)?; } @@ -438,7 +438,7 @@ impl<'de> serde::Deserialize<'de> for DirectedTradingPair { type Value = DirectedTradingPair; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.DirectedTradingPair") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.DirectedTradingPair") } fn visit_map(self, mut map: V) -> std::result::Result @@ -469,7 +469,7 @@ impl<'de> serde::Deserialize<'de> for DirectedTradingPair { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.DirectedTradingPair", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.DirectedTradingPair", FIELDS, GeneratedVisitor) } } impl serde::Serialize for LpNft { @@ -486,7 +486,7 @@ impl serde::Serialize for LpNft { if self.state.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.LpNft", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.LpNft", len)?; if let Some(v) = self.position_id.as_ref() { struct_ser.serialize_field("positionId", v)?; } @@ -547,7 +547,7 @@ impl<'de> serde::Deserialize<'de> for LpNft { type Value = LpNft; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.LpNft") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.LpNft") } fn visit_map(self, mut map: V) -> std::result::Result @@ -578,7 +578,7 @@ impl<'de> serde::Deserialize<'de> for LpNft { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.LpNft", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.LpNft", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Position { @@ -604,7 +604,7 @@ impl serde::Serialize for Position { if self.close_on_fill { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.Position", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.Position", len)?; if let Some(v) = self.phi.as_ref() { struct_ser.serialize_field("phi", v)?; } @@ -683,7 +683,7 @@ impl<'de> serde::Deserialize<'de> for Position { type Value = Position; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.Position") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.Position") } fn visit_map(self, mut map: V) -> std::result::Result @@ -740,7 +740,7 @@ impl<'de> serde::Deserialize<'de> for Position { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.Position", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.Position", FIELDS, GeneratedVisitor) } } impl serde::Serialize for PositionClose { @@ -754,7 +754,7 @@ impl serde::Serialize for PositionClose { if self.position_id.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.PositionClose", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.PositionClose", len)?; if let Some(v) = self.position_id.as_ref() { struct_ser.serialize_field("positionId", v)?; } @@ -809,7 +809,7 @@ impl<'de> serde::Deserialize<'de> for PositionClose { type Value = PositionClose; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.PositionClose") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.PositionClose") } fn visit_map(self, mut map: V) -> std::result::Result @@ -832,7 +832,7 @@ impl<'de> serde::Deserialize<'de> for PositionClose { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.PositionClose", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.PositionClose", FIELDS, GeneratedVisitor) } } impl serde::Serialize for PositionId { @@ -849,7 +849,7 @@ impl serde::Serialize for PositionId { if !self.alt_bech32m.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.PositionId", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.PositionId", len)?; if !self.inner.is_empty() { struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } @@ -910,7 +910,7 @@ impl<'de> serde::Deserialize<'de> for PositionId { type Value = PositionId; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.PositionId") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.PositionId") } fn visit_map(self, mut map: V) -> std::result::Result @@ -943,7 +943,7 @@ impl<'de> serde::Deserialize<'de> for PositionId { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.PositionId", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.PositionId", FIELDS, GeneratedVisitor) } } impl serde::Serialize for PositionOpen { @@ -957,7 +957,7 @@ impl serde::Serialize for PositionOpen { if self.position.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.PositionOpen", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.PositionOpen", len)?; if let Some(v) = self.position.as_ref() { struct_ser.serialize_field("position", v)?; } @@ -1011,7 +1011,7 @@ impl<'de> serde::Deserialize<'de> for PositionOpen { type Value = PositionOpen; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.PositionOpen") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.PositionOpen") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1034,7 +1034,7 @@ impl<'de> serde::Deserialize<'de> for PositionOpen { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.PositionOpen", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.PositionOpen", FIELDS, GeneratedVisitor) } } impl serde::Serialize for PositionRewardClaim { @@ -1051,7 +1051,7 @@ impl serde::Serialize for PositionRewardClaim { if self.rewards_commitment.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.PositionRewardClaim", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.PositionRewardClaim", len)?; if let Some(v) = self.position_id.as_ref() { struct_ser.serialize_field("positionId", v)?; } @@ -1113,7 +1113,7 @@ impl<'de> serde::Deserialize<'de> for PositionRewardClaim { type Value = PositionRewardClaim; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.PositionRewardClaim") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.PositionRewardClaim") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1144,7 +1144,7 @@ impl<'de> serde::Deserialize<'de> for PositionRewardClaim { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.PositionRewardClaim", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.PositionRewardClaim", FIELDS, GeneratedVisitor) } } impl serde::Serialize for PositionRewardClaimPlan { @@ -1158,7 +1158,7 @@ impl serde::Serialize for PositionRewardClaimPlan { if self.reserves.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.PositionRewardClaimPlan", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.PositionRewardClaimPlan", len)?; if let Some(v) = self.reserves.as_ref() { struct_ser.serialize_field("reserves", v)?; } @@ -1212,7 +1212,7 @@ impl<'de> serde::Deserialize<'de> for PositionRewardClaimPlan { type Value = PositionRewardClaimPlan; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.PositionRewardClaimPlan") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.PositionRewardClaimPlan") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1235,7 +1235,7 @@ impl<'de> serde::Deserialize<'de> for PositionRewardClaimPlan { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.PositionRewardClaimPlan", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.PositionRewardClaimPlan", FIELDS, GeneratedVisitor) } } impl serde::Serialize for PositionState { @@ -1249,7 +1249,7 @@ impl serde::Serialize for PositionState { if self.state != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.PositionState", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.PositionState", len)?; if self.state != 0 { let v = position_state::PositionStateEnum::from_i32(self.state) .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.state)))?; @@ -1305,7 +1305,7 @@ impl<'de> serde::Deserialize<'de> for PositionState { type Value = PositionState; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.PositionState") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.PositionState") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1328,7 +1328,7 @@ impl<'de> serde::Deserialize<'de> for PositionState { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.PositionState", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.PositionState", FIELDS, GeneratedVisitor) } } impl serde::Serialize for position_state::PositionStateEnum { @@ -1427,7 +1427,7 @@ impl serde::Serialize for PositionWithdraw { if self.reserves_commitment.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.PositionWithdraw", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.PositionWithdraw", len)?; if let Some(v) = self.position_id.as_ref() { struct_ser.serialize_field("positionId", v)?; } @@ -1489,7 +1489,7 @@ impl<'de> serde::Deserialize<'de> for PositionWithdraw { type Value = PositionWithdraw; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.PositionWithdraw") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.PositionWithdraw") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1520,7 +1520,7 @@ impl<'de> serde::Deserialize<'de> for PositionWithdraw { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.PositionWithdraw", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.PositionWithdraw", FIELDS, GeneratedVisitor) } } impl serde::Serialize for PositionWithdrawPlan { @@ -1540,7 +1540,7 @@ impl serde::Serialize for PositionWithdrawPlan { if self.pair.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.PositionWithdrawPlan", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.PositionWithdrawPlan", len)?; if let Some(v) = self.reserves.as_ref() { struct_ser.serialize_field("reserves", v)?; } @@ -1607,7 +1607,7 @@ impl<'de> serde::Deserialize<'de> for PositionWithdrawPlan { type Value = PositionWithdrawPlan; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.PositionWithdrawPlan") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.PositionWithdrawPlan") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1646,7 +1646,7 @@ impl<'de> serde::Deserialize<'de> for PositionWithdrawPlan { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.PositionWithdrawPlan", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.PositionWithdrawPlan", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Reserves { @@ -1663,7 +1663,7 @@ impl serde::Serialize for Reserves { if self.r2.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.Reserves", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.Reserves", len)?; if let Some(v) = self.r1.as_ref() { struct_ser.serialize_field("r1", v)?; } @@ -1723,7 +1723,7 @@ impl<'de> serde::Deserialize<'de> for Reserves { type Value = Reserves; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.Reserves") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.Reserves") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1754,7 +1754,7 @@ impl<'de> serde::Deserialize<'de> for Reserves { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.Reserves", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.Reserves", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Swap { @@ -1771,7 +1771,7 @@ impl serde::Serialize for Swap { if self.body.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.Swap", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.Swap", len)?; if let Some(v) = self.proof.as_ref() { struct_ser.serialize_field("proof", v)?; } @@ -1831,7 +1831,7 @@ impl<'de> serde::Deserialize<'de> for Swap { type Value = Swap; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.Swap") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.Swap") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1862,7 +1862,7 @@ impl<'de> serde::Deserialize<'de> for Swap { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.Swap", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.Swap", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapBody { @@ -1888,7 +1888,7 @@ impl serde::Serialize for SwapBody { if self.payload.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapBody", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapBody", len)?; if let Some(v) = self.trading_pair.as_ref() { struct_ser.serialize_field("tradingPair", v)?; } @@ -1970,7 +1970,7 @@ impl<'de> serde::Deserialize<'de> for SwapBody { type Value = SwapBody; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapBody") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapBody") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2025,7 +2025,7 @@ impl<'de> serde::Deserialize<'de> for SwapBody { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapBody", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapBody", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapClaim { @@ -2036,7 +2036,7 @@ impl serde::Serialize for SwapClaim { { use serde::ser::SerializeStruct; let mut len = 0; - if !self.proof.is_empty() { + if self.proof.is_some() { len += 1; } if self.body.is_some() { @@ -2045,9 +2045,9 @@ impl serde::Serialize for SwapClaim { if self.epoch_duration != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapClaim", len)?; - if !self.proof.is_empty() { - struct_ser.serialize_field("proof", pbjson::private::base64::encode(&self.proof).as_str())?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaim", len)?; + if let Some(v) = self.proof.as_ref() { + struct_ser.serialize_field("proof", v)?; } if let Some(v) = self.body.as_ref() { struct_ser.serialize_field("body", v)?; @@ -2112,7 +2112,7 @@ impl<'de> serde::Deserialize<'de> for SwapClaim { type Value = SwapClaim; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapClaim") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapClaim") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2128,9 +2128,7 @@ impl<'de> serde::Deserialize<'de> for SwapClaim { if proof__.is_some() { return Err(serde::de::Error::duplicate_field("proof")); } - proof__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; + proof__ = map.next_value()?; } GeneratedField::Body => { if body__.is_some() { @@ -2149,13 +2147,13 @@ impl<'de> serde::Deserialize<'de> for SwapClaim { } } Ok(SwapClaim { - proof: proof__.unwrap_or_default(), + proof: proof__, body: body__, epoch_duration: epoch_duration__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapClaim", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaim", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapClaimBody { @@ -2181,7 +2179,7 @@ impl serde::Serialize for SwapClaimBody { if self.output_data.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapClaimBody", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimBody", len)?; if let Some(v) = self.nullifier.as_ref() { struct_ser.serialize_field("nullifier", v)?; } @@ -2262,7 +2260,7 @@ impl<'de> serde::Deserialize<'de> for SwapClaimBody { type Value = SwapClaimBody; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapClaimBody") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapClaimBody") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2317,7 +2315,7 @@ impl<'de> serde::Deserialize<'de> for SwapClaimBody { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapClaimBody", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimBody", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapClaimPlan { @@ -2346,7 +2344,7 @@ impl serde::Serialize for SwapClaimPlan { if !self.proof_blinding_s.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapClaimPlan", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimPlan", len)?; if let Some(v) = self.swap_plaintext.as_ref() { struct_ser.serialize_field("swapPlaintext", v)?; } @@ -2435,7 +2433,7 @@ impl<'de> serde::Deserialize<'de> for SwapClaimPlan { type Value = SwapClaimPlan; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapClaimPlan") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapClaimPlan") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2506,7 +2504,7 @@ impl<'de> serde::Deserialize<'de> for SwapClaimPlan { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapClaimPlan", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimPlan", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapClaimView { @@ -2520,7 +2518,7 @@ impl serde::Serialize for SwapClaimView { if self.swap_claim_view.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapClaimView", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimView", len)?; if let Some(v) = self.swap_claim_view.as_ref() { match v { swap_claim_view::SwapClaimView::Visible(v) => { @@ -2584,7 +2582,7 @@ impl<'de> serde::Deserialize<'de> for SwapClaimView { type Value = SwapClaimView; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapClaimView") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapClaimView") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2615,7 +2613,7 @@ impl<'de> serde::Deserialize<'de> for SwapClaimView { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapClaimView", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimView", FIELDS, GeneratedVisitor) } } impl serde::Serialize for swap_claim_view::Opaque { @@ -2629,7 +2627,7 @@ impl serde::Serialize for swap_claim_view::Opaque { if self.swap_claim.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapClaimView.Opaque", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimView.Opaque", len)?; if let Some(v) = self.swap_claim.as_ref() { struct_ser.serialize_field("swapClaim", v)?; } @@ -2684,7 +2682,7 @@ impl<'de> serde::Deserialize<'de> for swap_claim_view::Opaque { type Value = swap_claim_view::Opaque; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapClaimView.Opaque") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapClaimView.Opaque") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2707,7 +2705,7 @@ impl<'de> serde::Deserialize<'de> for swap_claim_view::Opaque { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapClaimView.Opaque", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimView.Opaque", FIELDS, GeneratedVisitor) } } impl serde::Serialize for swap_claim_view::Visible { @@ -2727,7 +2725,7 @@ impl serde::Serialize for swap_claim_view::Visible { if self.output_2.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapClaimView.Visible", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimView.Visible", len)?; if let Some(v) = self.swap_claim.as_ref() { struct_ser.serialize_field("swapClaim", v)?; } @@ -2796,7 +2794,7 @@ impl<'de> serde::Deserialize<'de> for swap_claim_view::Visible { type Value = swap_claim_view::Visible; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapClaimView.Visible") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapClaimView.Visible") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2835,7 +2833,7 @@ impl<'de> serde::Deserialize<'de> for swap_claim_view::Visible { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapClaimView.Visible", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapClaimView.Visible", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapExecution { @@ -2855,7 +2853,7 @@ impl serde::Serialize for SwapExecution { if self.output.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapExecution", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapExecution", len)?; if !self.traces.is_empty() { struct_ser.serialize_field("traces", &self.traces)?; } @@ -2921,7 +2919,7 @@ impl<'de> serde::Deserialize<'de> for SwapExecution { type Value = SwapExecution; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapExecution") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapExecution") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2960,7 +2958,7 @@ impl<'de> serde::Deserialize<'de> for SwapExecution { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapExecution", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapExecution", FIELDS, GeneratedVisitor) } } impl serde::Serialize for swap_execution::Trace { @@ -2974,7 +2972,7 @@ impl serde::Serialize for swap_execution::Trace { if !self.value.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapExecution.Trace", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapExecution.Trace", len)?; if !self.value.is_empty() { struct_ser.serialize_field("value", &self.value)?; } @@ -3028,7 +3026,7 @@ impl<'de> serde::Deserialize<'de> for swap_execution::Trace { type Value = swap_execution::Trace; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapExecution.Trace") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapExecution.Trace") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3051,7 +3049,7 @@ impl<'de> serde::Deserialize<'de> for swap_execution::Trace { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapExecution.Trace", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapExecution.Trace", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapPayload { @@ -3068,7 +3066,7 @@ impl serde::Serialize for SwapPayload { if !self.encrypted_swap.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapPayload", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapPayload", len)?; if let Some(v) = self.commitment.as_ref() { struct_ser.serialize_field("commitment", v)?; } @@ -3129,7 +3127,7 @@ impl<'de> serde::Deserialize<'de> for SwapPayload { type Value = SwapPayload; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapPayload") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapPayload") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3162,7 +3160,7 @@ impl<'de> serde::Deserialize<'de> for SwapPayload { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapPayload", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapPayload", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapPlaintext { @@ -3191,7 +3189,7 @@ impl serde::Serialize for SwapPlaintext { if !self.rseed.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapPlaintext", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapPlaintext", len)?; if let Some(v) = self.trading_pair.as_ref() { struct_ser.serialize_field("tradingPair", v)?; } @@ -3280,7 +3278,7 @@ impl<'de> serde::Deserialize<'de> for SwapPlaintext { type Value = SwapPlaintext; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapPlaintext") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapPlaintext") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3345,7 +3343,7 @@ impl<'de> serde::Deserialize<'de> for SwapPlaintext { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapPlaintext", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapPlaintext", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapPlan { @@ -3368,7 +3366,7 @@ impl serde::Serialize for SwapPlan { if !self.proof_blinding_s.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapPlan", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapPlan", len)?; if let Some(v) = self.swap_plaintext.as_ref() { struct_ser.serialize_field("swapPlaintext", v)?; } @@ -3444,7 +3442,7 @@ impl<'de> serde::Deserialize<'de> for SwapPlan { type Value = SwapPlan; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapPlan") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapPlan") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3497,7 +3495,7 @@ impl<'de> serde::Deserialize<'de> for SwapPlan { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapPlan", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapPlan", FIELDS, GeneratedVisitor) } } impl serde::Serialize for SwapView { @@ -3511,7 +3509,7 @@ impl serde::Serialize for SwapView { if self.swap_view.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapView", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapView", len)?; if let Some(v) = self.swap_view.as_ref() { match v { swap_view::SwapView::Visible(v) => { @@ -3575,7 +3573,7 @@ impl<'de> serde::Deserialize<'de> for SwapView { type Value = SwapView; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapView") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapView") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3606,7 +3604,7 @@ impl<'de> serde::Deserialize<'de> for SwapView { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapView", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapView", FIELDS, GeneratedVisitor) } } impl serde::Serialize for swap_view::Opaque { @@ -3620,7 +3618,7 @@ impl serde::Serialize for swap_view::Opaque { if self.swap.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapView.Opaque", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapView.Opaque", len)?; if let Some(v) = self.swap.as_ref() { struct_ser.serialize_field("swap", v)?; } @@ -3674,7 +3672,7 @@ impl<'de> serde::Deserialize<'de> for swap_view::Opaque { type Value = swap_view::Opaque; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapView.Opaque") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapView.Opaque") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3697,7 +3695,7 @@ impl<'de> serde::Deserialize<'de> for swap_view::Opaque { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapView.Opaque", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapView.Opaque", FIELDS, GeneratedVisitor) } } impl serde::Serialize for swap_view::Visible { @@ -3714,7 +3712,7 @@ impl serde::Serialize for swap_view::Visible { if self.swap_plaintext.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.SwapView.Visible", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.SwapView.Visible", len)?; if let Some(v) = self.swap.as_ref() { struct_ser.serialize_field("swap", v)?; } @@ -3775,7 +3773,7 @@ impl<'de> serde::Deserialize<'de> for swap_view::Visible { type Value = swap_view::Visible; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.SwapView.Visible") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.SwapView.Visible") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3806,7 +3804,7 @@ impl<'de> serde::Deserialize<'de> for swap_view::Visible { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.SwapView.Visible", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.SwapView.Visible", FIELDS, GeneratedVisitor) } } impl serde::Serialize for TradingFunction { @@ -3823,7 +3821,7 @@ impl serde::Serialize for TradingFunction { if self.pair.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.TradingFunction", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.TradingFunction", len)?; if let Some(v) = self.component.as_ref() { struct_ser.serialize_field("component", v)?; } @@ -3883,7 +3881,7 @@ impl<'de> serde::Deserialize<'de> for TradingFunction { type Value = TradingFunction; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.TradingFunction") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.TradingFunction") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3914,7 +3912,7 @@ impl<'de> serde::Deserialize<'de> for TradingFunction { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.TradingFunction", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.TradingFunction", FIELDS, GeneratedVisitor) } } impl serde::Serialize for TradingPair { @@ -3931,7 +3929,7 @@ impl serde::Serialize for TradingPair { if self.asset_2.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.dex.v1alpha1.TradingPair", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.TradingPair", len)?; if let Some(v) = self.asset_1.as_ref() { struct_ser.serialize_field("asset1", v)?; } @@ -3993,7 +3991,7 @@ impl<'de> serde::Deserialize<'de> for TradingPair { type Value = TradingPair; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.dex.v1alpha1.TradingPair") + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.TradingPair") } fn visit_map(self, mut map: V) -> std::result::Result @@ -4024,6 +4022,192 @@ impl<'de> serde::Deserialize<'de> for TradingPair { }) } } - deserializer.deserialize_struct("penumbra.core.dex.v1alpha1.TradingPair", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.TradingPair", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ZkSwapClaimProof { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.ZKSwapClaimProof", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ZkSwapClaimProof { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ZkSwapClaimProof; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.ZKSwapClaimProof") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(ZkSwapClaimProof { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.ZKSwapClaimProof", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ZkSwapProof { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.dex.v1alpha1.ZKSwapProof", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ZkSwapProof { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ZkSwapProof; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.dex.v1alpha1.ZKSwapProof") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(ZkSwapProof { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.dex.v1alpha1.ZKSwapProof", FIELDS, GeneratedVisitor) } } diff --git a/crates/proto/src/gen/penumbra.core.component.fee.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.fee.v1alpha1.rs new file mode 100644 index 0000000000..d7eb0daafd --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.component.fee.v1alpha1.rs @@ -0,0 +1,12 @@ +/// Specifies fees paid by a transaction. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Fee { + /// The amount of the token used to pay fees. + #[prost(message, optional, tag = "1")] + pub amount: ::core::option::Option, + /// If present, the asset ID of the token used to pay fees. + /// If absent, specifies the staking token implicitly. + #[prost(message, optional, tag = "2")] + pub asset_id: ::core::option::Option, +} diff --git a/crates/proto/src/gen/penumbra.core.component.fee.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.fee.v1alpha1.serde.rs new file mode 100644 index 0000000000..733bbb3286 --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.component.fee.v1alpha1.serde.rs @@ -0,0 +1,109 @@ +impl serde::Serialize for Fee { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.amount.is_some() { + len += 1; + } + if self.asset_id.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.fee.v1alpha1.Fee", len)?; + if let Some(v) = self.amount.as_ref() { + struct_ser.serialize_field("amount", v)?; + } + if let Some(v) = self.asset_id.as_ref() { + struct_ser.serialize_field("assetId", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Fee { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "amount", + "asset_id", + "assetId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Amount, + AssetId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "amount" => Ok(GeneratedField::Amount), + "assetId" | "asset_id" => Ok(GeneratedField::AssetId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Fee; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.fee.v1alpha1.Fee") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut amount__ = None; + let mut asset_id__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Amount => { + if amount__.is_some() { + return Err(serde::de::Error::duplicate_field("amount")); + } + amount__ = map.next_value()?; + } + GeneratedField::AssetId => { + if asset_id__.is_some() { + return Err(serde::de::Error::duplicate_field("assetId")); + } + asset_id__ = map.next_value()?; + } + } + } + Ok(Fee { + amount: amount__, + asset_id: asset_id__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.fee.v1alpha1.Fee", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.core.governance.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.rs similarity index 84% rename from crates/proto/src/gen/penumbra.core.governance.v1alpha1.rs rename to crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.rs index 3a3c705244..d152aeb0b8 100644 --- a/crates/proto/src/gen/penumbra.core.governance.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.rs @@ -1,3 +1,10 @@ +/// A Penumbra ZK delegator vote proof. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ZkDelegatorVoteProof { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct ProposalSubmit { @@ -6,7 +13,9 @@ 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, + pub deposit_amount: ::core::option::Option< + super::super::super::num::v1alpha1::Amount, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -26,7 +35,9 @@ pub struct ProposalDepositClaim { pub proposal: u64, /// The expected deposit amount. #[prost(message, optional, tag = "2")] - pub deposit_amount: ::core::option::Option, + pub deposit_amount: ::core::option::Option< + super::super::super::num::v1alpha1::Amount, + >, /// The outcome of the proposal. #[prost(message, optional, tag = "3")] pub outcome: ::core::option::Option, @@ -40,7 +51,7 @@ pub struct ValidatorVote { /// The vote authorization signature is authorizing data. #[prost(message, optional, tag = "2")] pub auth_sig: ::core::option::Option< - super::super::crypto::v1alpha1::SpendAuthSignature, + super::super::super::super::crypto::decaf377_rdsa::v1alpha1::SpendAuthSignature, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -55,12 +66,12 @@ pub struct ValidatorVoteBody { /// The validator identity. #[prost(message, optional, tag = "3")] pub identity_key: ::core::option::Option< - super::super::crypto::v1alpha1::IdentityKey, + super::super::super::keys::v1alpha1::IdentityKey, >, /// The validator governance key. #[prost(message, optional, tag = "4")] pub governance_key: ::core::option::Option< - super::super::crypto::v1alpha1::GovernanceKey, + super::super::super::keys::v1alpha1::GovernanceKey, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -72,13 +83,11 @@ pub struct DelegatorVote { /// The vote authorization signature is authorizing data. #[prost(message, optional, tag = "2")] pub auth_sig: ::core::option::Option< - super::super::crypto::v1alpha1::SpendAuthSignature, + super::super::super::super::crypto::decaf377_rdsa::v1alpha1::SpendAuthSignature, >, /// The vote proof is authorizing data. #[prost(message, optional, tag = "3")] - pub proof: ::core::option::Option< - super::super::crypto::v1alpha1::ZkDelegatorVoteProof, - >, + pub proof: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -94,10 +103,12 @@ pub struct DelegatorVoteBody { pub vote: ::core::option::Option, /// The value of the delegation note. #[prost(message, optional, tag = "4")] - pub value: ::core::option::Option, + 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, + pub unbonded_amount: ::core::option::Option< + super::super::super::num::v1alpha1::Amount, + >, /// The nullifier of the input note. #[prost(bytes = "vec", tag = "6")] pub nullifier: ::prost::alloc::vec::Vec, @@ -107,6 +118,39 @@ pub struct DelegatorVoteBody { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] +pub struct DelegatorVoteView { + #[prost(oneof = "delegator_vote_view::DelegatorVote", tags = "1, 2")] + pub delegator_vote: ::core::option::Option, +} +/// Nested message and enum types in `DelegatorVoteView`. +pub mod delegator_vote_view { + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Visible { + #[prost(message, optional, tag = "1")] + pub delegator_vote: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub note: ::core::option::Option< + super::super::super::shielded_pool::v1alpha1::NoteView, + >, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Opaque { + #[prost(message, optional, tag = "1")] + pub delegator_vote: ::core::option::Option, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum DelegatorVote { + #[prost(message, tag = "1")] + Visible(Visible), + #[prost(message, tag = "2")] + Opaque(Opaque), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] pub struct DelegatorVotePlan { /// The proposal to vote on. #[prost(uint64, tag = "1")] @@ -119,13 +163,15 @@ pub struct DelegatorVotePlan { pub vote: ::core::option::Option, /// The delegation note to prove that we can vote. #[prost(message, optional, tag = "4")] - pub staked_note: ::core::option::Option, + pub staked_note: ::core::option::Option, /// The position of that delegation note. #[prost(uint64, tag = "5")] pub staked_note_position: u64, /// The unbonded amount equivalent to the delegation note. #[prost(message, optional, tag = "6")] - pub unbonded_amount: ::core::option::Option, + pub unbonded_amount: ::core::option::Option< + super::super::super::num::v1alpha1::Amount, + >, /// The randomizer to use for the proof of spend capability. #[prost(bytes = "vec", tag = "7")] pub randomizer: ::prost::alloc::vec::Vec, @@ -141,24 +187,24 @@ pub struct DelegatorVotePlan { pub struct DaoDeposit { /// The value to deposit into the DAO. #[prost(message, optional, tag = "1")] - pub value: ::core::option::Option, + pub value: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DaoSpend { /// The value to spend from the DAO. #[prost(message, optional, tag = "1")] - pub value: ::core::option::Option, + pub value: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct DaoOutput { /// The value to output from the DAO. #[prost(message, optional, tag = "1")] - pub value: ::core::option::Option, + pub value: ::core::option::Option, /// The address to send the output to. #[prost(message, optional, tag = "2")] - pub address: ::core::option::Option, + pub address: ::core::option::Option, } /// A vote on a proposal. #[allow(clippy::derive_partial_eq_without_eq)] diff --git a/crates/proto/src/gen/penumbra.core.governance.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.serde.rs similarity index 83% rename from crates/proto/src/gen/penumbra.core.governance.v1alpha1.serde.rs rename to crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.serde.rs index 51c15d9f99..8dafa4f818 100644 --- a/crates/proto/src/gen/penumbra.core.governance.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.governance.v1alpha1.serde.rs @@ -9,7 +9,7 @@ impl serde::Serialize for DaoDeposit { if self.value.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.DaoDeposit", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DaoDeposit", len)?; if let Some(v) = self.value.as_ref() { struct_ser.serialize_field("value", v)?; } @@ -63,7 +63,7 @@ impl<'de> serde::Deserialize<'de> for DaoDeposit { type Value = DaoDeposit; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.DaoDeposit") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DaoDeposit") } fn visit_map(self, mut map: V) -> std::result::Result @@ -86,7 +86,7 @@ impl<'de> serde::Deserialize<'de> for DaoDeposit { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.DaoDeposit", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DaoDeposit", FIELDS, GeneratedVisitor) } } impl serde::Serialize for DaoOutput { @@ -103,7 +103,7 @@ impl serde::Serialize for DaoOutput { if self.address.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.DaoOutput", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DaoOutput", len)?; if let Some(v) = self.value.as_ref() { struct_ser.serialize_field("value", v)?; } @@ -163,7 +163,7 @@ impl<'de> serde::Deserialize<'de> for DaoOutput { type Value = DaoOutput; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.DaoOutput") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DaoOutput") } fn visit_map(self, mut map: V) -> std::result::Result @@ -194,7 +194,7 @@ impl<'de> serde::Deserialize<'de> for DaoOutput { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.DaoOutput", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DaoOutput", FIELDS, GeneratedVisitor) } } impl serde::Serialize for DaoSpend { @@ -208,7 +208,7 @@ impl serde::Serialize for DaoSpend { if self.value.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.DaoSpend", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DaoSpend", len)?; if let Some(v) = self.value.as_ref() { struct_ser.serialize_field("value", v)?; } @@ -262,7 +262,7 @@ impl<'de> serde::Deserialize<'de> for DaoSpend { type Value = DaoSpend; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.DaoSpend") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DaoSpend") } fn visit_map(self, mut map: V) -> std::result::Result @@ -285,7 +285,7 @@ impl<'de> serde::Deserialize<'de> for DaoSpend { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.DaoSpend", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DaoSpend", FIELDS, GeneratedVisitor) } } impl serde::Serialize for DelegatorVote { @@ -305,7 +305,7 @@ impl serde::Serialize for DelegatorVote { if self.proof.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.DelegatorVote", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVote", len)?; if let Some(v) = self.body.as_ref() { struct_ser.serialize_field("body", v)?; } @@ -372,7 +372,7 @@ impl<'de> serde::Deserialize<'de> for DelegatorVote { type Value = DelegatorVote; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.DelegatorVote") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DelegatorVote") } fn visit_map(self, mut map: V) -> std::result::Result @@ -411,7 +411,7 @@ impl<'de> serde::Deserialize<'de> for DelegatorVote { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.DelegatorVote", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVote", FIELDS, GeneratedVisitor) } } impl serde::Serialize for DelegatorVoteBody { @@ -443,7 +443,7 @@ impl serde::Serialize for DelegatorVoteBody { if !self.rk.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.DelegatorVoteBody", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVoteBody", len)?; if self.proposal != 0 { struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } @@ -535,7 +535,7 @@ impl<'de> serde::Deserialize<'de> for DelegatorVoteBody { type Value = DelegatorVoteBody; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.DelegatorVoteBody") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DelegatorVoteBody") } fn visit_map(self, mut map: V) -> std::result::Result @@ -614,7 +614,7 @@ impl<'de> serde::Deserialize<'de> for DelegatorVoteBody { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.DelegatorVoteBody", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVoteBody", FIELDS, GeneratedVisitor) } } impl serde::Serialize for DelegatorVotePlan { @@ -652,7 +652,7 @@ impl serde::Serialize for DelegatorVotePlan { if !self.proof_blinding_s.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.DelegatorVotePlan", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVotePlan", len)?; if self.proposal != 0 { struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } @@ -760,7 +760,7 @@ impl<'de> serde::Deserialize<'de> for DelegatorVotePlan { type Value = DelegatorVotePlan; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.DelegatorVotePlan") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DelegatorVotePlan") } fn visit_map(self, mut map: V) -> std::result::Result @@ -859,7 +859,317 @@ impl<'de> serde::Deserialize<'de> for DelegatorVotePlan { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.DelegatorVotePlan", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVotePlan", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for DelegatorVoteView { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.delegator_vote.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVoteView", len)?; + if let Some(v) = self.delegator_vote.as_ref() { + match v { + delegator_vote_view::DelegatorVote::Visible(v) => { + struct_ser.serialize_field("visible", v)?; + } + delegator_vote_view::DelegatorVote::Opaque(v) => { + struct_ser.serialize_field("opaque", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for DelegatorVoteView { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "visible", + "opaque", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Visible, + Opaque, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "visible" => Ok(GeneratedField::Visible), + "opaque" => Ok(GeneratedField::Opaque), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = DelegatorVoteView; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DelegatorVoteView") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut delegator_vote__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Visible => { + if delegator_vote__.is_some() { + return Err(serde::de::Error::duplicate_field("visible")); + } + delegator_vote__ = map.next_value::<::std::option::Option<_>>()?.map(delegator_vote_view::DelegatorVote::Visible) +; + } + GeneratedField::Opaque => { + if delegator_vote__.is_some() { + return Err(serde::de::Error::duplicate_field("opaque")); + } + delegator_vote__ = map.next_value::<::std::option::Option<_>>()?.map(delegator_vote_view::DelegatorVote::Opaque) +; + } + } + } + Ok(DelegatorVoteView { + delegator_vote: delegator_vote__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVoteView", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for delegator_vote_view::Opaque { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.delegator_vote.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Opaque", len)?; + if let Some(v) = self.delegator_vote.as_ref() { + struct_ser.serialize_field("delegatorVote", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for delegator_vote_view::Opaque { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "delegator_vote", + "delegatorVote", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + DelegatorVote, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "delegatorVote" | "delegator_vote" => Ok(GeneratedField::DelegatorVote), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = delegator_vote_view::Opaque; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Opaque") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut delegator_vote__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::DelegatorVote => { + if delegator_vote__.is_some() { + return Err(serde::de::Error::duplicate_field("delegatorVote")); + } + delegator_vote__ = map.next_value()?; + } + } + } + Ok(delegator_vote_view::Opaque { + delegator_vote: delegator_vote__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Opaque", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for delegator_vote_view::Visible { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.delegator_vote.is_some() { + len += 1; + } + if self.note.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Visible", len)?; + if let Some(v) = self.delegator_vote.as_ref() { + struct_ser.serialize_field("delegatorVote", v)?; + } + if let Some(v) = self.note.as_ref() { + struct_ser.serialize_field("note", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for delegator_vote_view::Visible { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "delegator_vote", + "delegatorVote", + "note", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + DelegatorVote, + Note, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "delegatorVote" | "delegator_vote" => Ok(GeneratedField::DelegatorVote), + "note" => Ok(GeneratedField::Note), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = delegator_vote_view::Visible; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Visible") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut delegator_vote__ = None; + let mut note__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::DelegatorVote => { + if delegator_vote__.is_some() { + return Err(serde::de::Error::duplicate_field("delegatorVote")); + } + delegator_vote__ = map.next_value()?; + } + GeneratedField::Note => { + if note__.is_some() { + return Err(serde::de::Error::duplicate_field("note")); + } + note__ = map.next_value()?; + } + } + } + Ok(delegator_vote_view::Visible { + delegator_vote: delegator_vote__, + note: note__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Visible", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Proposal { @@ -894,7 +1204,7 @@ impl serde::Serialize for Proposal { if self.upgrade_plan.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.Proposal", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Proposal", len)?; if self.id != 0 { struct_ser.serialize_field("id", ToString::to_string(&self.id).as_str())?; } @@ -993,7 +1303,7 @@ impl<'de> serde::Deserialize<'de> for Proposal { type Value = Proposal; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.Proposal") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Proposal") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1074,7 +1384,7 @@ impl<'de> serde::Deserialize<'de> for Proposal { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.Proposal", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Proposal", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal::DaoSpend { @@ -1088,7 +1398,7 @@ impl serde::Serialize for proposal::DaoSpend { if self.transaction_plan.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.Proposal.DaoSpend", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend", len)?; if let Some(v) = self.transaction_plan.as_ref() { struct_ser.serialize_field("transactionPlan", v)?; } @@ -1143,7 +1453,7 @@ impl<'de> serde::Deserialize<'de> for proposal::DaoSpend { type Value = proposal::DaoSpend; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.Proposal.DaoSpend") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1166,7 +1476,7 @@ impl<'de> serde::Deserialize<'de> for proposal::DaoSpend { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.Proposal.DaoSpend", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal::Emergency { @@ -1180,7 +1490,7 @@ impl serde::Serialize for proposal::Emergency { if self.halt_chain { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.Proposal.Emergency", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.Emergency", len)?; if self.halt_chain { struct_ser.serialize_field("haltChain", &self.halt_chain)?; } @@ -1235,7 +1545,7 @@ impl<'de> serde::Deserialize<'de> for proposal::Emergency { type Value = proposal::Emergency; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.Proposal.Emergency") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Proposal.Emergency") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1258,7 +1568,7 @@ impl<'de> serde::Deserialize<'de> for proposal::Emergency { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.Proposal.Emergency", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.Emergency", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal::ParameterChange { @@ -1275,7 +1585,7 @@ impl serde::Serialize for proposal::ParameterChange { if self.new_parameters.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.Proposal.ParameterChange", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange", len)?; if let Some(v) = self.old_parameters.as_ref() { struct_ser.serialize_field("oldParameters", v)?; } @@ -1337,7 +1647,7 @@ impl<'de> serde::Deserialize<'de> for proposal::ParameterChange { type Value = proposal::ParameterChange; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.Proposal.ParameterChange") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1368,7 +1678,7 @@ impl<'de> serde::Deserialize<'de> for proposal::ParameterChange { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.Proposal.ParameterChange", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal::Signaling { @@ -1382,7 +1692,7 @@ impl serde::Serialize for proposal::Signaling { if !self.commit.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.Proposal.Signaling", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.Signaling", len)?; if !self.commit.is_empty() { struct_ser.serialize_field("commit", &self.commit)?; } @@ -1436,7 +1746,7 @@ impl<'de> serde::Deserialize<'de> for proposal::Signaling { type Value = proposal::Signaling; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.Proposal.Signaling") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Proposal.Signaling") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1459,7 +1769,7 @@ impl<'de> serde::Deserialize<'de> for proposal::Signaling { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.Proposal.Signaling", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.Signaling", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal::UpgradePlan { @@ -1473,7 +1783,7 @@ impl serde::Serialize for proposal::UpgradePlan { if self.height != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.Proposal.UpgradePlan", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.UpgradePlan", len)?; if self.height != 0 { struct_ser.serialize_field("height", ToString::to_string(&self.height).as_str())?; } @@ -1527,7 +1837,7 @@ impl<'de> serde::Deserialize<'de> for proposal::UpgradePlan { type Value = proposal::UpgradePlan; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.Proposal.UpgradePlan") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Proposal.UpgradePlan") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1552,7 +1862,7 @@ impl<'de> serde::Deserialize<'de> for proposal::UpgradePlan { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.Proposal.UpgradePlan", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Proposal.UpgradePlan", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ProposalDepositClaim { @@ -1572,7 +1882,7 @@ impl serde::Serialize for ProposalDepositClaim { if self.outcome.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalDepositClaim", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalDepositClaim", len)?; if self.proposal != 0 { struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } @@ -1639,7 +1949,7 @@ impl<'de> serde::Deserialize<'de> for ProposalDepositClaim { type Value = ProposalDepositClaim; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalDepositClaim") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalDepositClaim") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1680,7 +1990,7 @@ impl<'de> serde::Deserialize<'de> for ProposalDepositClaim { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalDepositClaim", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalDepositClaim", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ProposalOutcome { @@ -1694,7 +2004,7 @@ impl serde::Serialize for ProposalOutcome { if self.outcome.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome", len)?; if let Some(v) = self.outcome.as_ref() { match v { proposal_outcome::Outcome::Passed(v) => { @@ -1764,7 +2074,7 @@ impl<'de> serde::Deserialize<'de> for ProposalOutcome { type Value = ProposalOutcome; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalOutcome") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalOutcome") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1802,7 +2112,7 @@ impl<'de> serde::Deserialize<'de> for ProposalOutcome { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal_outcome::Failed { @@ -1816,7 +2126,7 @@ impl serde::Serialize for proposal_outcome::Failed { if self.withdrawn.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome.Failed", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome.Failed", len)?; if let Some(v) = self.withdrawn.as_ref() { struct_ser.serialize_field("withdrawn", v)?; } @@ -1870,7 +2180,7 @@ impl<'de> serde::Deserialize<'de> for proposal_outcome::Failed { type Value = proposal_outcome::Failed; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalOutcome.Failed") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalOutcome.Failed") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1893,7 +2203,7 @@ impl<'de> serde::Deserialize<'de> for proposal_outcome::Failed { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome.Failed", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome.Failed", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal_outcome::Passed { @@ -1904,7 +2214,7 @@ impl serde::Serialize for proposal_outcome::Passed { { use serde::ser::SerializeStruct; let len = 0; - let struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome.Passed", len)?; + let struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome.Passed", len)?; struct_ser.end() } } @@ -1950,7 +2260,7 @@ impl<'de> serde::Deserialize<'de> for proposal_outcome::Passed { type Value = proposal_outcome::Passed; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalOutcome.Passed") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalOutcome.Passed") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1964,7 +2274,7 @@ impl<'de> serde::Deserialize<'de> for proposal_outcome::Passed { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome.Passed", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome.Passed", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal_outcome::Slashed { @@ -1978,7 +2288,7 @@ impl serde::Serialize for proposal_outcome::Slashed { if self.withdrawn.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome.Slashed", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome.Slashed", len)?; if let Some(v) = self.withdrawn.as_ref() { struct_ser.serialize_field("withdrawn", v)?; } @@ -2032,7 +2342,7 @@ impl<'de> serde::Deserialize<'de> for proposal_outcome::Slashed { type Value = proposal_outcome::Slashed; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalOutcome.Slashed") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalOutcome.Slashed") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2055,7 +2365,7 @@ impl<'de> serde::Deserialize<'de> for proposal_outcome::Slashed { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome.Slashed", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome.Slashed", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal_outcome::Withdrawn { @@ -2069,7 +2379,7 @@ impl serde::Serialize for proposal_outcome::Withdrawn { if !self.reason.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome.Withdrawn", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome.Withdrawn", len)?; if !self.reason.is_empty() { struct_ser.serialize_field("reason", &self.reason)?; } @@ -2123,7 +2433,7 @@ impl<'de> serde::Deserialize<'de> for proposal_outcome::Withdrawn { type Value = proposal_outcome::Withdrawn; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalOutcome.Withdrawn") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalOutcome.Withdrawn") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2146,7 +2456,7 @@ impl<'de> serde::Deserialize<'de> for proposal_outcome::Withdrawn { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalOutcome.Withdrawn", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalOutcome.Withdrawn", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ProposalState { @@ -2160,7 +2470,7 @@ impl serde::Serialize for ProposalState { if self.state.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalState", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState", len)?; if let Some(v) = self.state.as_ref() { match v { proposal_state::State::Voting(v) => { @@ -2236,7 +2546,7 @@ impl<'de> serde::Deserialize<'de> for ProposalState { type Value = ProposalState; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalState") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalState") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2281,7 +2591,7 @@ impl<'de> serde::Deserialize<'de> for ProposalState { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalState", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal_state::Claimed { @@ -2295,7 +2605,7 @@ impl serde::Serialize for proposal_state::Claimed { if self.outcome.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalState.Claimed", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState.Claimed", len)?; if let Some(v) = self.outcome.as_ref() { struct_ser.serialize_field("outcome", v)?; } @@ -2349,7 +2659,7 @@ impl<'de> serde::Deserialize<'de> for proposal_state::Claimed { type Value = proposal_state::Claimed; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalState.Claimed") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalState.Claimed") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2372,7 +2682,7 @@ impl<'de> serde::Deserialize<'de> for proposal_state::Claimed { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalState.Claimed", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState.Claimed", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal_state::Finished { @@ -2386,7 +2696,7 @@ impl serde::Serialize for proposal_state::Finished { if self.outcome.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalState.Finished", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState.Finished", len)?; if let Some(v) = self.outcome.as_ref() { struct_ser.serialize_field("outcome", v)?; } @@ -2440,7 +2750,7 @@ impl<'de> serde::Deserialize<'de> for proposal_state::Finished { type Value = proposal_state::Finished; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalState.Finished") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalState.Finished") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2463,7 +2773,7 @@ impl<'de> serde::Deserialize<'de> for proposal_state::Finished { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalState.Finished", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState.Finished", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal_state::Voting { @@ -2474,7 +2784,7 @@ impl serde::Serialize for proposal_state::Voting { { use serde::ser::SerializeStruct; let len = 0; - let struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalState.Voting", len)?; + let struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState.Voting", len)?; struct_ser.end() } } @@ -2520,7 +2830,7 @@ impl<'de> serde::Deserialize<'de> for proposal_state::Voting { type Value = proposal_state::Voting; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalState.Voting") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalState.Voting") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2534,7 +2844,7 @@ impl<'de> serde::Deserialize<'de> for proposal_state::Voting { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalState.Voting", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState.Voting", FIELDS, GeneratedVisitor) } } impl serde::Serialize for proposal_state::Withdrawn { @@ -2548,7 +2858,7 @@ impl serde::Serialize for proposal_state::Withdrawn { if !self.reason.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalState.Withdrawn", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState.Withdrawn", len)?; if !self.reason.is_empty() { struct_ser.serialize_field("reason", &self.reason)?; } @@ -2602,7 +2912,7 @@ impl<'de> serde::Deserialize<'de> for proposal_state::Withdrawn { type Value = proposal_state::Withdrawn; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalState.Withdrawn") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalState.Withdrawn") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2625,7 +2935,7 @@ impl<'de> serde::Deserialize<'de> for proposal_state::Withdrawn { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalState.Withdrawn", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalState.Withdrawn", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ProposalSubmit { @@ -2642,7 +2952,7 @@ impl serde::Serialize for ProposalSubmit { if self.deposit_amount.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalSubmit", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalSubmit", len)?; if let Some(v) = self.proposal.as_ref() { struct_ser.serialize_field("proposal", v)?; } @@ -2703,7 +3013,7 @@ impl<'de> serde::Deserialize<'de> for ProposalSubmit { type Value = ProposalSubmit; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalSubmit") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalSubmit") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2734,7 +3044,7 @@ impl<'de> serde::Deserialize<'de> for ProposalSubmit { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalSubmit", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalSubmit", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ProposalWithdraw { @@ -2751,7 +3061,7 @@ impl serde::Serialize for ProposalWithdraw { if !self.reason.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ProposalWithdraw", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ProposalWithdraw", len)?; if self.proposal != 0 { struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } @@ -2811,7 +3121,7 @@ impl<'de> serde::Deserialize<'de> for ProposalWithdraw { type Value = ProposalWithdraw; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ProposalWithdraw") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ProposalWithdraw") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2844,7 +3154,7 @@ impl<'de> serde::Deserialize<'de> for ProposalWithdraw { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ProposalWithdraw", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ProposalWithdraw", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Tally { @@ -2864,7 +3174,7 @@ impl serde::Serialize for Tally { if self.abstain != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.Tally", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Tally", len)?; if self.yes != 0 { struct_ser.serialize_field("yes", ToString::to_string(&self.yes).as_str())?; } @@ -2930,7 +3240,7 @@ impl<'de> serde::Deserialize<'de> for Tally { type Value = Tally; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.Tally") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Tally") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2975,7 +3285,7 @@ impl<'de> serde::Deserialize<'de> for Tally { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.Tally", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Tally", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ValidatorVote { @@ -2992,7 +3302,7 @@ impl serde::Serialize for ValidatorVote { if self.auth_sig.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ValidatorVote", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ValidatorVote", len)?; if let Some(v) = self.body.as_ref() { struct_ser.serialize_field("body", v)?; } @@ -3053,7 +3363,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorVote { type Value = ValidatorVote; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ValidatorVote") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ValidatorVote") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3084,7 +3394,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorVote { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ValidatorVote", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ValidatorVote", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ValidatorVoteBody { @@ -3107,7 +3417,7 @@ impl serde::Serialize for ValidatorVoteBody { if self.governance_key.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.ValidatorVoteBody", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ValidatorVoteBody", len)?; if self.proposal != 0 { struct_ser.serialize_field("proposal", ToString::to_string(&self.proposal).as_str())?; } @@ -3181,7 +3491,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorVoteBody { type Value = ValidatorVoteBody; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.ValidatorVoteBody") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ValidatorVoteBody") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3230,7 +3540,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorVoteBody { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.ValidatorVoteBody", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ValidatorVoteBody", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Vote { @@ -3244,7 +3554,7 @@ impl serde::Serialize for Vote { if self.vote != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.governance.v1alpha1.Vote", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.Vote", len)?; if self.vote != 0 { let v = vote::Vote::from_i32(self.vote) .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.vote)))?; @@ -3300,7 +3610,7 @@ impl<'de> serde::Deserialize<'de> for Vote { type Value = Vote; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.governance.v1alpha1.Vote") + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.Vote") } fn visit_map(self, mut map: V) -> std::result::Result @@ -3323,7 +3633,7 @@ impl<'de> serde::Deserialize<'de> for Vote { }) } } - deserializer.deserialize_struct("penumbra.core.governance.v1alpha1.Vote", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.Vote", FIELDS, GeneratedVisitor) } } impl serde::Serialize for vote::Vote { @@ -3405,3 +3715,96 @@ impl<'de> serde::Deserialize<'de> for vote::Vote { deserializer.deserialize_any(GeneratedVisitor) } } +impl serde::Serialize for ZkDelegatorVoteProof { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.governance.v1alpha1.ZKDelegatorVoteProof", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ZkDelegatorVoteProof { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ZkDelegatorVoteProof; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.governance.v1alpha1.ZKDelegatorVoteProof") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(ZkDelegatorVoteProof { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.governance.v1alpha1.ZKDelegatorVoteProof", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.core.ibc.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.ibc.v1alpha1.rs similarity index 71% rename from crates/proto/src/gen/penumbra.core.ibc.v1alpha1.rs rename to crates/proto/src/gen/penumbra.core.component.ibc.v1alpha1.rs index a96ee9305d..514a2862e6 100644 --- a/crates/proto/src/gen/penumbra.core.ibc.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.component.ibc.v1alpha1.rs @@ -1,29 +1,6 @@ #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IbcAction { - /// - /// oneof action { - /// .ibc.core.connection.v1.MsgConnectionOpenInit connection_open_init = 1; - /// .ibc.core.connection.v1.MsgConnectionOpenTry connection_open_try = 2; - /// .ibc.core.connection.v1.MsgConnectionOpenAck connection_open_ack = 3; - /// .ibc.core.connection.v1.MsgConnectionOpenConfirm connection_open_confirm = 4; - /// - /// .ibc.core.channel.v1.MsgChannelOpenInit channel_open_init = 5; - /// .ibc.core.channel.v1.MsgChannelOpenTry channel_open_try = 6; - /// .ibc.core.channel.v1.MsgChannelOpenAck channel_open_ack = 7; - /// .ibc.core.channel.v1.MsgChannelOpenConfirm channel_open_confirm = 8; - /// .ibc.core.channel.v1.MsgChannelCloseInit channel_close_init = 9; - /// .ibc.core.channel.v1.MsgChannelCloseConfirm channel_close_confirm = 10; - /// - /// .ibc.core.channel.v1.MsgRecvPacket recv_packet = 11; - /// .ibc.core.channel.v1.MsgTimeout timeout = 12; - /// .ibc.core.channel.v1.MsgAcknowledgement acknowledgement = 13; - /// - /// .ibc.core.client.v1.MsgCreateClient create_client = 14; - /// .ibc.core.client.v1.MsgUpdateClient update_client = 15; - /// .ibc.core.client.v1.MsgUpgradeClient upgrade_client = 16; - /// .ibc.core.client.v1.MsgSubmitMisbehaviour submit_misbehaviour = 17; - /// } #[prost(message, optional, tag = "1")] pub raw_action: ::core::option::Option<::pbjson_types::Any>, } @@ -46,20 +23,23 @@ pub struct FungibleTokenPacketData { #[prost(string, tag = "4")] pub receiver: ::prost::alloc::string::String, } +/// A Penumbra transaction action requesting an ICS20 transfer. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Ics20Withdrawal { #[prost(message, optional, tag = "1")] - pub amount: ::core::option::Option, + pub amount: ::core::option::Option, #[prost(message, optional, tag = "2")] - pub denom: ::core::option::Option, + pub denom: ::core::option::Option, /// the address on the destination chain to send the transfer to #[prost(string, tag = "3")] pub destination_chain_address: ::prost::alloc::string::String, /// a "sender" penumbra address to use to return funds from this withdrawal. /// this should be an ephemeral address #[prost(message, optional, tag = "4")] - pub return_address: ::core::option::Option, + pub return_address: ::core::option::Option< + super::super::super::keys::v1alpha1::Address, + >, /// The height on the counterparty chain at which this transfer expires, and /// funds are sent back to the return address. #[prost(message, optional, tag = "5")] diff --git a/crates/proto/src/gen/penumbra.core.ibc.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.ibc.v1alpha1.serde.rs similarity index 94% rename from crates/proto/src/gen/penumbra.core.ibc.v1alpha1.serde.rs rename to crates/proto/src/gen/penumbra.core.component.ibc.v1alpha1.serde.rs index 256ef02430..f900ba364b 100644 --- a/crates/proto/src/gen/penumbra.core.ibc.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.ibc.v1alpha1.serde.rs @@ -9,7 +9,7 @@ impl serde::Serialize for ClientConnections { if !self.connections.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.ibc.v1alpha1.ClientConnections", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1alpha1.ClientConnections", len)?; if !self.connections.is_empty() { struct_ser.serialize_field("connections", &self.connections)?; } @@ -63,7 +63,7 @@ impl<'de> serde::Deserialize<'de> for ClientConnections { type Value = ClientConnections; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.ibc.v1alpha1.ClientConnections") + formatter.write_str("struct penumbra.core.component.ibc.v1alpha1.ClientConnections") } fn visit_map(self, mut map: V) -> std::result::Result @@ -86,7 +86,7 @@ impl<'de> serde::Deserialize<'de> for ClientConnections { }) } } - deserializer.deserialize_struct("penumbra.core.ibc.v1alpha1.ClientConnections", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.ibc.v1alpha1.ClientConnections", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ClientCounter { @@ -100,7 +100,7 @@ impl serde::Serialize for ClientCounter { if self.counter != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.ibc.v1alpha1.ClientCounter", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1alpha1.ClientCounter", len)?; if self.counter != 0 { struct_ser.serialize_field("counter", ToString::to_string(&self.counter).as_str())?; } @@ -154,7 +154,7 @@ impl<'de> serde::Deserialize<'de> for ClientCounter { type Value = ClientCounter; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.ibc.v1alpha1.ClientCounter") + formatter.write_str("struct penumbra.core.component.ibc.v1alpha1.ClientCounter") } fn visit_map(self, mut map: V) -> std::result::Result @@ -179,7 +179,7 @@ impl<'de> serde::Deserialize<'de> for ClientCounter { }) } } - deserializer.deserialize_struct("penumbra.core.ibc.v1alpha1.ClientCounter", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.ibc.v1alpha1.ClientCounter", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ClientData { @@ -202,7 +202,7 @@ impl serde::Serialize for ClientData { if self.processed_height != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.ibc.v1alpha1.ClientData", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1alpha1.ClientData", len)?; if !self.client_id.is_empty() { struct_ser.serialize_field("clientId", &self.client_id)?; } @@ -278,7 +278,7 @@ impl<'de> serde::Deserialize<'de> for ClientData { type Value = ClientData; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.ibc.v1alpha1.ClientData") + formatter.write_str("struct penumbra.core.component.ibc.v1alpha1.ClientData") } fn visit_map(self, mut map: V) -> std::result::Result @@ -327,7 +327,7 @@ impl<'de> serde::Deserialize<'de> for ClientData { }) } } - deserializer.deserialize_struct("penumbra.core.ibc.v1alpha1.ClientData", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.ibc.v1alpha1.ClientData", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ConnectionCounter { @@ -341,7 +341,7 @@ impl serde::Serialize for ConnectionCounter { if self.counter != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.ibc.v1alpha1.ConnectionCounter", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1alpha1.ConnectionCounter", len)?; if self.counter != 0 { struct_ser.serialize_field("counter", ToString::to_string(&self.counter).as_str())?; } @@ -395,7 +395,7 @@ impl<'de> serde::Deserialize<'de> for ConnectionCounter { type Value = ConnectionCounter; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.ibc.v1alpha1.ConnectionCounter") + formatter.write_str("struct penumbra.core.component.ibc.v1alpha1.ConnectionCounter") } fn visit_map(self, mut map: V) -> std::result::Result @@ -420,7 +420,7 @@ impl<'de> serde::Deserialize<'de> for ConnectionCounter { }) } } - deserializer.deserialize_struct("penumbra.core.ibc.v1alpha1.ConnectionCounter", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.ibc.v1alpha1.ConnectionCounter", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ConsensusState { @@ -434,7 +434,7 @@ impl serde::Serialize for ConsensusState { if self.consensus_state.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.ibc.v1alpha1.ConsensusState", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1alpha1.ConsensusState", len)?; if let Some(v) = self.consensus_state.as_ref() { struct_ser.serialize_field("consensusState", v)?; } @@ -489,7 +489,7 @@ impl<'de> serde::Deserialize<'de> for ConsensusState { type Value = ConsensusState; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.ibc.v1alpha1.ConsensusState") + formatter.write_str("struct penumbra.core.component.ibc.v1alpha1.ConsensusState") } fn visit_map(self, mut map: V) -> std::result::Result @@ -512,7 +512,7 @@ impl<'de> serde::Deserialize<'de> for ConsensusState { }) } } - deserializer.deserialize_struct("penumbra.core.ibc.v1alpha1.ConsensusState", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.ibc.v1alpha1.ConsensusState", FIELDS, GeneratedVisitor) } } impl serde::Serialize for FungibleTokenPacketData { @@ -535,7 +535,7 @@ impl serde::Serialize for FungibleTokenPacketData { if !self.receiver.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.ibc.v1alpha1.FungibleTokenPacketData", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1alpha1.FungibleTokenPacketData", len)?; if !self.denom.is_empty() { struct_ser.serialize_field("denom", &self.denom)?; } @@ -607,7 +607,7 @@ impl<'de> serde::Deserialize<'de> for FungibleTokenPacketData { type Value = FungibleTokenPacketData; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.ibc.v1alpha1.FungibleTokenPacketData") + formatter.write_str("struct penumbra.core.component.ibc.v1alpha1.FungibleTokenPacketData") } fn visit_map(self, mut map: V) -> std::result::Result @@ -654,7 +654,7 @@ impl<'de> serde::Deserialize<'de> for FungibleTokenPacketData { }) } } - deserializer.deserialize_struct("penumbra.core.ibc.v1alpha1.FungibleTokenPacketData", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.ibc.v1alpha1.FungibleTokenPacketData", FIELDS, GeneratedVisitor) } } impl serde::Serialize for IbcAction { @@ -668,7 +668,7 @@ impl serde::Serialize for IbcAction { if self.raw_action.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.ibc.v1alpha1.IbcAction", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1alpha1.IbcAction", len)?; if let Some(v) = self.raw_action.as_ref() { struct_ser.serialize_field("rawAction", v)?; } @@ -723,7 +723,7 @@ impl<'de> serde::Deserialize<'de> for IbcAction { type Value = IbcAction; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.ibc.v1alpha1.IbcAction") + formatter.write_str("struct penumbra.core.component.ibc.v1alpha1.IbcAction") } fn visit_map(self, mut map: V) -> std::result::Result @@ -746,7 +746,7 @@ impl<'de> serde::Deserialize<'de> for IbcAction { }) } } - deserializer.deserialize_struct("penumbra.core.ibc.v1alpha1.IbcAction", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.ibc.v1alpha1.IbcAction", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Ics20Withdrawal { @@ -778,7 +778,7 @@ impl serde::Serialize for Ics20Withdrawal { if !self.source_channel.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.ibc.v1alpha1.Ics20Withdrawal", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal", len)?; if let Some(v) = self.amount.as_ref() { struct_ser.serialize_field("amount", v)?; } @@ -873,7 +873,7 @@ impl<'de> serde::Deserialize<'de> for Ics20Withdrawal { type Value = Ics20Withdrawal; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.ibc.v1alpha1.Ics20Withdrawal") + formatter.write_str("struct penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal") } fn visit_map(self, mut map: V) -> std::result::Result @@ -946,7 +946,7 @@ impl<'de> serde::Deserialize<'de> for Ics20Withdrawal { }) } } - deserializer.deserialize_struct("penumbra.core.ibc.v1alpha1.Ics20Withdrawal", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal", FIELDS, GeneratedVisitor) } } impl serde::Serialize for VerifiedHeights { @@ -960,7 +960,7 @@ impl serde::Serialize for VerifiedHeights { if !self.heights.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.ibc.v1alpha1.VerifiedHeights", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.ibc.v1alpha1.VerifiedHeights", len)?; if !self.heights.is_empty() { struct_ser.serialize_field("heights", &self.heights)?; } @@ -1014,7 +1014,7 @@ impl<'de> serde::Deserialize<'de> for VerifiedHeights { type Value = VerifiedHeights; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.ibc.v1alpha1.VerifiedHeights") + formatter.write_str("struct penumbra.core.component.ibc.v1alpha1.VerifiedHeights") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1037,6 +1037,6 @@ impl<'de> serde::Deserialize<'de> for VerifiedHeights { }) } } - deserializer.deserialize_struct("penumbra.core.ibc.v1alpha1.VerifiedHeights", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.ibc.v1alpha1.VerifiedHeights", FIELDS, GeneratedVisitor) } } diff --git a/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.rs new file mode 100644 index 0000000000..c71a471614 --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.rs @@ -0,0 +1,6 @@ +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Nullifier { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} 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 new file mode 100644 index 0000000000..7aa8d7b97b --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.component.sct.v1alpha1.serde.rs @@ -0,0 +1,93 @@ +impl serde::Serialize for Nullifier { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.sct.v1alpha1.Nullifier", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Nullifier { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Nullifier; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.sct.v1alpha1.Nullifier") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(Nullifier { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.sct.v1alpha1.Nullifier", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1alpha1.rs new file mode 100644 index 0000000000..75242c3c8a --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1alpha1.rs @@ -0,0 +1,248 @@ +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Note { + #[prost(message, optional, tag = "1")] + pub value: ::core::option::Option, + #[prost(bytes = "vec", tag = "2")] + pub rseed: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub address: ::core::option::Option, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct NoteView { + #[prost(message, optional, tag = "1")] + pub value: ::core::option::Option, + #[prost(bytes = "vec", tag = "2")] + pub rseed: ::prost::alloc::vec::Vec, + #[prost(message, optional, tag = "3")] + pub address: ::core::option::Option< + super::super::super::keys::v1alpha1::AddressView, + >, +} +/// An encrypted note. +/// 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct NoteCiphertext { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +/// The body of an output description, including only the minimal +/// data required to scan and process the output. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct NotePayload { + /// The note commitment for the output note. 32 bytes. + #[prost(message, optional, tag = "1")] + pub note_commitment: ::core::option::Option< + super::super::super::super::crypto::tct::v1alpha1::StateCommitment, + >, + /// The encoding of an ephemeral public key. 32 bytes. + #[prost(bytes = "vec", tag = "2")] + pub ephemeral_key: ::prost::alloc::vec::Vec, + /// An encryption of the newly created note. + /// 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. + #[prost(message, optional, tag = "3")] + pub encrypted_note: ::core::option::Option, +} +/// A Penumbra ZK output proof. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ZkOutputProof { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +/// A Penumbra ZK spend proof. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ZkSpendProof { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +/// A Penumbra ZK nullifier derivation proof. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ZkNullifierDerivationProof { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +/// Spends a shielded note. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Spend { + /// The effecting data of the spend. + #[prost(message, optional, tag = "1")] + pub body: ::core::option::Option, + /// The authorizing signature for the spend. + #[prost(message, optional, tag = "2")] + pub auth_sig: ::core::option::Option< + super::super::super::super::crypto::decaf377_rdsa::v1alpha1::SpendAuthSignature, + >, + /// The proof that the spend is well-formed is authorizing data. + #[prost(message, optional, tag = "3")] + pub proof: ::core::option::Option, +} +/// The body of a spend description, containing only the effecting data +/// describing changes to the ledger, and not the authorizing data that allows +/// those changes to be performed. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SpendBody { + /// A commitment to the value of the input note. + #[prost(message, optional, tag = "1")] + pub balance_commitment: ::core::option::Option< + super::super::super::asset::v1alpha1::BalanceCommitment, + >, + /// The nullifier of the input note. + #[prost(bytes = "vec", tag = "3")] + pub nullifier: ::prost::alloc::vec::Vec, + /// The randomized validating key for the spend authorization signature. + #[prost(bytes = "vec", tag = "4")] + pub rk: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SpendView { + #[prost(oneof = "spend_view::SpendView", tags = "1, 2")] + pub spend_view: ::core::option::Option, +} +/// Nested message and enum types in `SpendView`. +pub mod spend_view { + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Visible { + #[prost(message, optional, tag = "1")] + pub spend: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub note: ::core::option::Option, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Opaque { + #[prost(message, optional, tag = "1")] + pub spend: ::core::option::Option, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum SpendView { + #[prost(message, tag = "1")] + Visible(Visible), + #[prost(message, tag = "2")] + Opaque(Opaque), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SpendPlan { + /// The plaintext note we plan to spend. + #[prost(message, optional, tag = "1")] + pub note: ::core::option::Option, + /// The position of the note we plan to spend. + #[prost(uint64, tag = "2")] + pub position: u64, + /// The randomizer to use for the spend. + #[prost(bytes = "vec", tag = "3")] + pub randomizer: ::prost::alloc::vec::Vec, + /// The blinding factor to use for the value commitment. + #[prost(bytes = "vec", tag = "4")] + pub value_blinding: ::prost::alloc::vec::Vec, + /// The first blinding factor to use for the ZK spend proof. + #[prost(bytes = "vec", tag = "5")] + pub proof_blinding_r: ::prost::alloc::vec::Vec, + /// The second blinding factor to use for the ZK spend proof. + #[prost(bytes = "vec", tag = "6")] + pub proof_blinding_s: ::prost::alloc::vec::Vec, +} +/// Creates a new shielded note. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Output { + /// The effecting data for the output. + #[prost(message, optional, tag = "1")] + pub body: ::core::option::Option, + /// The output proof is authorizing data. + #[prost(message, optional, tag = "2")] + pub proof: ::core::option::Option, +} +/// The body of an output description, containing only the effecting data +/// describing changes to the ledger, and not the authorizing data that allows +/// those changes to be performed. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OutputBody { + /// The minimal data required to scan and process the new output note. + #[prost(message, optional, tag = "1")] + pub note_payload: ::core::option::Option, + /// A commitment to the value of the output note. 32 bytes. + #[prost(message, optional, tag = "2")] + pub balance_commitment: ::core::option::Option< + super::super::super::asset::v1alpha1::BalanceCommitment, + >, + /// An encrypted key for decrypting the memo. + #[prost(bytes = "vec", tag = "3")] + pub wrapped_memo_key: ::prost::alloc::vec::Vec, + /// The key material used for note encryption, wrapped in encryption to the + /// sender's outgoing viewing key. 80 bytes. + #[prost(bytes = "vec", tag = "4")] + pub ovk_wrapped_key: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OutputView { + #[prost(oneof = "output_view::OutputView", tags = "1, 2")] + pub output_view: ::core::option::Option, +} +/// Nested message and enum types in `OutputView`. +pub mod output_view { + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Visible { + #[prost(message, optional, tag = "1")] + pub output: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub note: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub payload_key: ::core::option::Option< + super::super::super::super::keys::v1alpha1::PayloadKey, + >, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Opaque { + #[prost(message, optional, tag = "1")] + pub output: ::core::option::Option, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum OutputView { + #[prost(message, tag = "1")] + Visible(Visible), + #[prost(message, tag = "2")] + Opaque(Opaque), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct OutputPlan { + /// The value to send to this output. + #[prost(message, optional, tag = "1")] + pub value: ::core::option::Option, + /// The destination address to send it to. + #[prost(message, optional, tag = "2")] + pub dest_address: ::core::option::Option< + super::super::super::keys::v1alpha1::Address, + >, + /// The rseed to use for the new note. + #[prost(bytes = "vec", tag = "3")] + pub rseed: ::prost::alloc::vec::Vec, + /// The blinding factor to use for the value commitment. + #[prost(bytes = "vec", tag = "4")] + pub value_blinding: ::prost::alloc::vec::Vec, + /// The first blinding factor to use for the ZK output proof. + #[prost(bytes = "vec", tag = "5")] + pub proof_blinding_r: ::prost::alloc::vec::Vec, + /// The second blinding factor to use for the ZK output proof. + #[prost(bytes = "vec", tag = "6")] + pub proof_blinding_s: ::prost::alloc::vec::Vec, +} diff --git a/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1alpha1.serde.rs new file mode 100644 index 0000000000..72c1a2d4b5 --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.component.shielded_pool.v1alpha1.serde.rs @@ -0,0 +1,2281 @@ +impl serde::Serialize for Note { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.value.is_some() { + len += 1; + } + if !self.rseed.is_empty() { + len += 1; + } + if self.address.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.Note", len)?; + if let Some(v) = self.value.as_ref() { + struct_ser.serialize_field("value", v)?; + } + if !self.rseed.is_empty() { + struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; + } + if let Some(v) = self.address.as_ref() { + struct_ser.serialize_field("address", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Note { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "value", + "rseed", + "address", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Value, + Rseed, + Address, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "value" => Ok(GeneratedField::Value), + "rseed" => Ok(GeneratedField::Rseed), + "address" => Ok(GeneratedField::Address), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Note; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.Note") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut value__ = None; + let mut rseed__ = None; + let mut address__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Value => { + if value__.is_some() { + return Err(serde::de::Error::duplicate_field("value")); + } + value__ = map.next_value()?; + } + GeneratedField::Rseed => { + if rseed__.is_some() { + return Err(serde::de::Error::duplicate_field("rseed")); + } + rseed__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = map.next_value()?; + } + } + } + Ok(Note { + value: value__, + rseed: rseed__.unwrap_or_default(), + address: address__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.Note", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for NoteCiphertext { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.NoteCiphertext", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for NoteCiphertext { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = NoteCiphertext; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.NoteCiphertext") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(NoteCiphertext { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.NoteCiphertext", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for NotePayload { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.note_commitment.is_some() { + len += 1; + } + if !self.ephemeral_key.is_empty() { + len += 1; + } + if self.encrypted_note.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.NotePayload", len)?; + if let Some(v) = self.note_commitment.as_ref() { + struct_ser.serialize_field("noteCommitment", v)?; + } + if !self.ephemeral_key.is_empty() { + struct_ser.serialize_field("ephemeralKey", pbjson::private::base64::encode(&self.ephemeral_key).as_str())?; + } + if let Some(v) = self.encrypted_note.as_ref() { + struct_ser.serialize_field("encryptedNote", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for NotePayload { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "note_commitment", + "noteCommitment", + "ephemeral_key", + "ephemeralKey", + "encrypted_note", + "encryptedNote", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + NoteCommitment, + EphemeralKey, + EncryptedNote, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "noteCommitment" | "note_commitment" => Ok(GeneratedField::NoteCommitment), + "ephemeralKey" | "ephemeral_key" => Ok(GeneratedField::EphemeralKey), + "encryptedNote" | "encrypted_note" => Ok(GeneratedField::EncryptedNote), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = NotePayload; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.NotePayload") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut note_commitment__ = None; + let mut ephemeral_key__ = None; + let mut encrypted_note__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::NoteCommitment => { + if note_commitment__.is_some() { + return Err(serde::de::Error::duplicate_field("noteCommitment")); + } + note_commitment__ = map.next_value()?; + } + GeneratedField::EphemeralKey => { + if ephemeral_key__.is_some() { + return Err(serde::de::Error::duplicate_field("ephemeralKey")); + } + ephemeral_key__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::EncryptedNote => { + if encrypted_note__.is_some() { + return Err(serde::de::Error::duplicate_field("encryptedNote")); + } + encrypted_note__ = map.next_value()?; + } + } + } + Ok(NotePayload { + note_commitment: note_commitment__, + ephemeral_key: ephemeral_key__.unwrap_or_default(), + encrypted_note: encrypted_note__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.NotePayload", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for NoteView { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.value.is_some() { + len += 1; + } + if !self.rseed.is_empty() { + len += 1; + } + if self.address.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.NoteView", len)?; + if let Some(v) = self.value.as_ref() { + struct_ser.serialize_field("value", v)?; + } + if !self.rseed.is_empty() { + struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; + } + if let Some(v) = self.address.as_ref() { + struct_ser.serialize_field("address", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for NoteView { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "value", + "rseed", + "address", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Value, + Rseed, + Address, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "value" => Ok(GeneratedField::Value), + "rseed" => Ok(GeneratedField::Rseed), + "address" => Ok(GeneratedField::Address), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = NoteView; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.NoteView") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut value__ = None; + let mut rseed__ = None; + let mut address__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Value => { + if value__.is_some() { + return Err(serde::de::Error::duplicate_field("value")); + } + value__ = map.next_value()?; + } + GeneratedField::Rseed => { + if rseed__.is_some() { + return Err(serde::de::Error::duplicate_field("rseed")); + } + rseed__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = map.next_value()?; + } + } + } + Ok(NoteView { + value: value__, + rseed: rseed__.unwrap_or_default(), + address: address__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.NoteView", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Output { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.body.is_some() { + len += 1; + } + if self.proof.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.Output", len)?; + if let Some(v) = self.body.as_ref() { + struct_ser.serialize_field("body", v)?; + } + if let Some(v) = self.proof.as_ref() { + struct_ser.serialize_field("proof", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Output { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "body", + "proof", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Body, + Proof, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "body" => Ok(GeneratedField::Body), + "proof" => Ok(GeneratedField::Proof), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Output; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.Output") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut body__ = None; + let mut proof__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Body => { + if body__.is_some() { + return Err(serde::de::Error::duplicate_field("body")); + } + body__ = map.next_value()?; + } + GeneratedField::Proof => { + if proof__.is_some() { + return Err(serde::de::Error::duplicate_field("proof")); + } + proof__ = map.next_value()?; + } + } + } + Ok(Output { + body: body__, + proof: proof__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.Output", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for OutputBody { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.note_payload.is_some() { + len += 1; + } + if self.balance_commitment.is_some() { + len += 1; + } + if !self.wrapped_memo_key.is_empty() { + len += 1; + } + if !self.ovk_wrapped_key.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputBody", len)?; + if let Some(v) = self.note_payload.as_ref() { + struct_ser.serialize_field("notePayload", v)?; + } + if let Some(v) = self.balance_commitment.as_ref() { + struct_ser.serialize_field("balanceCommitment", v)?; + } + if !self.wrapped_memo_key.is_empty() { + struct_ser.serialize_field("wrappedMemoKey", pbjson::private::base64::encode(&self.wrapped_memo_key).as_str())?; + } + if !self.ovk_wrapped_key.is_empty() { + struct_ser.serialize_field("ovkWrappedKey", pbjson::private::base64::encode(&self.ovk_wrapped_key).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for OutputBody { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "note_payload", + "notePayload", + "balance_commitment", + "balanceCommitment", + "wrapped_memo_key", + "wrappedMemoKey", + "ovk_wrapped_key", + "ovkWrappedKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + NotePayload, + BalanceCommitment, + WrappedMemoKey, + OvkWrappedKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "notePayload" | "note_payload" => Ok(GeneratedField::NotePayload), + "balanceCommitment" | "balance_commitment" => Ok(GeneratedField::BalanceCommitment), + "wrappedMemoKey" | "wrapped_memo_key" => Ok(GeneratedField::WrappedMemoKey), + "ovkWrappedKey" | "ovk_wrapped_key" => Ok(GeneratedField::OvkWrappedKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = OutputBody; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.OutputBody") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut note_payload__ = None; + let mut balance_commitment__ = None; + let mut wrapped_memo_key__ = None; + let mut ovk_wrapped_key__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::NotePayload => { + if note_payload__.is_some() { + return Err(serde::de::Error::duplicate_field("notePayload")); + } + note_payload__ = map.next_value()?; + } + GeneratedField::BalanceCommitment => { + if balance_commitment__.is_some() { + return Err(serde::de::Error::duplicate_field("balanceCommitment")); + } + balance_commitment__ = map.next_value()?; + } + GeneratedField::WrappedMemoKey => { + if wrapped_memo_key__.is_some() { + return Err(serde::de::Error::duplicate_field("wrappedMemoKey")); + } + wrapped_memo_key__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::OvkWrappedKey => { + if ovk_wrapped_key__.is_some() { + return Err(serde::de::Error::duplicate_field("ovkWrappedKey")); + } + ovk_wrapped_key__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(OutputBody { + note_payload: note_payload__, + balance_commitment: balance_commitment__, + wrapped_memo_key: wrapped_memo_key__.unwrap_or_default(), + ovk_wrapped_key: ovk_wrapped_key__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputBody", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for OutputPlan { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.value.is_some() { + len += 1; + } + if self.dest_address.is_some() { + len += 1; + } + if !self.rseed.is_empty() { + len += 1; + } + if !self.value_blinding.is_empty() { + len += 1; + } + if !self.proof_blinding_r.is_empty() { + len += 1; + } + if !self.proof_blinding_s.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputPlan", len)?; + if let Some(v) = self.value.as_ref() { + struct_ser.serialize_field("value", v)?; + } + if let Some(v) = self.dest_address.as_ref() { + struct_ser.serialize_field("destAddress", v)?; + } + if !self.rseed.is_empty() { + struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; + } + if !self.value_blinding.is_empty() { + struct_ser.serialize_field("valueBlinding", pbjson::private::base64::encode(&self.value_blinding).as_str())?; + } + if !self.proof_blinding_r.is_empty() { + struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; + } + if !self.proof_blinding_s.is_empty() { + struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for OutputPlan { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "value", + "dest_address", + "destAddress", + "rseed", + "value_blinding", + "valueBlinding", + "proof_blinding_r", + "proofBlindingR", + "proof_blinding_s", + "proofBlindingS", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Value, + DestAddress, + Rseed, + ValueBlinding, + ProofBlindingR, + ProofBlindingS, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "value" => Ok(GeneratedField::Value), + "destAddress" | "dest_address" => Ok(GeneratedField::DestAddress), + "rseed" => Ok(GeneratedField::Rseed), + "valueBlinding" | "value_blinding" => Ok(GeneratedField::ValueBlinding), + "proofBlindingR" | "proof_blinding_r" => Ok(GeneratedField::ProofBlindingR), + "proofBlindingS" | "proof_blinding_s" => Ok(GeneratedField::ProofBlindingS), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = OutputPlan; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.OutputPlan") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut value__ = None; + let mut dest_address__ = None; + let mut rseed__ = None; + let mut value_blinding__ = None; + let mut proof_blinding_r__ = None; + let mut proof_blinding_s__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Value => { + if value__.is_some() { + return Err(serde::de::Error::duplicate_field("value")); + } + value__ = map.next_value()?; + } + GeneratedField::DestAddress => { + if dest_address__.is_some() { + return Err(serde::de::Error::duplicate_field("destAddress")); + } + dest_address__ = map.next_value()?; + } + GeneratedField::Rseed => { + if rseed__.is_some() { + return Err(serde::de::Error::duplicate_field("rseed")); + } + rseed__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::ValueBlinding => { + if value_blinding__.is_some() { + return Err(serde::de::Error::duplicate_field("valueBlinding")); + } + value_blinding__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::ProofBlindingR => { + if proof_blinding_r__.is_some() { + return Err(serde::de::Error::duplicate_field("proofBlindingR")); + } + proof_blinding_r__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::ProofBlindingS => { + if proof_blinding_s__.is_some() { + return Err(serde::de::Error::duplicate_field("proofBlindingS")); + } + proof_blinding_s__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(OutputPlan { + value: value__, + dest_address: dest_address__, + rseed: rseed__.unwrap_or_default(), + value_blinding: value_blinding__.unwrap_or_default(), + proof_blinding_r: proof_blinding_r__.unwrap_or_default(), + proof_blinding_s: proof_blinding_s__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputPlan", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for OutputView { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.output_view.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputView", len)?; + if let Some(v) = self.output_view.as_ref() { + match v { + output_view::OutputView::Visible(v) => { + struct_ser.serialize_field("visible", v)?; + } + output_view::OutputView::Opaque(v) => { + struct_ser.serialize_field("opaque", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for OutputView { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "visible", + "opaque", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Visible, + Opaque, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "visible" => Ok(GeneratedField::Visible), + "opaque" => Ok(GeneratedField::Opaque), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = OutputView; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.OutputView") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut output_view__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Visible => { + if output_view__.is_some() { + return Err(serde::de::Error::duplicate_field("visible")); + } + output_view__ = map.next_value::<::std::option::Option<_>>()?.map(output_view::OutputView::Visible) +; + } + GeneratedField::Opaque => { + if output_view__.is_some() { + return Err(serde::de::Error::duplicate_field("opaque")); + } + output_view__ = map.next_value::<::std::option::Option<_>>()?.map(output_view::OutputView::Opaque) +; + } + } + } + Ok(OutputView { + output_view: output_view__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputView", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for output_view::Opaque { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.output.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputView.Opaque", len)?; + if let Some(v) = self.output.as_ref() { + struct_ser.serialize_field("output", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for output_view::Opaque { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "output", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Output, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "output" => Ok(GeneratedField::Output), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = output_view::Opaque; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.OutputView.Opaque") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut output__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Output => { + if output__.is_some() { + return Err(serde::de::Error::duplicate_field("output")); + } + output__ = map.next_value()?; + } + } + } + Ok(output_view::Opaque { + output: output__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputView.Opaque", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for output_view::Visible { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.output.is_some() { + len += 1; + } + if self.note.is_some() { + len += 1; + } + if self.payload_key.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputView.Visible", len)?; + if let Some(v) = self.output.as_ref() { + struct_ser.serialize_field("output", v)?; + } + if let Some(v) = self.note.as_ref() { + struct_ser.serialize_field("note", v)?; + } + if let Some(v) = self.payload_key.as_ref() { + struct_ser.serialize_field("payloadKey", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for output_view::Visible { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "output", + "note", + "payload_key", + "payloadKey", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Output, + Note, + PayloadKey, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "output" => Ok(GeneratedField::Output), + "note" => Ok(GeneratedField::Note), + "payloadKey" | "payload_key" => Ok(GeneratedField::PayloadKey), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = output_view::Visible; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.OutputView.Visible") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut output__ = None; + let mut note__ = None; + let mut payload_key__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Output => { + if output__.is_some() { + return Err(serde::de::Error::duplicate_field("output")); + } + output__ = map.next_value()?; + } + GeneratedField::Note => { + if note__.is_some() { + return Err(serde::de::Error::duplicate_field("note")); + } + note__ = map.next_value()?; + } + GeneratedField::PayloadKey => { + if payload_key__.is_some() { + return Err(serde::de::Error::duplicate_field("payloadKey")); + } + payload_key__ = map.next_value()?; + } + } + } + Ok(output_view::Visible { + output: output__, + note: note__, + payload_key: payload_key__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.OutputView.Visible", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Spend { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.body.is_some() { + len += 1; + } + if self.auth_sig.is_some() { + len += 1; + } + if self.proof.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.Spend", len)?; + if let Some(v) = self.body.as_ref() { + struct_ser.serialize_field("body", v)?; + } + if let Some(v) = self.auth_sig.as_ref() { + struct_ser.serialize_field("authSig", v)?; + } + if let Some(v) = self.proof.as_ref() { + struct_ser.serialize_field("proof", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Spend { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "body", + "auth_sig", + "authSig", + "proof", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Body, + AuthSig, + Proof, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "body" => Ok(GeneratedField::Body), + "authSig" | "auth_sig" => Ok(GeneratedField::AuthSig), + "proof" => Ok(GeneratedField::Proof), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Spend; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.Spend") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut body__ = None; + let mut auth_sig__ = None; + let mut proof__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Body => { + if body__.is_some() { + return Err(serde::de::Error::duplicate_field("body")); + } + body__ = map.next_value()?; + } + GeneratedField::AuthSig => { + if auth_sig__.is_some() { + return Err(serde::de::Error::duplicate_field("authSig")); + } + auth_sig__ = map.next_value()?; + } + GeneratedField::Proof => { + if proof__.is_some() { + return Err(serde::de::Error::duplicate_field("proof")); + } + proof__ = map.next_value()?; + } + } + } + Ok(Spend { + body: body__, + auth_sig: auth_sig__, + proof: proof__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.Spend", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SpendBody { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.balance_commitment.is_some() { + len += 1; + } + if !self.nullifier.is_empty() { + len += 1; + } + if !self.rk.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendBody", len)?; + if let Some(v) = self.balance_commitment.as_ref() { + struct_ser.serialize_field("balanceCommitment", v)?; + } + if !self.nullifier.is_empty() { + struct_ser.serialize_field("nullifier", pbjson::private::base64::encode(&self.nullifier).as_str())?; + } + if !self.rk.is_empty() { + struct_ser.serialize_field("rk", pbjson::private::base64::encode(&self.rk).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SpendBody { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "balance_commitment", + "balanceCommitment", + "nullifier", + "rk", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + BalanceCommitment, + Nullifier, + Rk, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "balanceCommitment" | "balance_commitment" => Ok(GeneratedField::BalanceCommitment), + "nullifier" => Ok(GeneratedField::Nullifier), + "rk" => Ok(GeneratedField::Rk), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SpendBody; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.SpendBody") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut balance_commitment__ = None; + let mut nullifier__ = None; + let mut rk__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::BalanceCommitment => { + if balance_commitment__.is_some() { + return Err(serde::de::Error::duplicate_field("balanceCommitment")); + } + balance_commitment__ = map.next_value()?; + } + GeneratedField::Nullifier => { + if nullifier__.is_some() { + return Err(serde::de::Error::duplicate_field("nullifier")); + } + nullifier__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Rk => { + if rk__.is_some() { + return Err(serde::de::Error::duplicate_field("rk")); + } + rk__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(SpendBody { + balance_commitment: balance_commitment__, + nullifier: nullifier__.unwrap_or_default(), + rk: rk__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendBody", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SpendPlan { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.note.is_some() { + len += 1; + } + if self.position != 0 { + len += 1; + } + if !self.randomizer.is_empty() { + len += 1; + } + if !self.value_blinding.is_empty() { + len += 1; + } + if !self.proof_blinding_r.is_empty() { + len += 1; + } + if !self.proof_blinding_s.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendPlan", len)?; + if let Some(v) = self.note.as_ref() { + struct_ser.serialize_field("note", v)?; + } + if self.position != 0 { + struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; + } + if !self.randomizer.is_empty() { + struct_ser.serialize_field("randomizer", pbjson::private::base64::encode(&self.randomizer).as_str())?; + } + if !self.value_blinding.is_empty() { + struct_ser.serialize_field("valueBlinding", pbjson::private::base64::encode(&self.value_blinding).as_str())?; + } + if !self.proof_blinding_r.is_empty() { + struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; + } + if !self.proof_blinding_s.is_empty() { + struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SpendPlan { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "note", + "position", + "randomizer", + "value_blinding", + "valueBlinding", + "proof_blinding_r", + "proofBlindingR", + "proof_blinding_s", + "proofBlindingS", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Note, + Position, + Randomizer, + ValueBlinding, + ProofBlindingR, + ProofBlindingS, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "note" => Ok(GeneratedField::Note), + "position" => Ok(GeneratedField::Position), + "randomizer" => Ok(GeneratedField::Randomizer), + "valueBlinding" | "value_blinding" => Ok(GeneratedField::ValueBlinding), + "proofBlindingR" | "proof_blinding_r" => Ok(GeneratedField::ProofBlindingR), + "proofBlindingS" | "proof_blinding_s" => Ok(GeneratedField::ProofBlindingS), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SpendPlan; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.SpendPlan") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut note__ = None; + let mut position__ = None; + let mut randomizer__ = None; + let mut value_blinding__ = None; + let mut proof_blinding_r__ = None; + let mut proof_blinding_s__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Note => { + if note__.is_some() { + return Err(serde::de::Error::duplicate_field("note")); + } + note__ = map.next_value()?; + } + GeneratedField::Position => { + if position__.is_some() { + return Err(serde::de::Error::duplicate_field("position")); + } + position__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Randomizer => { + if randomizer__.is_some() { + return Err(serde::de::Error::duplicate_field("randomizer")); + } + randomizer__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::ValueBlinding => { + if value_blinding__.is_some() { + return Err(serde::de::Error::duplicate_field("valueBlinding")); + } + value_blinding__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::ProofBlindingR => { + if proof_blinding_r__.is_some() { + return Err(serde::de::Error::duplicate_field("proofBlindingR")); + } + proof_blinding_r__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::ProofBlindingS => { + if proof_blinding_s__.is_some() { + return Err(serde::de::Error::duplicate_field("proofBlindingS")); + } + proof_blinding_s__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(SpendPlan { + note: note__, + position: position__.unwrap_or_default(), + randomizer: randomizer__.unwrap_or_default(), + value_blinding: value_blinding__.unwrap_or_default(), + proof_blinding_r: proof_blinding_r__.unwrap_or_default(), + proof_blinding_s: proof_blinding_s__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendPlan", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SpendView { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.spend_view.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendView", len)?; + if let Some(v) = self.spend_view.as_ref() { + match v { + spend_view::SpendView::Visible(v) => { + struct_ser.serialize_field("visible", v)?; + } + spend_view::SpendView::Opaque(v) => { + struct_ser.serialize_field("opaque", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SpendView { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "visible", + "opaque", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Visible, + Opaque, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "visible" => Ok(GeneratedField::Visible), + "opaque" => Ok(GeneratedField::Opaque), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SpendView; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.SpendView") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut spend_view__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Visible => { + if spend_view__.is_some() { + return Err(serde::de::Error::duplicate_field("visible")); + } + spend_view__ = map.next_value::<::std::option::Option<_>>()?.map(spend_view::SpendView::Visible) +; + } + GeneratedField::Opaque => { + if spend_view__.is_some() { + return Err(serde::de::Error::duplicate_field("opaque")); + } + spend_view__ = map.next_value::<::std::option::Option<_>>()?.map(spend_view::SpendView::Opaque) +; + } + } + } + Ok(SpendView { + spend_view: spend_view__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendView", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for spend_view::Opaque { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.spend.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendView.Opaque", len)?; + if let Some(v) = self.spend.as_ref() { + struct_ser.serialize_field("spend", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for spend_view::Opaque { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "spend", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Spend, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "spend" => Ok(GeneratedField::Spend), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = spend_view::Opaque; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.SpendView.Opaque") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut spend__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Spend => { + if spend__.is_some() { + return Err(serde::de::Error::duplicate_field("spend")); + } + spend__ = map.next_value()?; + } + } + } + Ok(spend_view::Opaque { + spend: spend__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendView.Opaque", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for spend_view::Visible { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.spend.is_some() { + len += 1; + } + if self.note.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendView.Visible", len)?; + if let Some(v) = self.spend.as_ref() { + struct_ser.serialize_field("spend", v)?; + } + if let Some(v) = self.note.as_ref() { + struct_ser.serialize_field("note", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for spend_view::Visible { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "spend", + "note", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Spend, + Note, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "spend" => Ok(GeneratedField::Spend), + "note" => Ok(GeneratedField::Note), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = spend_view::Visible; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.SpendView.Visible") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut spend__ = None; + let mut note__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Spend => { + if spend__.is_some() { + return Err(serde::de::Error::duplicate_field("spend")); + } + spend__ = map.next_value()?; + } + GeneratedField::Note => { + if note__.is_some() { + return Err(serde::de::Error::duplicate_field("note")); + } + note__ = map.next_value()?; + } + } + } + Ok(spend_view::Visible { + spend: spend__, + note: note__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.SpendView.Visible", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ZkNullifierDerivationProof { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.ZKNullifierDerivationProof", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ZkNullifierDerivationProof { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ZkNullifierDerivationProof; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.ZKNullifierDerivationProof") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(ZkNullifierDerivationProof { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.ZKNullifierDerivationProof", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ZkOutputProof { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.ZKOutputProof", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ZkOutputProof { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ZkOutputProof; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.ZKOutputProof") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(ZkOutputProof { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.ZKOutputProof", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ZkSpendProof { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.shielded_pool.v1alpha1.ZKSpendProof", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ZkSpendProof { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ZkSpendProof; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.shielded_pool.v1alpha1.ZKSpendProof") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(ZkSpendProof { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.shielded_pool.v1alpha1.ZKSpendProof", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.core.stake.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.rs similarity index 92% rename from crates/proto/src/gen/penumbra.core.stake.v1alpha1.rs rename to crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.rs index 32ba0f7076..ba5288b8d3 100644 --- a/crates/proto/src/gen/penumbra.core.stake.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.rs @@ -1,3 +1,10 @@ +/// A Penumbra ZK undelegate claim proof. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ZkUndelegateClaimProof { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} /// Describes a validator's configuration data. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -5,7 +12,7 @@ pub struct Validator { /// The validator's identity verification key. #[prost(message, optional, tag = "1")] pub identity_key: ::core::option::Option< - super::super::crypto::v1alpha1::IdentityKey, + super::super::super::keys::v1alpha1::IdentityKey, >, /// The validator's consensus pubkey for use in Tendermint (Ed25519). #[prost(bytes = "vec", tag = "2")] @@ -35,7 +42,7 @@ pub struct Validator { /// The validator's governance key. #[prost(message, optional, tag = "9")] pub governance_key: ::core::option::Option< - super::super::crypto::v1alpha1::GovernanceKey, + super::super::super::keys::v1alpha1::GovernanceKey, >, } /// For storing the list of keys of known validators. @@ -44,7 +51,7 @@ pub struct Validator { pub struct ValidatorList { #[prost(message, repeated, tag = "1")] pub validator_keys: ::prost::alloc::vec::Vec< - super::super::crypto::v1alpha1::IdentityKey, + super::super::super::keys::v1alpha1::IdentityKey, >, } /// A portion of a validator's commission. @@ -92,7 +99,7 @@ pub mod funding_stream { pub struct RateData { #[prost(message, optional, tag = "1")] pub identity_key: ::core::option::Option< - super::super::crypto::v1alpha1::IdentityKey, + super::super::super::keys::v1alpha1::IdentityKey, >, #[prost(uint64, tag = "2")] pub epoch_index: u64, @@ -118,7 +125,7 @@ pub struct BaseRateData { pub struct ValidatorStatus { #[prost(message, optional, tag = "1")] pub identity_key: ::core::option::Option< - super::super::crypto::v1alpha1::IdentityKey, + super::super::super::keys::v1alpha1::IdentityKey, >, #[prost(message, optional, tag = "2")] pub state: ::core::option::Option, @@ -268,7 +275,7 @@ pub struct Delegate { /// The identity key of the validator to delegate to. #[prost(message, optional, tag = "1")] pub validator_identity: ::core::option::Option< - super::super::crypto::v1alpha1::IdentityKey, + super::super::super::keys::v1alpha1::IdentityKey, >, /// The index of the epoch in which this delegation was performed. /// The delegation takes effect in the next epoch. @@ -277,7 +284,9 @@ pub struct Delegate { /// The delegation amount, in units of unbonded stake. /// TODO: use flow aggregation to hide this, replacing it with bytes amount_ciphertext; #[prost(message, optional, tag = "3")] - pub unbonded_amount: ::core::option::Option, + pub unbonded_amount: ::core::option::Option< + super::super::super::num::v1alpha1::Amount, + >, /// The amount of delegation tokens produced by this action. /// /// This is implied by the validator's exchange rate in the specified epoch @@ -285,7 +294,7 @@ pub struct Delegate { /// stateless verification that the transaction is internally consistent. #[prost(message, optional, tag = "4")] pub delegation_amount: ::core::option::Option< - super::super::crypto::v1alpha1::Amount, + super::super::super::num::v1alpha1::Amount, >, } /// A transaction action withdrawing stake from a validator's delegation pool. @@ -295,14 +304,16 @@ pub struct Undelegate { /// The identity key of the validator to undelegate from. #[prost(message, optional, tag = "1")] pub validator_identity: ::core::option::Option< - super::super::crypto::v1alpha1::IdentityKey, + super::super::super::keys::v1alpha1::IdentityKey, >, /// The index of the epoch in which this undelegation was performed. #[prost(uint64, tag = "2")] pub start_epoch_index: u64, /// The amount to undelegate, in units of unbonding tokens. #[prost(message, optional, tag = "3")] - pub unbonded_amount: ::core::option::Option, + pub unbonded_amount: ::core::option::Option< + super::super::super::num::v1alpha1::Amount, + >, /// The amount of delegation tokens consumed by this action. /// /// This is implied by the validator's exchange rate in the specified epoch @@ -310,7 +321,7 @@ pub struct Undelegate { /// stateless verification that the transaction is internally consistent. #[prost(message, optional, tag = "4")] pub delegation_amount: ::core::option::Option< - super::super::crypto::v1alpha1::Amount, + super::super::super::num::v1alpha1::Amount, >, } /// A transaction action finishing an undelegation, converting (slashable) @@ -329,7 +340,7 @@ pub struct UndelegateClaimBody { /// The identity key of the validator to finish undelegating from. #[prost(message, optional, tag = "1")] pub validator_identity: ::core::option::Option< - super::super::crypto::v1alpha1::IdentityKey, + super::super::super::keys::v1alpha1::IdentityKey, >, /// The epoch in which unbonding began, used to verify the penalty. #[prost(uint64, tag = "2")] @@ -341,7 +352,7 @@ pub struct UndelegateClaimBody { /// The action's contribution to the transaction's value balance. #[prost(message, optional, tag = "4")] pub balance_commitment: ::core::option::Option< - super::super::crypto::v1alpha1::BalanceCommitment, + super::super::super::asset::v1alpha1::BalanceCommitment, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -350,7 +361,7 @@ pub struct UndelegateClaimPlan { /// The identity key of the validator to finish undelegating from. #[prost(message, optional, tag = "1")] pub validator_identity: ::core::option::Option< - super::super::crypto::v1alpha1::IdentityKey, + super::super::super::keys::v1alpha1::IdentityKey, >, /// The epoch in which unbonding began, used to verify the penalty. #[prost(uint64, tag = "2")] @@ -362,7 +373,9 @@ pub struct UndelegateClaimPlan { /// The amount of unbonding tokens to claim. /// This is a bare number because its denom is determined by the preceding data. #[prost(message, optional, tag = "5")] - pub unbonding_amount: ::core::option::Option, + pub unbonding_amount: ::core::option::Option< + super::super::super::num::v1alpha1::Amount, + >, /// The blinding factor to use for the balance commitment. #[prost(bytes = "vec", tag = "6")] pub balance_blinding: ::prost::alloc::vec::Vec, @@ -400,7 +413,7 @@ pub struct Uptime { pub struct CurrentConsensusKeys { #[prost(message, repeated, tag = "1")] pub consensus_keys: ::prost::alloc::vec::Vec< - super::super::crypto::v1alpha1::ConsensusKey, + super::super::super::keys::v1alpha1::ConsensusKey, >, } /// Tracks slashing penalties applied to a validator in some epoch. diff --git a/crates/proto/src/gen/penumbra.core.stake.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.serde.rs similarity index 92% rename from crates/proto/src/gen/penumbra.core.stake.v1alpha1.serde.rs rename to crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.serde.rs index 8d1d772774..4fd73100a3 100644 --- a/crates/proto/src/gen/penumbra.core.stake.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.component.stake.v1alpha1.serde.rs @@ -15,7 +15,7 @@ impl serde::Serialize for BaseRateData { if self.base_exchange_rate != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.BaseRateData", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.BaseRateData", len)?; if self.epoch_index != 0 { struct_ser.serialize_field("epochIndex", ToString::to_string(&self.epoch_index).as_str())?; } @@ -84,7 +84,7 @@ impl<'de> serde::Deserialize<'de> for BaseRateData { type Value = BaseRateData; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.BaseRateData") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.BaseRateData") } fn visit_map(self, mut map: V) -> std::result::Result @@ -129,7 +129,7 @@ impl<'de> serde::Deserialize<'de> for BaseRateData { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.BaseRateData", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.BaseRateData", FIELDS, GeneratedVisitor) } } impl serde::Serialize for BondingState { @@ -146,7 +146,7 @@ impl serde::Serialize for BondingState { if self.unbonding_epoch != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.BondingState", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.BondingState", len)?; if self.state != 0 { let v = bonding_state::BondingStateEnum::from_i32(self.state) .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.state)))?; @@ -209,7 +209,7 @@ impl<'de> serde::Deserialize<'de> for BondingState { type Value = BondingState; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.BondingState") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.BondingState") } fn visit_map(self, mut map: V) -> std::result::Result @@ -242,7 +242,7 @@ impl<'de> serde::Deserialize<'de> for BondingState { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.BondingState", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.BondingState", FIELDS, GeneratedVisitor) } } impl serde::Serialize for bonding_state::BondingStateEnum { @@ -335,7 +335,7 @@ impl serde::Serialize for CurrentConsensusKeys { if !self.consensus_keys.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.CurrentConsensusKeys", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.CurrentConsensusKeys", len)?; if !self.consensus_keys.is_empty() { struct_ser.serialize_field("consensusKeys", &self.consensus_keys)?; } @@ -390,7 +390,7 @@ impl<'de> serde::Deserialize<'de> for CurrentConsensusKeys { type Value = CurrentConsensusKeys; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.CurrentConsensusKeys") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.CurrentConsensusKeys") } fn visit_map(self, mut map: V) -> std::result::Result @@ -413,7 +413,7 @@ impl<'de> serde::Deserialize<'de> for CurrentConsensusKeys { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.CurrentConsensusKeys", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.CurrentConsensusKeys", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Delegate { @@ -436,7 +436,7 @@ impl serde::Serialize for Delegate { if self.delegation_amount.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.Delegate", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.Delegate", len)?; if let Some(v) = self.validator_identity.as_ref() { struct_ser.serialize_field("validatorIdentity", v)?; } @@ -512,7 +512,7 @@ impl<'de> serde::Deserialize<'de> for Delegate { type Value = Delegate; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.Delegate") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.Delegate") } fn visit_map(self, mut map: V) -> std::result::Result @@ -561,7 +561,7 @@ impl<'de> serde::Deserialize<'de> for Delegate { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.Delegate", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.Delegate", FIELDS, GeneratedVisitor) } } impl serde::Serialize for DelegationChanges { @@ -578,7 +578,7 @@ impl serde::Serialize for DelegationChanges { if !self.undelegations.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.DelegationChanges", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.DelegationChanges", len)?; if !self.delegations.is_empty() { struct_ser.serialize_field("delegations", &self.delegations)?; } @@ -638,7 +638,7 @@ impl<'de> serde::Deserialize<'de> for DelegationChanges { type Value = DelegationChanges; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.DelegationChanges") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.DelegationChanges") } fn visit_map(self, mut map: V) -> std::result::Result @@ -669,7 +669,7 @@ impl<'de> serde::Deserialize<'de> for DelegationChanges { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.DelegationChanges", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.DelegationChanges", FIELDS, GeneratedVisitor) } } impl serde::Serialize for FundingStream { @@ -683,7 +683,7 @@ impl serde::Serialize for FundingStream { if self.recipient.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.FundingStream", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream", len)?; if let Some(v) = self.recipient.as_ref() { match v { funding_stream::Recipient::ToAddress(v) => { @@ -749,7 +749,7 @@ impl<'de> serde::Deserialize<'de> for FundingStream { type Value = FundingStream; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.FundingStream") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.FundingStream") } fn visit_map(self, mut map: V) -> std::result::Result @@ -780,7 +780,7 @@ impl<'de> serde::Deserialize<'de> for FundingStream { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.FundingStream", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream", FIELDS, GeneratedVisitor) } } impl serde::Serialize for funding_stream::ToAddress { @@ -797,7 +797,7 @@ impl serde::Serialize for funding_stream::ToAddress { if self.rate_bps != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.FundingStream.ToAddress", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream.ToAddress", len)?; if !self.address.is_empty() { struct_ser.serialize_field("address", &self.address)?; } @@ -858,7 +858,7 @@ impl<'de> serde::Deserialize<'de> for funding_stream::ToAddress { type Value = funding_stream::ToAddress; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.FundingStream.ToAddress") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.FundingStream.ToAddress") } fn visit_map(self, mut map: V) -> std::result::Result @@ -891,7 +891,7 @@ impl<'de> serde::Deserialize<'de> for funding_stream::ToAddress { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.FundingStream.ToAddress", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream.ToAddress", FIELDS, GeneratedVisitor) } } impl serde::Serialize for funding_stream::ToDao { @@ -905,7 +905,7 @@ impl serde::Serialize for funding_stream::ToDao { if self.rate_bps != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.FundingStream.ToDao", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream.ToDao", len)?; if self.rate_bps != 0 { struct_ser.serialize_field("rateBps", &self.rate_bps)?; } @@ -960,7 +960,7 @@ impl<'de> serde::Deserialize<'de> for funding_stream::ToDao { type Value = funding_stream::ToDao; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.FundingStream.ToDao") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.FundingStream.ToDao") } fn visit_map(self, mut map: V) -> std::result::Result @@ -985,7 +985,7 @@ impl<'de> serde::Deserialize<'de> for funding_stream::ToDao { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.FundingStream.ToDao", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.FundingStream.ToDao", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Penalty { @@ -999,7 +999,7 @@ impl serde::Serialize for Penalty { if self.inner != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.Penalty", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.Penalty", len)?; if self.inner != 0 { struct_ser.serialize_field("inner", ToString::to_string(&self.inner).as_str())?; } @@ -1053,7 +1053,7 @@ impl<'de> serde::Deserialize<'de> for Penalty { type Value = Penalty; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.Penalty") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.Penalty") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1078,7 +1078,7 @@ impl<'de> serde::Deserialize<'de> for Penalty { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.Penalty", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.Penalty", FIELDS, GeneratedVisitor) } } impl serde::Serialize for RateData { @@ -1101,7 +1101,7 @@ impl serde::Serialize for RateData { if self.validator_exchange_rate != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.RateData", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.RateData", len)?; if let Some(v) = self.identity_key.as_ref() { struct_ser.serialize_field("identityKey", v)?; } @@ -1177,7 +1177,7 @@ impl<'de> serde::Deserialize<'de> for RateData { type Value = RateData; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.RateData") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.RateData") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1230,7 +1230,7 @@ impl<'de> serde::Deserialize<'de> for RateData { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.RateData", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.RateData", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Undelegate { @@ -1253,7 +1253,7 @@ impl serde::Serialize for Undelegate { if self.delegation_amount.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.Undelegate", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.Undelegate", len)?; if let Some(v) = self.validator_identity.as_ref() { struct_ser.serialize_field("validatorIdentity", v)?; } @@ -1329,7 +1329,7 @@ impl<'de> serde::Deserialize<'de> for Undelegate { type Value = Undelegate; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.Undelegate") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.Undelegate") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1378,7 +1378,7 @@ impl<'de> serde::Deserialize<'de> for Undelegate { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.Undelegate", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.Undelegate", FIELDS, GeneratedVisitor) } } impl serde::Serialize for UndelegateClaim { @@ -1395,7 +1395,7 @@ impl serde::Serialize for UndelegateClaim { if !self.proof.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.UndelegateClaim", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.UndelegateClaim", len)?; if let Some(v) = self.body.as_ref() { struct_ser.serialize_field("body", v)?; } @@ -1455,7 +1455,7 @@ impl<'de> serde::Deserialize<'de> for UndelegateClaim { type Value = UndelegateClaim; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.UndelegateClaim") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.UndelegateClaim") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1488,7 +1488,7 @@ impl<'de> serde::Deserialize<'de> for UndelegateClaim { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.UndelegateClaim", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.UndelegateClaim", FIELDS, GeneratedVisitor) } } impl serde::Serialize for UndelegateClaimBody { @@ -1511,7 +1511,7 @@ impl serde::Serialize for UndelegateClaimBody { if self.balance_commitment.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.UndelegateClaimBody", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.UndelegateClaimBody", len)?; if let Some(v) = self.validator_identity.as_ref() { struct_ser.serialize_field("validatorIdentity", v)?; } @@ -1586,7 +1586,7 @@ impl<'de> serde::Deserialize<'de> for UndelegateClaimBody { type Value = UndelegateClaimBody; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.UndelegateClaimBody") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.UndelegateClaimBody") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1635,7 +1635,7 @@ impl<'de> serde::Deserialize<'de> for UndelegateClaimBody { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.UndelegateClaimBody", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.UndelegateClaimBody", FIELDS, GeneratedVisitor) } } impl serde::Serialize for UndelegateClaimPlan { @@ -1667,7 +1667,7 @@ impl serde::Serialize for UndelegateClaimPlan { if !self.proof_blinding_s.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.UndelegateClaimPlan", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan", len)?; if let Some(v) = self.validator_identity.as_ref() { struct_ser.serialize_field("validatorIdentity", v)?; } @@ -1763,7 +1763,7 @@ impl<'de> serde::Deserialize<'de> for UndelegateClaimPlan { type Value = UndelegateClaimPlan; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.UndelegateClaimPlan") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1842,7 +1842,7 @@ impl<'de> serde::Deserialize<'de> for UndelegateClaimPlan { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.UndelegateClaimPlan", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Uptime { @@ -1862,7 +1862,7 @@ impl serde::Serialize for Uptime { if !self.bitvec.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.Uptime", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.Uptime", len)?; if self.as_of_block_height != 0 { struct_ser.serialize_field("asOfBlockHeight", ToString::to_string(&self.as_of_block_height).as_str())?; } @@ -1930,7 +1930,7 @@ impl<'de> serde::Deserialize<'de> for Uptime { type Value = Uptime; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.Uptime") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.Uptime") } fn visit_map(self, mut map: V) -> std::result::Result @@ -1975,7 +1975,7 @@ impl<'de> serde::Deserialize<'de> for Uptime { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.Uptime", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.Uptime", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Validator { @@ -2013,7 +2013,7 @@ impl serde::Serialize for Validator { if self.governance_key.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.Validator", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.Validator", len)?; if let Some(v) = self.identity_key.as_ref() { struct_ser.serialize_field("identityKey", v)?; } @@ -2120,7 +2120,7 @@ impl<'de> serde::Deserialize<'de> for Validator { type Value = Validator; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.Validator") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.Validator") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2211,7 +2211,7 @@ impl<'de> serde::Deserialize<'de> for Validator { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.Validator", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.Validator", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ValidatorDefinition { @@ -2228,7 +2228,7 @@ impl serde::Serialize for ValidatorDefinition { if !self.auth_sig.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.ValidatorDefinition", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorDefinition", len)?; if let Some(v) = self.validator.as_ref() { struct_ser.serialize_field("validator", v)?; } @@ -2289,7 +2289,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorDefinition { type Value = ValidatorDefinition; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.ValidatorDefinition") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.ValidatorDefinition") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2322,7 +2322,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorDefinition { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.ValidatorDefinition", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorDefinition", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ValidatorInfo { @@ -2342,7 +2342,7 @@ impl serde::Serialize for ValidatorInfo { if self.rate_data.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.ValidatorInfo", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorInfo", len)?; if let Some(v) = self.validator.as_ref() { struct_ser.serialize_field("validator", v)?; } @@ -2409,7 +2409,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorInfo { type Value = ValidatorInfo; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.ValidatorInfo") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.ValidatorInfo") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2448,7 +2448,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorInfo { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.ValidatorInfo", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorInfo", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ValidatorList { @@ -2462,7 +2462,7 @@ impl serde::Serialize for ValidatorList { if !self.validator_keys.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.ValidatorList", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorList", len)?; if !self.validator_keys.is_empty() { struct_ser.serialize_field("validatorKeys", &self.validator_keys)?; } @@ -2517,7 +2517,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorList { type Value = ValidatorList; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.ValidatorList") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.ValidatorList") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2540,7 +2540,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorList { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.ValidatorList", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorList", FIELDS, GeneratedVisitor) } } impl serde::Serialize for ValidatorState { @@ -2554,7 +2554,7 @@ impl serde::Serialize for ValidatorState { if self.state != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.ValidatorState", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorState", len)?; if self.state != 0 { let v = validator_state::ValidatorStateEnum::from_i32(self.state) .ok_or_else(|| serde::ser::Error::custom(format!("Invalid variant {}", self.state)))?; @@ -2610,7 +2610,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorState { type Value = ValidatorState; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.ValidatorState") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.ValidatorState") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2633,7 +2633,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorState { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.ValidatorState", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorState", FIELDS, GeneratedVisitor) } } impl serde::Serialize for validator_state::ValidatorStateEnum { @@ -2741,7 +2741,7 @@ impl serde::Serialize for ValidatorStatus { if self.bonding_state.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.stake.v1alpha1.ValidatorStatus", len)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorStatus", len)?; if let Some(v) = self.identity_key.as_ref() { struct_ser.serialize_field("identityKey", v)?; } @@ -2816,7 +2816,7 @@ impl<'de> serde::Deserialize<'de> for ValidatorStatus { type Value = ValidatorStatus; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.stake.v1alpha1.ValidatorStatus") + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.ValidatorStatus") } fn visit_map(self, mut map: V) -> std::result::Result @@ -2865,6 +2865,99 @@ impl<'de> serde::Deserialize<'de> for ValidatorStatus { }) } } - deserializer.deserialize_struct("penumbra.core.stake.v1alpha1.ValidatorStatus", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.ValidatorStatus", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ZkUndelegateClaimProof { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.component.stake.v1alpha1.ZKUndelegateClaimProof", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ZkUndelegateClaimProof { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ZkUndelegateClaimProof; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.component.stake.v1alpha1.ZKUndelegateClaimProof") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(ZkUndelegateClaimProof { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.component.stake.v1alpha1.ZKUndelegateClaimProof", FIELDS, GeneratedVisitor) } } diff --git a/crates/proto/src/gen/penumbra.core.crypto.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.crypto.v1alpha1.rs deleted file mode 100644 index 44b39483f5..0000000000 --- a/crates/proto/src/gen/penumbra.core.crypto.v1alpha1.rs +++ /dev/null @@ -1,435 +0,0 @@ -/// Specifies fees paid by a transaction. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Fee { - /// The amount of the token used to pay fees. - #[prost(message, optional, tag = "1")] - pub amount: ::core::option::Option, - /// If present, the asset ID of the token used to pay fees. - /// If absent, specifies the staking token implicitly. - #[prost(message, optional, tag = "2")] - pub asset_id: ::core::option::Option, -} -/// A Penumbra address. An address in Penumbra is a Bech32m-encoded -/// string, with the human-readable prefix (HRP) `penumbrav2t`. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Address { - /// The bytes of the address. Must be represented as a series of - /// `uint8` (i.e. values 0 through 255), with a length of 80 elements. - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, - /// Alternatively, a Bech32m-encoded string representation of the `inner` - /// bytes. - /// - /// NOTE: implementations are not required to support parsing this field. - /// Implementations should prefer to encode the bytes in all messages they - /// produce. Implementations must not accept messages with both `inner` and - /// `alt_bech32m` set. - #[prost(string, tag = "2")] - pub alt_bech32m: ::prost::alloc::string::String, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct AddressView { - #[prost(oneof = "address_view::AddressView", tags = "1, 2")] - pub address_view: ::core::option::Option, -} -/// Nested message and enum types in `AddressView`. -pub mod address_view { - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Visible { - #[prost(message, optional, tag = "1")] - pub address: ::core::option::Option, - #[prost(message, optional, tag = "2")] - pub index: ::core::option::Option, - #[prost(message, optional, tag = "3")] - pub account_group_id: ::core::option::Option, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Opaque { - #[prost(message, optional, tag = "1")] - pub address: ::core::option::Option, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum AddressView { - #[prost(message, tag = "1")] - Visible(Visible), - #[prost(message, tag = "2")] - Opaque(Opaque), - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SpendKey { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SpendVerificationKey { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct FullViewingKey { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct AccountGroupId { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Diversifier { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct AddressIndex { - #[prost(uint32, tag = "2")] - pub account: u32, - #[prost(bytes = "vec", tag = "3")] - pub randomizer: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct StateCommitment { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct BalanceCommitment { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// A Penumbra asset ID. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct AssetId { - /// The bytes of the asset ID. - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, - /// Alternatively, a Bech32m-encoded string representation of the `inner` - /// bytes. - /// - /// NOTE: implementations are not required to support parsing this field. - /// Implementations should prefer to encode the `inner` bytes in all messages they - /// produce. Implementations must not accept messages with both `inner` and - /// `alt_bech32m` set. This field exists for convenience of RPC users. - #[prost(string, tag = "2")] - pub alt_bech32m: ::prost::alloc::string::String, - /// Alternatively, a base denomination string which should be hashed to obtain the asset ID. - /// - /// NOTE: implementations are not required to support parsing this field. - /// Implementations should prefer to encode the bytes in all messages they - /// produce. Implementations must not accept messages with both `inner` and - /// `alt_base_denom` set. This field exists for convenience of RPC users. - #[prost(string, tag = "3")] - pub alt_base_denom: ::prost::alloc::string::String, -} -/// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, -/// split over two fields, `lo` and `hi`, representing the low- and high-order bytes -/// of the 128-bit value, respectively. Clients must assemble these bits in their -/// implementation into a `uint128` or comparable data structure, in order to model -/// the Amount accurately. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Amount { - #[prost(uint64, tag = "1")] - pub lo: u64, - #[prost(uint64, tag = "2")] - pub hi: u64, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Denom { - #[prost(string, tag = "1")] - pub denom: ::prost::alloc::string::String, -} -/// DenomMetadata represents a struct that describes a basic token. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct DenomMetadata { - #[prost(string, tag = "1")] - pub description: ::prost::alloc::string::String, - /// denom_units represents the list of DenomUnit's for a given coin - #[prost(message, repeated, tag = "2")] - pub denom_units: ::prost::alloc::vec::Vec, - /// base represents the base denom (should be the DenomUnit with exponent = 0). - #[prost(string, tag = "3")] - pub base: ::prost::alloc::string::String, - /// display indicates the suggested denom that should be - /// displayed in clients. - #[prost(string, tag = "4")] - pub display: ::prost::alloc::string::String, - /// name defines the name of the token (eg: Cosmos Atom) - #[prost(string, tag = "5")] - pub name: ::prost::alloc::string::String, - /// symbol is the token symbol usually shown on exchanges (eg: ATOM). This can - /// be the same as the display. - #[prost(string, tag = "6")] - pub symbol: ::prost::alloc::string::String, - /// URI to a document (on or off-chain) that contains additional information. Optional. - #[prost(string, tag = "7")] - pub uri: ::prost::alloc::string::String, - /// URIHash is a sha256 hash of a document pointed by URI. It's used to verify that - /// the document didn't change. Optional. - #[prost(string, tag = "8")] - pub uri_hash: ::prost::alloc::string::String, - /// the asset ID on Penumbra for this denomination. - #[prost(message, optional, tag = "1984")] - pub penumbra_asset_id: ::core::option::Option, -} -/// DenomUnit represents a struct that describes a given denomination unit of the basic token. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct DenomUnit { - /// denom represents the string name of the given denom unit (e.g uatom). - #[prost(string, tag = "1")] - pub denom: ::prost::alloc::string::String, - /// exponent represents power of 10 exponent that one must - /// raise the base_denom to in order to equal the given DenomUnit's denom - /// 1 denom = 10^exponent base_denom - /// (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with - /// exponent = 6, thus: 1 atom = 10^6 uatom). - #[prost(uint32, tag = "2")] - pub exponent: u32, - /// aliases is a list of string aliases for the given denom - #[prost(string, repeated, tag = "3")] - pub aliases: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Value { - #[prost(message, optional, tag = "1")] - pub amount: ::core::option::Option, - #[prost(message, optional, tag = "2")] - pub asset_id: ::core::option::Option, -} -/// Represents a value of a known or unknown denomination. -/// -/// Note: unlike some other View types, we don't just store the underlying -/// `Value` message together with an additional `Denom`. Instead, we record -/// either an `Amount` and `Denom` (only) or an `Amount` and `AssetId`. This is -/// because we don't want to allow a situation where the supplied `Denom` doesn't -/// match the `AssetId`, and a consumer of the API that doesn't check is tricked. -/// This way, the `Denom` will always match, because the consumer is forced to -/// recompute it themselves if they want it. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ValueView { - #[prost(oneof = "value_view::ValueView", tags = "1, 2")] - pub value_view: ::core::option::Option, -} -/// Nested message and enum types in `ValueView`. -pub mod value_view { - /// A value whose asset ID has a known denomination. - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct KnownDenom { - #[prost(message, optional, tag = "1")] - pub amount: ::core::option::Option, - #[prost(message, optional, tag = "2")] - pub denom: ::core::option::Option, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct UnknownDenom { - #[prost(message, optional, tag = "1")] - pub amount: ::core::option::Option, - #[prost(message, optional, tag = "2")] - pub asset_id: ::core::option::Option, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum ValueView { - #[prost(message, tag = "1")] - KnownDenom(KnownDenom), - #[prost(message, tag = "2")] - UnknownDenom(UnknownDenom), - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct MerkleRoot { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// A validator's identity key (decaf377-rdsa spendauth verification key). -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct IdentityKey { - #[prost(bytes = "vec", tag = "1")] - pub ik: ::prost::alloc::vec::Vec, -} -/// A validator's governance key (decaf377-rdsa spendauth verification key). -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct GovernanceKey { - #[prost(bytes = "vec", tag = "1")] - pub gk: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ConsensusKey { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Note { - #[prost(message, optional, tag = "1")] - pub value: ::core::option::Option, - #[prost(bytes = "vec", tag = "2")] - pub rseed: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "3")] - pub address: ::core::option::Option
, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct NoteView { - #[prost(message, optional, tag = "1")] - pub value: ::core::option::Option, - #[prost(bytes = "vec", tag = "2")] - pub rseed: ::prost::alloc::vec::Vec, - #[prost(message, optional, tag = "3")] - pub address: ::core::option::Option, -} -/// An encrypted note. -/// 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct NoteCiphertext { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Nullifier { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SpendAuthSignature { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct BindingSignature { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// The body of an output description, including only the minimal -/// data required to scan and process the output. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct NotePayload { - /// The note commitment for the output note. 32 bytes. - #[prost(message, optional, tag = "1")] - pub note_commitment: ::core::option::Option, - /// The encoding of an ephemeral public key. 32 bytes. - #[prost(bytes = "bytes", tag = "2")] - pub ephemeral_key: ::prost::bytes::Bytes, - /// An encryption of the newly created note. - /// 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. - #[prost(message, optional, tag = "3")] - pub encrypted_note: ::core::option::Option, -} -/// An authentication path from a state commitment to the root of the state commitment tree. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct StateCommitmentProof { - #[prost(message, optional, tag = "1")] - pub note_commitment: ::core::option::Option, - #[prost(uint64, tag = "2")] - pub position: u64, - /// always length 24 - #[prost(message, repeated, tag = "3")] - pub auth_path: ::prost::alloc::vec::Vec, -} -/// A set of 3 sibling hashes in the auth path for some note commitment. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct MerklePathChunk { - #[prost(bytes = "vec", tag = "1")] - pub sibling_1: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "2")] - pub sibling_2: ::prost::alloc::vec::Vec, - #[prost(bytes = "vec", tag = "3")] - pub sibling_3: ::prost::alloc::vec::Vec, -} -/// A clue for use with Fuzzy Message Detection. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Clue { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// An authorization hash for a Penumbra transaction. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct EffectHash { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// A Penumbra ZK output proof. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ZkOutputProof { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// A Penumbra ZK spend proof. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ZkSpendProof { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// A Penumbra ZK swap proof. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ZkSwapProof { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// A Penumbra ZK swap claim proof. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ZkSwapClaimProof { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// A Penumbra ZK undelegate claim proof. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ZkUndelegateClaimProof { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// A Penumbra ZK delegator vote proof. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ZkDelegatorVoteProof { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} -/// A Penumbra ZK nullifier derivation proof. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct ZkNullifierDerivationProof { - #[prost(bytes = "vec", tag = "1")] - pub inner: ::prost::alloc::vec::Vec, -} diff --git a/crates/proto/src/gen/penumbra.core.crypto.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.crypto.v1alpha1.serde.rs deleted file mode 100644 index a6bb8eff77..0000000000 --- a/crates/proto/src/gen/penumbra.core.crypto.v1alpha1.serde.rs +++ /dev/null @@ -1,4663 +0,0 @@ -impl serde::Serialize for AccountGroupId { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.AccountGroupId", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for AccountGroupId { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = AccountGroupId; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.AccountGroupId") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(AccountGroupId { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.AccountGroupId", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Address { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - if !self.alt_bech32m.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.Address", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - if !self.alt_bech32m.is_empty() { - struct_ser.serialize_field("altBech32m", &self.alt_bech32m)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Address { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - "alt_bech32m", - "altBech32m", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - AltBech32m, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - "altBech32m" | "alt_bech32m" => Ok(GeneratedField::AltBech32m), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Address; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.Address") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - let mut alt_bech32m__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::AltBech32m => { - if alt_bech32m__.is_some() { - return Err(serde::de::Error::duplicate_field("altBech32m")); - } - alt_bech32m__ = Some(map.next_value()?); - } - } - } - Ok(Address { - inner: inner__.unwrap_or_default(), - alt_bech32m: alt_bech32m__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.Address", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for AddressIndex { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.account != 0 { - len += 1; - } - if !self.randomizer.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.AddressIndex", len)?; - if self.account != 0 { - struct_ser.serialize_field("account", &self.account)?; - } - if !self.randomizer.is_empty() { - struct_ser.serialize_field("randomizer", pbjson::private::base64::encode(&self.randomizer).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for AddressIndex { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "account", - "randomizer", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Account, - Randomizer, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "account" => Ok(GeneratedField::Account), - "randomizer" => Ok(GeneratedField::Randomizer), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = AddressIndex; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.AddressIndex") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut account__ = None; - let mut randomizer__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Account => { - if account__.is_some() { - return Err(serde::de::Error::duplicate_field("account")); - } - account__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::Randomizer => { - if randomizer__.is_some() { - return Err(serde::de::Error::duplicate_field("randomizer")); - } - randomizer__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(AddressIndex { - account: account__.unwrap_or_default(), - randomizer: randomizer__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.AddressIndex", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for AddressView { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.address_view.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.AddressView", len)?; - if let Some(v) = self.address_view.as_ref() { - match v { - address_view::AddressView::Visible(v) => { - struct_ser.serialize_field("visible", v)?; - } - address_view::AddressView::Opaque(v) => { - struct_ser.serialize_field("opaque", v)?; - } - } - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for AddressView { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "visible", - "opaque", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Visible, - Opaque, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "visible" => Ok(GeneratedField::Visible), - "opaque" => Ok(GeneratedField::Opaque), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = AddressView; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.AddressView") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut address_view__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Visible => { - if address_view__.is_some() { - return Err(serde::de::Error::duplicate_field("visible")); - } - address_view__ = map.next_value::<::std::option::Option<_>>()?.map(address_view::AddressView::Visible) -; - } - GeneratedField::Opaque => { - if address_view__.is_some() { - return Err(serde::de::Error::duplicate_field("opaque")); - } - address_view__ = map.next_value::<::std::option::Option<_>>()?.map(address_view::AddressView::Opaque) -; - } - } - } - Ok(AddressView { - address_view: address_view__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.AddressView", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for address_view::Opaque { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.address.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.AddressView.Opaque", len)?; - if let Some(v) = self.address.as_ref() { - struct_ser.serialize_field("address", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for address_view::Opaque { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "address", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Address, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "address" => Ok(GeneratedField::Address), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = address_view::Opaque; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.AddressView.Opaque") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut address__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Address => { - if address__.is_some() { - return Err(serde::de::Error::duplicate_field("address")); - } - address__ = map.next_value()?; - } - } - } - Ok(address_view::Opaque { - address: address__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.AddressView.Opaque", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for address_view::Visible { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.address.is_some() { - len += 1; - } - if self.index.is_some() { - len += 1; - } - if self.account_group_id.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.AddressView.Visible", len)?; - if let Some(v) = self.address.as_ref() { - struct_ser.serialize_field("address", v)?; - } - if let Some(v) = self.index.as_ref() { - struct_ser.serialize_field("index", v)?; - } - if let Some(v) = self.account_group_id.as_ref() { - struct_ser.serialize_field("accountGroupId", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for address_view::Visible { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "address", - "index", - "account_group_id", - "accountGroupId", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Address, - Index, - AccountGroupId, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "address" => Ok(GeneratedField::Address), - "index" => Ok(GeneratedField::Index), - "accountGroupId" | "account_group_id" => Ok(GeneratedField::AccountGroupId), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = address_view::Visible; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.AddressView.Visible") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut address__ = None; - let mut index__ = None; - let mut account_group_id__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Address => { - if address__.is_some() { - return Err(serde::de::Error::duplicate_field("address")); - } - address__ = map.next_value()?; - } - GeneratedField::Index => { - if index__.is_some() { - return Err(serde::de::Error::duplicate_field("index")); - } - index__ = map.next_value()?; - } - GeneratedField::AccountGroupId => { - if account_group_id__.is_some() { - return Err(serde::de::Error::duplicate_field("accountGroupId")); - } - account_group_id__ = map.next_value()?; - } - } - } - Ok(address_view::Visible { - address: address__, - index: index__, - account_group_id: account_group_id__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.AddressView.Visible", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Amount { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.lo != 0 { - len += 1; - } - if self.hi != 0 { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.Amount", len)?; - if self.lo != 0 { - struct_ser.serialize_field("lo", ToString::to_string(&self.lo).as_str())?; - } - if self.hi != 0 { - struct_ser.serialize_field("hi", ToString::to_string(&self.hi).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Amount { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "lo", - "hi", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Lo, - Hi, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "lo" => Ok(GeneratedField::Lo), - "hi" => Ok(GeneratedField::Hi), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Amount; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.Amount") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut lo__ = None; - let mut hi__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Lo => { - if lo__.is_some() { - return Err(serde::de::Error::duplicate_field("lo")); - } - lo__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::Hi => { - if hi__.is_some() { - return Err(serde::de::Error::duplicate_field("hi")); - } - hi__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - } - } - Ok(Amount { - lo: lo__.unwrap_or_default(), - hi: hi__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.Amount", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for AssetId { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - if !self.alt_bech32m.is_empty() { - len += 1; - } - if !self.alt_base_denom.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.AssetId", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - if !self.alt_bech32m.is_empty() { - struct_ser.serialize_field("altBech32m", &self.alt_bech32m)?; - } - if !self.alt_base_denom.is_empty() { - struct_ser.serialize_field("altBaseDenom", &self.alt_base_denom)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for AssetId { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - "alt_bech32m", - "altBech32m", - "alt_base_denom", - "altBaseDenom", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - AltBech32m, - AltBaseDenom, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - "altBech32m" | "alt_bech32m" => Ok(GeneratedField::AltBech32m), - "altBaseDenom" | "alt_base_denom" => Ok(GeneratedField::AltBaseDenom), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = AssetId; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.AssetId") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - let mut alt_bech32m__ = None; - let mut alt_base_denom__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::AltBech32m => { - if alt_bech32m__.is_some() { - return Err(serde::de::Error::duplicate_field("altBech32m")); - } - alt_bech32m__ = Some(map.next_value()?); - } - GeneratedField::AltBaseDenom => { - if alt_base_denom__.is_some() { - return Err(serde::de::Error::duplicate_field("altBaseDenom")); - } - alt_base_denom__ = Some(map.next_value()?); - } - } - } - Ok(AssetId { - inner: inner__.unwrap_or_default(), - alt_bech32m: alt_bech32m__.unwrap_or_default(), - alt_base_denom: alt_base_denom__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.AssetId", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for BalanceCommitment { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.BalanceCommitment", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for BalanceCommitment { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BalanceCommitment; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.BalanceCommitment") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(BalanceCommitment { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.BalanceCommitment", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for BindingSignature { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.BindingSignature", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for BindingSignature { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = BindingSignature; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.BindingSignature") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(BindingSignature { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.BindingSignature", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Clue { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.Clue", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Clue { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Clue; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.Clue") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(Clue { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.Clue", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for ConsensusKey { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ConsensusKey", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ConsensusKey { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ConsensusKey; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ConsensusKey") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(ConsensusKey { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ConsensusKey", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Denom { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.denom.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.Denom", len)?; - if !self.denom.is_empty() { - struct_ser.serialize_field("denom", &self.denom)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Denom { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "denom", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Denom, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "denom" => Ok(GeneratedField::Denom), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Denom; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.Denom") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut denom__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Denom => { - if denom__.is_some() { - return Err(serde::de::Error::duplicate_field("denom")); - } - denom__ = Some(map.next_value()?); - } - } - } - Ok(Denom { - denom: denom__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.Denom", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for DenomMetadata { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.description.is_empty() { - len += 1; - } - if !self.denom_units.is_empty() { - len += 1; - } - if !self.base.is_empty() { - len += 1; - } - if !self.display.is_empty() { - len += 1; - } - if !self.name.is_empty() { - len += 1; - } - if !self.symbol.is_empty() { - len += 1; - } - if !self.uri.is_empty() { - len += 1; - } - if !self.uri_hash.is_empty() { - len += 1; - } - if self.penumbra_asset_id.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.DenomMetadata", len)?; - if !self.description.is_empty() { - struct_ser.serialize_field("description", &self.description)?; - } - if !self.denom_units.is_empty() { - struct_ser.serialize_field("denomUnits", &self.denom_units)?; - } - if !self.base.is_empty() { - struct_ser.serialize_field("base", &self.base)?; - } - if !self.display.is_empty() { - struct_ser.serialize_field("display", &self.display)?; - } - if !self.name.is_empty() { - struct_ser.serialize_field("name", &self.name)?; - } - if !self.symbol.is_empty() { - struct_ser.serialize_field("symbol", &self.symbol)?; - } - if !self.uri.is_empty() { - struct_ser.serialize_field("uri", &self.uri)?; - } - if !self.uri_hash.is_empty() { - struct_ser.serialize_field("uriHash", &self.uri_hash)?; - } - if let Some(v) = self.penumbra_asset_id.as_ref() { - struct_ser.serialize_field("penumbraAssetId", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for DenomMetadata { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "description", - "denom_units", - "denomUnits", - "base", - "display", - "name", - "symbol", - "uri", - "uri_hash", - "uriHash", - "penumbra_asset_id", - "penumbraAssetId", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Description, - DenomUnits, - Base, - Display, - Name, - Symbol, - Uri, - UriHash, - PenumbraAssetId, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "description" => Ok(GeneratedField::Description), - "denomUnits" | "denom_units" => Ok(GeneratedField::DenomUnits), - "base" => Ok(GeneratedField::Base), - "display" => Ok(GeneratedField::Display), - "name" => Ok(GeneratedField::Name), - "symbol" => Ok(GeneratedField::Symbol), - "uri" => Ok(GeneratedField::Uri), - "uriHash" | "uri_hash" => Ok(GeneratedField::UriHash), - "penumbraAssetId" | "penumbra_asset_id" => Ok(GeneratedField::PenumbraAssetId), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DenomMetadata; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.DenomMetadata") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut description__ = None; - let mut denom_units__ = None; - let mut base__ = None; - let mut display__ = None; - let mut name__ = None; - let mut symbol__ = None; - let mut uri__ = None; - let mut uri_hash__ = None; - let mut penumbra_asset_id__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Description => { - if description__.is_some() { - return Err(serde::de::Error::duplicate_field("description")); - } - description__ = Some(map.next_value()?); - } - GeneratedField::DenomUnits => { - if denom_units__.is_some() { - return Err(serde::de::Error::duplicate_field("denomUnits")); - } - denom_units__ = Some(map.next_value()?); - } - GeneratedField::Base => { - if base__.is_some() { - return Err(serde::de::Error::duplicate_field("base")); - } - base__ = Some(map.next_value()?); - } - GeneratedField::Display => { - if display__.is_some() { - return Err(serde::de::Error::duplicate_field("display")); - } - display__ = Some(map.next_value()?); - } - GeneratedField::Name => { - if name__.is_some() { - return Err(serde::de::Error::duplicate_field("name")); - } - name__ = Some(map.next_value()?); - } - GeneratedField::Symbol => { - if symbol__.is_some() { - return Err(serde::de::Error::duplicate_field("symbol")); - } - symbol__ = Some(map.next_value()?); - } - GeneratedField::Uri => { - if uri__.is_some() { - return Err(serde::de::Error::duplicate_field("uri")); - } - uri__ = Some(map.next_value()?); - } - GeneratedField::UriHash => { - if uri_hash__.is_some() { - return Err(serde::de::Error::duplicate_field("uriHash")); - } - uri_hash__ = Some(map.next_value()?); - } - GeneratedField::PenumbraAssetId => { - if penumbra_asset_id__.is_some() { - return Err(serde::de::Error::duplicate_field("penumbraAssetId")); - } - penumbra_asset_id__ = map.next_value()?; - } - } - } - Ok(DenomMetadata { - description: description__.unwrap_or_default(), - denom_units: denom_units__.unwrap_or_default(), - base: base__.unwrap_or_default(), - display: display__.unwrap_or_default(), - name: name__.unwrap_or_default(), - symbol: symbol__.unwrap_or_default(), - uri: uri__.unwrap_or_default(), - uri_hash: uri_hash__.unwrap_or_default(), - penumbra_asset_id: penumbra_asset_id__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.DenomMetadata", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for DenomUnit { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.denom.is_empty() { - len += 1; - } - if self.exponent != 0 { - len += 1; - } - if !self.aliases.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.DenomUnit", len)?; - if !self.denom.is_empty() { - struct_ser.serialize_field("denom", &self.denom)?; - } - if self.exponent != 0 { - struct_ser.serialize_field("exponent", &self.exponent)?; - } - if !self.aliases.is_empty() { - struct_ser.serialize_field("aliases", &self.aliases)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for DenomUnit { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "denom", - "exponent", - "aliases", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Denom, - Exponent, - Aliases, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "denom" => Ok(GeneratedField::Denom), - "exponent" => Ok(GeneratedField::Exponent), - "aliases" => Ok(GeneratedField::Aliases), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DenomUnit; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.DenomUnit") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut denom__ = None; - let mut exponent__ = None; - let mut aliases__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Denom => { - if denom__.is_some() { - return Err(serde::de::Error::duplicate_field("denom")); - } - denom__ = Some(map.next_value()?); - } - GeneratedField::Exponent => { - if exponent__.is_some() { - return Err(serde::de::Error::duplicate_field("exponent")); - } - exponent__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::Aliases => { - if aliases__.is_some() { - return Err(serde::de::Error::duplicate_field("aliases")); - } - aliases__ = Some(map.next_value()?); - } - } - } - Ok(DenomUnit { - denom: denom__.unwrap_or_default(), - exponent: exponent__.unwrap_or_default(), - aliases: aliases__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.DenomUnit", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Diversifier { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.Diversifier", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Diversifier { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Diversifier; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.Diversifier") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(Diversifier { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.Diversifier", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for EffectHash { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.EffectHash", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for EffectHash { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = EffectHash; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.EffectHash") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(EffectHash { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.EffectHash", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Fee { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.amount.is_some() { - len += 1; - } - if self.asset_id.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.Fee", len)?; - if let Some(v) = self.amount.as_ref() { - struct_ser.serialize_field("amount", v)?; - } - if let Some(v) = self.asset_id.as_ref() { - struct_ser.serialize_field("assetId", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Fee { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "amount", - "asset_id", - "assetId", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Amount, - AssetId, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "amount" => Ok(GeneratedField::Amount), - "assetId" | "asset_id" => Ok(GeneratedField::AssetId), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Fee; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.Fee") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut amount__ = None; - let mut asset_id__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Amount => { - if amount__.is_some() { - return Err(serde::de::Error::duplicate_field("amount")); - } - amount__ = map.next_value()?; - } - GeneratedField::AssetId => { - if asset_id__.is_some() { - return Err(serde::de::Error::duplicate_field("assetId")); - } - asset_id__ = map.next_value()?; - } - } - } - Ok(Fee { - amount: amount__, - asset_id: asset_id__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.Fee", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for FullViewingKey { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.FullViewingKey", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for FullViewingKey { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = FullViewingKey; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.FullViewingKey") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(FullViewingKey { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.FullViewingKey", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for GovernanceKey { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.gk.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.GovernanceKey", len)?; - if !self.gk.is_empty() { - struct_ser.serialize_field("gk", pbjson::private::base64::encode(&self.gk).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GovernanceKey { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "gk", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Gk, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "gk" => Ok(GeneratedField::Gk), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GovernanceKey; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.GovernanceKey") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut gk__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Gk => { - if gk__.is_some() { - return Err(serde::de::Error::duplicate_field("gk")); - } - gk__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(GovernanceKey { - gk: gk__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.GovernanceKey", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for IdentityKey { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.ik.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.IdentityKey", len)?; - if !self.ik.is_empty() { - struct_ser.serialize_field("ik", pbjson::private::base64::encode(&self.ik).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for IdentityKey { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "ik", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Ik, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "ik" => Ok(GeneratedField::Ik), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = IdentityKey; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.IdentityKey") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut ik__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Ik => { - if ik__.is_some() { - return Err(serde::de::Error::duplicate_field("ik")); - } - ik__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(IdentityKey { - ik: ik__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.IdentityKey", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for MerklePathChunk { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.sibling_1.is_empty() { - len += 1; - } - if !self.sibling_2.is_empty() { - len += 1; - } - if !self.sibling_3.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.MerklePathChunk", len)?; - if !self.sibling_1.is_empty() { - struct_ser.serialize_field("sibling1", pbjson::private::base64::encode(&self.sibling_1).as_str())?; - } - if !self.sibling_2.is_empty() { - struct_ser.serialize_field("sibling2", pbjson::private::base64::encode(&self.sibling_2).as_str())?; - } - if !self.sibling_3.is_empty() { - struct_ser.serialize_field("sibling3", pbjson::private::base64::encode(&self.sibling_3).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for MerklePathChunk { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "sibling_1", - "sibling1", - "sibling_2", - "sibling2", - "sibling_3", - "sibling3", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Sibling1, - Sibling2, - Sibling3, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "sibling1" | "sibling_1" => Ok(GeneratedField::Sibling1), - "sibling2" | "sibling_2" => Ok(GeneratedField::Sibling2), - "sibling3" | "sibling_3" => Ok(GeneratedField::Sibling3), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = MerklePathChunk; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.MerklePathChunk") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut sibling_1__ = None; - let mut sibling_2__ = None; - let mut sibling_3__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Sibling1 => { - if sibling_1__.is_some() { - return Err(serde::de::Error::duplicate_field("sibling1")); - } - sibling_1__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::Sibling2 => { - if sibling_2__.is_some() { - return Err(serde::de::Error::duplicate_field("sibling2")); - } - sibling_2__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::Sibling3 => { - if sibling_3__.is_some() { - return Err(serde::de::Error::duplicate_field("sibling3")); - } - sibling_3__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(MerklePathChunk { - sibling_1: sibling_1__.unwrap_or_default(), - sibling_2: sibling_2__.unwrap_or_default(), - sibling_3: sibling_3__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.MerklePathChunk", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for MerkleRoot { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.MerkleRoot", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for MerkleRoot { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = MerkleRoot; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.MerkleRoot") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(MerkleRoot { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.MerkleRoot", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Note { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.value.is_some() { - len += 1; - } - if !self.rseed.is_empty() { - len += 1; - } - if self.address.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.Note", len)?; - if let Some(v) = self.value.as_ref() { - struct_ser.serialize_field("value", v)?; - } - if !self.rseed.is_empty() { - struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; - } - if let Some(v) = self.address.as_ref() { - struct_ser.serialize_field("address", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Note { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "value", - "rseed", - "address", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Value, - Rseed, - Address, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "value" => Ok(GeneratedField::Value), - "rseed" => Ok(GeneratedField::Rseed), - "address" => Ok(GeneratedField::Address), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Note; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.Note") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut value__ = None; - let mut rseed__ = None; - let mut address__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Value => { - if value__.is_some() { - return Err(serde::de::Error::duplicate_field("value")); - } - value__ = map.next_value()?; - } - GeneratedField::Rseed => { - if rseed__.is_some() { - return Err(serde::de::Error::duplicate_field("rseed")); - } - rseed__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::Address => { - if address__.is_some() { - return Err(serde::de::Error::duplicate_field("address")); - } - address__ = map.next_value()?; - } - } - } - Ok(Note { - value: value__, - rseed: rseed__.unwrap_or_default(), - address: address__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.Note", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for NoteCiphertext { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.NoteCiphertext", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for NoteCiphertext { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = NoteCiphertext; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.NoteCiphertext") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(NoteCiphertext { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.NoteCiphertext", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for NotePayload { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.note_commitment.is_some() { - len += 1; - } - if !self.ephemeral_key.is_empty() { - len += 1; - } - if self.encrypted_note.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.NotePayload", len)?; - if let Some(v) = self.note_commitment.as_ref() { - struct_ser.serialize_field("noteCommitment", v)?; - } - if !self.ephemeral_key.is_empty() { - struct_ser.serialize_field("ephemeralKey", pbjson::private::base64::encode(&self.ephemeral_key).as_str())?; - } - if let Some(v) = self.encrypted_note.as_ref() { - struct_ser.serialize_field("encryptedNote", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for NotePayload { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "note_commitment", - "noteCommitment", - "ephemeral_key", - "ephemeralKey", - "encrypted_note", - "encryptedNote", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - NoteCommitment, - EphemeralKey, - EncryptedNote, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "noteCommitment" | "note_commitment" => Ok(GeneratedField::NoteCommitment), - "ephemeralKey" | "ephemeral_key" => Ok(GeneratedField::EphemeralKey), - "encryptedNote" | "encrypted_note" => Ok(GeneratedField::EncryptedNote), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = NotePayload; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.NotePayload") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut note_commitment__ = None; - let mut ephemeral_key__ = None; - let mut encrypted_note__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::NoteCommitment => { - if note_commitment__.is_some() { - return Err(serde::de::Error::duplicate_field("noteCommitment")); - } - note_commitment__ = map.next_value()?; - } - GeneratedField::EphemeralKey => { - if ephemeral_key__.is_some() { - return Err(serde::de::Error::duplicate_field("ephemeralKey")); - } - ephemeral_key__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::EncryptedNote => { - if encrypted_note__.is_some() { - return Err(serde::de::Error::duplicate_field("encryptedNote")); - } - encrypted_note__ = map.next_value()?; - } - } - } - Ok(NotePayload { - note_commitment: note_commitment__, - ephemeral_key: ephemeral_key__.unwrap_or_default(), - encrypted_note: encrypted_note__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.NotePayload", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for NoteView { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.value.is_some() { - len += 1; - } - if !self.rseed.is_empty() { - len += 1; - } - if self.address.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.NoteView", len)?; - if let Some(v) = self.value.as_ref() { - struct_ser.serialize_field("value", v)?; - } - if !self.rseed.is_empty() { - struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; - } - if let Some(v) = self.address.as_ref() { - struct_ser.serialize_field("address", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for NoteView { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "value", - "rseed", - "address", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Value, - Rseed, - Address, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "value" => Ok(GeneratedField::Value), - "rseed" => Ok(GeneratedField::Rseed), - "address" => Ok(GeneratedField::Address), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = NoteView; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.NoteView") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut value__ = None; - let mut rseed__ = None; - let mut address__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Value => { - if value__.is_some() { - return Err(serde::de::Error::duplicate_field("value")); - } - value__ = map.next_value()?; - } - GeneratedField::Rseed => { - if rseed__.is_some() { - return Err(serde::de::Error::duplicate_field("rseed")); - } - rseed__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::Address => { - if address__.is_some() { - return Err(serde::de::Error::duplicate_field("address")); - } - address__ = map.next_value()?; - } - } - } - Ok(NoteView { - value: value__, - rseed: rseed__.unwrap_or_default(), - address: address__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.NoteView", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Nullifier { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.Nullifier", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Nullifier { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Nullifier; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.Nullifier") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(Nullifier { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.Nullifier", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for SpendAuthSignature { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.SpendAuthSignature", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for SpendAuthSignature { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = SpendAuthSignature; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.SpendAuthSignature") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(SpendAuthSignature { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.SpendAuthSignature", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for SpendKey { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.SpendKey", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for SpendKey { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = SpendKey; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.SpendKey") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(SpendKey { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.SpendKey", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for SpendVerificationKey { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.SpendVerificationKey", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for SpendVerificationKey { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = SpendVerificationKey; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.SpendVerificationKey") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(SpendVerificationKey { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.SpendVerificationKey", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for StateCommitment { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.StateCommitment", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for StateCommitment { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = StateCommitment; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.StateCommitment") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(StateCommitment { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.StateCommitment", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for StateCommitmentProof { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.note_commitment.is_some() { - len += 1; - } - if self.position != 0 { - len += 1; - } - if !self.auth_path.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.StateCommitmentProof", len)?; - if let Some(v) = self.note_commitment.as_ref() { - struct_ser.serialize_field("noteCommitment", v)?; - } - if self.position != 0 { - struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; - } - if !self.auth_path.is_empty() { - struct_ser.serialize_field("authPath", &self.auth_path)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for StateCommitmentProof { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "note_commitment", - "noteCommitment", - "position", - "auth_path", - "authPath", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - NoteCommitment, - Position, - AuthPath, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "noteCommitment" | "note_commitment" => Ok(GeneratedField::NoteCommitment), - "position" => Ok(GeneratedField::Position), - "authPath" | "auth_path" => Ok(GeneratedField::AuthPath), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = StateCommitmentProof; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.StateCommitmentProof") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut note_commitment__ = None; - let mut position__ = None; - let mut auth_path__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::NoteCommitment => { - if note_commitment__.is_some() { - return Err(serde::de::Error::duplicate_field("noteCommitment")); - } - note_commitment__ = map.next_value()?; - } - GeneratedField::Position => { - if position__.is_some() { - return Err(serde::de::Error::duplicate_field("position")); - } - position__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::AuthPath => { - if auth_path__.is_some() { - return Err(serde::de::Error::duplicate_field("authPath")); - } - auth_path__ = Some(map.next_value()?); - } - } - } - Ok(StateCommitmentProof { - note_commitment: note_commitment__, - position: position__.unwrap_or_default(), - auth_path: auth_path__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.StateCommitmentProof", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Value { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.amount.is_some() { - len += 1; - } - if self.asset_id.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.Value", len)?; - if let Some(v) = self.amount.as_ref() { - struct_ser.serialize_field("amount", v)?; - } - if let Some(v) = self.asset_id.as_ref() { - struct_ser.serialize_field("assetId", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Value { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "amount", - "asset_id", - "assetId", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Amount, - AssetId, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "amount" => Ok(GeneratedField::Amount), - "assetId" | "asset_id" => Ok(GeneratedField::AssetId), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Value; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.Value") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut amount__ = None; - let mut asset_id__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Amount => { - if amount__.is_some() { - return Err(serde::de::Error::duplicate_field("amount")); - } - amount__ = map.next_value()?; - } - GeneratedField::AssetId => { - if asset_id__.is_some() { - return Err(serde::de::Error::duplicate_field("assetId")); - } - asset_id__ = map.next_value()?; - } - } - } - Ok(Value { - amount: amount__, - asset_id: asset_id__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.Value", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for ValueView { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.value_view.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ValueView", len)?; - if let Some(v) = self.value_view.as_ref() { - match v { - value_view::ValueView::KnownDenom(v) => { - struct_ser.serialize_field("knownDenom", v)?; - } - value_view::ValueView::UnknownDenom(v) => { - struct_ser.serialize_field("unknownDenom", v)?; - } - } - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ValueView { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "known_denom", - "knownDenom", - "unknown_denom", - "unknownDenom", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - KnownDenom, - UnknownDenom, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "knownDenom" | "known_denom" => Ok(GeneratedField::KnownDenom), - "unknownDenom" | "unknown_denom" => Ok(GeneratedField::UnknownDenom), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ValueView; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ValueView") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut value_view__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::KnownDenom => { - if value_view__.is_some() { - return Err(serde::de::Error::duplicate_field("knownDenom")); - } - value_view__ = map.next_value::<::std::option::Option<_>>()?.map(value_view::ValueView::KnownDenom) -; - } - GeneratedField::UnknownDenom => { - if value_view__.is_some() { - return Err(serde::de::Error::duplicate_field("unknownDenom")); - } - value_view__ = map.next_value::<::std::option::Option<_>>()?.map(value_view::ValueView::UnknownDenom) -; - } - } - } - Ok(ValueView { - value_view: value_view__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ValueView", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for value_view::KnownDenom { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.amount.is_some() { - len += 1; - } - if self.denom.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ValueView.KnownDenom", len)?; - if let Some(v) = self.amount.as_ref() { - struct_ser.serialize_field("amount", v)?; - } - if let Some(v) = self.denom.as_ref() { - struct_ser.serialize_field("denom", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for value_view::KnownDenom { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "amount", - "denom", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Amount, - Denom, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "amount" => Ok(GeneratedField::Amount), - "denom" => Ok(GeneratedField::Denom), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = value_view::KnownDenom; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ValueView.KnownDenom") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut amount__ = None; - let mut denom__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Amount => { - if amount__.is_some() { - return Err(serde::de::Error::duplicate_field("amount")); - } - amount__ = map.next_value()?; - } - GeneratedField::Denom => { - if denom__.is_some() { - return Err(serde::de::Error::duplicate_field("denom")); - } - denom__ = map.next_value()?; - } - } - } - Ok(value_view::KnownDenom { - amount: amount__, - denom: denom__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ValueView.KnownDenom", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for value_view::UnknownDenom { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.amount.is_some() { - len += 1; - } - if self.asset_id.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ValueView.UnknownDenom", len)?; - if let Some(v) = self.amount.as_ref() { - struct_ser.serialize_field("amount", v)?; - } - if let Some(v) = self.asset_id.as_ref() { - struct_ser.serialize_field("assetId", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for value_view::UnknownDenom { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "amount", - "asset_id", - "assetId", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Amount, - AssetId, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "amount" => Ok(GeneratedField::Amount), - "assetId" | "asset_id" => Ok(GeneratedField::AssetId), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = value_view::UnknownDenom; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ValueView.UnknownDenom") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut amount__ = None; - let mut asset_id__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Amount => { - if amount__.is_some() { - return Err(serde::de::Error::duplicate_field("amount")); - } - amount__ = map.next_value()?; - } - GeneratedField::AssetId => { - if asset_id__.is_some() { - return Err(serde::de::Error::duplicate_field("assetId")); - } - asset_id__ = map.next_value()?; - } - } - } - Ok(value_view::UnknownDenom { - amount: amount__, - asset_id: asset_id__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ValueView.UnknownDenom", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for ZkDelegatorVoteProof { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ZKDelegatorVoteProof", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ZkDelegatorVoteProof { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ZkDelegatorVoteProof; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ZKDelegatorVoteProof") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(ZkDelegatorVoteProof { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ZKDelegatorVoteProof", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for ZkNullifierDerivationProof { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ZKNullifierDerivationProof", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ZkNullifierDerivationProof { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ZkNullifierDerivationProof; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ZKNullifierDerivationProof") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(ZkNullifierDerivationProof { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ZKNullifierDerivationProof", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for ZkOutputProof { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ZKOutputProof", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ZkOutputProof { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ZkOutputProof; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ZKOutputProof") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(ZkOutputProof { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ZKOutputProof", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for ZkSpendProof { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ZKSpendProof", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ZkSpendProof { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ZkSpendProof; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ZKSpendProof") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(ZkSpendProof { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ZKSpendProof", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for ZkSwapClaimProof { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ZKSwapClaimProof", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ZkSwapClaimProof { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ZkSwapClaimProof; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ZKSwapClaimProof") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(ZkSwapClaimProof { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ZKSwapClaimProof", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for ZkSwapProof { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ZKSwapProof", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ZkSwapProof { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ZkSwapProof; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ZKSwapProof") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(ZkSwapProof { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ZKSwapProof", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for ZkUndelegateClaimProof { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.crypto.v1alpha1.ZKUndelegateClaimProof", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for ZkUndelegateClaimProof { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = ZkUndelegateClaimProof; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.crypto.v1alpha1.ZKUndelegateClaimProof") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(ZkUndelegateClaimProof { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.crypto.v1alpha1.ZKUndelegateClaimProof", FIELDS, GeneratedVisitor) - } -} diff --git a/crates/proto/src/gen/penumbra.core.keys.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.keys.v1alpha1.rs new file mode 100644 index 0000000000..c86101272f --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.keys.v1alpha1.rs @@ -0,0 +1,116 @@ +/// A Penumbra address. An address in Penumbra is a Bech32m-encoded +/// string, with the human-readable prefix (HRP) `penumbrav2t`. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Address { + /// The bytes of the address. Must be represented as a series of + /// `uint8` (i.e. values 0 through 255), with a length of 80 elements. + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, + /// Alternatively, a Bech32m-encoded string representation of the `inner` + /// bytes. + /// + /// NOTE: implementations are not required to support parsing this field. + /// Implementations should prefer to encode the bytes in all messages they + /// produce. Implementations must not accept messages with both `inner` and + /// `alt_bech32m` set. + #[prost(string, tag = "2")] + pub alt_bech32m: ::prost::alloc::string::String, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddressView { + #[prost(oneof = "address_view::AddressView", tags = "1, 2")] + pub address_view: ::core::option::Option, +} +/// Nested message and enum types in `AddressView`. +pub mod address_view { + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Visible { + #[prost(message, optional, tag = "1")] + pub address: ::core::option::Option, + #[prost(message, optional, tag = "2")] + pub index: ::core::option::Option, + #[prost(message, optional, tag = "3")] + pub account_group_id: ::core::option::Option, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct Opaque { + #[prost(message, optional, tag = "1")] + pub address: ::core::option::Option, + } + #[allow(clippy::derive_partial_eq_without_eq)] + #[derive(Clone, PartialEq, ::prost::Oneof)] + pub enum AddressView { + #[prost(message, tag = "1")] + Visible(Visible), + #[prost(message, tag = "2")] + Opaque(Opaque), + } +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct PayloadKey { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SpendKey { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SpendVerificationKey { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct FullViewingKey { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AccountGroupId { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Diversifier { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct AddressIndex { + #[prost(uint32, tag = "2")] + pub account: u32, + #[prost(bytes = "vec", tag = "3")] + pub randomizer: ::prost::alloc::vec::Vec, +} +/// A validator's identity key (decaf377-rdsa spendauth verification key). +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct IdentityKey { + #[prost(bytes = "vec", tag = "1")] + pub ik: ::prost::alloc::vec::Vec, +} +/// A validator's governance key (decaf377-rdsa spendauth verification key). +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct GovernanceKey { + #[prost(bytes = "vec", tag = "1")] + pub gk: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct ConsensusKey { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} diff --git a/crates/proto/src/gen/penumbra.core.keys.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.keys.v1alpha1.serde.rs new file mode 100644 index 0000000000..ded992ec24 --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.keys.v1alpha1.serde.rs @@ -0,0 +1,1386 @@ +impl serde::Serialize for AccountGroupId { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.AccountGroupId", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AccountGroupId { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AccountGroupId; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.AccountGroupId") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(AccountGroupId { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.AccountGroupId", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Address { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + if !self.alt_bech32m.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.Address", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + if !self.alt_bech32m.is_empty() { + struct_ser.serialize_field("altBech32m", &self.alt_bech32m)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Address { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + "alt_bech32m", + "altBech32m", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + AltBech32m, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + "altBech32m" | "alt_bech32m" => Ok(GeneratedField::AltBech32m), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Address; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.Address") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + let mut alt_bech32m__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::AltBech32m => { + if alt_bech32m__.is_some() { + return Err(serde::de::Error::duplicate_field("altBech32m")); + } + alt_bech32m__ = Some(map.next_value()?); + } + } + } + Ok(Address { + inner: inner__.unwrap_or_default(), + alt_bech32m: alt_bech32m__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.Address", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for AddressIndex { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.account != 0 { + len += 1; + } + if !self.randomizer.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.AddressIndex", len)?; + if self.account != 0 { + struct_ser.serialize_field("account", &self.account)?; + } + if !self.randomizer.is_empty() { + struct_ser.serialize_field("randomizer", pbjson::private::base64::encode(&self.randomizer).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AddressIndex { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "account", + "randomizer", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Account, + Randomizer, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "account" => Ok(GeneratedField::Account), + "randomizer" => Ok(GeneratedField::Randomizer), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AddressIndex; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.AddressIndex") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut account__ = None; + let mut randomizer__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Account => { + if account__.is_some() { + return Err(serde::de::Error::duplicate_field("account")); + } + account__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Randomizer => { + if randomizer__.is_some() { + return Err(serde::de::Error::duplicate_field("randomizer")); + } + randomizer__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(AddressIndex { + account: account__.unwrap_or_default(), + randomizer: randomizer__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.AddressIndex", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for AddressView { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.address_view.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.AddressView", len)?; + if let Some(v) = self.address_view.as_ref() { + match v { + address_view::AddressView::Visible(v) => { + struct_ser.serialize_field("visible", v)?; + } + address_view::AddressView::Opaque(v) => { + struct_ser.serialize_field("opaque", v)?; + } + } + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for AddressView { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "visible", + "opaque", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Visible, + Opaque, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "visible" => Ok(GeneratedField::Visible), + "opaque" => Ok(GeneratedField::Opaque), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = AddressView; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.AddressView") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address_view__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Visible => { + if address_view__.is_some() { + return Err(serde::de::Error::duplicate_field("visible")); + } + address_view__ = map.next_value::<::std::option::Option<_>>()?.map(address_view::AddressView::Visible) +; + } + GeneratedField::Opaque => { + if address_view__.is_some() { + return Err(serde::de::Error::duplicate_field("opaque")); + } + address_view__ = map.next_value::<::std::option::Option<_>>()?.map(address_view::AddressView::Opaque) +; + } + } + } + Ok(AddressView { + address_view: address_view__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.AddressView", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for address_view::Opaque { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.address.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.AddressView.Opaque", len)?; + if let Some(v) = self.address.as_ref() { + struct_ser.serialize_field("address", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for address_view::Opaque { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = address_view::Opaque; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.AddressView.Opaque") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = map.next_value()?; + } + } + } + Ok(address_view::Opaque { + address: address__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.AddressView.Opaque", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for address_view::Visible { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.address.is_some() { + len += 1; + } + if self.index.is_some() { + len += 1; + } + if self.account_group_id.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.AddressView.Visible", len)?; + if let Some(v) = self.address.as_ref() { + struct_ser.serialize_field("address", v)?; + } + if let Some(v) = self.index.as_ref() { + struct_ser.serialize_field("index", v)?; + } + if let Some(v) = self.account_group_id.as_ref() { + struct_ser.serialize_field("accountGroupId", v)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for address_view::Visible { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "address", + "index", + "account_group_id", + "accountGroupId", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Address, + Index, + AccountGroupId, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "address" => Ok(GeneratedField::Address), + "index" => Ok(GeneratedField::Index), + "accountGroupId" | "account_group_id" => Ok(GeneratedField::AccountGroupId), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = address_view::Visible; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.AddressView.Visible") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut address__ = None; + let mut index__ = None; + let mut account_group_id__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Address => { + if address__.is_some() { + return Err(serde::de::Error::duplicate_field("address")); + } + address__ = map.next_value()?; + } + GeneratedField::Index => { + if index__.is_some() { + return Err(serde::de::Error::duplicate_field("index")); + } + index__ = map.next_value()?; + } + GeneratedField::AccountGroupId => { + if account_group_id__.is_some() { + return Err(serde::de::Error::duplicate_field("accountGroupId")); + } + account_group_id__ = map.next_value()?; + } + } + } + Ok(address_view::Visible { + address: address__, + index: index__, + account_group_id: account_group_id__, + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.AddressView.Visible", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for ConsensusKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.ConsensusKey", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for ConsensusKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = ConsensusKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.ConsensusKey") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(ConsensusKey { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.ConsensusKey", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for Diversifier { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.Diversifier", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Diversifier { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Diversifier; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.Diversifier") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(Diversifier { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.Diversifier", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for FullViewingKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.FullViewingKey", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for FullViewingKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = FullViewingKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.FullViewingKey") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(FullViewingKey { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.FullViewingKey", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for GovernanceKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.gk.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.GovernanceKey", len)?; + if !self.gk.is_empty() { + struct_ser.serialize_field("gk", pbjson::private::base64::encode(&self.gk).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for GovernanceKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "gk", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Gk, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "gk" => Ok(GeneratedField::Gk), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GovernanceKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.GovernanceKey") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut gk__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Gk => { + if gk__.is_some() { + return Err(serde::de::Error::duplicate_field("gk")); + } + gk__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(GovernanceKey { + gk: gk__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.GovernanceKey", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for IdentityKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.ik.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.IdentityKey", len)?; + if !self.ik.is_empty() { + struct_ser.serialize_field("ik", pbjson::private::base64::encode(&self.ik).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for IdentityKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "ik", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Ik, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "ik" => Ok(GeneratedField::Ik), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = IdentityKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.IdentityKey") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut ik__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Ik => { + if ik__.is_some() { + return Err(serde::de::Error::duplicate_field("ik")); + } + ik__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(IdentityKey { + ik: ik__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.IdentityKey", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for PayloadKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.PayloadKey", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for PayloadKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = PayloadKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.PayloadKey") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(PayloadKey { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.PayloadKey", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SpendKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.SpendKey", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SpendKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SpendKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.SpendKey") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(SpendKey { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.SpendKey", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SpendVerificationKey { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.keys.v1alpha1.SpendVerificationKey", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SpendVerificationKey { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SpendVerificationKey; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.keys.v1alpha1.SpendVerificationKey") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(SpendVerificationKey { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.keys.v1alpha1.SpendVerificationKey", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.core.num.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.num.v1alpha1.rs new file mode 100644 index 0000000000..76d0fbd8c7 --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.num.v1alpha1.rs @@ -0,0 +1,13 @@ +/// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, +/// split over two fields, `lo` and `hi`, representing the low- and high-order bytes +/// of the 128-bit value, respectively. Clients must assemble these bits in their +/// implementation into a `uint128` or comparable data structure, in order to model +/// the Amount accurately. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Amount { + #[prost(uint64, tag = "1")] + pub lo: u64, + #[prost(uint64, tag = "2")] + pub hi: u64, +} diff --git a/crates/proto/src/gen/penumbra.core.num.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.core.num.v1alpha1.serde.rs new file mode 100644 index 0000000000..0ee2018b74 --- /dev/null +++ b/crates/proto/src/gen/penumbra.core.num.v1alpha1.serde.rs @@ -0,0 +1,112 @@ +impl serde::Serialize for Amount { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.lo != 0 { + len += 1; + } + if self.hi != 0 { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.num.v1alpha1.Amount", len)?; + if self.lo != 0 { + struct_ser.serialize_field("lo", ToString::to_string(&self.lo).as_str())?; + } + if self.hi != 0 { + struct_ser.serialize_field("hi", ToString::to_string(&self.hi).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Amount { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "lo", + "hi", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Lo, + Hi, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "lo" => Ok(GeneratedField::Lo), + "hi" => Ok(GeneratedField::Hi), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Amount; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.core.num.v1alpha1.Amount") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut lo__ = None; + let mut hi__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Lo => { + if lo__.is_some() { + return Err(serde::de::Error::duplicate_field("lo")); + } + lo__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::Hi => { + if hi__.is_some() { + return Err(serde::de::Error::duplicate_field("hi")); + } + hi__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + } + } + Ok(Amount { + lo: lo__.unwrap_or_default(), + hi: hi__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.core.num.v1alpha1.Amount", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.rs index 1774eed965..9b2afbea2b 100644 --- a/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.rs @@ -5,25 +5,21 @@ pub struct Transaction { #[prost(message, optional, tag = "1")] pub body: ::core::option::Option, /// The binding signature is stored separately from the transaction body that it signs. - #[prost(bytes = "bytes", tag = "2")] - pub binding_sig: ::prost::bytes::Bytes, + #[prost(bytes = "vec", tag = "2")] + pub binding_sig: ::prost::alloc::vec::Vec, /// 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, + pub anchor: ::core::option::Option< + super::super::super::crypto::tct::v1alpha1::MerkleRoot, + >, } /// A transaction ID, the Sha256 hash of a transaction. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct Id { - #[prost(bytes = "bytes", tag = "1")] - pub hash: ::prost::bytes::Bytes, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct EffectHash { - #[prost(bytes = "bytes", tag = "1")] - pub inner: ::prost::bytes::Bytes, + #[prost(bytes = "vec", tag = "1")] + pub hash: ::prost::alloc::vec::Vec, } /// The body of a transaction. #[allow(clippy::derive_partial_eq_without_eq)] @@ -37,7 +33,7 @@ pub struct TransactionBody { pub transaction_parameters: ::core::option::Option, /// The transaction fee. #[prost(message, optional, tag = "3")] - pub fee: ::core::option::Option, + pub fee: ::core::option::Option, /// Detection data for use with Fuzzy Message Detection #[prost(message, optional, tag = "4")] pub detection_data: ::core::option::Option, @@ -51,8 +47,8 @@ pub struct TransactionBody { pub struct MemoData { /// The encrypted data. It will only be populated if there are /// outputs in the actions of the transaction. 528 bytes. - #[prost(bytes = "bytes", tag = "1")] - pub encrypted_memo: ::prost::bytes::Bytes, + #[prost(bytes = "vec", tag = "1")] + pub encrypted_memo: ::prost::alloc::vec::Vec, } /// The parameters determining if a transaction should be accepted by the chain. #[allow(clippy::derive_partial_eq_without_eq)] @@ -74,7 +70,9 @@ pub struct 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, + pub fmd_clues: ::prost::alloc::vec::Vec< + super::super::super::crypto::decaf377_fmd::v1alpha1::Clue, + >, } /// A state change performed by a transaction. #[allow(clippy::derive_partial_eq_without_eq)] @@ -91,56 +89,73 @@ pub mod action { #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Action { + /// Common actions have numbers < 15, to save space. #[prost(message, tag = "1")] - Spend(super::Spend), + Spend(super::super::super::component::shielded_pool::v1alpha1::Spend), #[prost(message, tag = "2")] - Output(super::Output), + Output(super::super::super::component::shielded_pool::v1alpha1::Output), #[prost(message, tag = "3")] - Swap(super::super::super::dex::v1alpha1::Swap), + Swap(super::super::super::component::dex::v1alpha1::Swap), #[prost(message, tag = "4")] - SwapClaim(super::super::super::dex::v1alpha1::SwapClaim), + SwapClaim(super::super::super::component::dex::v1alpha1::SwapClaim), #[prost(message, tag = "16")] - ValidatorDefinition(super::super::super::stake::v1alpha1::ValidatorDefinition), + ValidatorDefinition( + super::super::super::component::stake::v1alpha1::ValidatorDefinition, + ), #[prost(message, tag = "17")] - IbcAction(super::super::super::ibc::v1alpha1::IbcAction), + IbcAction(super::super::super::component::ibc::v1alpha1::IbcAction), /// Governance: #[prost(message, tag = "18")] - ProposalSubmit(super::super::super::governance::v1alpha1::ProposalSubmit), + ProposalSubmit( + super::super::super::component::governance::v1alpha1::ProposalSubmit, + ), #[prost(message, tag = "19")] - ProposalWithdraw(super::super::super::governance::v1alpha1::ProposalWithdraw), + ProposalWithdraw( + super::super::super::component::governance::v1alpha1::ProposalWithdraw, + ), #[prost(message, tag = "20")] - ValidatorVote(super::super::super::governance::v1alpha1::ValidatorVote), + ValidatorVote( + super::super::super::component::governance::v1alpha1::ValidatorVote, + ), #[prost(message, tag = "21")] - DelegatorVote(super::super::super::governance::v1alpha1::DelegatorVote), + DelegatorVote( + super::super::super::component::governance::v1alpha1::DelegatorVote, + ), #[prost(message, tag = "22")] ProposalDepositClaim( - super::super::super::governance::v1alpha1::ProposalDepositClaim, + super::super::super::component::governance::v1alpha1::ProposalDepositClaim, ), /// Positions #[prost(message, tag = "30")] - PositionOpen(super::super::super::dex::v1alpha1::PositionOpen), + PositionOpen(super::super::super::component::dex::v1alpha1::PositionOpen), #[prost(message, tag = "31")] - PositionClose(super::super::super::dex::v1alpha1::PositionClose), + PositionClose(super::super::super::component::dex::v1alpha1::PositionClose), #[prost(message, tag = "32")] - PositionWithdraw(super::super::super::dex::v1alpha1::PositionWithdraw), + PositionWithdraw( + super::super::super::component::dex::v1alpha1::PositionWithdraw, + ), #[prost(message, tag = "34")] - PositionRewardClaim(super::super::super::dex::v1alpha1::PositionRewardClaim), + PositionRewardClaim( + super::super::super::component::dex::v1alpha1::PositionRewardClaim, + ), /// (un)delegation #[prost(message, tag = "40")] - Delegate(super::super::super::stake::v1alpha1::Delegate), + Delegate(super::super::super::component::stake::v1alpha1::Delegate), #[prost(message, tag = "41")] - Undelegate(super::super::super::stake::v1alpha1::Undelegate), + Undelegate(super::super::super::component::stake::v1alpha1::Undelegate), #[prost(message, tag = "42")] - UndelegateClaim(super::super::super::stake::v1alpha1::UndelegateClaim), + UndelegateClaim( + super::super::super::component::stake::v1alpha1::UndelegateClaim, + ), /// DAO #[prost(message, tag = "50")] - DaoSpend(super::super::super::governance::v1alpha1::DaoSpend), + DaoSpend(super::super::super::component::governance::v1alpha1::DaoSpend), #[prost(message, tag = "51")] - DaoOutput(super::super::super::governance::v1alpha1::DaoOutput), + DaoOutput(super::super::super::component::governance::v1alpha1::DaoOutput), #[prost(message, tag = "52")] - DaoDeposit(super::super::super::governance::v1alpha1::DaoDeposit), + DaoDeposit(super::super::super::component::governance::v1alpha1::DaoDeposit), #[prost(message, tag = "200")] - Ics20Withdrawal(super::super::super::ibc::v1alpha1::Ics20Withdrawal), + Ics20Withdrawal(super::super::super::component::ibc::v1alpha1::Ics20Withdrawal), } } /// A transaction perspective is a bundle of key material and commitment openings @@ -155,42 +170,42 @@ 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, + pub advice_notes: ::prost::alloc::vec::Vec< + super::super::component::shielded_pool::v1alpha1::Note, + >, /// Any relevant address views. #[prost(message, repeated, tag = "4")] pub address_views: ::prost::alloc::vec::Vec< - super::super::crypto::v1alpha1::AddressView, + super::super::keys::v1alpha1::AddressView, >, /// Any relevant denoms for viewed assets. #[prost(message, repeated, tag = "5")] - pub denoms: ::prost::alloc::vec::Vec, + pub denoms: ::prost::alloc::vec::Vec, /// The transaction ID associated with this TransactionPerspective #[prost(message, optional, tag = "6")] pub transaction_id: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct PayloadKey { - #[prost(bytes = "bytes", tag = "1")] - pub inner: ::prost::bytes::Bytes, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] pub struct PayloadKeyWithCommitment { #[prost(message, optional, tag = "1")] - pub payload_key: ::core::option::Option, + pub payload_key: ::core::option::Option, #[prost(message, optional, tag = "2")] pub commitment: ::core::option::Option< - super::super::crypto::v1alpha1::StateCommitment, + super::super::super::crypto::tct::v1alpha1::StateCommitment, >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct NullifierWithNote { #[prost(message, optional, tag = "1")] - pub nullifier: ::core::option::Option, + pub nullifier: ::core::option::Option< + super::super::component::sct::v1alpha1::Nullifier, + >, #[prost(message, optional, tag = "2")] - pub note: ::core::option::Option, + pub note: ::core::option::Option< + super::super::component::shielded_pool::v1alpha1::Note, + >, } /// View of a Penumbra transaction. #[allow(clippy::derive_partial_eq_without_eq)] @@ -200,12 +215,14 @@ pub struct TransactionView { #[prost(message, optional, tag = "1")] pub body_view: ::core::option::Option, /// The binding signature is stored separately from the transaction body that it signs. - #[prost(bytes = "bytes", tag = "2")] - pub binding_sig: ::prost::bytes::Bytes, + #[prost(bytes = "vec", tag = "2")] + pub binding_sig: ::prost::alloc::vec::Vec, /// 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, + pub anchor: ::core::option::Option< + super::super::super::crypto::tct::v1alpha1::MerkleRoot, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -218,7 +235,7 @@ pub struct TransactionBodyView { pub transaction_parameters: ::core::option::Option, /// The transaction fee. #[prost(message, optional, tag = "3")] - pub fee: ::core::option::Option, + pub fee: ::core::option::Option, /// The detection data in this transaction, only populated if /// there are outputs in the actions of this transaction. #[prost(message, optional, tag = "4")] @@ -245,251 +262,95 @@ pub mod action_view { pub enum ActionView { /// Action types with visible/opaque variants #[prost(message, tag = "1")] - Spend(super::SpendView), + Spend(super::super::super::component::shielded_pool::v1alpha1::SpendView), #[prost(message, tag = "2")] - Output(super::OutputView), + Output(super::super::super::component::shielded_pool::v1alpha1::OutputView), #[prost(message, tag = "3")] - Swap(super::super::super::dex::v1alpha1::SwapView), + Swap(super::super::super::component::dex::v1alpha1::SwapView), #[prost(message, tag = "4")] - SwapClaim(super::super::super::dex::v1alpha1::SwapClaimView), + SwapClaim(super::super::super::component::dex::v1alpha1::SwapClaimView), /// Action types without visible/opaque variants #[prost(message, tag = "16")] - ValidatorDefinition(super::super::super::stake::v1alpha1::ValidatorDefinition), + ValidatorDefinition( + super::super::super::component::stake::v1alpha1::ValidatorDefinition, + ), #[prost(message, tag = "17")] - IbcAction(super::super::super::ibc::v1alpha1::IbcAction), + IbcAction(super::super::super::component::ibc::v1alpha1::IbcAction), /// Governance: #[prost(message, tag = "18")] - ProposalSubmit(super::super::super::governance::v1alpha1::ProposalSubmit), + ProposalSubmit( + super::super::super::component::governance::v1alpha1::ProposalSubmit, + ), #[prost(message, tag = "19")] - ProposalWithdraw(super::super::super::governance::v1alpha1::ProposalWithdraw), + ProposalWithdraw( + super::super::super::component::governance::v1alpha1::ProposalWithdraw, + ), #[prost(message, tag = "20")] - ValidatorVote(super::super::super::governance::v1alpha1::ValidatorVote), + ValidatorVote( + super::super::super::component::governance::v1alpha1::ValidatorVote, + ), #[prost(message, tag = "21")] - DelegatorVote(super::DelegatorVoteView), + DelegatorVote( + super::super::super::component::governance::v1alpha1::DelegatorVoteView, + ), #[prost(message, tag = "22")] ProposalDepositClaim( - super::super::super::governance::v1alpha1::ProposalDepositClaim, + super::super::super::component::governance::v1alpha1::ProposalDepositClaim, ), #[prost(message, tag = "30")] - PositionOpen(super::super::super::dex::v1alpha1::PositionOpen), + PositionOpen(super::super::super::component::dex::v1alpha1::PositionOpen), #[prost(message, tag = "31")] - PositionClose(super::super::super::dex::v1alpha1::PositionClose), + PositionClose(super::super::super::component::dex::v1alpha1::PositionClose), #[prost(message, tag = "32")] - PositionWithdraw(super::super::super::dex::v1alpha1::PositionWithdraw), + PositionWithdraw( + super::super::super::component::dex::v1alpha1::PositionWithdraw, + ), #[prost(message, tag = "34")] - PositionRewardClaim(super::super::super::dex::v1alpha1::PositionRewardClaim), + PositionRewardClaim( + super::super::super::component::dex::v1alpha1::PositionRewardClaim, + ), #[prost(message, tag = "41")] - Delegate(super::super::super::stake::v1alpha1::Delegate), + Delegate(super::super::super::component::stake::v1alpha1::Delegate), #[prost(message, tag = "42")] - Undelegate(super::super::super::stake::v1alpha1::Undelegate), + Undelegate(super::super::super::component::stake::v1alpha1::Undelegate), /// DAO #[prost(message, tag = "50")] - DaoSpend(super::super::super::governance::v1alpha1::DaoSpend), + DaoSpend(super::super::super::component::governance::v1alpha1::DaoSpend), #[prost(message, tag = "51")] - DaoOutput(super::super::super::governance::v1alpha1::DaoOutput), + DaoOutput(super::super::super::component::governance::v1alpha1::DaoOutput), #[prost(message, tag = "52")] - DaoDeposit(super::super::super::governance::v1alpha1::DaoDeposit), + DaoDeposit(super::super::super::component::governance::v1alpha1::DaoDeposit), /// 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::stake::v1alpha1::UndelegateClaim), + UndelegateClaim( + super::super::super::component::stake::v1alpha1::UndelegateClaim, + ), #[prost(message, tag = "200")] - Ics20Withdrawal(super::super::super::ibc::v1alpha1::Ics20Withdrawal), - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SpendView { - #[prost(oneof = "spend_view::SpendView", tags = "1, 2")] - pub spend_view: ::core::option::Option, -} -/// Nested message and enum types in `SpendView`. -pub mod spend_view { - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Visible { - #[prost(message, optional, tag = "1")] - pub spend: ::core::option::Option, - #[prost(message, optional, tag = "2")] - pub note: ::core::option::Option< - super::super::super::crypto::v1alpha1::NoteView, - >, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Opaque { - #[prost(message, optional, tag = "1")] - pub spend: ::core::option::Option, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum SpendView { - #[prost(message, tag = "1")] - Visible(Visible), - #[prost(message, tag = "2")] - Opaque(Opaque), - } -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct DelegatorVoteView { - #[prost(oneof = "delegator_vote_view::DelegatorVote", tags = "1, 2")] - pub delegator_vote: ::core::option::Option, -} -/// Nested message and enum types in `DelegatorVoteView`. -pub mod delegator_vote_view { - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Visible { - #[prost(message, optional, tag = "1")] - pub delegator_vote: ::core::option::Option< - super::super::super::governance::v1alpha1::DelegatorVote, - >, - #[prost(message, optional, tag = "2")] - pub note: ::core::option::Option< - super::super::super::crypto::v1alpha1::NoteView, - >, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Opaque { - #[prost(message, optional, tag = "1")] - pub delegator_vote: ::core::option::Option< - super::super::super::governance::v1alpha1::DelegatorVote, - >, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum DelegatorVote { - #[prost(message, tag = "1")] - Visible(Visible), - #[prost(message, tag = "2")] - Opaque(Opaque), + Ics20Withdrawal(super::super::super::component::ibc::v1alpha1::Ics20Withdrawal), } } -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct OutputView { - #[prost(oneof = "output_view::OutputView", tags = "1, 2")] - pub output_view: ::core::option::Option, -} -/// Nested message and enum types in `OutputView`. -pub mod output_view { - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Visible { - #[prost(message, optional, tag = "1")] - pub output: ::core::option::Option, - #[prost(message, optional, tag = "2")] - pub note: ::core::option::Option< - super::super::super::crypto::v1alpha1::NoteView, - >, - #[prost(message, optional, tag = "3")] - pub payload_key: ::core::option::Option, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Message)] - pub struct Opaque { - #[prost(message, optional, tag = "1")] - pub output: ::core::option::Option, - } - #[allow(clippy::derive_partial_eq_without_eq)] - #[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum OutputView { - #[prost(message, tag = "1")] - Visible(Visible), - #[prost(message, tag = "2")] - Opaque(Opaque), - } -} -/// Spends a shielded note. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Spend { - /// The effecting data of the spend. - #[prost(message, optional, tag = "1")] - pub body: ::core::option::Option, - /// The authorizing signature for the spend. - #[prost(message, optional, tag = "2")] - pub auth_sig: ::core::option::Option< - super::super::crypto::v1alpha1::SpendAuthSignature, - >, - /// The proof that the spend is well-formed is authorizing data. - #[prost(message, optional, tag = "3")] - pub proof: ::core::option::Option, -} -/// The body of a spend description, containing only the effecting data -/// describing changes to the ledger, and not the authorizing data that allows -/// those changes to be performed. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SpendBody { - /// A commitment to the value of the input note. - #[prost(message, optional, tag = "1")] - pub balance_commitment: ::core::option::Option< - super::super::crypto::v1alpha1::BalanceCommitment, - >, - /// The nullifier of the input note. - #[prost(bytes = "bytes", tag = "3")] - pub nullifier: ::prost::bytes::Bytes, - /// The randomized validating key for the spend authorization signature. - #[prost(bytes = "bytes", tag = "4")] - pub rk: ::prost::bytes::Bytes, -} -/// Creates a new shielded note. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct Output { - /// The effecting data for the output. - #[prost(message, optional, tag = "1")] - pub body: ::core::option::Option, - /// The output proof is authorizing data. - #[prost(message, optional, tag = "2")] - pub proof: ::core::option::Option, -} -/// The body of an output description, containing only the effecting data -/// describing changes to the ledger, and not the authorizing data that allows -/// those changes to be performed. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct OutputBody { - /// The minimal data required to scan and process the new output note. - #[prost(message, optional, tag = "1")] - pub note_payload: ::core::option::Option< - super::super::crypto::v1alpha1::NotePayload, - >, - /// A commitment to the value of the output note. 32 bytes. - #[prost(message, optional, tag = "2")] - pub balance_commitment: ::core::option::Option< - super::super::crypto::v1alpha1::BalanceCommitment, - >, - /// An encrypted key for decrypting the memo. - #[prost(bytes = "bytes", tag = "3")] - pub wrapped_memo_key: ::prost::bytes::Bytes, - /// The key material used for note encryption, wrapped in encryption to the - /// sender's outgoing viewing key. 80 bytes. - #[prost(bytes = "bytes", tag = "4")] - pub ovk_wrapped_key: ::prost::bytes::Bytes, -} /// The data required to authorize a transaction plan. #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct AuthorizationData { /// The computed auth hash for the approved transaction plan. #[prost(message, optional, tag = "1")] - pub effect_hash: ::core::option::Option, + pub effect_hash: ::core::option::Option< + super::super::component::chain::v1alpha1::EffectHash, + >, /// The required spend authorizations, returned in the same order as the /// Spend actions in the original request. #[prost(message, repeated, tag = "2")] pub spend_auths: ::prost::alloc::vec::Vec< - super::super::crypto::v1alpha1::SpendAuthSignature, + super::super::super::crypto::decaf377_rdsa::v1alpha1::SpendAuthSignature, >, /// The required delegator vote authorizations, returned in the same order as the /// DelegatorVote actions in the original request. #[prost(message, repeated, tag = "3")] pub delegator_vote_auths: ::prost::alloc::vec::Vec< - super::super::crypto::v1alpha1::SpendAuthSignature, + super::super::super::crypto::decaf377_rdsa::v1alpha1::SpendAuthSignature, >, } /// The data required for proving when building a transaction from a plan. @@ -498,12 +359,14 @@ pub struct AuthorizationData { pub struct WitnessData { /// The anchor for the state transition proofs. #[prost(message, optional, tag = "1")] - pub anchor: ::core::option::Option, + pub anchor: ::core::option::Option< + super::super::super::crypto::tct::v1alpha1::MerkleRoot, + >, /// 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::crypto::v1alpha1::StateCommitmentProof, + super::super::super::crypto::tct::v1alpha1::StateCommitmentProof, >, } /// Describes a planned transaction. Permits clients to prepare a transaction @@ -522,7 +385,7 @@ pub struct TransactionPlan { #[prost(string, tag = "3")] pub chain_id: ::prost::alloc::string::String, #[prost(message, optional, tag = "4")] - pub fee: ::core::option::Option, + pub fee: ::core::option::Option, #[prost(message, repeated, tag = "5")] pub clue_plans: ::prost::alloc::vec::Vec, /// Planning interface for constructing an optional Memo for the Transaction. @@ -548,60 +411,76 @@ pub mod action_plan { #[derive(Clone, PartialEq, ::prost::Oneof)] pub enum Action { #[prost(message, tag = "1")] - Spend(super::SpendPlan), + Spend(super::super::super::component::shielded_pool::v1alpha1::SpendPlan), #[prost(message, tag = "2")] - Output(super::OutputPlan), + Output(super::super::super::component::shielded_pool::v1alpha1::OutputPlan), #[prost(message, tag = "3")] - Swap(super::super::super::dex::v1alpha1::SwapPlan), + Swap(super::super::super::component::dex::v1alpha1::SwapPlan), #[prost(message, tag = "4")] - SwapClaim(super::super::super::dex::v1alpha1::SwapClaimPlan), + 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::stake::v1alpha1::ValidatorDefinition), + ValidatorDefinition( + super::super::super::component::stake::v1alpha1::ValidatorDefinition, + ), /// This is just a message relayed to the chain. #[prost(message, tag = "17")] - IbcAction(super::super::super::ibc::v1alpha1::IbcAction), + IbcAction(super::super::super::component::ibc::v1alpha1::IbcAction), /// Governance: #[prost(message, tag = "18")] - ProposalSubmit(super::super::super::governance::v1alpha1::ProposalSubmit), + ProposalSubmit( + super::super::super::component::governance::v1alpha1::ProposalSubmit, + ), #[prost(message, tag = "19")] - ProposalWithdraw(super::super::super::governance::v1alpha1::ProposalWithdraw), + ProposalWithdraw( + super::super::super::component::governance::v1alpha1::ProposalWithdraw, + ), #[prost(message, tag = "20")] - ValidatorVote(super::super::super::governance::v1alpha1::ValidatorVote), + ValidatorVote( + super::super::super::component::governance::v1alpha1::ValidatorVote, + ), #[prost(message, tag = "21")] - DelegatorVote(super::super::super::governance::v1alpha1::DelegatorVotePlan), + DelegatorVote( + super::super::super::component::governance::v1alpha1::DelegatorVotePlan, + ), #[prost(message, tag = "22")] ProposalDepositClaim( - super::super::super::governance::v1alpha1::ProposalDepositClaim, + super::super::super::component::governance::v1alpha1::ProposalDepositClaim, ), #[prost(message, tag = "23")] - Withdrawal(super::super::super::ibc::v1alpha1::Ics20Withdrawal), + Withdrawal(super::super::super::component::ibc::v1alpha1::Ics20Withdrawal), #[prost(message, tag = "30")] - PositionOpen(super::super::super::dex::v1alpha1::PositionOpen), + PositionOpen(super::super::super::component::dex::v1alpha1::PositionOpen), #[prost(message, tag = "31")] - PositionClose(super::super::super::dex::v1alpha1::PositionClose), + 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::dex::v1alpha1::PositionWithdrawPlan), + PositionWithdraw( + super::super::super::component::dex::v1alpha1::PositionWithdrawPlan, + ), #[prost(message, tag = "34")] - PositionRewardClaim(super::super::super::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")] - Delegate(super::super::super::stake::v1alpha1::Delegate), + Delegate(super::super::super::component::stake::v1alpha1::Delegate), /// We don't need any extra information (yet) to understand undelegations, /// because we don't yet use flow encryption. #[prost(message, tag = "41")] - Undelegate(super::super::super::stake::v1alpha1::Undelegate), + Undelegate(super::super::super::component::stake::v1alpha1::Undelegate), #[prost(message, tag = "42")] - UndelegateClaim(super::super::super::stake::v1alpha1::UndelegateClaimPlan), + UndelegateClaim( + super::super::super::component::stake::v1alpha1::UndelegateClaimPlan, + ), /// DAO #[prost(message, tag = "50")] - DaoSpend(super::super::super::governance::v1alpha1::DaoSpend), + DaoSpend(super::super::super::component::governance::v1alpha1::DaoSpend), #[prost(message, tag = "51")] - DaoOutput(super::super::super::governance::v1alpha1::DaoOutput), + DaoOutput(super::super::super::component::governance::v1alpha1::DaoOutput), #[prost(message, tag = "52")] - DaoDeposit(super::super::super::governance::v1alpha1::DaoDeposit), + DaoDeposit(super::super::super::component::governance::v1alpha1::DaoDeposit), } } /// Describes a plan for forming a `Clue`. @@ -610,10 +489,10 @@ pub mod action_plan { pub struct CluePlan { /// The address. #[prost(message, optional, tag = "1")] - pub address: ::core::option::Option, + pub address: ::core::option::Option, /// The random seed to use for the clue plan. - #[prost(bytes = "bytes", tag = "2")] - pub rseed: ::prost::bytes::Bytes, + #[prost(bytes = "vec", tag = "2")] + pub rseed: ::prost::alloc::vec::Vec, /// The bits of precision. #[prost(uint64, tag = "3")] pub precision_bits: u64, @@ -626,20 +505,20 @@ pub struct MemoPlan { #[prost(message, optional, tag = "1")] pub plaintext: ::core::option::Option, /// The key to use to encrypt the memo. - #[prost(bytes = "bytes", tag = "2")] - pub key: ::prost::bytes::Bytes, + #[prost(bytes = "vec", tag = "2")] + pub key: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MemoCiphertext { - #[prost(bytes = "bytes", tag = "1")] - pub inner: ::prost::bytes::Bytes, + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct MemoPlaintext { #[prost(message, optional, tag = "1")] - pub sender: ::core::option::Option, + pub sender: ::core::option::Option, #[prost(string, tag = "2")] pub text: ::prost::alloc::string::String, } @@ -676,50 +555,6 @@ pub mod memo_view { } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] -pub struct SpendPlan { - /// The plaintext note we plan to spend. - #[prost(message, optional, tag = "1")] - pub note: ::core::option::Option, - /// The position of the note we plan to spend. - #[prost(uint64, tag = "2")] - pub position: u64, - /// The randomizer to use for the spend. - #[prost(bytes = "bytes", tag = "3")] - pub randomizer: ::prost::bytes::Bytes, - /// The blinding factor to use for the value commitment. - #[prost(bytes = "bytes", tag = "4")] - pub value_blinding: ::prost::bytes::Bytes, - /// The first blinding factor to use for the ZK spend proof. - #[prost(bytes = "bytes", tag = "5")] - pub proof_blinding_r: ::prost::bytes::Bytes, - /// The second blinding factor to use for the ZK spend proof. - #[prost(bytes = "bytes", tag = "6")] - pub proof_blinding_s: ::prost::bytes::Bytes, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct OutputPlan { - /// The value to send to this output. - #[prost(message, optional, tag = "1")] - pub value: ::core::option::Option, - /// The destination address to send it to. - #[prost(message, optional, tag = "2")] - pub dest_address: ::core::option::Option, - /// The rseed to use for the new note. - #[prost(bytes = "bytes", tag = "3")] - pub rseed: ::prost::bytes::Bytes, - /// The blinding factor to use for the value commitment. - #[prost(bytes = "bytes", tag = "4")] - pub value_blinding: ::prost::bytes::Bytes, - /// The first blinding factor to use for the ZK output proof. - #[prost(bytes = "bytes", tag = "5")] - pub proof_blinding_r: ::prost::bytes::Bytes, - /// The second blinding factor to use for the ZK output proof. - #[prost(bytes = "bytes", tag = "6")] - pub proof_blinding_s: ::prost::bytes::Bytes, -} -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] pub struct GasPrices { /// The price per unit block space in terms of the staking token. #[prost(uint64, tag = "1")] 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 8447b21e09..f9a52c6498 100644 --- a/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.serde.rs +++ b/crates/proto/src/gen/penumbra.core.transaction.v1alpha1.serde.rs @@ -1413,7 +1413,7 @@ impl<'de> serde::Deserialize<'de> for CluePlan { deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.CluePlan", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for DelegatorVoteView { +impl serde::Serialize for DetectionData { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -1421,38 +1421,30 @@ impl serde::Serialize for DelegatorVoteView { { use serde::ser::SerializeStruct; let mut len = 0; - if self.delegator_vote.is_some() { + if !self.fmd_clues.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.DelegatorVoteView", len)?; - if let Some(v) = self.delegator_vote.as_ref() { - match v { - delegator_vote_view::DelegatorVote::Visible(v) => { - struct_ser.serialize_field("visible", v)?; - } - delegator_vote_view::DelegatorVote::Opaque(v) => { - struct_ser.serialize_field("opaque", v)?; - } - } + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.DetectionData", len)?; + if !self.fmd_clues.is_empty() { + struct_ser.serialize_field("fmdClues", &self.fmd_clues)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for DelegatorVoteView { +impl<'de> serde::Deserialize<'de> for DetectionData { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "visible", - "opaque", + "fmd_clues", + "fmdClues", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Visible, - Opaque, + FmdClues, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1474,8 +1466,7 @@ impl<'de> serde::Deserialize<'de> for DelegatorVoteView { E: serde::de::Error, { match value { - "visible" => Ok(GeneratedField::Visible), - "opaque" => Ok(GeneratedField::Opaque), + "fmdClues" | "fmd_clues" => Ok(GeneratedField::FmdClues), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1485,44 +1476,36 @@ impl<'de> serde::Deserialize<'de> for DelegatorVoteView { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DelegatorVoteView; + type Value = DetectionData; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.DelegatorVoteView") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.DetectionData") } - 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 delegator_vote__ = None; + let mut fmd_clues__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::Visible => { - if delegator_vote__.is_some() { - return Err(serde::de::Error::duplicate_field("visible")); - } - delegator_vote__ = map.next_value::<::std::option::Option<_>>()?.map(delegator_vote_view::DelegatorVote::Visible) -; - } - GeneratedField::Opaque => { - if delegator_vote__.is_some() { - return Err(serde::de::Error::duplicate_field("opaque")); + GeneratedField::FmdClues => { + if fmd_clues__.is_some() { + return Err(serde::de::Error::duplicate_field("fmdClues")); } - delegator_vote__ = map.next_value::<::std::option::Option<_>>()?.map(delegator_vote_view::DelegatorVote::Opaque) -; + fmd_clues__ = Some(map.next_value()?); } } } - Ok(DelegatorVoteView { - delegator_vote: delegator_vote__, + Ok(DetectionData { + fmd_clues: fmd_clues__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.DelegatorVoteView", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.DetectionData", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for delegator_vote_view::Opaque { +impl serde::Serialize for GasPrices { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -1530,30 +1513,57 @@ impl serde::Serialize for delegator_vote_view::Opaque { { use serde::ser::SerializeStruct; let mut len = 0; - if self.delegator_vote.is_some() { + if self.block_space_price != 0 { + len += 1; + } + if self.compact_block_space_price != 0 { + len += 1; + } + if self.verification_price != 0 { + len += 1; + } + if self.execution_price != 0 { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.DelegatorVoteView.Opaque", len)?; - if let Some(v) = self.delegator_vote.as_ref() { - struct_ser.serialize_field("delegatorVote", v)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.GasPrices", len)?; + if self.block_space_price != 0 { + struct_ser.serialize_field("blockSpacePrice", ToString::to_string(&self.block_space_price).as_str())?; + } + if self.compact_block_space_price != 0 { + struct_ser.serialize_field("compactBlockSpacePrice", ToString::to_string(&self.compact_block_space_price).as_str())?; + } + if self.verification_price != 0 { + struct_ser.serialize_field("verificationPrice", ToString::to_string(&self.verification_price).as_str())?; + } + if self.execution_price != 0 { + struct_ser.serialize_field("executionPrice", ToString::to_string(&self.execution_price).as_str())?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for delegator_vote_view::Opaque { +impl<'de> serde::Deserialize<'de> for GasPrices { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "delegator_vote", - "delegatorVote", + "block_space_price", + "blockSpacePrice", + "compact_block_space_price", + "compactBlockSpacePrice", + "verification_price", + "verificationPrice", + "execution_price", + "executionPrice", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - DelegatorVote, + BlockSpacePrice, + CompactBlockSpacePrice, + VerificationPrice, + ExecutionPrice, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1575,7 +1585,10 @@ impl<'de> serde::Deserialize<'de> for delegator_vote_view::Opaque { E: serde::de::Error, { match value { - "delegatorVote" | "delegator_vote" => Ok(GeneratedField::DelegatorVote), + "blockSpacePrice" | "block_space_price" => Ok(GeneratedField::BlockSpacePrice), + "compactBlockSpacePrice" | "compact_block_space_price" => Ok(GeneratedField::CompactBlockSpacePrice), + "verificationPrice" | "verification_price" => Ok(GeneratedField::VerificationPrice), + "executionPrice" | "execution_price" => Ok(GeneratedField::ExecutionPrice), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1585,36 +1598,68 @@ impl<'de> serde::Deserialize<'de> for delegator_vote_view::Opaque { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = delegator_vote_view::Opaque; + type Value = GasPrices; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.DelegatorVoteView.Opaque") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.GasPrices") } - 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 delegator_vote__ = None; + let mut block_space_price__ = None; + let mut compact_block_space_price__ = None; + let mut verification_price__ = None; + let mut execution_price__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::DelegatorVote => { - if delegator_vote__.is_some() { - return Err(serde::de::Error::duplicate_field("delegatorVote")); + GeneratedField::BlockSpacePrice => { + if block_space_price__.is_some() { + return Err(serde::de::Error::duplicate_field("blockSpacePrice")); + } + block_space_price__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::CompactBlockSpacePrice => { + if compact_block_space_price__.is_some() { + return Err(serde::de::Error::duplicate_field("compactBlockSpacePrice")); + } + compact_block_space_price__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::VerificationPrice => { + if verification_price__.is_some() { + return Err(serde::de::Error::duplicate_field("verificationPrice")); + } + verification_price__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::ExecutionPrice => { + if execution_price__.is_some() { + return Err(serde::de::Error::duplicate_field("executionPrice")); } - delegator_vote__ = map.next_value()?; + execution_price__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; } } } - Ok(delegator_vote_view::Opaque { - delegator_vote: delegator_vote__, + Ok(GasPrices { + block_space_price: block_space_price__.unwrap_or_default(), + compact_block_space_price: compact_block_space_price__.unwrap_or_default(), + verification_price: verification_price__.unwrap_or_default(), + execution_price: execution_price__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.DelegatorVoteView.Opaque", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.GasPrices", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for delegator_vote_view::Visible { +impl serde::Serialize for Id { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -1622,38 +1667,29 @@ impl serde::Serialize for delegator_vote_view::Visible { { use serde::ser::SerializeStruct; let mut len = 0; - if self.delegator_vote.is_some() { - len += 1; - } - if self.note.is_some() { + if !self.hash.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.DelegatorVoteView.Visible", len)?; - if let Some(v) = self.delegator_vote.as_ref() { - struct_ser.serialize_field("delegatorVote", v)?; - } - if let Some(v) = self.note.as_ref() { - struct_ser.serialize_field("note", v)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.Id", len)?; + if !self.hash.is_empty() { + struct_ser.serialize_field("hash", pbjson::private::base64::encode(&self.hash).as_str())?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for delegator_vote_view::Visible { +impl<'de> serde::Deserialize<'de> for Id { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "delegator_vote", - "delegatorVote", - "note", + "hash", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - DelegatorVote, - Note, + Hash, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1675,8 +1711,7 @@ impl<'de> serde::Deserialize<'de> for delegator_vote_view::Visible { E: serde::de::Error, { match value { - "delegatorVote" | "delegator_vote" => Ok(GeneratedField::DelegatorVote), - "note" => Ok(GeneratedField::Note), + "hash" => Ok(GeneratedField::Hash), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1686,44 +1721,38 @@ impl<'de> serde::Deserialize<'de> for delegator_vote_view::Visible { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = delegator_vote_view::Visible; + type Value = Id; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.DelegatorVoteView.Visible") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.Id") } - 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 delegator_vote__ = None; - let mut note__ = None; + let mut hash__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::DelegatorVote => { - if delegator_vote__.is_some() { - return Err(serde::de::Error::duplicate_field("delegatorVote")); - } - delegator_vote__ = map.next_value()?; - } - GeneratedField::Note => { - if note__.is_some() { - return Err(serde::de::Error::duplicate_field("note")); + GeneratedField::Hash => { + if hash__.is_some() { + return Err(serde::de::Error::duplicate_field("hash")); } - note__ = map.next_value()?; + hash__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; } } } - Ok(delegator_vote_view::Visible { - delegator_vote: delegator_vote__, - note: note__, + Ok(Id { + hash: hash__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.DelegatorVoteView.Visible", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.Id", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for DetectionData { +impl serde::Serialize for MemoCiphertext { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -1731,30 +1760,29 @@ impl serde::Serialize for DetectionData { { use serde::ser::SerializeStruct; let mut len = 0; - if !self.fmd_clues.is_empty() { + if !self.inner.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.DetectionData", len)?; - if !self.fmd_clues.is_empty() { - struct_ser.serialize_field("fmdClues", &self.fmd_clues)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoCiphertext", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for DetectionData { +impl<'de> serde::Deserialize<'de> for MemoCiphertext { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "fmd_clues", - "fmdClues", + "inner", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - FmdClues, + Inner, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1776,7 +1804,7 @@ impl<'de> serde::Deserialize<'de> for DetectionData { E: serde::de::Error, { match value { - "fmdClues" | "fmd_clues" => Ok(GeneratedField::FmdClues), + "inner" => Ok(GeneratedField::Inner), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1786,36 +1814,38 @@ impl<'de> serde::Deserialize<'de> for DetectionData { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = DetectionData; + type Value = MemoCiphertext; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.DetectionData") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoCiphertext") } - 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 fmd_clues__ = None; + let mut inner__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::FmdClues => { - if fmd_clues__.is_some() { - return Err(serde::de::Error::duplicate_field("fmdClues")); + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); } - fmd_clues__ = Some(map.next_value()?); + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; } } } - Ok(DetectionData { - fmd_clues: fmd_clues__.unwrap_or_default(), + Ok(MemoCiphertext { + inner: inner__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.DetectionData", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoCiphertext", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for EffectHash { +impl serde::Serialize for MemoData { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -1823,29 +1853,30 @@ impl serde::Serialize for EffectHash { { use serde::ser::SerializeStruct; let mut len = 0; - if !self.inner.is_empty() { + if !self.encrypted_memo.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.EffectHash", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoData", len)?; + if !self.encrypted_memo.is_empty() { + struct_ser.serialize_field("encryptedMemo", pbjson::private::base64::encode(&self.encrypted_memo).as_str())?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for EffectHash { +impl<'de> serde::Deserialize<'de> for MemoData { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "inner", + "encrypted_memo", + "encryptedMemo", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Inner, + EncryptedMemo, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -1867,7 +1898,7 @@ impl<'de> serde::Deserialize<'de> for EffectHash { E: serde::de::Error, { match value { - "inner" => Ok(GeneratedField::Inner), + "encryptedMemo" | "encrypted_memo" => Ok(GeneratedField::EncryptedMemo), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -1877,38 +1908,38 @@ impl<'de> serde::Deserialize<'de> for EffectHash { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = EffectHash; + type Value = MemoData; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.EffectHash") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoData") } - 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 inner__ = None; + let mut encrypted_memo__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); + GeneratedField::EncryptedMemo => { + if encrypted_memo__.is_some() { + return Err(serde::de::Error::duplicate_field("encryptedMemo")); } - inner__ = + encrypted_memo__ = Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) ; } } } - Ok(EffectHash { - inner: inner__.unwrap_or_default(), + Ok(MemoData { + encrypted_memo: encrypted_memo__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.EffectHash", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoData", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for GasPrices { +impl serde::Serialize for MemoPlaintext { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -1916,1971 +1947,37 @@ impl serde::Serialize for GasPrices { { use serde::ser::SerializeStruct; let mut len = 0; - if self.block_space_price != 0 { + if self.sender.is_some() { len += 1; } - if self.compact_block_space_price != 0 { - len += 1; - } - if self.verification_price != 0 { - len += 1; - } - if self.execution_price != 0 { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.GasPrices", len)?; - if self.block_space_price != 0 { - struct_ser.serialize_field("blockSpacePrice", ToString::to_string(&self.block_space_price).as_str())?; - } - if self.compact_block_space_price != 0 { - struct_ser.serialize_field("compactBlockSpacePrice", ToString::to_string(&self.compact_block_space_price).as_str())?; - } - if self.verification_price != 0 { - struct_ser.serialize_field("verificationPrice", ToString::to_string(&self.verification_price).as_str())?; - } - if self.execution_price != 0 { - struct_ser.serialize_field("executionPrice", ToString::to_string(&self.execution_price).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for GasPrices { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "block_space_price", - "blockSpacePrice", - "compact_block_space_price", - "compactBlockSpacePrice", - "verification_price", - "verificationPrice", - "execution_price", - "executionPrice", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - BlockSpacePrice, - CompactBlockSpacePrice, - VerificationPrice, - ExecutionPrice, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "blockSpacePrice" | "block_space_price" => Ok(GeneratedField::BlockSpacePrice), - "compactBlockSpacePrice" | "compact_block_space_price" => Ok(GeneratedField::CompactBlockSpacePrice), - "verificationPrice" | "verification_price" => Ok(GeneratedField::VerificationPrice), - "executionPrice" | "execution_price" => Ok(GeneratedField::ExecutionPrice), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GasPrices; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.GasPrices") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut block_space_price__ = None; - let mut compact_block_space_price__ = None; - let mut verification_price__ = None; - let mut execution_price__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::BlockSpacePrice => { - if block_space_price__.is_some() { - return Err(serde::de::Error::duplicate_field("blockSpacePrice")); - } - block_space_price__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::CompactBlockSpacePrice => { - if compact_block_space_price__.is_some() { - return Err(serde::de::Error::duplicate_field("compactBlockSpacePrice")); - } - compact_block_space_price__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::VerificationPrice => { - if verification_price__.is_some() { - return Err(serde::de::Error::duplicate_field("verificationPrice")); - } - verification_price__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::ExecutionPrice => { - if execution_price__.is_some() { - return Err(serde::de::Error::duplicate_field("executionPrice")); - } - execution_price__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - } - } - Ok(GasPrices { - block_space_price: block_space_price__.unwrap_or_default(), - compact_block_space_price: compact_block_space_price__.unwrap_or_default(), - verification_price: verification_price__.unwrap_or_default(), - execution_price: execution_price__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.GasPrices", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Id { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.hash.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.Id", len)?; - if !self.hash.is_empty() { - struct_ser.serialize_field("hash", pbjson::private::base64::encode(&self.hash).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Id { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "hash", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Hash, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "hash" => Ok(GeneratedField::Hash), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Id; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.Id") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut hash__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Hash => { - if hash__.is_some() { - return Err(serde::de::Error::duplicate_field("hash")); - } - hash__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(Id { - hash: hash__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.Id", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for MemoCiphertext { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoCiphertext", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for MemoCiphertext { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = MemoCiphertext; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoCiphertext") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(MemoCiphertext { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoCiphertext", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for MemoData { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.encrypted_memo.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoData", len)?; - if !self.encrypted_memo.is_empty() { - struct_ser.serialize_field("encryptedMemo", pbjson::private::base64::encode(&self.encrypted_memo).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for MemoData { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "encrypted_memo", - "encryptedMemo", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - EncryptedMemo, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "encryptedMemo" | "encrypted_memo" => Ok(GeneratedField::EncryptedMemo), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = MemoData; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoData") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut encrypted_memo__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::EncryptedMemo => { - if encrypted_memo__.is_some() { - return Err(serde::de::Error::duplicate_field("encryptedMemo")); - } - encrypted_memo__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(MemoData { - encrypted_memo: encrypted_memo__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoData", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for MemoPlaintext { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.sender.is_some() { - len += 1; - } - if !self.text.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoPlaintext", len)?; - if let Some(v) = self.sender.as_ref() { - struct_ser.serialize_field("sender", v)?; - } - if !self.text.is_empty() { - struct_ser.serialize_field("text", &self.text)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for MemoPlaintext { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "sender", - "text", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Sender, - Text, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "sender" => Ok(GeneratedField::Sender), - "text" => Ok(GeneratedField::Text), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = MemoPlaintext; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoPlaintext") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut sender__ = None; - let mut text__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Sender => { - if sender__.is_some() { - return Err(serde::de::Error::duplicate_field("sender")); - } - sender__ = map.next_value()?; - } - GeneratedField::Text => { - if text__.is_some() { - return Err(serde::de::Error::duplicate_field("text")); - } - text__ = Some(map.next_value()?); - } - } - } - Ok(MemoPlaintext { - sender: sender__, - text: text__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoPlaintext", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for MemoPlan { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.plaintext.is_some() { - len += 1; - } - if !self.key.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoPlan", len)?; - if let Some(v) = self.plaintext.as_ref() { - struct_ser.serialize_field("plaintext", v)?; - } - if !self.key.is_empty() { - struct_ser.serialize_field("key", pbjson::private::base64::encode(&self.key).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for MemoPlan { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "plaintext", - "key", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Plaintext, - Key, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "plaintext" => Ok(GeneratedField::Plaintext), - "key" => Ok(GeneratedField::Key), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = MemoPlan; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoPlan") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut plaintext__ = None; - let mut key__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Plaintext => { - if plaintext__.is_some() { - return Err(serde::de::Error::duplicate_field("plaintext")); - } - plaintext__ = map.next_value()?; - } - GeneratedField::Key => { - if key__.is_some() { - return Err(serde::de::Error::duplicate_field("key")); - } - key__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(MemoPlan { - plaintext: plaintext__, - key: key__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoPlan", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for MemoView { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.memo_view.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoView", len)?; - if let Some(v) = self.memo_view.as_ref() { - match v { - memo_view::MemoView::Visible(v) => { - struct_ser.serialize_field("visible", v)?; - } - memo_view::MemoView::Opaque(v) => { - struct_ser.serialize_field("opaque", v)?; - } - } - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for MemoView { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "visible", - "opaque", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Visible, - Opaque, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "visible" => Ok(GeneratedField::Visible), - "opaque" => Ok(GeneratedField::Opaque), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = MemoView; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoView") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut memo_view__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Visible => { - if memo_view__.is_some() { - return Err(serde::de::Error::duplicate_field("visible")); - } - memo_view__ = map.next_value::<::std::option::Option<_>>()?.map(memo_view::MemoView::Visible) -; - } - GeneratedField::Opaque => { - if memo_view__.is_some() { - return Err(serde::de::Error::duplicate_field("opaque")); - } - memo_view__ = map.next_value::<::std::option::Option<_>>()?.map(memo_view::MemoView::Opaque) -; - } - } - } - Ok(MemoView { - memo_view: memo_view__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoView", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for memo_view::Opaque { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.ciphertext.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoView.Opaque", len)?; - if let Some(v) = self.ciphertext.as_ref() { - struct_ser.serialize_field("ciphertext", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for memo_view::Opaque { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "ciphertext", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Ciphertext, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "ciphertext" => Ok(GeneratedField::Ciphertext), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = memo_view::Opaque; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoView.Opaque") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut ciphertext__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Ciphertext => { - if ciphertext__.is_some() { - return Err(serde::de::Error::duplicate_field("ciphertext")); - } - ciphertext__ = map.next_value()?; - } - } - } - Ok(memo_view::Opaque { - ciphertext: ciphertext__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoView.Opaque", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for memo_view::Visible { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.ciphertext.is_some() { - len += 1; - } - if self.plaintext.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoView.Visible", len)?; - if let Some(v) = self.ciphertext.as_ref() { - struct_ser.serialize_field("ciphertext", v)?; - } - if let Some(v) = self.plaintext.as_ref() { - struct_ser.serialize_field("plaintext", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for memo_view::Visible { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "ciphertext", - "plaintext", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Ciphertext, - Plaintext, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "ciphertext" => Ok(GeneratedField::Ciphertext), - "plaintext" => Ok(GeneratedField::Plaintext), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = memo_view::Visible; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoView.Visible") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut ciphertext__ = None; - let mut plaintext__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Ciphertext => { - if ciphertext__.is_some() { - return Err(serde::de::Error::duplicate_field("ciphertext")); - } - ciphertext__ = map.next_value()?; - } - GeneratedField::Plaintext => { - if plaintext__.is_some() { - return Err(serde::de::Error::duplicate_field("plaintext")); - } - plaintext__ = map.next_value()?; - } - } - } - Ok(memo_view::Visible { - ciphertext: ciphertext__, - plaintext: plaintext__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoView.Visible", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for NullifierWithNote { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.nullifier.is_some() { - len += 1; - } - if self.note.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.NullifierWithNote", len)?; - if let Some(v) = self.nullifier.as_ref() { - struct_ser.serialize_field("nullifier", v)?; - } - if let Some(v) = self.note.as_ref() { - struct_ser.serialize_field("note", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for NullifierWithNote { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "nullifier", - "note", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Nullifier, - Note, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "nullifier" => Ok(GeneratedField::Nullifier), - "note" => Ok(GeneratedField::Note), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = NullifierWithNote; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.NullifierWithNote") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut nullifier__ = None; - let mut note__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Nullifier => { - if nullifier__.is_some() { - return Err(serde::de::Error::duplicate_field("nullifier")); - } - nullifier__ = map.next_value()?; - } - GeneratedField::Note => { - if note__.is_some() { - return Err(serde::de::Error::duplicate_field("note")); - } - note__ = map.next_value()?; - } - } - } - Ok(NullifierWithNote { - nullifier: nullifier__, - note: note__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.NullifierWithNote", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for Output { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.body.is_some() { - len += 1; - } - if self.proof.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.Output", len)?; - if let Some(v) = self.body.as_ref() { - struct_ser.serialize_field("body", v)?; - } - if let Some(v) = self.proof.as_ref() { - struct_ser.serialize_field("proof", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for Output { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "body", - "proof", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Body, - Proof, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "body" => Ok(GeneratedField::Body), - "proof" => Ok(GeneratedField::Proof), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Output; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.Output") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut body__ = None; - let mut proof__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Body => { - if body__.is_some() { - return Err(serde::de::Error::duplicate_field("body")); - } - body__ = map.next_value()?; - } - GeneratedField::Proof => { - if proof__.is_some() { - return Err(serde::de::Error::duplicate_field("proof")); - } - proof__ = map.next_value()?; - } - } - } - Ok(Output { - body: body__, - proof: proof__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.Output", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for OutputBody { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.note_payload.is_some() { - len += 1; - } - if self.balance_commitment.is_some() { - len += 1; - } - if !self.wrapped_memo_key.is_empty() { - len += 1; - } - if !self.ovk_wrapped_key.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.OutputBody", len)?; - if let Some(v) = self.note_payload.as_ref() { - struct_ser.serialize_field("notePayload", v)?; - } - if let Some(v) = self.balance_commitment.as_ref() { - struct_ser.serialize_field("balanceCommitment", v)?; - } - if !self.wrapped_memo_key.is_empty() { - struct_ser.serialize_field("wrappedMemoKey", pbjson::private::base64::encode(&self.wrapped_memo_key).as_str())?; - } - if !self.ovk_wrapped_key.is_empty() { - struct_ser.serialize_field("ovkWrappedKey", pbjson::private::base64::encode(&self.ovk_wrapped_key).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for OutputBody { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "note_payload", - "notePayload", - "balance_commitment", - "balanceCommitment", - "wrapped_memo_key", - "wrappedMemoKey", - "ovk_wrapped_key", - "ovkWrappedKey", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - NotePayload, - BalanceCommitment, - WrappedMemoKey, - OvkWrappedKey, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "notePayload" | "note_payload" => Ok(GeneratedField::NotePayload), - "balanceCommitment" | "balance_commitment" => Ok(GeneratedField::BalanceCommitment), - "wrappedMemoKey" | "wrapped_memo_key" => Ok(GeneratedField::WrappedMemoKey), - "ovkWrappedKey" | "ovk_wrapped_key" => Ok(GeneratedField::OvkWrappedKey), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = OutputBody; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.OutputBody") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut note_payload__ = None; - let mut balance_commitment__ = None; - let mut wrapped_memo_key__ = None; - let mut ovk_wrapped_key__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::NotePayload => { - if note_payload__.is_some() { - return Err(serde::de::Error::duplicate_field("notePayload")); - } - note_payload__ = map.next_value()?; - } - GeneratedField::BalanceCommitment => { - if balance_commitment__.is_some() { - return Err(serde::de::Error::duplicate_field("balanceCommitment")); - } - balance_commitment__ = map.next_value()?; - } - GeneratedField::WrappedMemoKey => { - if wrapped_memo_key__.is_some() { - return Err(serde::de::Error::duplicate_field("wrappedMemoKey")); - } - wrapped_memo_key__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::OvkWrappedKey => { - if ovk_wrapped_key__.is_some() { - return Err(serde::de::Error::duplicate_field("ovkWrappedKey")); - } - ovk_wrapped_key__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(OutputBody { - note_payload: note_payload__, - balance_commitment: balance_commitment__, - wrapped_memo_key: wrapped_memo_key__.unwrap_or_default(), - ovk_wrapped_key: ovk_wrapped_key__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.OutputBody", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for OutputPlan { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.value.is_some() { - len += 1; - } - if self.dest_address.is_some() { - len += 1; - } - if !self.rseed.is_empty() { - len += 1; - } - if !self.value_blinding.is_empty() { - len += 1; - } - if !self.proof_blinding_r.is_empty() { - len += 1; - } - if !self.proof_blinding_s.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.OutputPlan", len)?; - if let Some(v) = self.value.as_ref() { - struct_ser.serialize_field("value", v)?; - } - if let Some(v) = self.dest_address.as_ref() { - struct_ser.serialize_field("destAddress", v)?; - } - if !self.rseed.is_empty() { - struct_ser.serialize_field("rseed", pbjson::private::base64::encode(&self.rseed).as_str())?; - } - if !self.value_blinding.is_empty() { - struct_ser.serialize_field("valueBlinding", pbjson::private::base64::encode(&self.value_blinding).as_str())?; - } - if !self.proof_blinding_r.is_empty() { - struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; - } - if !self.proof_blinding_s.is_empty() { - struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for OutputPlan { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "value", - "dest_address", - "destAddress", - "rseed", - "value_blinding", - "valueBlinding", - "proof_blinding_r", - "proofBlindingR", - "proof_blinding_s", - "proofBlindingS", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Value, - DestAddress, - Rseed, - ValueBlinding, - ProofBlindingR, - ProofBlindingS, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "value" => Ok(GeneratedField::Value), - "destAddress" | "dest_address" => Ok(GeneratedField::DestAddress), - "rseed" => Ok(GeneratedField::Rseed), - "valueBlinding" | "value_blinding" => Ok(GeneratedField::ValueBlinding), - "proofBlindingR" | "proof_blinding_r" => Ok(GeneratedField::ProofBlindingR), - "proofBlindingS" | "proof_blinding_s" => Ok(GeneratedField::ProofBlindingS), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = OutputPlan; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.OutputPlan") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut value__ = None; - let mut dest_address__ = None; - let mut rseed__ = None; - let mut value_blinding__ = None; - let mut proof_blinding_r__ = None; - let mut proof_blinding_s__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Value => { - if value__.is_some() { - return Err(serde::de::Error::duplicate_field("value")); - } - value__ = map.next_value()?; - } - GeneratedField::DestAddress => { - if dest_address__.is_some() { - return Err(serde::de::Error::duplicate_field("destAddress")); - } - dest_address__ = map.next_value()?; - } - GeneratedField::Rseed => { - if rseed__.is_some() { - return Err(serde::de::Error::duplicate_field("rseed")); - } - rseed__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::ValueBlinding => { - if value_blinding__.is_some() { - return Err(serde::de::Error::duplicate_field("valueBlinding")); - } - value_blinding__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::ProofBlindingR => { - if proof_blinding_r__.is_some() { - return Err(serde::de::Error::duplicate_field("proofBlindingR")); - } - proof_blinding_r__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::ProofBlindingS => { - if proof_blinding_s__.is_some() { - return Err(serde::de::Error::duplicate_field("proofBlindingS")); - } - proof_blinding_s__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(OutputPlan { - value: value__, - dest_address: dest_address__, - rseed: rseed__.unwrap_or_default(), - value_blinding: value_blinding__.unwrap_or_default(), - proof_blinding_r: proof_blinding_r__.unwrap_or_default(), - proof_blinding_s: proof_blinding_s__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.OutputPlan", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for OutputView { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.output_view.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.OutputView", len)?; - if let Some(v) = self.output_view.as_ref() { - match v { - output_view::OutputView::Visible(v) => { - struct_ser.serialize_field("visible", v)?; - } - output_view::OutputView::Opaque(v) => { - struct_ser.serialize_field("opaque", v)?; - } - } - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for OutputView { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "visible", - "opaque", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Visible, - Opaque, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "visible" => Ok(GeneratedField::Visible), - "opaque" => Ok(GeneratedField::Opaque), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = OutputView; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.OutputView") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut output_view__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Visible => { - if output_view__.is_some() { - return Err(serde::de::Error::duplicate_field("visible")); - } - output_view__ = map.next_value::<::std::option::Option<_>>()?.map(output_view::OutputView::Visible) -; - } - GeneratedField::Opaque => { - if output_view__.is_some() { - return Err(serde::de::Error::duplicate_field("opaque")); - } - output_view__ = map.next_value::<::std::option::Option<_>>()?.map(output_view::OutputView::Opaque) -; - } - } - } - Ok(OutputView { - output_view: output_view__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.OutputView", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for output_view::Opaque { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.output.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.OutputView.Opaque", len)?; - if let Some(v) = self.output.as_ref() { - struct_ser.serialize_field("output", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for output_view::Opaque { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "output", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Output, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "output" => Ok(GeneratedField::Output), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = output_view::Opaque; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.OutputView.Opaque") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut output__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Output => { - if output__.is_some() { - return Err(serde::de::Error::duplicate_field("output")); - } - output__ = map.next_value()?; - } - } - } - Ok(output_view::Opaque { - output: output__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.OutputView.Opaque", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for output_view::Visible { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.output.is_some() { - len += 1; - } - if self.note.is_some() { - len += 1; - } - if self.payload_key.is_some() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.OutputView.Visible", len)?; - if let Some(v) = self.output.as_ref() { - struct_ser.serialize_field("output", v)?; - } - if let Some(v) = self.note.as_ref() { - struct_ser.serialize_field("note", v)?; - } - if let Some(v) = self.payload_key.as_ref() { - struct_ser.serialize_field("payloadKey", v)?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for output_view::Visible { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "output", - "note", - "payload_key", - "payloadKey", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Output, - Note, - PayloadKey, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "output" => Ok(GeneratedField::Output), - "note" => Ok(GeneratedField::Note), - "payloadKey" | "payload_key" => Ok(GeneratedField::PayloadKey), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = output_view::Visible; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.OutputView.Visible") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut output__ = None; - let mut note__ = None; - let mut payload_key__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Output => { - if output__.is_some() { - return Err(serde::de::Error::duplicate_field("output")); - } - output__ = map.next_value()?; - } - GeneratedField::Note => { - if note__.is_some() { - return Err(serde::de::Error::duplicate_field("note")); - } - note__ = map.next_value()?; - } - GeneratedField::PayloadKey => { - if payload_key__.is_some() { - return Err(serde::de::Error::duplicate_field("payloadKey")); - } - payload_key__ = map.next_value()?; - } - } - } - Ok(output_view::Visible { - output: output__, - note: note__, - payload_key: payload_key__, - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.OutputView.Visible", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for PayloadKey { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if !self.inner.is_empty() { - len += 1; - } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.PayloadKey", len)?; - if !self.inner.is_empty() { - struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; - } - struct_ser.end() - } -} -impl<'de> serde::Deserialize<'de> for PayloadKey { - #[allow(deprecated)] - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - const FIELDS: &[&str] = &[ - "inner", - ]; - - #[allow(clippy::enum_variant_names)] - enum GeneratedField { - Inner, - } - impl<'de> serde::Deserialize<'de> for GeneratedField { - fn deserialize(deserializer: D) -> std::result::Result - where - D: serde::Deserializer<'de>, - { - struct GeneratedVisitor; - - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = GeneratedField; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(formatter, "expected one of: {:?}", &FIELDS) - } - - #[allow(unused_variables)] - fn visit_str(self, value: &str) -> std::result::Result - where - E: serde::de::Error, - { - match value { - "inner" => Ok(GeneratedField::Inner), - _ => Err(serde::de::Error::unknown_field(value, FIELDS)), - } - } - } - deserializer.deserialize_identifier(GeneratedVisitor) - } - } - struct GeneratedVisitor; - impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = PayloadKey; - - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.PayloadKey") - } - - fn visit_map(self, mut map: V) -> std::result::Result - where - V: serde::de::MapAccess<'de>, - { - let mut inner__ = None; - while let Some(k) = map.next_key()? { - match k { - GeneratedField::Inner => { - if inner__.is_some() { - return Err(serde::de::Error::duplicate_field("inner")); - } - inner__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - } - } - Ok(PayloadKey { - inner: inner__.unwrap_or_default(), - }) - } - } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.PayloadKey", FIELDS, GeneratedVisitor) - } -} -impl serde::Serialize for PayloadKeyWithCommitment { - #[allow(deprecated)] - fn serialize(&self, serializer: S) -> std::result::Result - where - S: serde::Serializer, - { - use serde::ser::SerializeStruct; - let mut len = 0; - if self.payload_key.is_some() { - len += 1; - } - if self.commitment.is_some() { + if !self.text.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment", len)?; - if let Some(v) = self.payload_key.as_ref() { - struct_ser.serialize_field("payloadKey", v)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoPlaintext", len)?; + if let Some(v) = self.sender.as_ref() { + struct_ser.serialize_field("sender", v)?; } - if let Some(v) = self.commitment.as_ref() { - struct_ser.serialize_field("commitment", v)?; + if !self.text.is_empty() { + struct_ser.serialize_field("text", &self.text)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for PayloadKeyWithCommitment { +impl<'de> serde::Deserialize<'de> for MemoPlaintext { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "payload_key", - "payloadKey", - "commitment", + "sender", + "text", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - PayloadKey, - Commitment, + Sender, + Text, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -3902,8 +1999,8 @@ impl<'de> serde::Deserialize<'de> for PayloadKeyWithCommitment { E: serde::de::Error, { match value { - "payloadKey" | "payload_key" => Ok(GeneratedField::PayloadKey), - "commitment" => Ok(GeneratedField::Commitment), + "sender" => Ok(GeneratedField::Sender), + "text" => Ok(GeneratedField::Text), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -3913,44 +2010,44 @@ impl<'de> serde::Deserialize<'de> for PayloadKeyWithCommitment { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = PayloadKeyWithCommitment; + type Value = MemoPlaintext; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoPlaintext") } - 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 payload_key__ = None; - let mut commitment__ = None; + let mut sender__ = None; + let mut text__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::PayloadKey => { - if payload_key__.is_some() { - return Err(serde::de::Error::duplicate_field("payloadKey")); + GeneratedField::Sender => { + if sender__.is_some() { + return Err(serde::de::Error::duplicate_field("sender")); } - payload_key__ = map.next_value()?; + sender__ = map.next_value()?; } - GeneratedField::Commitment => { - if commitment__.is_some() { - return Err(serde::de::Error::duplicate_field("commitment")); + GeneratedField::Text => { + if text__.is_some() { + return Err(serde::de::Error::duplicate_field("text")); } - commitment__ = map.next_value()?; + text__ = Some(map.next_value()?); } } } - Ok(PayloadKeyWithCommitment { - payload_key: payload_key__, - commitment: commitment__, + Ok(MemoPlaintext { + sender: sender__, + text: text__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoPlaintext", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for Spend { +impl serde::Serialize for MemoPlan { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -3958,46 +2055,37 @@ impl serde::Serialize for Spend { { use serde::ser::SerializeStruct; let mut len = 0; - if self.body.is_some() { - len += 1; - } - if self.auth_sig.is_some() { + if self.plaintext.is_some() { len += 1; } - if self.proof.is_some() { + if !self.key.is_empty() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.Spend", len)?; - if let Some(v) = self.body.as_ref() { - struct_ser.serialize_field("body", v)?; - } - if let Some(v) = self.auth_sig.as_ref() { - struct_ser.serialize_field("authSig", v)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoPlan", len)?; + if let Some(v) = self.plaintext.as_ref() { + struct_ser.serialize_field("plaintext", v)?; } - if let Some(v) = self.proof.as_ref() { - struct_ser.serialize_field("proof", v)?; + if !self.key.is_empty() { + struct_ser.serialize_field("key", pbjson::private::base64::encode(&self.key).as_str())?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for Spend { +impl<'de> serde::Deserialize<'de> for MemoPlan { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "body", - "auth_sig", - "authSig", - "proof", + "plaintext", + "key", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Body, - AuthSig, - Proof, + Plaintext, + Key, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -4019,9 +2107,8 @@ impl<'de> serde::Deserialize<'de> for Spend { E: serde::de::Error, { match value { - "body" => Ok(GeneratedField::Body), - "authSig" | "auth_sig" => Ok(GeneratedField::AuthSig), - "proof" => Ok(GeneratedField::Proof), + "plaintext" => Ok(GeneratedField::Plaintext), + "key" => Ok(GeneratedField::Key), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -4031,52 +2118,46 @@ impl<'de> serde::Deserialize<'de> for Spend { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = Spend; + type Value = MemoPlan; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.Spend") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoPlan") } - 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 body__ = None; - let mut auth_sig__ = None; - let mut proof__ = None; + let mut plaintext__ = None; + let mut key__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::Body => { - if body__.is_some() { - return Err(serde::de::Error::duplicate_field("body")); - } - body__ = map.next_value()?; - } - GeneratedField::AuthSig => { - if auth_sig__.is_some() { - return Err(serde::de::Error::duplicate_field("authSig")); + GeneratedField::Plaintext => { + if plaintext__.is_some() { + return Err(serde::de::Error::duplicate_field("plaintext")); } - auth_sig__ = map.next_value()?; + plaintext__ = map.next_value()?; } - GeneratedField::Proof => { - if proof__.is_some() { - return Err(serde::de::Error::duplicate_field("proof")); + GeneratedField::Key => { + if key__.is_some() { + return Err(serde::de::Error::duplicate_field("key")); } - proof__ = map.next_value()?; + key__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; } } } - Ok(Spend { - body: body__, - auth_sig: auth_sig__, - proof: proof__, + Ok(MemoPlan { + plaintext: plaintext__, + key: key__.unwrap_or_default(), }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.Spend", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoPlan", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for SpendBody { +impl serde::Serialize for MemoView { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -4084,46 +2165,38 @@ impl serde::Serialize for SpendBody { { use serde::ser::SerializeStruct; let mut len = 0; - if self.balance_commitment.is_some() { - len += 1; - } - if !self.nullifier.is_empty() { - len += 1; - } - if !self.rk.is_empty() { + if self.memo_view.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.SpendBody", len)?; - if let Some(v) = self.balance_commitment.as_ref() { - struct_ser.serialize_field("balanceCommitment", v)?; - } - if !self.nullifier.is_empty() { - struct_ser.serialize_field("nullifier", pbjson::private::base64::encode(&self.nullifier).as_str())?; - } - if !self.rk.is_empty() { - struct_ser.serialize_field("rk", pbjson::private::base64::encode(&self.rk).as_str())?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoView", len)?; + if let Some(v) = self.memo_view.as_ref() { + match v { + memo_view::MemoView::Visible(v) => { + struct_ser.serialize_field("visible", v)?; + } + memo_view::MemoView::Opaque(v) => { + struct_ser.serialize_field("opaque", v)?; + } + } } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for SpendBody { +impl<'de> serde::Deserialize<'de> for MemoView { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "balance_commitment", - "balanceCommitment", - "nullifier", - "rk", + "visible", + "opaque", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - BalanceCommitment, - Nullifier, - Rk, + Visible, + Opaque, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -4145,9 +2218,8 @@ impl<'de> serde::Deserialize<'de> for SpendBody { E: serde::de::Error, { match value { - "balanceCommitment" | "balance_commitment" => Ok(GeneratedField::BalanceCommitment), - "nullifier" => Ok(GeneratedField::Nullifier), - "rk" => Ok(GeneratedField::Rk), + "visible" => Ok(GeneratedField::Visible), + "opaque" => Ok(GeneratedField::Opaque), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -4157,56 +2229,44 @@ impl<'de> serde::Deserialize<'de> for SpendBody { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = SpendBody; + type Value = MemoView; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.SpendBody") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoView") } - 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 balance_commitment__ = None; - let mut nullifier__ = None; - let mut rk__ = None; + let mut memo_view__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::BalanceCommitment => { - if balance_commitment__.is_some() { - return Err(serde::de::Error::duplicate_field("balanceCommitment")); - } - balance_commitment__ = map.next_value()?; - } - GeneratedField::Nullifier => { - if nullifier__.is_some() { - return Err(serde::de::Error::duplicate_field("nullifier")); + GeneratedField::Visible => { + if memo_view__.is_some() { + return Err(serde::de::Error::duplicate_field("visible")); } - nullifier__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; + memo_view__ = map.next_value::<::std::option::Option<_>>()?.map(memo_view::MemoView::Visible) +; } - GeneratedField::Rk => { - if rk__.is_some() { - return Err(serde::de::Error::duplicate_field("rk")); + GeneratedField::Opaque => { + if memo_view__.is_some() { + return Err(serde::de::Error::duplicate_field("opaque")); } - rk__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; + memo_view__ = map.next_value::<::std::option::Option<_>>()?.map(memo_view::MemoView::Opaque) +; } } } - Ok(SpendBody { - balance_commitment: balance_commitment__, - nullifier: nullifier__.unwrap_or_default(), - rk: rk__.unwrap_or_default(), + Ok(MemoView { + memo_view: memo_view__, }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.SpendBody", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoView", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for SpendPlan { +impl serde::Serialize for memo_view::Opaque { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -4214,72 +2274,29 @@ impl serde::Serialize for SpendPlan { { use serde::ser::SerializeStruct; let mut len = 0; - if self.note.is_some() { - len += 1; - } - if self.position != 0 { - len += 1; - } - if !self.randomizer.is_empty() { - len += 1; - } - if !self.value_blinding.is_empty() { - len += 1; - } - if !self.proof_blinding_r.is_empty() { - len += 1; - } - if !self.proof_blinding_s.is_empty() { + if self.ciphertext.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.SpendPlan", len)?; - if let Some(v) = self.note.as_ref() { - struct_ser.serialize_field("note", v)?; - } - if self.position != 0 { - struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; - } - if !self.randomizer.is_empty() { - struct_ser.serialize_field("randomizer", pbjson::private::base64::encode(&self.randomizer).as_str())?; - } - if !self.value_blinding.is_empty() { - struct_ser.serialize_field("valueBlinding", pbjson::private::base64::encode(&self.value_blinding).as_str())?; - } - if !self.proof_blinding_r.is_empty() { - struct_ser.serialize_field("proofBlindingR", pbjson::private::base64::encode(&self.proof_blinding_r).as_str())?; - } - if !self.proof_blinding_s.is_empty() { - struct_ser.serialize_field("proofBlindingS", pbjson::private::base64::encode(&self.proof_blinding_s).as_str())?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoView.Opaque", len)?; + if let Some(v) = self.ciphertext.as_ref() { + struct_ser.serialize_field("ciphertext", v)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for SpendPlan { +impl<'de> serde::Deserialize<'de> for memo_view::Opaque { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "note", - "position", - "randomizer", - "value_blinding", - "valueBlinding", - "proof_blinding_r", - "proofBlindingR", - "proof_blinding_s", - "proofBlindingS", + "ciphertext", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Note, - Position, - Randomizer, - ValueBlinding, - ProofBlindingR, - ProofBlindingS, + Ciphertext, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -4301,12 +2318,7 @@ impl<'de> serde::Deserialize<'de> for SpendPlan { E: serde::de::Error, { match value { - "note" => Ok(GeneratedField::Note), - "position" => Ok(GeneratedField::Position), - "randomizer" => Ok(GeneratedField::Randomizer), - "valueBlinding" | "value_blinding" => Ok(GeneratedField::ValueBlinding), - "proofBlindingR" | "proof_blinding_r" => Ok(GeneratedField::ProofBlindingR), - "proofBlindingS" | "proof_blinding_s" => Ok(GeneratedField::ProofBlindingS), + "ciphertext" => Ok(GeneratedField::Ciphertext), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -4316,86 +2328,36 @@ impl<'de> serde::Deserialize<'de> for SpendPlan { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = SpendPlan; + type Value = memo_view::Opaque; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.SpendPlan") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoView.Opaque") } - 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 note__ = None; - let mut position__ = None; - let mut randomizer__ = None; - let mut value_blinding__ = None; - let mut proof_blinding_r__ = None; - let mut proof_blinding_s__ = None; + let mut ciphertext__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::Note => { - if note__.is_some() { - return Err(serde::de::Error::duplicate_field("note")); - } - note__ = map.next_value()?; - } - GeneratedField::Position => { - if position__.is_some() { - return Err(serde::de::Error::duplicate_field("position")); - } - position__ = - Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) - ; - } - GeneratedField::Randomizer => { - if randomizer__.is_some() { - return Err(serde::de::Error::duplicate_field("randomizer")); - } - randomizer__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::ValueBlinding => { - if value_blinding__.is_some() { - return Err(serde::de::Error::duplicate_field("valueBlinding")); - } - value_blinding__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::ProofBlindingR => { - if proof_blinding_r__.is_some() { - return Err(serde::de::Error::duplicate_field("proofBlindingR")); - } - proof_blinding_r__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; - } - GeneratedField::ProofBlindingS => { - if proof_blinding_s__.is_some() { - return Err(serde::de::Error::duplicate_field("proofBlindingS")); + GeneratedField::Ciphertext => { + if ciphertext__.is_some() { + return Err(serde::de::Error::duplicate_field("ciphertext")); } - proof_blinding_s__ = - Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) - ; + ciphertext__ = map.next_value()?; } } } - Ok(SpendPlan { - note: note__, - position: position__.unwrap_or_default(), - randomizer: randomizer__.unwrap_or_default(), - value_blinding: value_blinding__.unwrap_or_default(), - proof_blinding_r: proof_blinding_r__.unwrap_or_default(), - proof_blinding_s: proof_blinding_s__.unwrap_or_default(), + Ok(memo_view::Opaque { + ciphertext: ciphertext__, }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.SpendPlan", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoView.Opaque", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for SpendView { +impl serde::Serialize for memo_view::Visible { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -4403,38 +2365,37 @@ impl serde::Serialize for SpendView { { use serde::ser::SerializeStruct; let mut len = 0; - if self.spend_view.is_some() { + if self.ciphertext.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.SpendView", len)?; - if let Some(v) = self.spend_view.as_ref() { - match v { - spend_view::SpendView::Visible(v) => { - struct_ser.serialize_field("visible", v)?; - } - spend_view::SpendView::Opaque(v) => { - struct_ser.serialize_field("opaque", v)?; - } - } + if self.plaintext.is_some() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.MemoView.Visible", len)?; + if let Some(v) = self.ciphertext.as_ref() { + struct_ser.serialize_field("ciphertext", v)?; + } + if let Some(v) = self.plaintext.as_ref() { + struct_ser.serialize_field("plaintext", v)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for SpendView { +impl<'de> serde::Deserialize<'de> for memo_view::Visible { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "visible", - "opaque", + "ciphertext", + "plaintext", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Visible, - Opaque, + Ciphertext, + Plaintext, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -4456,8 +2417,8 @@ impl<'de> serde::Deserialize<'de> for SpendView { E: serde::de::Error, { match value { - "visible" => Ok(GeneratedField::Visible), - "opaque" => Ok(GeneratedField::Opaque), + "ciphertext" => Ok(GeneratedField::Ciphertext), + "plaintext" => Ok(GeneratedField::Plaintext), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -4467,44 +2428,44 @@ impl<'de> serde::Deserialize<'de> for SpendView { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = SpendView; + type Value = memo_view::Visible; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.SpendView") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.MemoView.Visible") } - 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 spend_view__ = None; + let mut ciphertext__ = None; + let mut plaintext__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::Visible => { - if spend_view__.is_some() { - return Err(serde::de::Error::duplicate_field("visible")); + GeneratedField::Ciphertext => { + if ciphertext__.is_some() { + return Err(serde::de::Error::duplicate_field("ciphertext")); } - spend_view__ = map.next_value::<::std::option::Option<_>>()?.map(spend_view::SpendView::Visible) -; + ciphertext__ = map.next_value()?; } - GeneratedField::Opaque => { - if spend_view__.is_some() { - return Err(serde::de::Error::duplicate_field("opaque")); + GeneratedField::Plaintext => { + if plaintext__.is_some() { + return Err(serde::de::Error::duplicate_field("plaintext")); } - spend_view__ = map.next_value::<::std::option::Option<_>>()?.map(spend_view::SpendView::Opaque) -; + plaintext__ = map.next_value()?; } } } - Ok(SpendView { - spend_view: spend_view__, + Ok(memo_view::Visible { + ciphertext: ciphertext__, + plaintext: plaintext__, }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.SpendView", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.MemoView.Visible", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for spend_view::Opaque { +impl serde::Serialize for NullifierWithNote { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -4512,29 +2473,37 @@ impl serde::Serialize for spend_view::Opaque { { use serde::ser::SerializeStruct; let mut len = 0; - if self.spend.is_some() { + if self.nullifier.is_some() { + len += 1; + } + if self.note.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.SpendView.Opaque", len)?; - if let Some(v) = self.spend.as_ref() { - struct_ser.serialize_field("spend", v)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.NullifierWithNote", len)?; + if let Some(v) = self.nullifier.as_ref() { + struct_ser.serialize_field("nullifier", v)?; + } + if let Some(v) = self.note.as_ref() { + struct_ser.serialize_field("note", v)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for spend_view::Opaque { +impl<'de> serde::Deserialize<'de> for NullifierWithNote { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "spend", + "nullifier", + "note", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Spend, + Nullifier, + Note, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -4556,7 +2525,8 @@ impl<'de> serde::Deserialize<'de> for spend_view::Opaque { E: serde::de::Error, { match value { - "spend" => Ok(GeneratedField::Spend), + "nullifier" => Ok(GeneratedField::Nullifier), + "note" => Ok(GeneratedField::Note), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -4566,36 +2536,44 @@ impl<'de> serde::Deserialize<'de> for spend_view::Opaque { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = spend_view::Opaque; + type Value = NullifierWithNote; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.SpendView.Opaque") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.NullifierWithNote") } - 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 spend__ = None; + let mut nullifier__ = None; + let mut note__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::Spend => { - if spend__.is_some() { - return Err(serde::de::Error::duplicate_field("spend")); + GeneratedField::Nullifier => { + if nullifier__.is_some() { + return Err(serde::de::Error::duplicate_field("nullifier")); + } + nullifier__ = map.next_value()?; + } + GeneratedField::Note => { + if note__.is_some() { + return Err(serde::de::Error::duplicate_field("note")); } - spend__ = map.next_value()?; + note__ = map.next_value()?; } } } - Ok(spend_view::Opaque { - spend: spend__, + Ok(NullifierWithNote { + nullifier: nullifier__, + note: note__, }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.SpendView.Opaque", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.NullifierWithNote", FIELDS, GeneratedVisitor) } } -impl serde::Serialize for spend_view::Visible { +impl serde::Serialize for PayloadKeyWithCommitment { #[allow(deprecated)] fn serialize(&self, serializer: S) -> std::result::Result where @@ -4603,37 +2581,38 @@ impl serde::Serialize for spend_view::Visible { { use serde::ser::SerializeStruct; let mut len = 0; - if self.spend.is_some() { + if self.payload_key.is_some() { len += 1; } - if self.note.is_some() { + if self.commitment.is_some() { len += 1; } - let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.SpendView.Visible", len)?; - if let Some(v) = self.spend.as_ref() { - struct_ser.serialize_field("spend", v)?; + let mut struct_ser = serializer.serialize_struct("penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment", len)?; + if let Some(v) = self.payload_key.as_ref() { + struct_ser.serialize_field("payloadKey", v)?; } - if let Some(v) = self.note.as_ref() { - struct_ser.serialize_field("note", v)?; + if let Some(v) = self.commitment.as_ref() { + struct_ser.serialize_field("commitment", v)?; } struct_ser.end() } } -impl<'de> serde::Deserialize<'de> for spend_view::Visible { +impl<'de> serde::Deserialize<'de> for PayloadKeyWithCommitment { #[allow(deprecated)] fn deserialize(deserializer: D) -> std::result::Result where D: serde::Deserializer<'de>, { const FIELDS: &[&str] = &[ - "spend", - "note", + "payload_key", + "payloadKey", + "commitment", ]; #[allow(clippy::enum_variant_names)] enum GeneratedField { - Spend, - Note, + PayloadKey, + Commitment, } impl<'de> serde::Deserialize<'de> for GeneratedField { fn deserialize(deserializer: D) -> std::result::Result @@ -4655,8 +2634,8 @@ impl<'de> serde::Deserialize<'de> for spend_view::Visible { E: serde::de::Error, { match value { - "spend" => Ok(GeneratedField::Spend), - "note" => Ok(GeneratedField::Note), + "payloadKey" | "payload_key" => Ok(GeneratedField::PayloadKey), + "commitment" => Ok(GeneratedField::Commitment), _ => Err(serde::de::Error::unknown_field(value, FIELDS)), } } @@ -4666,41 +2645,41 @@ impl<'de> serde::Deserialize<'de> for spend_view::Visible { } struct GeneratedVisitor; impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { - type Value = spend_view::Visible; + type Value = PayloadKeyWithCommitment; fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("struct penumbra.core.transaction.v1alpha1.SpendView.Visible") + formatter.write_str("struct penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment") } - 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 spend__ = None; - let mut note__ = None; + let mut payload_key__ = None; + let mut commitment__ = None; while let Some(k) = map.next_key()? { match k { - GeneratedField::Spend => { - if spend__.is_some() { - return Err(serde::de::Error::duplicate_field("spend")); + GeneratedField::PayloadKey => { + if payload_key__.is_some() { + return Err(serde::de::Error::duplicate_field("payloadKey")); } - spend__ = map.next_value()?; + payload_key__ = map.next_value()?; } - GeneratedField::Note => { - if note__.is_some() { - return Err(serde::de::Error::duplicate_field("note")); + GeneratedField::Commitment => { + if commitment__.is_some() { + return Err(serde::de::Error::duplicate_field("commitment")); } - note__ = map.next_value()?; + commitment__ = map.next_value()?; } } } - Ok(spend_view::Visible { - spend: spend__, - note: note__, + Ok(PayloadKeyWithCommitment { + payload_key: payload_key__, + commitment: commitment__, }) } } - deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.SpendView.Visible", FIELDS, GeneratedVisitor) + deserializer.deserialize_struct("penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment", FIELDS, GeneratedVisitor) } } impl serde::Serialize for Transaction { diff --git a/crates/proto/src/gen/penumbra.core.transparent_proofs.v1alpha1.rs b/crates/proto/src/gen/penumbra.core.transparent_proofs.v1alpha1.rs deleted file mode 100644 index 0de3617ec7..0000000000 --- a/crates/proto/src/gen/penumbra.core.transparent_proofs.v1alpha1.rs +++ /dev/null @@ -1,25 +0,0 @@ -/// A Penumbra transparent SwapClaimProof. -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct SwapClaimProof { - /// The swap being claimed - #[prost(message, optional, tag = "1")] - pub swap_plaintext: ::core::option::Option< - super::super::dex::v1alpha1::SwapPlaintext, - >, - /// Inclusion proof for the swap commitment - #[prost(message, optional, tag = "4")] - pub swap_commitment_proof: ::core::option::Option< - super::super::crypto::v1alpha1::StateCommitmentProof, - >, - /// The nullifier key used to derive the swap nullifier - #[prost(bytes = "vec", tag = "6")] - pub nk: ::prost::alloc::vec::Vec, - /// * - /// @exclude - /// Describes output amounts - #[prost(message, optional, tag = "20")] - pub lambda_1_i: ::core::option::Option, - #[prost(message, optional, tag = "21")] - pub lambda_2_i: ::core::option::Option, -} diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1alpha1.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1alpha1.rs new file mode 100644 index 0000000000..a86d94e385 --- /dev/null +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1alpha1.rs @@ -0,0 +1,7 @@ +/// A clue for use with Fuzzy Message Detection. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct Clue { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1alpha1.serde.rs new file mode 100644 index 0000000000..88450e3f9d --- /dev/null +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_fmd.v1alpha1.serde.rs @@ -0,0 +1,93 @@ +impl serde::Serialize for Clue { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_fmd.v1alpha1.Clue", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for Clue { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = Clue; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.crypto.decaf377_fmd.v1alpha1.Clue") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(Clue { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.crypto.decaf377_fmd.v1alpha1.Clue", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1alpha1.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1alpha1.rs new file mode 100644 index 0000000000..ba8cbdc913 --- /dev/null +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1alpha1.rs @@ -0,0 +1,12 @@ +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct SpendAuthSignature { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct BindingSignature { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} diff --git a/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1alpha1.serde.rs new file mode 100644 index 0000000000..d0c5a082b9 --- /dev/null +++ b/crates/proto/src/gen/penumbra.crypto.decaf377_rdsa.v1alpha1.serde.rs @@ -0,0 +1,186 @@ +impl serde::Serialize for BindingSignature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_rdsa.v1alpha1.BindingSignature", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for BindingSignature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = BindingSignature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.crypto.decaf377_rdsa.v1alpha1.BindingSignature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(BindingSignature { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.crypto.decaf377_rdsa.v1alpha1.BindingSignature", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for SpendAuthSignature { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for SpendAuthSignature { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = SpendAuthSignature; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(SpendAuthSignature { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.crypto.tct.v1alpha1.rs b/crates/proto/src/gen/penumbra.crypto.tct.v1alpha1.rs new file mode 100644 index 0000000000..9042316ed7 --- /dev/null +++ b/crates/proto/src/gen/penumbra.crypto.tct.v1alpha1.rs @@ -0,0 +1,35 @@ +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StateCommitment { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MerkleRoot { + #[prost(bytes = "vec", tag = "1")] + pub inner: ::prost::alloc::vec::Vec, +} +/// An authentication path from a state commitment to the root of the state commitment tree. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct StateCommitmentProof { + #[prost(message, optional, tag = "1")] + pub note_commitment: ::core::option::Option, + #[prost(uint64, tag = "2")] + pub position: u64, + /// always length 24 + #[prost(message, repeated, tag = "3")] + pub auth_path: ::prost::alloc::vec::Vec, +} +/// A set of 3 sibling hashes in the auth path for some note commitment. +#[allow(clippy::derive_partial_eq_without_eq)] +#[derive(Clone, PartialEq, ::prost::Message)] +pub struct MerklePathChunk { + #[prost(bytes = "vec", tag = "1")] + pub sibling_1: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "2")] + pub sibling_2: ::prost::alloc::vec::Vec, + #[prost(bytes = "vec", tag = "3")] + pub sibling_3: ::prost::alloc::vec::Vec, +} diff --git a/crates/proto/src/gen/penumbra.crypto.tct.v1alpha1.serde.rs b/crates/proto/src/gen/penumbra.crypto.tct.v1alpha1.serde.rs new file mode 100644 index 0000000000..21a27399da --- /dev/null +++ b/crates/proto/src/gen/penumbra.crypto.tct.v1alpha1.serde.rs @@ -0,0 +1,449 @@ +impl serde::Serialize for MerklePathChunk { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.sibling_1.is_empty() { + len += 1; + } + if !self.sibling_2.is_empty() { + len += 1; + } + if !self.sibling_3.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.crypto.tct.v1alpha1.MerklePathChunk", len)?; + if !self.sibling_1.is_empty() { + struct_ser.serialize_field("sibling1", pbjson::private::base64::encode(&self.sibling_1).as_str())?; + } + if !self.sibling_2.is_empty() { + struct_ser.serialize_field("sibling2", pbjson::private::base64::encode(&self.sibling_2).as_str())?; + } + if !self.sibling_3.is_empty() { + struct_ser.serialize_field("sibling3", pbjson::private::base64::encode(&self.sibling_3).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MerklePathChunk { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "sibling_1", + "sibling1", + "sibling_2", + "sibling2", + "sibling_3", + "sibling3", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Sibling1, + Sibling2, + Sibling3, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "sibling1" | "sibling_1" => Ok(GeneratedField::Sibling1), + "sibling2" | "sibling_2" => Ok(GeneratedField::Sibling2), + "sibling3" | "sibling_3" => Ok(GeneratedField::Sibling3), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MerklePathChunk; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.crypto.tct.v1alpha1.MerklePathChunk") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut sibling_1__ = None; + let mut sibling_2__ = None; + let mut sibling_3__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Sibling1 => { + if sibling_1__.is_some() { + return Err(serde::de::Error::duplicate_field("sibling1")); + } + sibling_1__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Sibling2 => { + if sibling_2__.is_some() { + return Err(serde::de::Error::duplicate_field("sibling2")); + } + sibling_2__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + GeneratedField::Sibling3 => { + if sibling_3__.is_some() { + return Err(serde::de::Error::duplicate_field("sibling3")); + } + sibling_3__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(MerklePathChunk { + sibling_1: sibling_1__.unwrap_or_default(), + sibling_2: sibling_2__.unwrap_or_default(), + sibling_3: sibling_3__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.crypto.tct.v1alpha1.MerklePathChunk", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for MerkleRoot { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.crypto.tct.v1alpha1.MerkleRoot", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for MerkleRoot { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = MerkleRoot; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.crypto.tct.v1alpha1.MerkleRoot") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(MerkleRoot { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.crypto.tct.v1alpha1.MerkleRoot", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for StateCommitment { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if !self.inner.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.crypto.tct.v1alpha1.StateCommitment", len)?; + if !self.inner.is_empty() { + struct_ser.serialize_field("inner", pbjson::private::base64::encode(&self.inner).as_str())?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for StateCommitment { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "inner", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + Inner, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "inner" => Ok(GeneratedField::Inner), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = StateCommitment; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.crypto.tct.v1alpha1.StateCommitment") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut inner__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::Inner => { + if inner__.is_some() { + return Err(serde::de::Error::duplicate_field("inner")); + } + inner__ = + Some(map.next_value::<::pbjson::private::BytesDeserialize<_>>()?.0) + ; + } + } + } + Ok(StateCommitment { + inner: inner__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.crypto.tct.v1alpha1.StateCommitment", FIELDS, GeneratedVisitor) + } +} +impl serde::Serialize for StateCommitmentProof { + #[allow(deprecated)] + fn serialize(&self, serializer: S) -> std::result::Result + where + S: serde::Serializer, + { + use serde::ser::SerializeStruct; + let mut len = 0; + if self.note_commitment.is_some() { + len += 1; + } + if self.position != 0 { + len += 1; + } + if !self.auth_path.is_empty() { + len += 1; + } + let mut struct_ser = serializer.serialize_struct("penumbra.crypto.tct.v1alpha1.StateCommitmentProof", len)?; + if let Some(v) = self.note_commitment.as_ref() { + struct_ser.serialize_field("noteCommitment", v)?; + } + if self.position != 0 { + struct_ser.serialize_field("position", ToString::to_string(&self.position).as_str())?; + } + if !self.auth_path.is_empty() { + struct_ser.serialize_field("authPath", &self.auth_path)?; + } + struct_ser.end() + } +} +impl<'de> serde::Deserialize<'de> for StateCommitmentProof { + #[allow(deprecated)] + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + const FIELDS: &[&str] = &[ + "note_commitment", + "noteCommitment", + "position", + "auth_path", + "authPath", + ]; + + #[allow(clippy::enum_variant_names)] + enum GeneratedField { + NoteCommitment, + Position, + AuthPath, + } + impl<'de> serde::Deserialize<'de> for GeneratedField { + fn deserialize(deserializer: D) -> std::result::Result + where + D: serde::Deserializer<'de>, + { + struct GeneratedVisitor; + + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = GeneratedField; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(formatter, "expected one of: {:?}", &FIELDS) + } + + #[allow(unused_variables)] + fn visit_str(self, value: &str) -> std::result::Result + where + E: serde::de::Error, + { + match value { + "noteCommitment" | "note_commitment" => Ok(GeneratedField::NoteCommitment), + "position" => Ok(GeneratedField::Position), + "authPath" | "auth_path" => Ok(GeneratedField::AuthPath), + _ => Err(serde::de::Error::unknown_field(value, FIELDS)), + } + } + } + deserializer.deserialize_identifier(GeneratedVisitor) + } + } + struct GeneratedVisitor; + impl<'de> serde::de::Visitor<'de> for GeneratedVisitor { + type Value = StateCommitmentProof; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("struct penumbra.crypto.tct.v1alpha1.StateCommitmentProof") + } + + fn visit_map(self, mut map: V) -> std::result::Result + where + V: serde::de::MapAccess<'de>, + { + let mut note_commitment__ = None; + let mut position__ = None; + let mut auth_path__ = None; + while let Some(k) = map.next_key()? { + match k { + GeneratedField::NoteCommitment => { + if note_commitment__.is_some() { + return Err(serde::de::Error::duplicate_field("noteCommitment")); + } + note_commitment__ = map.next_value()?; + } + GeneratedField::Position => { + if position__.is_some() { + return Err(serde::de::Error::duplicate_field("position")); + } + position__ = + Some(map.next_value::<::pbjson::private::NumberDeserialize<_>>()?.0) + ; + } + GeneratedField::AuthPath => { + if auth_path__.is_some() { + return Err(serde::de::Error::duplicate_field("authPath")); + } + auth_path__ = Some(map.next_value()?); + } + } + } + Ok(StateCommitmentProof { + note_commitment: note_commitment__, + position: position__.unwrap_or_default(), + auth_path: auth_path__.unwrap_or_default(), + }) + } + } + deserializer.deserialize_struct("penumbra.crypto.tct.v1alpha1.StateCommitmentProof", FIELDS, GeneratedVisitor) + } +} diff --git a/crates/proto/src/gen/penumbra.custody.v1alpha1.rs b/crates/proto/src/gen/penumbra.custody.v1alpha1.rs index fd32e16e82..64aab5fd45 100644 --- a/crates/proto/src/gen/penumbra.custody.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.custody.v1alpha1.rs @@ -9,7 +9,7 @@ pub struct AuthorizeRequest { /// Identifies the FVK (and hence the spend authorization key) to use for signing. #[prost(message, optional, tag = "2")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, /// Optionally, pre-authorization data, if required by the custodian. /// diff --git a/crates/proto/src/gen/penumbra.narsil.ledger.v1alpha1.rs b/crates/proto/src/gen/penumbra.narsil.ledger.v1alpha1.rs index 6fb128d75a..b537a339c3 100644 --- a/crates/proto/src/gen/penumbra.narsil.ledger.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.narsil.ledger.v1alpha1.rs @@ -137,7 +137,7 @@ pub struct AccountGroupInfo { /// The spend verification key component is the `PK` in the FROST I-D. #[prost(message, optional, tag = "1")] pub full_viewing_key: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::FullViewingKey, + super::super::super::core::keys::v1alpha1::FullViewingKey, >, /// Describes the participants in the account group. #[prost(message, repeated, tag = "2")] @@ -153,7 +153,7 @@ pub struct ShardInfo { /// The shard verification key, corresponding to `PK_i` in the FROST I-D. #[prost(message, optional, tag = "2")] pub shard_verification_key: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::SpendVerificationKey, + super::super::super::core::keys::v1alpha1::SpendVerificationKey, >, /// The shard operator's identity key, used to identify the operator of this shard. #[prost(message, optional, tag = "3")] @@ -175,7 +175,7 @@ pub struct ShardInfo { pub struct RequestIndex { #[prost(message, optional, tag = "1")] pub effect_hash: ::core::option::Option< - super::super::super::core::transaction::v1alpha1::EffectHash, + super::super::super::core::component::chain::v1alpha1::EffectHash, >, } /// Identifies a particular signing ceremony. diff --git a/crates/proto/src/gen/penumbra.tools.summoning.v1alpha1.rs b/crates/proto/src/gen/penumbra.tools.summoning.v1alpha1.rs index 1784e7ff59..08da8759c0 100644 --- a/crates/proto/src/gen/penumbra.tools.summoning.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.tools.summoning.v1alpha1.rs @@ -12,7 +12,7 @@ pub mod participate_request { pub struct Identify { #[prost(message, optional, tag = "1")] pub address: ::core::option::Option< - super::super::super::super::core::crypto::v1alpha1::Address, + super::super::super::super::core::keys::v1alpha1::Address, >, } /// Sent by the participant after getting a `ContributeNow` message. @@ -72,12 +72,12 @@ pub mod participate_response { /// The bid for the most recently executed contribution slot. #[prost(message, optional, tag = "3")] pub last_slot_bid: ::core::option::Option< - super::super::super::super::core::crypto::v1alpha1::Amount, + super::super::super::super::core::num::v1alpha1::Amount, >, /// The participant's current bid. #[prost(message, optional, tag = "4")] pub your_bid: ::core::option::Option< - super::super::super::super::core::crypto::v1alpha1::Amount, + super::super::super::super::core::num::v1alpha1::Amount, >, } /// Sent to the participant to inform them that they should contribute now. diff --git a/crates/proto/src/gen/penumbra.view.v1alpha1.rs b/crates/proto/src/gen/penumbra.view.v1alpha1.rs index 3aa3a8c98f..2d7301c72b 100644 --- a/crates/proto/src/gen/penumbra.view.v1alpha1.rs +++ b/crates/proto/src/gen/penumbra.view.v1alpha1.rs @@ -52,7 +52,7 @@ pub struct TransactionPlannerRequest { pub expiry_height: u64, /// The fee for the requested TransactionPlan, if any. #[prost(message, optional, tag = "2")] - pub fee: ::core::option::Option, + pub fee: ::core::option::Option, /// The memo for the requested TransactionPlan. /// The memo must be unspecified unless `outputs` is nonempty. #[prost(message, optional, tag = "3")] @@ -61,13 +61,11 @@ pub struct TransactionPlannerRequest { >, /// If present, only spends funds from the given account. #[prost(message, optional, tag = "4")] - pub source: ::core::option::Option< - super::super::core::crypto::v1alpha1::AddressIndex, - >, + pub source: ::core::option::Option, /// Optionally identifies the account group to query. #[prost(message, optional, tag = "14")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, /// Request contents #[prost(message, repeated, tag = "20")] @@ -82,7 +80,7 @@ pub struct TransactionPlannerRequest { pub undelegations: ::prost::alloc::vec::Vec, #[prost(message, repeated, tag = "60")] pub ibc_actions: ::prost::alloc::vec::Vec< - super::super::core::ibc::v1alpha1::IbcAction, + super::super::core::component::ibc::v1alpha1::IbcAction, >, #[prost(message, repeated, tag = "70")] pub position_opens: ::prost::alloc::vec::Vec< @@ -106,12 +104,12 @@ pub mod transaction_planner_request { /// The amount and denomination in which the Output is issued. #[prost(message, optional, tag = "1")] pub value: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::Value, + super::super::super::core::asset::v1alpha1::Value, >, /// The address to which Output will be sent. #[prost(message, optional, tag = "2")] pub address: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::Address, + super::super::super::core::keys::v1alpha1::Address, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -120,22 +118,22 @@ pub mod transaction_planner_request { /// The input amount and denomination to be traded in the Swap. #[prost(message, optional, tag = "1")] pub value: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::Value, + super::super::super::core::asset::v1alpha1::Value, >, /// The denomination to be received as a Output of the Swap. #[prost(message, optional, tag = "2")] pub target_asset: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::AssetId, + super::super::super::core::asset::v1alpha1::AssetId, >, /// The pre-paid fee to be paid for claiming the Swap outputs. #[prost(message, optional, tag = "3")] pub fee: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::Fee, + super::super::super::core::component::fee::v1alpha1::Fee, >, /// The address to which swap claim output will be sent. #[prost(message, optional, tag = "4")] pub claim_address: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::Address, + super::super::super::core::keys::v1alpha1::Address, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -143,10 +141,10 @@ pub mod transaction_planner_request { pub struct SwapClaim { /// SwapCommitment to identify the Swap to be claimed. /// Use the commitment from the Swap message: - /// penumbra.core.dex.v1alpha1.Swap.body.payload.commitment. + /// penumbra.core.component.dex.v1alpha1.Swap.body.payload.commitment. #[prost(message, optional, tag = "1")] pub swap_commitment: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::StateCommitment, + super::super::super::crypto::tct::v1alpha1::StateCommitment, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -154,11 +152,11 @@ pub mod transaction_planner_request { pub struct Delegate { #[prost(message, optional, tag = "1")] pub amount: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::Amount, + super::super::super::core::num::v1alpha1::Amount, >, #[prost(message, optional, tag = "3")] pub rate_data: ::core::option::Option< - super::super::super::core::stake::v1alpha1::RateData, + super::super::super::core::component::stake::v1alpha1::RateData, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -166,11 +164,11 @@ pub mod transaction_planner_request { pub struct Undelegate { #[prost(message, optional, tag = "1")] pub value: ::core::option::Option< - super::super::super::core::crypto::v1alpha1::Value, + super::super::super::core::asset::v1alpha1::Value, >, #[prost(message, optional, tag = "2")] pub rate_data: ::core::option::Option< - super::super::super::core::stake::v1alpha1::RateData, + super::super::super::core::component::stake::v1alpha1::RateData, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -182,7 +180,7 @@ pub mod transaction_planner_request { /// are unchanged over the entire lifetime of the position. #[prost(message, optional, tag = "1")] pub position: ::core::option::Option< - super::super::super::core::dex::v1alpha1::Position, + super::super::super::core::component::dex::v1alpha1::Position, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -191,7 +189,7 @@ pub mod transaction_planner_request { /// The position to close. #[prost(message, optional, tag = "1")] pub position_id: ::core::option::Option< - super::super::super::core::dex::v1alpha1::PositionId, + super::super::super::core::component::dex::v1alpha1::PositionId, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -200,17 +198,17 @@ pub mod transaction_planner_request { /// The position to withdraw. #[prost(message, optional, tag = "1")] pub position_id: ::core::option::Option< - super::super::super::core::dex::v1alpha1::PositionId, + super::super::super::core::component::dex::v1alpha1::PositionId, >, /// The position's final reserves. #[prost(message, optional, tag = "2")] pub reserves: ::core::option::Option< - super::super::super::core::dex::v1alpha1::Reserves, + super::super::super::core::component::dex::v1alpha1::Reserves, >, /// The trading pair of the position. #[prost(message, optional, tag = "3")] pub trading_pair: ::core::option::Option< - super::super::super::core::dex::v1alpha1::TradingPair, + super::super::super::core::component::dex::v1alpha1::TradingPair, >, } } @@ -227,7 +225,7 @@ pub struct TransactionPlannerResponse { pub struct AddressByIndexRequest { #[prost(message, optional, tag = "1")] pub address_index: ::core::option::Option< - super::super::core::crypto::v1alpha1::AddressIndex, + super::super::core::keys::v1alpha1::AddressIndex, >, #[prost(bool, tag = "2")] pub display_confirm: bool, @@ -236,13 +234,13 @@ pub struct AddressByIndexRequest { #[derive(Clone, PartialEq, ::prost::Message)] pub struct AddressByIndexResponse { #[prost(message, optional, tag = "1")] - pub address: ::core::option::Option, + pub address: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct IndexByAddressRequest { #[prost(message, optional, tag = "1")] - pub address: ::core::option::Option, + pub address: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -250,7 +248,7 @@ pub struct IndexByAddressResponse { /// Will be absent if given an address not viewable by this viewing service #[prost(message, optional, tag = "1")] pub address_index: ::core::option::Option< - super::super::core::crypto::v1alpha1::AddressIndex, + super::super::core::keys::v1alpha1::AddressIndex, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -258,7 +256,7 @@ pub struct IndexByAddressResponse { pub struct EphemeralAddressRequest { #[prost(message, optional, tag = "1")] pub address_index: ::core::option::Option< - super::super::core::crypto::v1alpha1::AddressIndex, + super::super::core::keys::v1alpha1::AddressIndex, >, #[prost(bool, tag = "2")] pub display_confirm: bool, @@ -267,7 +265,7 @@ pub struct EphemeralAddressRequest { #[derive(Clone, PartialEq, ::prost::Message)] pub struct EphemeralAddressResponse { #[prost(message, optional, tag = "1")] - pub address: ::core::option::Option, + pub address: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -275,12 +273,12 @@ pub struct BalancesRequest { /// If present, filter balances to only include the account specified by the `AddressIndex`. #[prost(message, optional, tag = "1")] pub account_filter: ::core::option::Option< - super::super::core::crypto::v1alpha1::AddressIndex, + super::super::core::keys::v1alpha1::AddressIndex, >, /// If present, filter balances to only include the specified asset ID. #[prost(message, optional, tag = "2")] pub asset_id_filter: ::core::option::Option< - super::super::core::crypto::v1alpha1::AssetId, + super::super::core::asset::v1alpha1::AssetId, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -288,10 +286,10 @@ pub struct BalancesRequest { pub struct BalancesResponse { #[prost(message, optional, tag = "1")] pub account: ::core::option::Option< - super::super::core::crypto::v1alpha1::AddressIndex, + super::super::core::keys::v1alpha1::AddressIndex, >, #[prost(message, optional, tag = "2")] - pub balance: ::core::option::Option, + pub balance: ::core::option::Option, } /// Scaffolding for bearer-token authentication for the ViewService. #[allow(clippy::derive_partial_eq_without_eq)] @@ -304,9 +302,7 @@ pub struct ViewAuthToken { #[derive(Clone, PartialEq, ::prost::Message)] pub struct ViewAuthRequest { #[prost(message, optional, tag = "1")] - pub fvk: ::core::option::Option< - super::super::core::crypto::v1alpha1::FullViewingKey, - >, + pub fvk: ::core::option::Option, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -321,7 +317,7 @@ pub struct StatusRequest { /// Identifies the account group to query. #[prost(message, optional, tag = "14")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, } /// Returns the status of the view service and whether it is synchronized with the chain state. @@ -342,7 +338,7 @@ pub struct StatusStreamRequest { /// Identifies the account group to query. #[prost(message, optional, tag = "14")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, } /// A streaming sync status update @@ -366,23 +362,23 @@ pub struct NotesRequest { pub include_spent: bool, /// If set, only return notes with the specified asset id. #[prost(message, optional, tag = "3")] - pub asset_id: ::core::option::Option, - /// If set, only return notes with the specified address incore.dex.v1alpha1. + pub asset_id: ::core::option::Option, + /// If set, only return notes with the specified address incore.component.dex.v1alpha1. #[prost(message, optional, tag = "4")] pub address_index: ::core::option::Option< - super::super::core::crypto::v1alpha1::AddressIndex, + super::super::core::keys::v1alpha1::AddressIndex, >, /// If set, stop returning notes once the total exceeds this amount. /// /// Ignored if `asset_id` is unset or if `include_spent` is set. #[prost(message, optional, tag = "6")] pub amount_to_spend: ::core::option::Option< - super::super::core::crypto::v1alpha1::Amount, + super::super::core::num::v1alpha1::Amount, >, /// Identifies the account group to query. #[prost(message, optional, tag = "14")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, } /// A query for notes to be used for voting on a proposal. @@ -395,12 +391,12 @@ pub struct NotesForVotingRequest { /// If set, only return notes with the specified asset id. #[prost(message, optional, tag = "3")] pub address_index: ::core::option::Option< - super::super::core::crypto::v1alpha1::AddressIndex, + super::super::core::keys::v1alpha1::AddressIndex, >, /// Identifies the account group to query. #[prost(message, optional, tag = "14")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -409,7 +405,7 @@ pub struct WitnessRequest { /// The note commitments to obtain auth paths for. #[prost(message, repeated, tag = "2")] pub note_commitments: ::prost::alloc::vec::Vec< - super::super::core::crypto::v1alpha1::StateCommitment, + super::super::crypto::tct::v1alpha1::StateCommitment, >, /// The transaction plan to witness #[prost(message, optional, tag = "3")] @@ -419,7 +415,7 @@ pub struct WitnessRequest { /// Identifies the account group to query. #[prost(message, optional, tag = "14")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -461,7 +457,7 @@ pub struct AssetsRequest { /// Include these specific denominations in the response. #[prost(message, repeated, tag = "2")] pub include_specific_denominations: ::prost::alloc::vec::Vec< - super::super::core::crypto::v1alpha1::Denom, + super::super::core::asset::v1alpha1::Denom, >, /// Include all delegation tokens, to any validator, in the response. #[prost(bool, tag = "3")] @@ -485,7 +481,7 @@ pub struct AssetsRequest { pub struct AssetsResponse { #[prost(message, optional, tag = "2")] pub denom_metadata: ::core::option::Option< - super::super::core::crypto::v1alpha1::DenomMetadata, + super::super::core::asset::v1alpha1::DenomMetadata, >, } /// Requests the current chain parameters from the view service. @@ -497,7 +493,7 @@ pub struct ChainParametersRequest {} pub struct ChainParametersResponse { #[prost(message, optional, tag = "1")] pub parameters: ::core::option::Option< - super::super::core::chain::v1alpha1::ChainParameters, + super::super::core::component::chain::v1alpha1::ChainParameters, >, } /// Requests the current FMD parameters from the view service. @@ -509,7 +505,7 @@ pub struct FmdParametersRequest {} pub struct FmdParametersResponse { #[prost(message, optional, tag = "1")] pub parameters: ::core::option::Option< - super::super::core::chain::v1alpha1::FmdParameters, + super::super::core::component::chain::v1alpha1::FmdParameters, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -517,7 +513,7 @@ pub struct FmdParametersResponse { pub struct NoteByCommitmentRequest { #[prost(message, optional, tag = "2")] pub note_commitment: ::core::option::Option< - super::super::core::crypto::v1alpha1::StateCommitment, + super::super::crypto::tct::v1alpha1::StateCommitment, >, /// If set to true, waits to return until the requested note is detected. #[prost(bool, tag = "3")] @@ -525,7 +521,7 @@ pub struct NoteByCommitmentRequest { /// Identifies the account group to query. #[prost(message, optional, tag = "14")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -539,7 +535,7 @@ pub struct NoteByCommitmentResponse { pub struct SwapByCommitmentRequest { #[prost(message, optional, tag = "2")] pub swap_commitment: ::core::option::Option< - super::super::core::crypto::v1alpha1::StateCommitment, + super::super::crypto::tct::v1alpha1::StateCommitment, >, /// If set to true, waits to return until the requested swap is detected. #[prost(bool, tag = "3")] @@ -547,7 +543,7 @@ pub struct SwapByCommitmentRequest { /// Identifies the account group to query. #[prost(message, optional, tag = "14")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -562,7 +558,7 @@ pub struct UnclaimedSwapsRequest { /// Identifies the account group to query. #[prost(message, optional, tag = "1")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -576,14 +572,14 @@ pub struct UnclaimedSwapsResponse { pub struct NullifierStatusRequest { #[prost(message, optional, tag = "2")] pub nullifier: ::core::option::Option< - super::super::core::crypto::v1alpha1::Nullifier, + super::super::core::component::sct::v1alpha1::Nullifier, >, #[prost(bool, tag = "3")] pub await_detection: bool, /// Identifies the account group to query. #[prost(message, optional, tag = "14")] pub account_group_id: ::core::option::Option< - super::super::core::crypto::v1alpha1::AccountGroupId, + super::super::core::keys::v1alpha1::AccountGroupId, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -659,7 +655,7 @@ pub struct NotesForVotingResponse { pub note_record: ::core::option::Option, #[prost(message, optional, tag = "2")] pub identity_key: ::core::option::Option< - super::super::core::crypto::v1alpha1::IdentityKey, + super::super::core::keys::v1alpha1::IdentityKey, >, } /// A note plaintext with associated metadata about its status. @@ -669,20 +665,22 @@ pub struct SpendableNoteRecord { /// The note commitment, identifying the note. #[prost(message, optional, tag = "1")] pub note_commitment: ::core::option::Option< - super::super::core::crypto::v1alpha1::StateCommitment, + super::super::crypto::tct::v1alpha1::StateCommitment, >, /// The note plaintext itself. #[prost(message, optional, tag = "2")] - pub note: ::core::option::Option, - /// A precomputed decryption of the note's address incore.dex.v1alpha1. + pub note: ::core::option::Option< + super::super::core::component::shielded_pool::v1alpha1::Note, + >, + /// A precomputed decryption of the note's address incore.component.dex.v1alpha1. #[prost(message, optional, tag = "3")] pub address_index: ::core::option::Option< - super::super::core::crypto::v1alpha1::AddressIndex, + super::super::core::keys::v1alpha1::AddressIndex, >, /// The note's nullifier. #[prost(message, optional, tag = "4")] pub nullifier: ::core::option::Option< - super::super::core::crypto::v1alpha1::Nullifier, + super::super::core::component::sct::v1alpha1::Nullifier, >, /// The height at which the note was created. #[prost(uint64, tag = "5")] @@ -695,31 +693,37 @@ pub struct SpendableNoteRecord { pub position: u64, /// The source of the note (a tx hash or otherwise) #[prost(message, optional, tag = "8")] - pub source: ::core::option::Option, + pub source: ::core::option::Option< + super::super::core::component::chain::v1alpha1::NoteSource, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SwapRecord { #[prost(message, optional, tag = "1")] pub swap_commitment: ::core::option::Option< - super::super::core::crypto::v1alpha1::StateCommitment, + super::super::crypto::tct::v1alpha1::StateCommitment, >, #[prost(message, optional, tag = "2")] - pub swap: ::core::option::Option, + pub swap: ::core::option::Option< + super::super::core::component::dex::v1alpha1::SwapPlaintext, + >, #[prost(uint64, tag = "3")] pub position: u64, #[prost(message, optional, tag = "4")] pub nullifier: ::core::option::Option< - super::super::core::crypto::v1alpha1::Nullifier, + super::super::core::component::sct::v1alpha1::Nullifier, >, #[prost(message, optional, tag = "5")] pub output_data: ::core::option::Option< - super::super::core::dex::v1alpha1::BatchSwapOutputData, + super::super::core::component::dex::v1alpha1::BatchSwapOutputData, >, #[prost(uint64, tag = "6")] pub height_claimed: u64, #[prost(message, optional, tag = "7")] - pub source: ::core::option::Option, + pub source: ::core::option::Option< + super::super::core::component::chain::v1alpha1::NoteSource, + >, } #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] @@ -727,12 +731,12 @@ pub struct OwnedPositionIdsRequest { /// If present, return only positions with this position state. #[prost(message, optional, tag = "1")] pub position_state: ::core::option::Option< - super::super::core::dex::v1alpha1::PositionState, + super::super::core::component::dex::v1alpha1::PositionState, >, /// If present, return only positions for this trading pair. #[prost(message, optional, tag = "2")] pub trading_pair: ::core::option::Option< - super::super::core::dex::v1alpha1::TradingPair, + super::super::core::component::dex::v1alpha1::TradingPair, >, } #[allow(clippy::derive_partial_eq_without_eq)] @@ -740,7 +744,7 @@ pub struct OwnedPositionIdsRequest { pub struct OwnedPositionIdsResponse { #[prost(message, optional, tag = "1")] pub position_id: ::core::option::Option< - super::super::core::dex::v1alpha1::PositionId, + super::super::core::component::dex::v1alpha1::PositionId, >, } /// Generated client implementations. @@ -840,7 +844,7 @@ pub mod view_protocol_service_client { ); self.inner.unary(request.into_request(), path, codec).await } - /// Stream sync status updates until the view service has caught up with the core.chain.v1alpha1. + /// Stream sync status updates until the view service has caught up with the chain. /// Returns a stream of `StatusStreamResponse`s. pub async fn status_stream( &mut self, @@ -864,7 +868,7 @@ pub mod view_protocol_service_client { ); self.inner.server_streaming(request.into_request(), path, codec).await } - /// Queries for notes that have been accepted by the core.chain.v1alpha1. + /// Queries for notes that have been accepted by the chain. /// Returns a stream of `NotesResponse`s. pub async fn notes( &mut self, @@ -1431,7 +1435,7 @@ pub mod view_protocol_service_server { > + Send + 'static; - /// Stream sync status updates until the view service has caught up with the core.chain.v1alpha1. + /// Stream sync status updates until the view service has caught up with the chain. /// Returns a stream of `StatusStreamResponse`s. async fn status_stream( &self, @@ -1443,7 +1447,7 @@ pub mod view_protocol_service_server { > + Send + 'static; - /// Queries for notes that have been accepted by the core.chain.v1alpha1. + /// Queries for notes that have been accepted by the chain. /// Returns a stream of `NotesResponse`s. async fn notes( &self, diff --git a/crates/proto/src/gen/proto_descriptor.bin.no_lfs b/crates/proto/src/gen/proto_descriptor.bin.no_lfs index a49ac937c4..d3412fc9ea 100644 Binary files a/crates/proto/src/gen/proto_descriptor.bin.no_lfs and b/crates/proto/src/gen/proto_descriptor.bin.no_lfs differ diff --git a/crates/proto/src/lib.rs b/crates/proto/src/lib.rs index 91fcb0432e..97e74a1a98 100644 --- a/crates/proto/src/lib.rs +++ b/crates/proto/src/lib.rs @@ -39,74 +39,6 @@ pub use penumbra::*; pub mod penumbra { - /// Core protocol structures. - pub mod core { - /// Crypto structures. - pub mod crypto { - pub mod v1alpha1 { - include!("gen/penumbra.core.crypto.v1alpha1.rs"); - include!("gen/penumbra.core.crypto.v1alpha1.serde.rs"); - } - } - - /// Staking structures. - pub mod stake { - pub mod v1alpha1 { - include!("gen/penumbra.core.stake.v1alpha1.rs"); - include!("gen/penumbra.core.stake.v1alpha1.serde.rs"); - } - } - - /// Decentralized exchange structures. - pub mod dex { - pub mod v1alpha1 { - include!("gen/penumbra.core.dex.v1alpha1.rs"); - include!("gen/penumbra.core.dex.v1alpha1.serde.rs"); - } - } - - /// Governance structures. - pub mod governance { - pub mod v1alpha1 { - include!("gen/penumbra.core.governance.v1alpha1.rs"); - include!("gen/penumbra.core.governance.v1alpha1.serde.rs"); - } - } - - /// Transaction structures. - pub mod transaction { - pub mod v1alpha1 { - include!("gen/penumbra.core.transaction.v1alpha1.rs"); - include!("gen/penumbra.core.transaction.v1alpha1.serde.rs"); - } - } - - /// Chain-related structures. - pub mod chain { - pub mod v1alpha1 { - include!("gen/penumbra.core.chain.v1alpha1.rs"); - include!("gen/penumbra.core.chain.v1alpha1.serde.rs"); - } - } - - /// IBC protocol structures. - pub mod ibc { - pub mod v1alpha1 { - include!("gen/penumbra.core.ibc.v1alpha1.rs"); - include!("gen/penumbra.core.ibc.v1alpha1.serde.rs"); - } - } - - /// Transparent proofs. - /// - /// Note that these are protos for the "MVP" transparent version of Penumbra, - /// i.e. not for production use and intentionally not private. - pub mod transparent_proofs { - pub mod v1alpha1 { - include!("gen/penumbra.core.transparent_proofs.v1alpha1.rs"); - } - } - } /// Client protocol structures. pub mod client { pub mod v1alpha1 { @@ -232,21 +164,155 @@ pub mod penumbra { } } - /// Narsil protocol structures. - pub mod narsil { - pub mod v1alpha1 { - pub mod ledger { - include!("gen/penumbra.narsil.ledger.v1alpha1.rs"); - include!("gen/penumbra.narsil.ledger.v1alpha1.serde.rs"); + /// Core protocol structures. + pub mod core { + /* + // Commented out as this is currently an empty package. + /// Top-level structures for the Penumbra application. + pub mod app { + pub mod v1alpha1 { + include!("gen/penumbra.core.app.v1alpha1.rs"); + include!("gen/penumbra.core.app.v1alpha1.serde.rs"); + } + } + */ + + pub mod asset { + pub mod v1alpha1 { + include!("gen/penumbra.core.asset.v1alpha1.rs"); + include!("gen/penumbra.core.asset.v1alpha1.serde.rs"); + } + } + + /// Components of the Penumbra application. + pub mod component { + + pub mod chain { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.chain.v1alpha1.rs"); + include!("gen/penumbra.core.component.chain.v1alpha1.serde.rs"); + } + } + + pub mod compact_block { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.compact_block.v1alpha1.rs"); + include!("gen/penumbra.core.component.compact_block.v1alpha1.serde.rs"); + } + } + + /* + pub mod dao { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.dao.v1alpha1.rs"); + include!("gen/penumbra.core.component.dao.v1alpha1.serde.rs"); + } + } + */ + + pub mod dex { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.dex.v1alpha1.rs"); + include!("gen/penumbra.core.component.dex.v1alpha1.serde.rs"); + } + } + + /* + pub mod distributions { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.distributions.v1alpha1.rs"); + include!("gen/penumbra.core.component.distributions.v1alpha1.serde.rs"); + } + } + */ + + pub mod fee { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.fee.v1alpha1.rs"); + include!("gen/penumbra.core.component.fee.v1alpha1.serde.rs"); + } + } + + pub mod governance { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.governance.v1alpha1.rs"); + include!("gen/penumbra.core.component.governance.v1alpha1.serde.rs"); + } + } + + pub mod ibc { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.ibc.v1alpha1.rs"); + include!("gen/penumbra.core.component.ibc.v1alpha1.serde.rs"); + } + } + + pub mod sct { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.sct.v1alpha1.rs"); + include!("gen/penumbra.core.component.sct.v1alpha1.serde.rs"); + } + } + + pub mod shielded_pool { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.shielded_pool.v1alpha1.rs"); + include!("gen/penumbra.core.component.shielded_pool.v1alpha1.serde.rs"); + } + } + + pub mod stake { + pub mod v1alpha1 { + include!("gen/penumbra.core.component.stake.v1alpha1.rs"); + include!("gen/penumbra.core.component.stake.v1alpha1.serde.rs"); + } + } + } + + pub mod keys { + pub mod v1alpha1 { + include!("gen/penumbra.core.keys.v1alpha1.rs"); + include!("gen/penumbra.core.keys.v1alpha1.serde.rs"); + } + } + + pub mod num { + pub mod v1alpha1 { + include!("gen/penumbra.core.num.v1alpha1.rs"); + include!("gen/penumbra.core.num.v1alpha1.serde.rs"); + } + } + + /// Transaction structures. + pub mod transaction { + pub mod v1alpha1 { + include!("gen/penumbra.core.transaction.v1alpha1.rs"); + include!("gen/penumbra.core.transaction.v1alpha1.serde.rs"); } } } - /// View protocol structures. - pub mod view { - pub mod v1alpha1 { - include!("gen/penumbra.view.v1alpha1.rs"); - include!("gen/penumbra.view.v1alpha1.serde.rs"); + /// Cryptography primitives used by Penumbra. + pub mod crypto { + pub mod decaf377_fmd { + pub mod v1alpha1 { + include!("gen/penumbra.crypto.decaf377_fmd.v1alpha1.rs"); + include!("gen/penumbra.crypto.decaf377_fmd.v1alpha1.serde.rs"); + } + } + + pub mod decaf377_rdsa { + pub mod v1alpha1 { + include!("gen/penumbra.crypto.decaf377_rdsa.v1alpha1.rs"); + include!("gen/penumbra.crypto.decaf377_rdsa.v1alpha1.serde.rs"); + } + } + + pub mod tct { + pub mod v1alpha1 { + include!("gen/penumbra.crypto.tct.v1alpha1.rs"); + include!("gen/penumbra.crypto.tct.v1alpha1.serde.rs"); + } } } @@ -258,6 +324,16 @@ pub mod penumbra { } } + /// Narsil protocol structures. + pub mod narsil { + pub mod v1alpha1 { + pub mod ledger { + include!("gen/penumbra.narsil.ledger.v1alpha1.rs"); + include!("gen/penumbra.narsil.ledger.v1alpha1.serde.rs"); + } + } + } + pub mod tools { pub mod summoning { pub mod v1alpha1 { @@ -266,6 +342,14 @@ pub mod penumbra { } } } + + /// View protocol structures. + pub mod view { + pub mod v1alpha1 { + include!("gen/penumbra.view.v1alpha1.rs"); + include!("gen/penumbra.view.v1alpha1.serde.rs"); + } + } } pub mod tendermint { diff --git a/crates/proto/src/protobuf.rs b/crates/proto/src/protobuf.rs index 308ba00447..bfa40d6097 100644 --- a/crates/proto/src/protobuf.rs +++ b/crates/proto/src/protobuf.rs @@ -42,8 +42,10 @@ pub trait TypeUrl { // This should only be done here in cases where the domain type lives in a crate // that shouldn't depend on the Penumbra proto framework. -use crate::core::crypto::v1alpha1::{BindingSignature, SpendAuthSignature, SpendVerificationKey}; -use crate::core::ibc::v1alpha1::IbcAction; +use crate::penumbra::core::component::ibc::v1alpha1::IbcAction; +use crate::penumbra::core::keys::v1alpha1::SpendVerificationKey; +use crate::penumbra::crypto::decaf377_rdsa::v1alpha1::{BindingSignature, SpendAuthSignature}; + use decaf377_rdsa::{Binding, Signature, SpendAuth, VerificationKey}; impl TypeUrl for Signature { @@ -112,7 +114,7 @@ impl TryFrom for VerificationKey { } // Fuzzy Message Detection -use crate::core::crypto::v1alpha1::Clue as ProtoClue; +use crate::penumbra::crypto::decaf377_fmd::v1alpha1::Clue as ProtoClue; use decaf377_fmd::Clue; impl TypeUrl for Clue { @@ -148,7 +150,7 @@ impl TryFrom for Clue { // The tendermint-rs PublicKey type already has a tendermint-proto type; // this redefines its proto, because the encodings are consensus-critical // and we don't vendor all of the tendermint protos. -use crate::core::crypto::v1alpha1::ConsensusKey; +use crate::penumbra::core::keys::v1alpha1::ConsensusKey; impl TypeUrl for tendermint::PublicKey { const TYPE_URL: &'static str = "/penumbra.core.crypto.v1alpha1.ConsensusKey"; @@ -158,7 +160,7 @@ impl DomainType for tendermint::PublicKey { type Proto = ConsensusKey; } -impl From for crate::core::crypto::v1alpha1::ConsensusKey { +impl From for crate::penumbra::core::keys::v1alpha1::ConsensusKey { fn from(v: tendermint::PublicKey) -> Self { Self { inner: v.to_bytes(), @@ -166,9 +168,9 @@ impl From for crate::core::crypto::v1alpha1::ConsensusKey } } -impl TryFrom for tendermint::PublicKey { +impl TryFrom for tendermint::PublicKey { type Error = anyhow::Error; - fn try_from(value: crate::core::crypto::v1alpha1::ConsensusKey) -> Result { + fn try_from(value: crate::core::keys::v1alpha1::ConsensusKey) -> Result { Self::from_raw_ed25519(value.inner.as_slice()) .ok_or_else(|| anyhow::anyhow!("invalid ed25519 key")) } diff --git a/crates/view/src/service.rs b/crates/view/src/service.rs index 0d8a63055f..d71ea4abef 100644 --- a/crates/view/src/service.rs +++ b/crates/view/src/service.rs @@ -30,7 +30,7 @@ use penumbra_proto::{ tendermint_proxy_service_client::TendermintProxyServiceClient, BroadcastTxSyncRequest, GetStatusRequest, }, - core::crypto::v1alpha1 as pbc, + core::keys::v1alpha1 as pbc, view::v1alpha1::{ self as pb, view_protocol_service_client::ViewProtocolServiceClient, diff --git a/crates/wasm/src/keys.rs b/crates/wasm/src/keys.rs index 0b128a7673..15368de722 100644 --- a/crates/wasm/src/keys.rs +++ b/crates/wasm/src/keys.rs @@ -1,7 +1,7 @@ use crate::error::WasmResult; use penumbra_keys::keys::{SeedPhrase, SpendKey}; use penumbra_keys::{Address, FullViewingKey}; -use penumbra_proto::{core::crypto::v1alpha1 as pb, serializers::bech32str, DomainType}; +use penumbra_proto::{core::keys::v1alpha1 as pb, serializers::bech32str, DomainType}; use rand_core::OsRng; use std::str::FromStr; use wasm_bindgen::prelude::*; diff --git a/crates/wasm/src/storage.rs b/crates/wasm/src/storage.rs index 0070873149..d2566ad44f 100644 --- a/crates/wasm/src/storage.rs +++ b/crates/wasm/src/storage.rs @@ -3,8 +3,8 @@ use crate::note_record::SpendableNoteRecord; use indexed_db_futures::prelude::OpenDbRequest; use indexed_db_futures::{IdbDatabase, IdbQuerySource}; use penumbra_asset::asset::{DenomMetadata, Id}; -use penumbra_proto::core::chain::v1alpha1::{ChainParameters, FmdParameters}; -use penumbra_proto::core::crypto::v1alpha1::StateCommitment; +use penumbra_proto::core::component::chain::v1alpha1::{ChainParameters, FmdParameters}; +use penumbra_proto::crypto::tct::v1alpha1::StateCommitment; use penumbra_proto::view::v1alpha1::{NotesRequest, SwapRecord}; use penumbra_proto::DomainType; use penumbra_sct::Nullifier; @@ -104,7 +104,8 @@ impl IndexedDBStorage { let tx = self.db.transaction_on_one("notes")?; let store = tx.object_store("notes")?; - let note_proto: penumbra_proto::core::crypto::v1alpha1::Note = note.clone().try_into()?; + let note_proto: penumbra_proto::core::component::shielded_pool::v1alpha1::Note = + note.clone().try_into()?; let note_js = serde_wasm_bindgen::to_value(¬e_proto)?; let commitment_proto = note.commit().to_proto(); diff --git a/crates/wasm/src/view_server.rs b/crates/wasm/src/view_server.rs index 4e7a4e1003..27d859b4e5 100644 --- a/crates/wasm/src/view_server.rs +++ b/crates/wasm/src/view_server.rs @@ -178,7 +178,7 @@ impl ViewServer { &mut self, compact_block: JsValue, ) -> WasmResult { - let block_proto: penumbra_proto::core::chain::v1alpha1::CompactBlock = + let block_proto: penumbra_proto::core::component::compact_block::v1alpha1::CompactBlock = serde_wasm_bindgen::from_value(compact_block)?; let block: CompactBlock = block_proto.try_into()?; diff --git a/crates/wasm/src/wasm_planner.rs b/crates/wasm/src/wasm_planner.rs index bc48bab6b0..38369827a7 100644 --- a/crates/wasm/src/wasm_planner.rs +++ b/crates/wasm/src/wasm_planner.rs @@ -6,9 +6,12 @@ use anyhow::Result; use ark_ff::UniformRand; use decaf377::Fq; use penumbra_dex::swap_claim::SwapClaimPlan; -use penumbra_proto::core::chain::v1alpha1::{ChainParameters, FmdParameters}; -use penumbra_proto::core::crypto::v1alpha1::{Address, DenomMetadata, Fee, StateCommitment, Value}; +use penumbra_proto::core::asset::v1alpha1::{DenomMetadata, Value}; +use penumbra_proto::core::component::chain::v1alpha1::{ChainParameters, FmdParameters}; +use penumbra_proto::core::component::fee::v1alpha1::Fee; +use penumbra_proto::core::keys::v1alpha1::Address; use penumbra_proto::core::transaction::v1alpha1::{MemoPlaintext, TransactionPlan}; +use penumbra_proto::crypto::tct::v1alpha1::StateCommitment; use penumbra_proto::DomainType; use rand_core::OsRng; use serde_wasm_bindgen::Error; diff --git a/proto/go/gen/penumbra/client/v1alpha1/client.pb.go b/proto/go/gen/penumbra/client/v1alpha1/client.pb.go index f199da136b..835e7b9ebf 100644 --- a/proto/go/gen/penumbra/client/v1alpha1/client.pb.go +++ b/proto/go/gen/penumbra/client/v1alpha1/client.pb.go @@ -8,10 +8,13 @@ package clientv1alpha1 import ( types "github.com/cosmos/ibc-go/v8/modules/core/23-commitment/types" - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/chain/v1alpha1" - v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" - v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/dex/v1alpha1" - v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/stake/v1alpha1" + v1alpha16 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/chain/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/compact_block/v1alpha1" + v1alpha15 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/dex/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/stake/v1alpha1" + v1alpha14 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/tct/v1alpha1" crypto "github.com/penumbra-zone/penumbra/proto/go/gen/tendermint/crypto" p2p "github.com/penumbra-zone/penumbra/proto/go/gen/tendermint/p2p" types1 "github.com/penumbra-zone/penumbra/proto/go/gen/tendermint/types" @@ -415,7 +418,7 @@ type EpochByHeightResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch *v1alpha1.Epoch `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + Epoch *v1alpha11.Epoch `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` } func (x *EpochByHeightResponse) Reset() { @@ -450,7 +453,7 @@ func (*EpochByHeightResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{6} } -func (x *EpochByHeightResponse) GetEpoch() *v1alpha1.Epoch { +func (x *EpochByHeightResponse) GetEpoch() *v1alpha11.Epoch { if x != nil { return x.Epoch } @@ -462,7 +465,7 @@ type ChainParametersResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ChainParameters *v1alpha1.ChainParameters `protobuf:"bytes,1,opt,name=chain_parameters,json=chainParameters,proto3" json:"chain_parameters,omitempty"` + ChainParameters *v1alpha11.ChainParameters `protobuf:"bytes,1,opt,name=chain_parameters,json=chainParameters,proto3" json:"chain_parameters,omitempty"` } func (x *ChainParametersResponse) Reset() { @@ -497,7 +500,7 @@ func (*ChainParametersResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{7} } -func (x *ChainParametersResponse) GetChainParameters() *v1alpha1.ChainParameters { +func (x *ChainParametersResponse) GetChainParameters() *v1alpha11.ChainParameters { if x != nil { return x.ChainParameters } @@ -567,7 +570,7 @@ type ValidatorInfoResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ValidatorInfo *v1alpha11.ValidatorInfo `protobuf:"bytes,1,opt,name=validator_info,json=validatorInfo,proto3" json:"validator_info,omitempty"` + ValidatorInfo *v1alpha12.ValidatorInfo `protobuf:"bytes,1,opt,name=validator_info,json=validatorInfo,proto3" json:"validator_info,omitempty"` } func (x *ValidatorInfoResponse) Reset() { @@ -602,7 +605,7 @@ func (*ValidatorInfoResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{9} } -func (x *ValidatorInfoResponse) GetValidatorInfo() *v1alpha11.ValidatorInfo { +func (x *ValidatorInfoResponse) GetValidatorInfo() *v1alpha12.ValidatorInfo { if x != nil { return x.ValidatorInfo } @@ -616,7 +619,7 @@ type TransactionByNoteRequest struct { // 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"` - NoteCommitment *v1alpha12.StateCommitment `protobuf:"bytes,2,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` + NoteCommitment *v1alpha13.StateCommitment `protobuf:"bytes,2,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` } func (x *TransactionByNoteRequest) Reset() { @@ -658,7 +661,7 @@ func (x *TransactionByNoteRequest) GetChainId() string { return "" } -func (x *TransactionByNoteRequest) GetNoteCommitment() *v1alpha12.StateCommitment { +func (x *TransactionByNoteRequest) GetNoteCommitment() *v1alpha13.StateCommitment { if x != nil { return x.NoteCommitment } @@ -670,7 +673,7 @@ type TransactionByNoteResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NoteSource *v1alpha1.NoteSource `protobuf:"bytes,1,opt,name=note_source,json=noteSource,proto3" json:"note_source,omitempty"` + NoteSource *v1alpha11.NoteSource `protobuf:"bytes,1,opt,name=note_source,json=noteSource,proto3" json:"note_source,omitempty"` } func (x *TransactionByNoteResponse) Reset() { @@ -705,7 +708,7 @@ func (*TransactionByNoteResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{11} } -func (x *TransactionByNoteResponse) GetNoteSource() *v1alpha1.NoteSource { +func (x *TransactionByNoteResponse) GetNoteSource() *v1alpha11.NoteSource { if x != nil { return x.NoteSource } @@ -719,7 +722,7 @@ type ValidatorStatusRequest struct { // 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"` - IdentityKey *v1alpha12.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + IdentityKey *v1alpha14.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` } func (x *ValidatorStatusRequest) Reset() { @@ -761,7 +764,7 @@ func (x *ValidatorStatusRequest) GetChainId() string { return "" } -func (x *ValidatorStatusRequest) GetIdentityKey() *v1alpha12.IdentityKey { +func (x *ValidatorStatusRequest) GetIdentityKey() *v1alpha14.IdentityKey { if x != nil { return x.IdentityKey } @@ -773,7 +776,7 @@ type ValidatorStatusResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *v1alpha11.ValidatorStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Status *v1alpha12.ValidatorStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` } func (x *ValidatorStatusResponse) Reset() { @@ -808,7 +811,7 @@ func (*ValidatorStatusResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{13} } -func (x *ValidatorStatusResponse) GetStatus() *v1alpha11.ValidatorStatus { +func (x *ValidatorStatusResponse) GetStatus() *v1alpha12.ValidatorStatus { if x != nil { return x.Status } @@ -823,7 +826,7 @@ type ValidatorPenaltyRequest struct { // 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"` - IdentityKey *v1alpha12.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + IdentityKey *v1alpha14.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` StartEpochIndex uint64 `protobuf:"varint,3,opt,name=start_epoch_index,json=startEpochIndex,proto3" json:"start_epoch_index,omitempty"` EndEpochIndex uint64 `protobuf:"varint,4,opt,name=end_epoch_index,json=endEpochIndex,proto3" json:"end_epoch_index,omitempty"` } @@ -867,7 +870,7 @@ func (x *ValidatorPenaltyRequest) GetChainId() string { return "" } -func (x *ValidatorPenaltyRequest) GetIdentityKey() *v1alpha12.IdentityKey { +func (x *ValidatorPenaltyRequest) GetIdentityKey() *v1alpha14.IdentityKey { if x != nil { return x.IdentityKey } @@ -893,7 +896,7 @@ type ValidatorPenaltyResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Penalty *v1alpha11.Penalty `protobuf:"bytes,1,opt,name=penalty,proto3" json:"penalty,omitempty"` + Penalty *v1alpha12.Penalty `protobuf:"bytes,1,opt,name=penalty,proto3" json:"penalty,omitempty"` } func (x *ValidatorPenaltyResponse) Reset() { @@ -928,7 +931,7 @@ func (*ValidatorPenaltyResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{15} } -func (x *ValidatorPenaltyResponse) GetPenalty() *v1alpha11.Penalty { +func (x *ValidatorPenaltyResponse) GetPenalty() *v1alpha12.Penalty { if x != nil { return x.Penalty } @@ -942,7 +945,7 @@ type CurrentValidatorRateRequest struct { // 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"` - IdentityKey *v1alpha12.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + IdentityKey *v1alpha14.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` } func (x *CurrentValidatorRateRequest) Reset() { @@ -984,7 +987,7 @@ func (x *CurrentValidatorRateRequest) GetChainId() string { return "" } -func (x *CurrentValidatorRateRequest) GetIdentityKey() *v1alpha12.IdentityKey { +func (x *CurrentValidatorRateRequest) GetIdentityKey() *v1alpha14.IdentityKey { if x != nil { return x.IdentityKey } @@ -996,7 +999,7 @@ type CurrentValidatorRateResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *v1alpha11.RateData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *v1alpha12.RateData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *CurrentValidatorRateResponse) Reset() { @@ -1031,7 +1034,7 @@ func (*CurrentValidatorRateResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{17} } -func (x *CurrentValidatorRateResponse) GetData() *v1alpha11.RateData { +func (x *CurrentValidatorRateResponse) GetData() *v1alpha12.RateData { if x != nil { return x.Data } @@ -1045,7 +1048,7 @@ type NextValidatorRateRequest struct { // 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"` - IdentityKey *v1alpha12.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + IdentityKey *v1alpha14.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` } func (x *NextValidatorRateRequest) Reset() { @@ -1087,7 +1090,7 @@ func (x *NextValidatorRateRequest) GetChainId() string { return "" } -func (x *NextValidatorRateRequest) GetIdentityKey() *v1alpha12.IdentityKey { +func (x *NextValidatorRateRequest) GetIdentityKey() *v1alpha14.IdentityKey { if x != nil { return x.IdentityKey } @@ -1099,7 +1102,7 @@ type NextValidatorRateResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *v1alpha11.RateData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *v1alpha12.RateData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *NextValidatorRateResponse) Reset() { @@ -1134,7 +1137,7 @@ func (*NextValidatorRateResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{19} } -func (x *NextValidatorRateResponse) GetData() *v1alpha11.RateData { +func (x *NextValidatorRateResponse) GetData() *v1alpha12.RateData { if x != nil { return x.Data } @@ -1150,7 +1153,7 @@ type BatchSwapOutputDataRequest struct { // 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"` Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` - TradingPair *v1alpha13.TradingPair `protobuf:"bytes,3,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + TradingPair *v1alpha15.TradingPair `protobuf:"bytes,3,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` } func (x *BatchSwapOutputDataRequest) Reset() { @@ -1199,7 +1202,7 @@ func (x *BatchSwapOutputDataRequest) GetHeight() uint64 { return 0 } -func (x *BatchSwapOutputDataRequest) GetTradingPair() *v1alpha13.TradingPair { +func (x *BatchSwapOutputDataRequest) GetTradingPair() *v1alpha15.TradingPair { if x != nil { return x.TradingPair } @@ -1211,7 +1214,7 @@ type BatchSwapOutputDataResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *v1alpha13.BatchSwapOutputData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *v1alpha15.BatchSwapOutputData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *BatchSwapOutputDataResponse) Reset() { @@ -1246,7 +1249,7 @@ func (*BatchSwapOutputDataResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{21} } -func (x *BatchSwapOutputDataResponse) GetData() *v1alpha13.BatchSwapOutputData { +func (x *BatchSwapOutputDataResponse) GetData() *v1alpha15.BatchSwapOutputData { if x != nil { return x.Data } @@ -1261,7 +1264,7 @@ type SwapExecutionRequest struct { // 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"` Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` - TradingPair *v1alpha13.DirectedTradingPair `protobuf:"bytes,3,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + TradingPair *v1alpha15.DirectedTradingPair `protobuf:"bytes,3,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` } func (x *SwapExecutionRequest) Reset() { @@ -1310,7 +1313,7 @@ func (x *SwapExecutionRequest) GetHeight() uint64 { return 0 } -func (x *SwapExecutionRequest) GetTradingPair() *v1alpha13.DirectedTradingPair { +func (x *SwapExecutionRequest) GetTradingPair() *v1alpha15.DirectedTradingPair { if x != nil { return x.TradingPair } @@ -1322,7 +1325,7 @@ type SwapExecutionResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SwapExecution *v1alpha13.SwapExecution `protobuf:"bytes,1,opt,name=swap_execution,json=swapExecution,proto3" json:"swap_execution,omitempty"` + SwapExecution *v1alpha15.SwapExecution `protobuf:"bytes,1,opt,name=swap_execution,json=swapExecution,proto3" json:"swap_execution,omitempty"` } func (x *SwapExecutionResponse) Reset() { @@ -1357,7 +1360,7 @@ func (*SwapExecutionResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{23} } -func (x *SwapExecutionResponse) GetSwapExecution() *v1alpha13.SwapExecution { +func (x *SwapExecutionResponse) GetSwapExecution() *v1alpha15.SwapExecution { if x != nil { return x.SwapExecution } @@ -1425,7 +1428,7 @@ type ArbExecutionResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SwapExecution *v1alpha13.SwapExecution `protobuf:"bytes,1,opt,name=swap_execution,json=swapExecution,proto3" json:"swap_execution,omitempty"` + SwapExecution *v1alpha15.SwapExecution `protobuf:"bytes,1,opt,name=swap_execution,json=swapExecution,proto3" json:"swap_execution,omitempty"` Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` } @@ -1461,7 +1464,7 @@ func (*ArbExecutionResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{25} } -func (x *ArbExecutionResponse) GetSwapExecution() *v1alpha13.SwapExecution { +func (x *ArbExecutionResponse) GetSwapExecution() *v1alpha15.SwapExecution { if x != nil { return x.SwapExecution } @@ -1487,7 +1490,7 @@ type SwapExecutionsRequest struct { // If present, only return swap executions occurring before the given height. EndHeight uint64 `protobuf:"varint,3,opt,name=end_height,json=endHeight,proto3" json:"end_height,omitempty"` // If present, filter swap executions by the given trading pair. - TradingPair *v1alpha13.DirectedTradingPair `protobuf:"bytes,4,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + TradingPair *v1alpha15.DirectedTradingPair `protobuf:"bytes,4,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` } func (x *SwapExecutionsRequest) Reset() { @@ -1543,7 +1546,7 @@ func (x *SwapExecutionsRequest) GetEndHeight() uint64 { return 0 } -func (x *SwapExecutionsRequest) GetTradingPair() *v1alpha13.DirectedTradingPair { +func (x *SwapExecutionsRequest) GetTradingPair() *v1alpha15.DirectedTradingPair { if x != nil { return x.TradingPair } @@ -1555,9 +1558,9 @@ type SwapExecutionsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SwapExecution *v1alpha13.SwapExecution `protobuf:"bytes,1,opt,name=swap_execution,json=swapExecution,proto3" json:"swap_execution,omitempty"` + SwapExecution *v1alpha15.SwapExecution `protobuf:"bytes,1,opt,name=swap_execution,json=swapExecution,proto3" json:"swap_execution,omitempty"` Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` - TradingPair *v1alpha13.DirectedTradingPair `protobuf:"bytes,3,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + TradingPair *v1alpha15.DirectedTradingPair `protobuf:"bytes,3,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` } func (x *SwapExecutionsResponse) Reset() { @@ -1592,7 +1595,7 @@ func (*SwapExecutionsResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{27} } -func (x *SwapExecutionsResponse) GetSwapExecution() *v1alpha13.SwapExecution { +func (x *SwapExecutionsResponse) GetSwapExecution() *v1alpha15.SwapExecution { if x != nil { return x.SwapExecution } @@ -1606,7 +1609,7 @@ func (x *SwapExecutionsResponse) GetHeight() uint64 { return 0 } -func (x *SwapExecutionsResponse) GetTradingPair() *v1alpha13.DirectedTradingPair { +func (x *SwapExecutionsResponse) GetTradingPair() *v1alpha15.DirectedTradingPair { if x != nil { return x.TradingPair } @@ -1684,7 +1687,7 @@ type ArbExecutionsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SwapExecution *v1alpha13.SwapExecution `protobuf:"bytes,1,opt,name=swap_execution,json=swapExecution,proto3" json:"swap_execution,omitempty"` + SwapExecution *v1alpha15.SwapExecution `protobuf:"bytes,1,opt,name=swap_execution,json=swapExecution,proto3" json:"swap_execution,omitempty"` Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` } @@ -1720,7 +1723,7 @@ func (*ArbExecutionsResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{29} } -func (x *ArbExecutionsResponse) GetSwapExecution() *v1alpha13.SwapExecution { +func (x *ArbExecutionsResponse) GetSwapExecution() *v1alpha15.SwapExecution { if x != nil { return x.SwapExecution } @@ -1797,7 +1800,7 @@ type LiquidityPositionsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *v1alpha13.Position `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *v1alpha15.Position `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *LiquidityPositionsResponse) Reset() { @@ -1832,7 +1835,7 @@ func (*LiquidityPositionsResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{31} } -func (x *LiquidityPositionsResponse) GetData() *v1alpha13.Position { +func (x *LiquidityPositionsResponse) GetData() *v1alpha15.Position { if x != nil { return x.Data } @@ -1848,7 +1851,7 @@ type LiquidityPositionsByPriceRequest struct { // 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"` // The directed trading pair to request positions for - TradingPair *v1alpha13.DirectedTradingPair `protobuf:"bytes,2,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + TradingPair *v1alpha15.DirectedTradingPair `protobuf:"bytes,2,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` // The maximum number of positions to return. Limit uint64 `protobuf:"varint,5,opt,name=limit,proto3" json:"limit,omitempty"` } @@ -1892,7 +1895,7 @@ func (x *LiquidityPositionsByPriceRequest) GetChainId() string { return "" } -func (x *LiquidityPositionsByPriceRequest) GetTradingPair() *v1alpha13.DirectedTradingPair { +func (x *LiquidityPositionsByPriceRequest) GetTradingPair() *v1alpha15.DirectedTradingPair { if x != nil { return x.TradingPair } @@ -1911,7 +1914,7 @@ type LiquidityPositionsByPriceResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *v1alpha13.Position `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *v1alpha15.Position `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *LiquidityPositionsByPriceResponse) Reset() { @@ -1946,7 +1949,7 @@ func (*LiquidityPositionsByPriceResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{33} } -func (x *LiquidityPositionsByPriceResponse) GetData() *v1alpha13.Position { +func (x *LiquidityPositionsByPriceResponse) GetData() *v1alpha15.Position { if x != nil { return x.Data } @@ -1961,7 +1964,7 @@ type LiquidityPositionByIdRequest struct { // 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"` - PositionId *v1alpha13.PositionId `protobuf:"bytes,2,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + PositionId *v1alpha15.PositionId `protobuf:"bytes,2,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` } func (x *LiquidityPositionByIdRequest) Reset() { @@ -2003,7 +2006,7 @@ func (x *LiquidityPositionByIdRequest) GetChainId() string { return "" } -func (x *LiquidityPositionByIdRequest) GetPositionId() *v1alpha13.PositionId { +func (x *LiquidityPositionByIdRequest) GetPositionId() *v1alpha15.PositionId { if x != nil { return x.PositionId } @@ -2015,7 +2018,7 @@ type LiquidityPositionByIdResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *v1alpha13.Position `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *v1alpha15.Position `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *LiquidityPositionByIdResponse) Reset() { @@ -2050,7 +2053,7 @@ func (*LiquidityPositionByIdResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{35} } -func (x *LiquidityPositionByIdResponse) GetData() *v1alpha13.Position { +func (x *LiquidityPositionByIdResponse) GetData() *v1alpha15.Position { if x != nil { return x.Data } @@ -2064,7 +2067,7 @@ type LiquidityPositionsByIdRequest struct { // 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"` - PositionId []*v1alpha13.PositionId `protobuf:"bytes,2,rep,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + PositionId []*v1alpha15.PositionId `protobuf:"bytes,2,rep,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` } func (x *LiquidityPositionsByIdRequest) Reset() { @@ -2106,7 +2109,7 @@ func (x *LiquidityPositionsByIdRequest) GetChainId() string { return "" } -func (x *LiquidityPositionsByIdRequest) GetPositionId() []*v1alpha13.PositionId { +func (x *LiquidityPositionsByIdRequest) GetPositionId() []*v1alpha15.PositionId { if x != nil { return x.PositionId } @@ -2118,7 +2121,7 @@ type LiquidityPositionsByIdResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Data *v1alpha13.Position `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Data *v1alpha15.Position `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } func (x *LiquidityPositionsByIdResponse) Reset() { @@ -2153,7 +2156,7 @@ func (*LiquidityPositionsByIdResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{37} } -func (x *LiquidityPositionsByIdResponse) GetData() *v1alpha13.Position { +func (x *LiquidityPositionsByIdResponse) GetData() *v1alpha15.Position { if x != nil { return x.Data } @@ -2167,7 +2170,7 @@ type SpreadRequest struct { // 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"` - TradingPair *v1alpha13.TradingPair `protobuf:"bytes,2,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + TradingPair *v1alpha15.TradingPair `protobuf:"bytes,2,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` } func (x *SpreadRequest) Reset() { @@ -2209,7 +2212,7 @@ func (x *SpreadRequest) GetChainId() string { return "" } -func (x *SpreadRequest) GetTradingPair() *v1alpha13.TradingPair { +func (x *SpreadRequest) GetTradingPair() *v1alpha15.TradingPair { if x != nil { return x.TradingPair } @@ -2222,9 +2225,9 @@ type SpreadResponse struct { unknownFields protoimpl.UnknownFields // The best position when trading 1 => 2. - Best_1To_2Position *v1alpha13.Position `protobuf:"bytes,1,opt,name=best_1_to_2_position,json=best1To2Position,proto3" json:"best_1_to_2_position,omitempty"` + Best_1To_2Position *v1alpha15.Position `protobuf:"bytes,1,opt,name=best_1_to_2_position,json=best1To2Position,proto3" json:"best_1_to_2_position,omitempty"` // The best position when trading 2 => 1. - Best_2To_1Position *v1alpha13.Position `protobuf:"bytes,2,opt,name=best_2_to_1_position,json=best2To1Position,proto3" json:"best_2_to_1_position,omitempty"` + Best_2To_1Position *v1alpha15.Position `protobuf:"bytes,2,opt,name=best_2_to_1_position,json=best2To1Position,proto3" json:"best_2_to_1_position,omitempty"` // An approximation of the effective price when trading 1 => 2. ApproxEffectivePrice_1To_2 float64 `protobuf:"fixed64,3,opt,name=approx_effective_price_1_to_2,json=approxEffectivePrice1To2,proto3" json:"approx_effective_price_1_to_2,omitempty"` // An approximation of the effective price when trading 2 => 1. @@ -2263,14 +2266,14 @@ func (*SpreadResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{39} } -func (x *SpreadResponse) GetBest_1To_2Position() *v1alpha13.Position { +func (x *SpreadResponse) GetBest_1To_2Position() *v1alpha15.Position { if x != nil { return x.Best_1To_2Position } return nil } -func (x *SpreadResponse) GetBest_2To_1Position() *v1alpha13.Position { +func (x *SpreadResponse) GetBest_2To_1Position() *v1alpha15.Position { if x != nil { return x.Best_2To_1Position } @@ -2300,7 +2303,7 @@ type DenomMetadataByIdRequest struct { // 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"` // The asset id to request information on. - AssetId *v1alpha12.AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + AssetId *v1alpha16.AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` } func (x *DenomMetadataByIdRequest) Reset() { @@ -2342,7 +2345,7 @@ func (x *DenomMetadataByIdRequest) GetChainId() string { return "" } -func (x *DenomMetadataByIdRequest) GetAssetId() *v1alpha12.AssetId { +func (x *DenomMetadataByIdRequest) GetAssetId() *v1alpha16.AssetId { if x != nil { return x.AssetId } @@ -2357,7 +2360,7 @@ type DenomMetadataByIdResponse struct { // If present, information on the requested asset. // // If the requested asset was unknown, this field will not be present. - DenomMetadata *v1alpha12.DenomMetadata `protobuf:"bytes,1,opt,name=denom_metadata,json=denomMetadata,proto3" json:"denom_metadata,omitempty"` + DenomMetadata *v1alpha16.DenomMetadata `protobuf:"bytes,1,opt,name=denom_metadata,json=denomMetadata,proto3" json:"denom_metadata,omitempty"` } func (x *DenomMetadataByIdResponse) Reset() { @@ -2392,7 +2395,7 @@ func (*DenomMetadataByIdResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{41} } -func (x *DenomMetadataByIdResponse) GetDenomMetadata() *v1alpha12.DenomMetadata { +func (x *DenomMetadataByIdResponse) GetDenomMetadata() *v1alpha16.DenomMetadata { if x != nil { return x.DenomMetadata } @@ -2577,7 +2580,7 @@ type ProposalRateDataResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RateData *v1alpha11.RateData `protobuf:"bytes,1,opt,name=rate_data,json=rateData,proto3" json:"rate_data,omitempty"` + RateData *v1alpha12.RateData `protobuf:"bytes,1,opt,name=rate_data,json=rateData,proto3" json:"rate_data,omitempty"` } func (x *ProposalRateDataResponse) Reset() { @@ -2612,7 +2615,7 @@ func (*ProposalRateDataResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{45} } -func (x *ProposalRateDataResponse) GetRateData() *v1alpha11.RateData { +func (x *ProposalRateDataResponse) GetRateData() *v1alpha12.RateData { if x != nil { return x.RateData } @@ -2624,8 +2627,8 @@ type SimulateTradeRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Input *v1alpha12.Value `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` - Output *v1alpha12.AssetId `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"` + Input *v1alpha16.Value `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` + Output *v1alpha16.AssetId `protobuf:"bytes,2,opt,name=output,proto3" json:"output,omitempty"` Routing *SimulateTradeRequest_Routing `protobuf:"bytes,3,opt,name=routing,proto3" json:"routing,omitempty"` } @@ -2661,14 +2664,14 @@ func (*SimulateTradeRequest) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{46} } -func (x *SimulateTradeRequest) GetInput() *v1alpha12.Value { +func (x *SimulateTradeRequest) GetInput() *v1alpha16.Value { if x != nil { return x.Input } return nil } -func (x *SimulateTradeRequest) GetOutput() *v1alpha12.AssetId { +func (x *SimulateTradeRequest) GetOutput() *v1alpha16.AssetId { if x != nil { return x.Output } @@ -2687,7 +2690,7 @@ type SimulateTradeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Output *v1alpha13.SwapExecution `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + Output *v1alpha15.SwapExecution `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` } func (x *SimulateTradeResponse) Reset() { @@ -2722,7 +2725,7 @@ func (*SimulateTradeResponse) Descriptor() ([]byte, []int) { return file_penumbra_client_v1alpha1_client_proto_rawDescGZIP(), []int{47} } -func (x *SimulateTradeResponse) GetOutput() *v1alpha13.SwapExecution { +func (x *SimulateTradeResponse) GetOutput() *v1alpha15.SwapExecution { if x != nil { return x.Output } @@ -4191,17 +4194,28 @@ var file_penumbra_client_v1alpha1_client_proto_rawDesc = []byte{ 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x69, 0x62, 0x63, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 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, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, - 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, - 0x2f, 0x64, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, - 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 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, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 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, 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, 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, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, + 0x64, 0x65, 0x78, 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, 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, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x6f, + 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x70, 0x32, 0x70, @@ -4242,766 +4256,784 @@ var file_penumbra_client_v1alpha1_client_proto_rawDesc = []byte{ 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, - 0x65, 0x22, 0x6c, 0x0a, 0x19, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, + 0x65, 0x22, 0x7e, 0x0a, 0x19, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, - 0x33, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 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, 0x22, 0x2e, 0x0a, 0x14, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x79, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x52, 0x0a, 0x15, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x79, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x22, 0x73, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x69, - 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x0f, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 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, 0x6b, 0x0a, 0x15, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, - 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, + 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, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x22, 0x33, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 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, 0x22, 0x2e, 0x0a, 0x14, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, + 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x5c, 0x0a, 0x15, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, + 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x43, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 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, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x22, 0x7d, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x62, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 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, 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 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, 0x8e, 0x01, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x66, 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x4e, 0x6f, 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, 0x57, 0x0a, 0x0f, 0x6e, 0x6f, + 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x0e, 0x6e, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x66, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x79, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x49, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x82, 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, 0x4d, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x60, 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, 0x45, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0xd7, 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, 0x4d, 0x0a, 0x0c, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x5b, 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, 0x3f, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x61, - 0x6c, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x87, 0x01, 0x0a, 0x1b, 0x43, 0x75, + 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, 0x0e, 0x6e, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x70, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x79, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x53, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, + 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 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, 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, 0x4d, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 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, 0x5a, 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, 0x3a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 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, - 0x84, 0x01, 0x0a, 0x18, 0x4e, 0x65, 0x78, 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, 0x4d, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 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, 0x57, 0x0a, 0x19, 0x4e, 0x65, 0x78, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 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, - 0x9b, 0x01, 0x0a, 0x1a, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 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, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x4a, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, - 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x22, 0x62, 0x0a, - 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, - 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x9d, 0x01, 0x0a, 0x14, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 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, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a, - 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, - 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, - 0x72, 0x22, 0x69, 0x0a, 0x15, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x77, - 0x61, 0x70, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 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, 0x82, 0x01, 0x0a, 0x18, 0x4e, 0x65, 0x78, 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, 0x61, 0x0a, 0x19, 0x4e, 0x65, 0x78, 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, 0xa5, 0x01, 0x0a, 0x1a, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 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, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x54, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, + 0x22, 0x6c, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa7, + 0x01, 0x0a, 0x14, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 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, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x5c, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x03, 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, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x22, 0x73, 0x0a, 0x15, 0x53, 0x77, 0x61, 0x70, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, + 0x73, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x0a, + 0x13, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, + 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x14, 0x41, 0x72, 0x62, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5a, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, - 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x13, - 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x16, - 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x41, 0x72, 0x62, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x50, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 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, 0xc8, 0x01, 0x0a, 0x15, 0x53, 0x77, - 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x21, - 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x52, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, - 0x50, 0x61, 0x69, 0x72, 0x22, 0xd6, 0x01, 0x0a, 0x16, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x50, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0xd2, 0x01, 0x0a, 0x15, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x5c, 0x0a, 0x0c, 0x74, + 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x04, 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, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x22, 0xea, 0x01, 0x0a, 0x16, 0x53, 0x77, + 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0d, 0x73, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x5c, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x03, 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, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x22, 0x73, 0x0a, 0x14, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x09, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x15, + 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x74, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, - 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x22, 0x73, 0x0a, - 0x14, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0e, - 0x73, 0x77, 0x61, 0x70, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0d, 0x73, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x5d, 0x0a, 0x19, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, - 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x25, - 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, - 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x22, 0x56, 0x0a, 0x1a, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, - 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa7, 0x01, - 0x0a, 0x20, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x63, 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, 0x52, 0x0a, - 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, - 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, - 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x5d, 0x0a, 0x21, 0x4c, 0x69, 0x71, 0x75, 0x69, - 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x50, - 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x71, 0x75, 0x69, - 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 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, 0x12, 0x47, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, - 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x1d, 0x4c, + 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x5d, 0x0a, 0x19, 0x4c, 0x69, 0x71, + 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x22, 0x60, 0x0a, 0x1a, 0x4c, 0x69, 0x71, 0x75, + 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 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, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb1, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x71, 0x75, 0x69, - 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, + 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x63, 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, 0x5c, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 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, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x67, + 0x0a, 0x21, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 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, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x71, 0x75, + 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 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, 0x12, 0x47, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x5a, 0x0a, 0x1e, + 0x6e, 0x49, 0x64, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x02, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x1d, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, + 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 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, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8d, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x76, 0x0a, 0x0d, 0x53, 0x70, 0x72, 0x65, - 0x61, 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, 0x12, 0x4a, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, - 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, - 0x22, 0xbe, 0x02, 0x0a, 0x0e, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x14, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x31, 0x5f, 0x74, 0x6f, - 0x5f, 0x32, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x62, 0x65, 0x73, 0x74, 0x31, 0x54, 0x6f, - 0x32, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x14, 0x62, 0x65, 0x73, - 0x74, 0x5f, 0x32, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x62, - 0x65, 0x73, 0x74, 0x32, 0x54, 0x6f, 0x31, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3f, 0x0a, 0x1d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x32, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x18, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x45, 0x66, - 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x31, 0x54, 0x6f, 0x32, - 0x12, 0x3f, 0x0a, 0x1d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x32, 0x5f, 0x74, 0x6f, 0x5f, - 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x18, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x45, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x32, 0x54, 0x6f, - 0x31, 0x22, 0x78, 0x0a, 0x18, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x6e, 0x73, 0x42, 0x79, 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, 0x12, 0x41, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x49, 0x64, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x19, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 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, 0x5f, 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, 0x43, 0x0a, 0x09, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, + 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x64, 0x0a, 0x1e, 0x4c, + 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 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, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x80, 0x01, 0x0a, 0x0d, 0x53, 0x70, 0x72, 0x65, 0x61, 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, 0x12, 0x54, + 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 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, 0x64, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, + 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x50, 0x61, 0x69, 0x72, 0x22, 0xd2, 0x02, 0x0a, 0x0e, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x14, 0x62, 0x65, 0x73, 0x74, 0x5f, + 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x32, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 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, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x62, 0x65, 0x73, 0x74, 0x31, 0x54, 0x6f, 0x32, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x14, 0x62, 0x65, 0x73, 0x74, 0x5f, + 0x32, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 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, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x62, 0x65, 0x73, 0x74, 0x32, 0x54, 0x6f, 0x31, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x1d, 0x61, 0x70, 0x70, 0x72, 0x6f, + 0x78, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x18, + 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x31, 0x54, 0x6f, 0x32, 0x12, 0x3f, 0x0a, 0x1d, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x78, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x5f, 0x32, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x18, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x32, 0x54, 0x6f, 0x31, 0x22, 0x77, 0x0a, 0x18, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x79, 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, + 0x12, 0x40, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 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, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x19, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x52, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 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, 0x0d, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 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, 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, 0xd2, 0x03, 0x0a, 0x14, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, - 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, - 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x49, 0x64, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x50, 0x0a, 0x07, 0x72, 0x6f, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x6f, 0x75, 0x74, - 0x69, 0x6e, 0x67, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x1a, 0xeb, 0x01, 0x0a, - 0x07, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x5a, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0xd0, 0x03, 0x0a, 0x14, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, + 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 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, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 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, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x50, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x12, 0x61, 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x68, - 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x67, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x1a, 0xeb, 0x01, 0x0a, 0x07, 0x52, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x5a, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x12, 0x61, 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x68, 0x6f, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x48, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x09, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x48, 0x6f, 0x70, 0x1a, 0x0b, 0x0a, 0x09, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x48, + 0x6f, 0x70, 0x1a, 0x09, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x64, 0x0a, 0x15, 0x53, 0x69, 0x6d, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 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, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x54, + 0x0a, 0x0f, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 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, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xb4, 0x01, 0x0a, 0x10, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x48, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x09, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x48, 0x6f, 0x70, 0x1a, 0x0b, 0x0a, 0x09, 0x53, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x48, 0x6f, 0x70, 0x1a, 0x09, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x5a, 0x0a, 0x15, 0x53, 0x69, - 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x22, 0x54, 0x0a, 0x0f, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, - 0x75, 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, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xb4, 0x01, 0x0a, - 0x10, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x70, 0x72, 0x6f, - 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x1a, 0x1d, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x12, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x56, 0x61, 0x6c, - 0x75, 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, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x3d, 0x0a, 0x13, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x38, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, - 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x70, 0x72, 0x6f, 0x76, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x78, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x08, 0x74, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x22, 0x89, 0x01, 0x0a, 0x08, 0x54, - 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x73, - 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, - 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, - 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, - 0x73, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x61, 0x67, - 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x43, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x48, 0x0a, 0x17, 0x42, - 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x15, - 0x0a, 0x06, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x72, 0x65, 0x71, 0x49, 0x64, 0x22, 0x68, 0x0a, 0x18, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x54, 0x78, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, - 0x47, 0x0a, 0x16, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x53, 0x79, - 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x17, 0x42, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6c, - 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, - 0x68, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x70, 0x32, 0x70, 0x2e, - 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x09, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xf7, - 0x01, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x11, 0x6c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x41, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, - 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x46, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x61, - 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x22, 0x68, 0x0a, 0x10, 0x41, 0x42, 0x43, 0x49, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x72, 0x6f, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x72, 0x6f, - 0x76, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x11, 0x41, 0x42, 0x43, 0x49, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, - 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x38, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x6f, 0x70, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x31, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x7f, 0x0a, 0x18, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x32, 0xcc, 0x04, 0x0a, 0x15, 0x4f, - 0x62, 0x6c, 0x69, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x39, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x1a, 0x1d, 0x0a, 0x05, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x12, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x56, 0x61, 0x6c, 0x75, 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, 0x16, 0x0a, 0x06, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x22, 0x3d, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x38, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x76, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x22, 0xa2, 0x01, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, + 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x54, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x74, 0x78, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, + 0x74, 0x78, 0x22, 0x89, 0x01, 0x0a, 0x08, 0x54, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, + 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x61, 0x73, 0x57, 0x61, 0x6e, 0x74, 0x65, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x76, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x43, + 0x0a, 0x03, 0x54, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x22, 0x48, 0x0a, 0x17, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x54, 0x78, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, 0x22, 0x68, 0x0a, + 0x18, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x41, 0x73, 0x79, 0x6e, + 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x47, 0x0a, 0x16, 0x42, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x72, 0x65, 0x71, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, + 0x22, 0x67, 0x0a, 0x17, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x53, + 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd6, 0x01, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x74, 0x2e, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x3f, 0x0a, 0x09, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xf7, 0x01, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x41, 0x70, 0x70, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x55, 0x70, + 0x22, 0x68, 0x0a, 0x10, 0x41, 0x42, 0x43, 0x49, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x22, 0x81, 0x02, 0x0a, 0x11, 0x41, + 0x42, 0x43, 0x49, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x5f, 0x6f, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x70, 0x73, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x4f, + 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, + 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, + 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x31, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x22, 0x7f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, + 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x44, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x32, 0xcc, 0x04, 0x0a, 0x15, 0x4f, 0x62, 0x6c, 0x69, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x11, + 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x76, 0x0a, 0x0f, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 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, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 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, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0d, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x79, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x55, 0x0a, 0x04, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0d, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2e, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x79, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x32, 0xa0, 0x14, 0x0a, 0x14, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7c, 0x0a, 0x11, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x4e, 0x6f, 0x74, 0x65, 0x12, + 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x4e, 0x6f, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x76, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x79, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, - 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 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, - 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 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, 0x55, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa0, 0x14, 0x0a, 0x14, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x7c, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x79, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 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, 0x79, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x12, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, - 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x79, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x76, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x79, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x31, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, - 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 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, 0x7c, 0x0a, 0x11, 0x4e, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x69, + 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, 0x7c, 0x0a, 0x11, 0x4e, + 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x78, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4e, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x14, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, + 0x74, 0x65, 0x12, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 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, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x12, 0x85, 0x01, 0x0a, 0x14, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 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, 0x12, 0x82, 0x01, 0x0a, 0x13, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, - 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, - 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6d, 0x0a, 0x0c, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x72, 0x62, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x72, 0x62, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x75, 0x0a, 0x0e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, - 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, - 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x72, 0x0a, 0x0d, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x12, 0x82, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x4c, - 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, - 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x88, - 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x12, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0c, 0x41, 0x72, 0x62, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, + 0x68, 0x61, 0x31, 0x2e, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x0e, 0x53, 0x77, 0x61, 0x70, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x72, + 0x0a, 0x0d, 0x41, 0x72, 0x62, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x72, 0x62, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x72, 0x62, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x30, 0x01, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, + 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x88, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x71, 0x75, 0x69, + 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x64, + 0x12, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x16, 0x4c, 0x69, - 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x42, 0x79, 0x49, 0x64, 0x12, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x64, 0x12, 0x37, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, + 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0x96, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, + 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x5b, 0x0a, 0x06, 0x53, 0x70, + 0x72, 0x65, 0x61, 0x64, 0x12, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, + 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, - 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x96, 0x01, 0x0a, 0x19, 0x4c, 0x69, - 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x42, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, - 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x42, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x5b, 0x0a, 0x06, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x12, 0x27, 0x2e, 0x70, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x11, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x64, 0x12, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x53, 0x70, 0x72, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7c, 0x0a, 0x11, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x42, 0x79, 0x49, 0x64, 0x12, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, - 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x2e, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x7b, 0x0a, 0x10, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 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, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x12, 0x70, 0x0a, 0x0d, 0x53, 0x69, 0x6d, - 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, + 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, 0x32, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 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, 0x12, 0x70, 0x0a, 0x0d, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x69, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x69, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x54, 0x72, - 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x08, 0x4b, - 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x65, - 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, - 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x65, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x32, 0xb8, 0x05, 0x0a, 0x16, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, + 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x66, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x10, 0x42, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x32, 0xb8, 0x05, 0x0a, - 0x16, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x7b, 0x0a, 0x10, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x41, 0x73, - 0x79, 0x6e, 0x63, 0x12, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, - 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x41, 0x73, 0x79, - 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0f, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x53, 0x79, 0x6e, 0x63, 0x12, - 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x6f, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x54, 0x78, 0x12, - 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x54, 0x78, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x54, 0x78, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x0f, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x54, 0x78, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x53, 0x79, + 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, + 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, + 0x0a, 0x05, 0x47, 0x65, 0x74, 0x54, 0x78, 0x12, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x09, 0x41, 0x42, + 0x43, 0x49, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x66, 0x0a, 0x09, 0x41, 0x42, 0x43, 0x49, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x10, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x31, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x85, 0x02, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x56, 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, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x3b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, - 0x02, 0x03, 0x50, 0x43, 0x58, 0xaa, 0x02, 0x18, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0xca, 0x02, 0x18, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x50, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x1a, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x31, 0x2e, 0x41, 0x42, 0x43, 0x49, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, + 0x42, 0x43, 0x49, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x7b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x85, 0x02, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x42, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x56, 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, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x58, 0xaa, 0x02, 0x18, + 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x18, 0x50, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0xe2, 0x02, 0x24, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x50, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x56, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5089,25 +5121,25 @@ var file_penumbra_client_v1alpha1_client_proto_goTypes = []interface{}{ (*SimulateTradeRequest_Routing_SingleHop)(nil), // 68: penumbra.client.v1alpha1.SimulateTradeRequest.Routing.SingleHop (*SimulateTradeRequest_Routing_Default)(nil), // 69: penumbra.client.v1alpha1.SimulateTradeRequest.Routing.Default (*KeyValueResponse_Value)(nil), // 70: penumbra.client.v1alpha1.KeyValueResponse.Value - (*v1alpha1.CompactBlock)(nil), // 71: penumbra.core.chain.v1alpha1.CompactBlock - (*v1alpha1.Epoch)(nil), // 72: penumbra.core.chain.v1alpha1.Epoch - (*v1alpha1.ChainParameters)(nil), // 73: penumbra.core.chain.v1alpha1.ChainParameters - (*v1alpha11.ValidatorInfo)(nil), // 74: penumbra.core.stake.v1alpha1.ValidatorInfo - (*v1alpha12.StateCommitment)(nil), // 75: penumbra.core.crypto.v1alpha1.StateCommitment - (*v1alpha1.NoteSource)(nil), // 76: penumbra.core.chain.v1alpha1.NoteSource - (*v1alpha12.IdentityKey)(nil), // 77: penumbra.core.crypto.v1alpha1.IdentityKey - (*v1alpha11.ValidatorStatus)(nil), // 78: penumbra.core.stake.v1alpha1.ValidatorStatus - (*v1alpha11.Penalty)(nil), // 79: penumbra.core.stake.v1alpha1.Penalty - (*v1alpha11.RateData)(nil), // 80: penumbra.core.stake.v1alpha1.RateData - (*v1alpha13.TradingPair)(nil), // 81: penumbra.core.dex.v1alpha1.TradingPair - (*v1alpha13.BatchSwapOutputData)(nil), // 82: penumbra.core.dex.v1alpha1.BatchSwapOutputData - (*v1alpha13.DirectedTradingPair)(nil), // 83: penumbra.core.dex.v1alpha1.DirectedTradingPair - (*v1alpha13.SwapExecution)(nil), // 84: penumbra.core.dex.v1alpha1.SwapExecution - (*v1alpha13.Position)(nil), // 85: penumbra.core.dex.v1alpha1.Position - (*v1alpha13.PositionId)(nil), // 86: penumbra.core.dex.v1alpha1.PositionId - (*v1alpha12.AssetId)(nil), // 87: penumbra.core.crypto.v1alpha1.AssetId - (*v1alpha12.DenomMetadata)(nil), // 88: penumbra.core.crypto.v1alpha1.DenomMetadata - (*v1alpha12.Value)(nil), // 89: penumbra.core.crypto.v1alpha1.Value + (*v1alpha1.CompactBlock)(nil), // 71: penumbra.core.component.compact_block.v1alpha1.CompactBlock + (*v1alpha11.Epoch)(nil), // 72: penumbra.core.component.chain.v1alpha1.Epoch + (*v1alpha11.ChainParameters)(nil), // 73: penumbra.core.component.chain.v1alpha1.ChainParameters + (*v1alpha12.ValidatorInfo)(nil), // 74: penumbra.core.component.stake.v1alpha1.ValidatorInfo + (*v1alpha13.StateCommitment)(nil), // 75: penumbra.crypto.tct.v1alpha1.StateCommitment + (*v1alpha11.NoteSource)(nil), // 76: penumbra.core.component.chain.v1alpha1.NoteSource + (*v1alpha14.IdentityKey)(nil), // 77: penumbra.core.keys.v1alpha1.IdentityKey + (*v1alpha12.ValidatorStatus)(nil), // 78: penumbra.core.component.stake.v1alpha1.ValidatorStatus + (*v1alpha12.Penalty)(nil), // 79: penumbra.core.component.stake.v1alpha1.Penalty + (*v1alpha12.RateData)(nil), // 80: penumbra.core.component.stake.v1alpha1.RateData + (*v1alpha15.TradingPair)(nil), // 81: penumbra.core.component.dex.v1alpha1.TradingPair + (*v1alpha15.BatchSwapOutputData)(nil), // 82: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData + (*v1alpha15.DirectedTradingPair)(nil), // 83: penumbra.core.component.dex.v1alpha1.DirectedTradingPair + (*v1alpha15.SwapExecution)(nil), // 84: penumbra.core.component.dex.v1alpha1.SwapExecution + (*v1alpha15.Position)(nil), // 85: penumbra.core.component.dex.v1alpha1.Position + (*v1alpha15.PositionId)(nil), // 86: penumbra.core.component.dex.v1alpha1.PositionId + (*v1alpha16.AssetId)(nil), // 87: penumbra.core.asset.v1alpha1.AssetId + (*v1alpha16.DenomMetadata)(nil), // 88: penumbra.core.asset.v1alpha1.DenomMetadata + (*v1alpha16.Value)(nil), // 89: penumbra.core.asset.v1alpha1.Value (*types.MerkleProof)(nil), // 90: ibc.core.commitment.v1.MerkleProof (*p2p.DefaultNodeInfo)(nil), // 91: tendermint.p2p.DefaultNodeInfo (*types1.Validator)(nil), // 92: tendermint.types.Validator @@ -5117,46 +5149,46 @@ var file_penumbra_client_v1alpha1_client_proto_goTypes = []interface{}{ (*types1.Block)(nil), // 96: tendermint.types.Block } var file_penumbra_client_v1alpha1_client_proto_depIdxs = []int32{ - 71, // 0: penumbra.client.v1alpha1.CompactBlockRangeResponse.compact_block:type_name -> penumbra.core.chain.v1alpha1.CompactBlock - 72, // 1: penumbra.client.v1alpha1.EpochByHeightResponse.epoch:type_name -> penumbra.core.chain.v1alpha1.Epoch - 73, // 2: penumbra.client.v1alpha1.ChainParametersResponse.chain_parameters:type_name -> penumbra.core.chain.v1alpha1.ChainParameters - 74, // 3: penumbra.client.v1alpha1.ValidatorInfoResponse.validator_info:type_name -> penumbra.core.stake.v1alpha1.ValidatorInfo - 75, // 4: penumbra.client.v1alpha1.TransactionByNoteRequest.note_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 76, // 5: penumbra.client.v1alpha1.TransactionByNoteResponse.note_source:type_name -> penumbra.core.chain.v1alpha1.NoteSource - 77, // 6: penumbra.client.v1alpha1.ValidatorStatusRequest.identity_key:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 78, // 7: penumbra.client.v1alpha1.ValidatorStatusResponse.status:type_name -> penumbra.core.stake.v1alpha1.ValidatorStatus - 77, // 8: penumbra.client.v1alpha1.ValidatorPenaltyRequest.identity_key:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 79, // 9: penumbra.client.v1alpha1.ValidatorPenaltyResponse.penalty:type_name -> penumbra.core.stake.v1alpha1.Penalty - 77, // 10: penumbra.client.v1alpha1.CurrentValidatorRateRequest.identity_key:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 80, // 11: penumbra.client.v1alpha1.CurrentValidatorRateResponse.data:type_name -> penumbra.core.stake.v1alpha1.RateData - 77, // 12: penumbra.client.v1alpha1.NextValidatorRateRequest.identity_key:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 80, // 13: penumbra.client.v1alpha1.NextValidatorRateResponse.data:type_name -> penumbra.core.stake.v1alpha1.RateData - 81, // 14: penumbra.client.v1alpha1.BatchSwapOutputDataRequest.trading_pair:type_name -> penumbra.core.dex.v1alpha1.TradingPair - 82, // 15: penumbra.client.v1alpha1.BatchSwapOutputDataResponse.data:type_name -> penumbra.core.dex.v1alpha1.BatchSwapOutputData - 83, // 16: penumbra.client.v1alpha1.SwapExecutionRequest.trading_pair:type_name -> penumbra.core.dex.v1alpha1.DirectedTradingPair - 84, // 17: penumbra.client.v1alpha1.SwapExecutionResponse.swap_execution:type_name -> penumbra.core.dex.v1alpha1.SwapExecution - 84, // 18: penumbra.client.v1alpha1.ArbExecutionResponse.swap_execution:type_name -> penumbra.core.dex.v1alpha1.SwapExecution - 83, // 19: penumbra.client.v1alpha1.SwapExecutionsRequest.trading_pair:type_name -> penumbra.core.dex.v1alpha1.DirectedTradingPair - 84, // 20: penumbra.client.v1alpha1.SwapExecutionsResponse.swap_execution:type_name -> penumbra.core.dex.v1alpha1.SwapExecution - 83, // 21: penumbra.client.v1alpha1.SwapExecutionsResponse.trading_pair:type_name -> penumbra.core.dex.v1alpha1.DirectedTradingPair - 84, // 22: penumbra.client.v1alpha1.ArbExecutionsResponse.swap_execution:type_name -> penumbra.core.dex.v1alpha1.SwapExecution - 85, // 23: penumbra.client.v1alpha1.LiquidityPositionsResponse.data:type_name -> penumbra.core.dex.v1alpha1.Position - 83, // 24: penumbra.client.v1alpha1.LiquidityPositionsByPriceRequest.trading_pair:type_name -> penumbra.core.dex.v1alpha1.DirectedTradingPair - 85, // 25: penumbra.client.v1alpha1.LiquidityPositionsByPriceResponse.data:type_name -> penumbra.core.dex.v1alpha1.Position - 86, // 26: penumbra.client.v1alpha1.LiquidityPositionByIdRequest.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 85, // 27: penumbra.client.v1alpha1.LiquidityPositionByIdResponse.data:type_name -> penumbra.core.dex.v1alpha1.Position - 86, // 28: penumbra.client.v1alpha1.LiquidityPositionsByIdRequest.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 85, // 29: penumbra.client.v1alpha1.LiquidityPositionsByIdResponse.data:type_name -> penumbra.core.dex.v1alpha1.Position - 81, // 30: penumbra.client.v1alpha1.SpreadRequest.trading_pair:type_name -> penumbra.core.dex.v1alpha1.TradingPair - 85, // 31: penumbra.client.v1alpha1.SpreadResponse.best_1_to_2_position:type_name -> penumbra.core.dex.v1alpha1.Position - 85, // 32: penumbra.client.v1alpha1.SpreadResponse.best_2_to_1_position:type_name -> penumbra.core.dex.v1alpha1.Position - 87, // 33: penumbra.client.v1alpha1.DenomMetadataByIdRequest.asset_id:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 88, // 34: penumbra.client.v1alpha1.DenomMetadataByIdResponse.denom_metadata:type_name -> penumbra.core.crypto.v1alpha1.DenomMetadata - 80, // 35: penumbra.client.v1alpha1.ProposalRateDataResponse.rate_data:type_name -> penumbra.core.stake.v1alpha1.RateData - 89, // 36: penumbra.client.v1alpha1.SimulateTradeRequest.input:type_name -> penumbra.core.crypto.v1alpha1.Value - 87, // 37: penumbra.client.v1alpha1.SimulateTradeRequest.output:type_name -> penumbra.core.crypto.v1alpha1.AssetId + 71, // 0: penumbra.client.v1alpha1.CompactBlockRangeResponse.compact_block:type_name -> penumbra.core.component.compact_block.v1alpha1.CompactBlock + 72, // 1: penumbra.client.v1alpha1.EpochByHeightResponse.epoch:type_name -> penumbra.core.component.chain.v1alpha1.Epoch + 73, // 2: penumbra.client.v1alpha1.ChainParametersResponse.chain_parameters:type_name -> penumbra.core.component.chain.v1alpha1.ChainParameters + 74, // 3: penumbra.client.v1alpha1.ValidatorInfoResponse.validator_info:type_name -> penumbra.core.component.stake.v1alpha1.ValidatorInfo + 75, // 4: penumbra.client.v1alpha1.TransactionByNoteRequest.note_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 76, // 5: penumbra.client.v1alpha1.TransactionByNoteResponse.note_source:type_name -> penumbra.core.component.chain.v1alpha1.NoteSource + 77, // 6: penumbra.client.v1alpha1.ValidatorStatusRequest.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 78, // 7: penumbra.client.v1alpha1.ValidatorStatusResponse.status:type_name -> penumbra.core.component.stake.v1alpha1.ValidatorStatus + 77, // 8: penumbra.client.v1alpha1.ValidatorPenaltyRequest.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 79, // 9: penumbra.client.v1alpha1.ValidatorPenaltyResponse.penalty:type_name -> penumbra.core.component.stake.v1alpha1.Penalty + 77, // 10: penumbra.client.v1alpha1.CurrentValidatorRateRequest.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 80, // 11: penumbra.client.v1alpha1.CurrentValidatorRateResponse.data:type_name -> penumbra.core.component.stake.v1alpha1.RateData + 77, // 12: penumbra.client.v1alpha1.NextValidatorRateRequest.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 80, // 13: penumbra.client.v1alpha1.NextValidatorRateResponse.data:type_name -> penumbra.core.component.stake.v1alpha1.RateData + 81, // 14: penumbra.client.v1alpha1.BatchSwapOutputDataRequest.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.TradingPair + 82, // 15: penumbra.client.v1alpha1.BatchSwapOutputDataResponse.data:type_name -> penumbra.core.component.dex.v1alpha1.BatchSwapOutputData + 83, // 16: penumbra.client.v1alpha1.SwapExecutionRequest.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.DirectedTradingPair + 84, // 17: penumbra.client.v1alpha1.SwapExecutionResponse.swap_execution:type_name -> penumbra.core.component.dex.v1alpha1.SwapExecution + 84, // 18: penumbra.client.v1alpha1.ArbExecutionResponse.swap_execution:type_name -> penumbra.core.component.dex.v1alpha1.SwapExecution + 83, // 19: penumbra.client.v1alpha1.SwapExecutionsRequest.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.DirectedTradingPair + 84, // 20: penumbra.client.v1alpha1.SwapExecutionsResponse.swap_execution:type_name -> penumbra.core.component.dex.v1alpha1.SwapExecution + 83, // 21: penumbra.client.v1alpha1.SwapExecutionsResponse.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.DirectedTradingPair + 84, // 22: penumbra.client.v1alpha1.ArbExecutionsResponse.swap_execution:type_name -> penumbra.core.component.dex.v1alpha1.SwapExecution + 85, // 23: penumbra.client.v1alpha1.LiquidityPositionsResponse.data:type_name -> penumbra.core.component.dex.v1alpha1.Position + 83, // 24: penumbra.client.v1alpha1.LiquidityPositionsByPriceRequest.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.DirectedTradingPair + 85, // 25: penumbra.client.v1alpha1.LiquidityPositionsByPriceResponse.data:type_name -> penumbra.core.component.dex.v1alpha1.Position + 86, // 26: penumbra.client.v1alpha1.LiquidityPositionByIdRequest.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 85, // 27: penumbra.client.v1alpha1.LiquidityPositionByIdResponse.data:type_name -> penumbra.core.component.dex.v1alpha1.Position + 86, // 28: penumbra.client.v1alpha1.LiquidityPositionsByIdRequest.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 85, // 29: penumbra.client.v1alpha1.LiquidityPositionsByIdResponse.data:type_name -> penumbra.core.component.dex.v1alpha1.Position + 81, // 30: penumbra.client.v1alpha1.SpreadRequest.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.TradingPair + 85, // 31: penumbra.client.v1alpha1.SpreadResponse.best_1_to_2_position:type_name -> penumbra.core.component.dex.v1alpha1.Position + 85, // 32: penumbra.client.v1alpha1.SpreadResponse.best_2_to_1_position:type_name -> penumbra.core.component.dex.v1alpha1.Position + 87, // 33: penumbra.client.v1alpha1.DenomMetadataByIdRequest.asset_id:type_name -> penumbra.core.asset.v1alpha1.AssetId + 88, // 34: penumbra.client.v1alpha1.DenomMetadataByIdResponse.denom_metadata:type_name -> penumbra.core.asset.v1alpha1.DenomMetadata + 80, // 35: penumbra.client.v1alpha1.ProposalRateDataResponse.rate_data:type_name -> penumbra.core.component.stake.v1alpha1.RateData + 89, // 36: penumbra.client.v1alpha1.SimulateTradeRequest.input:type_name -> penumbra.core.asset.v1alpha1.Value + 87, // 37: penumbra.client.v1alpha1.SimulateTradeRequest.output:type_name -> penumbra.core.asset.v1alpha1.AssetId 67, // 38: penumbra.client.v1alpha1.SimulateTradeRequest.routing:type_name -> penumbra.client.v1alpha1.SimulateTradeRequest.Routing - 84, // 39: penumbra.client.v1alpha1.SimulateTradeResponse.output:type_name -> penumbra.core.dex.v1alpha1.SwapExecution + 84, // 39: penumbra.client.v1alpha1.SimulateTradeResponse.output:type_name -> penumbra.core.component.dex.v1alpha1.SwapExecution 70, // 40: penumbra.client.v1alpha1.KeyValueResponse.value:type_name -> penumbra.client.v1alpha1.KeyValueResponse.Value 90, // 41: penumbra.client.v1alpha1.KeyValueResponse.proof:type_name -> ibc.core.commitment.v1.MerkleProof 54, // 42: penumbra.client.v1alpha1.GetTxResponse.tx_result:type_name -> penumbra.client.v1alpha1.TxResult diff --git a/proto/go/gen/penumbra/core/app/v1alpha1/app.pb.go b/proto/go/gen/penumbra/core/app/v1alpha1/app.pb.go new file mode 100644 index 0000000000..bf2a971ed9 --- /dev/null +++ b/proto/go/gen/penumbra/core/app/v1alpha1/app.pb.go @@ -0,0 +1,80 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/app/v1alpha1/app.proto + +package appv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +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) +) + +var File_penumbra_core_app_v1alpha1_app_proto protoreflect.FileDescriptor + +var file_penumbra_core_app_v1alpha1_app_proto_rawDesc = []byte{ + 0x0a, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, + 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x61, 0x70, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x42, 0x8c, 0x02, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x61, 0x70, 0x70, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x08, 0x41, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x55, 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, + 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x61, 0x70, 0x70, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x41, 0xaa, 0x02, + 0x1a, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x41, + 0x70, 0x70, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1a, 0x50, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x70, 0x70, 0x5c, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x26, 0x50, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x70, 0x70, 0x5c, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x1d, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, + 0x72, 0x65, 0x3a, 0x3a, 0x41, 0x70, 0x70, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_penumbra_core_app_v1alpha1_app_proto_goTypes = []interface{}{} +var file_penumbra_core_app_v1alpha1_app_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_penumbra_core_app_v1alpha1_app_proto_init() } +func file_penumbra_core_app_v1alpha1_app_proto_init() { + if File_penumbra_core_app_v1alpha1_app_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_app_v1alpha1_app_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_app_v1alpha1_app_proto_goTypes, + DependencyIndexes: file_penumbra_core_app_v1alpha1_app_proto_depIdxs, + }.Build() + File_penumbra_core_app_v1alpha1_app_proto = out.File + file_penumbra_core_app_v1alpha1_app_proto_rawDesc = nil + file_penumbra_core_app_v1alpha1_app_proto_goTypes = nil + file_penumbra_core_app_v1alpha1_app_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/asset/v1alpha1/asset.pb.go b/proto/go/gen/penumbra/core/asset/v1alpha1/asset.pb.go new file mode 100644 index 0000000000..f42fa117c8 --- /dev/null +++ b/proto/go/gen/penumbra/core/asset/v1alpha1/asset.pb.go @@ -0,0 +1,934 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/asset/v1alpha1/asset.proto + +package assetv1alpha1 + +import ( + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/num/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) +) + +type BalanceCommitment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *BalanceCommitment) Reset() { + *x = BalanceCommitment{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BalanceCommitment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BalanceCommitment) ProtoMessage() {} + +func (x *BalanceCommitment) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_asset_v1alpha1_asset_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 BalanceCommitment.ProtoReflect.Descriptor instead. +func (*BalanceCommitment) Descriptor() ([]byte, []int) { + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP(), []int{0} +} + +func (x *BalanceCommitment) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// A Penumbra asset ID. +type AssetId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The bytes of the asset ID. + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the `inner` bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. This field exists for convenience of RPC users. + AltBech32M string `protobuf:"bytes,2,opt,name=alt_bech32m,json=altBech32m,proto3" json:"alt_bech32m,omitempty"` + // Alternatively, a base denomination string which should be hashed to obtain the asset ID. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_base_denom` set. This field exists for convenience of RPC users. + AltBaseDenom string `protobuf:"bytes,3,opt,name=alt_base_denom,json=altBaseDenom,proto3" json:"alt_base_denom,omitempty"` +} + +func (x *AssetId) Reset() { + *x = AssetId{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AssetId) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AssetId) ProtoMessage() {} + +func (x *AssetId) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_asset_v1alpha1_asset_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 AssetId.ProtoReflect.Descriptor instead. +func (*AssetId) Descriptor() ([]byte, []int) { + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP(), []int{1} +} + +func (x *AssetId) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +func (x *AssetId) GetAltBech32M() string { + if x != nil { + return x.AltBech32M + } + return "" +} + +func (x *AssetId) GetAltBaseDenom() string { + if x != nil { + return x.AltBaseDenom + } + return "" +} + +type Denom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *Denom) Reset() { + *x = Denom{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Denom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Denom) ProtoMessage() {} + +func (x *Denom) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_asset_v1alpha1_asset_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 Denom.ProtoReflect.Descriptor instead. +func (*Denom) Descriptor() ([]byte, []int) { + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP(), []int{2} +} + +func (x *Denom) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +// DenomMetadata represents a struct that describes a basic token. +type DenomMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` + // denom_units represents the list of DenomUnit's for a given coin + DenomUnits []*DenomUnit `protobuf:"bytes,2,rep,name=denom_units,json=denomUnits,proto3" json:"denom_units,omitempty"` + // base represents the base denom (should be the DenomUnit with exponent = 0). + Base string `protobuf:"bytes,3,opt,name=base,proto3" json:"base,omitempty"` + // display indicates the suggested denom that should be + // displayed in clients. + Display string `protobuf:"bytes,4,opt,name=display,proto3" json:"display,omitempty"` + // name defines the name of the token (eg: Cosmos Atom) + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + // symbol is the token symbol usually shown on exchanges (eg: ATOM). This can + // be the same as the display. + Symbol string `protobuf:"bytes,6,opt,name=symbol,proto3" json:"symbol,omitempty"` + // URI to a document (on or off-chain) that contains additional information. Optional. + Uri string `protobuf:"bytes,7,opt,name=uri,proto3" json:"uri,omitempty"` + // URIHash is a sha256 hash of a document pointed by URI. It's used to verify that + // the document didn't change. Optional. + UriHash string `protobuf:"bytes,8,opt,name=uri_hash,json=uriHash,proto3" json:"uri_hash,omitempty"` + // the asset ID on Penumbra for this denomination. + PenumbraAssetId *AssetId `protobuf:"bytes,1984,opt,name=penumbra_asset_id,json=penumbraAssetId,proto3" json:"penumbra_asset_id,omitempty"` +} + +func (x *DenomMetadata) Reset() { + *x = DenomMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DenomMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DenomMetadata) ProtoMessage() {} + +func (x *DenomMetadata) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_asset_v1alpha1_asset_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 DenomMetadata.ProtoReflect.Descriptor instead. +func (*DenomMetadata) Descriptor() ([]byte, []int) { + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP(), []int{3} +} + +func (x *DenomMetadata) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *DenomMetadata) GetDenomUnits() []*DenomUnit { + if x != nil { + return x.DenomUnits + } + return nil +} + +func (x *DenomMetadata) GetBase() string { + if x != nil { + return x.Base + } + return "" +} + +func (x *DenomMetadata) GetDisplay() string { + if x != nil { + return x.Display + } + return "" +} + +func (x *DenomMetadata) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DenomMetadata) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" +} + +func (x *DenomMetadata) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *DenomMetadata) GetUriHash() string { + if x != nil { + return x.UriHash + } + return "" +} + +func (x *DenomMetadata) GetPenumbraAssetId() *AssetId { + if x != nil { + return x.PenumbraAssetId + } + return nil +} + +// DenomUnit represents a struct that describes a given denomination unit of the basic token. +type DenomUnit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // denom represents the string name of the given denom unit (e.g uatom). + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // exponent represents power of 10 exponent that one must + // raise the base_denom to in order to equal the given DenomUnit's denom + // 1 denom = 10^exponent base_denom + // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + // exponent = 6, thus: 1 atom = 10^6 uatom). + Exponent uint32 `protobuf:"varint,2,opt,name=exponent,proto3" json:"exponent,omitempty"` + // aliases is a list of string aliases for the given denom + Aliases []string `protobuf:"bytes,3,rep,name=aliases,proto3" json:"aliases,omitempty"` +} + +func (x *DenomUnit) Reset() { + *x = DenomUnit{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DenomUnit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DenomUnit) ProtoMessage() {} + +func (x *DenomUnit) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DenomUnit.ProtoReflect.Descriptor instead. +func (*DenomUnit) Descriptor() ([]byte, []int) { + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP(), []int{4} +} + +func (x *DenomUnit) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *DenomUnit) GetExponent() uint32 { + if x != nil { + return x.Exponent + } + return 0 +} + +func (x *DenomUnit) GetAliases() []string { + if x != nil { + return x.Aliases + } + return nil +} + +type Value struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` +} + +func (x *Value) Reset() { + *x = Value{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Value) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Value) ProtoMessage() {} + +func (x *Value) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Value.ProtoReflect.Descriptor instead. +func (*Value) Descriptor() ([]byte, []int) { + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP(), []int{5} +} + +func (x *Value) GetAmount() *v1alpha1.Amount { + if x != nil { + return x.Amount + } + return nil +} + +func (x *Value) GetAssetId() *AssetId { + if x != nil { + return x.AssetId + } + return nil +} + +// Represents a value of a known or unknown denomination. +// +// Note: unlike some other View types, we don't just store the underlying +// `Value` message together with an additional `Denom`. Instead, we record +// either an `Amount` and `Denom` (only) or an `Amount` and `AssetId`. This is +// because we don't want to allow a situation where the supplied `Denom` doesn't +// match the `AssetId`, and a consumer of the API that doesn't check is tricked. +// This way, the `Denom` will always match, because the consumer is forced to +// recompute it themselves if they want it. +type ValueView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ValueView: + // + // *ValueView_KnownDenom_ + // *ValueView_UnknownDenom_ + ValueView isValueView_ValueView `protobuf_oneof:"value_view"` +} + +func (x *ValueView) Reset() { + *x = ValueView{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValueView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValueView) ProtoMessage() {} + +func (x *ValueView) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValueView.ProtoReflect.Descriptor instead. +func (*ValueView) Descriptor() ([]byte, []int) { + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP(), []int{6} +} + +func (m *ValueView) GetValueView() isValueView_ValueView { + if m != nil { + return m.ValueView + } + return nil +} + +func (x *ValueView) GetKnownDenom() *ValueView_KnownDenom { + if x, ok := x.GetValueView().(*ValueView_KnownDenom_); ok { + return x.KnownDenom + } + return nil +} + +func (x *ValueView) GetUnknownDenom() *ValueView_UnknownDenom { + if x, ok := x.GetValueView().(*ValueView_UnknownDenom_); ok { + return x.UnknownDenom + } + return nil +} + +type isValueView_ValueView interface { + isValueView_ValueView() +} + +type ValueView_KnownDenom_ struct { + KnownDenom *ValueView_KnownDenom `protobuf:"bytes,1,opt,name=known_denom,json=knownDenom,proto3,oneof"` +} + +type ValueView_UnknownDenom_ struct { + UnknownDenom *ValueView_UnknownDenom `protobuf:"bytes,2,opt,name=unknown_denom,json=unknownDenom,proto3,oneof"` +} + +func (*ValueView_KnownDenom_) isValueView_ValueView() {} + +func (*ValueView_UnknownDenom_) isValueView_ValueView() {} + +// A value whose asset ID has a known denomination. +type ValueView_KnownDenom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + Denom *DenomMetadata `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *ValueView_KnownDenom) Reset() { + *x = ValueView_KnownDenom{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValueView_KnownDenom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValueView_KnownDenom) ProtoMessage() {} + +func (x *ValueView_KnownDenom) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValueView_KnownDenom.ProtoReflect.Descriptor instead. +func (*ValueView_KnownDenom) Descriptor() ([]byte, []int) { + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *ValueView_KnownDenom) GetAmount() *v1alpha1.Amount { + if x != nil { + return x.Amount + } + return nil +} + +func (x *ValueView_KnownDenom) GetDenom() *DenomMetadata { + if x != nil { + return x.Denom + } + return nil +} + +type ValueView_UnknownDenom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` +} + +func (x *ValueView_UnknownDenom) Reset() { + *x = ValueView_UnknownDenom{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValueView_UnknownDenom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValueView_UnknownDenom) ProtoMessage() {} + +func (x *ValueView_UnknownDenom) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValueView_UnknownDenom.ProtoReflect.Descriptor instead. +func (*ValueView_UnknownDenom) Descriptor() ([]byte, []int) { + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP(), []int{6, 1} +} + +func (x *ValueView_UnknownDenom) GetAmount() *v1alpha1.Amount { + if x != nil { + return x.Amount + } + return nil +} + +func (x *ValueView_UnknownDenom) GetAssetId() *AssetId { + if x != nil { + return x.AssetId + } + return nil +} + +var File_penumbra_core_asset_v1alpha1_asset_proto protoreflect.FileDescriptor + +var file_penumbra_core_asset_v1alpha1_asset_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x1c, 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, 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, 0x22, 0x29, + 0x0a, 0x11, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x07, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, + 0x74, 0x5f, 0x62, 0x65, 0x63, 0x68, 0x33, 0x32, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x61, 0x6c, 0x74, 0x42, 0x65, 0x63, 0x68, 0x33, 0x32, 0x6d, 0x12, 0x24, 0x0a, 0x0e, 0x61, + 0x6c, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x74, 0x42, 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x22, 0x1d, 0x0a, 0x05, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x22, 0xd6, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 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, 0x55, 0x6e, + 0x69, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, + 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x72, + 0x69, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x72, + 0x69, 0x48, 0x61, 0x73, 0x68, 0x12, 0x52, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0xc0, 0x0f, 0x20, 0x01, 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, 0x0f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x57, 0x0a, 0x09, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, + 0x65, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3a, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 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, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 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, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0xea, 0x03, 0x0a, 0x09, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x55, 0x0a, 0x0b, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 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, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x48, 0x00, 0x52, 0x0a, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, + 0x5b, 0x0a, 0x0d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 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, 0x56, 0x69, 0x65, 0x77, 0x2e, + 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x0c, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x8b, 0x01, 0x0a, + 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x3a, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 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, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x02, 0x20, 0x01, 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, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x8c, 0x01, 0x0a, 0x0c, 0x55, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x3a, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 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, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 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, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x42, 0x9c, 0x02, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 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, 0x42, 0x0a, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x59, 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, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2f, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x41, 0xaa, 0x02, 0x1c, 0x50, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1c, 0x50, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x28, 0x50, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x41, 0x73, 0x73, 0x65, 0x74, 0x5c, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1f, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, + 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x41, 0x73, 0x73, 0x65, 0x74, 0x3a, 0x3a, 0x56, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_core_asset_v1alpha1_asset_proto_rawDescOnce sync.Once + file_penumbra_core_asset_v1alpha1_asset_proto_rawDescData = file_penumbra_core_asset_v1alpha1_asset_proto_rawDesc +) + +func file_penumbra_core_asset_v1alpha1_asset_proto_rawDescGZIP() []byte { + file_penumbra_core_asset_v1alpha1_asset_proto_rawDescOnce.Do(func() { + file_penumbra_core_asset_v1alpha1_asset_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_asset_v1alpha1_asset_proto_rawDescData) + }) + return file_penumbra_core_asset_v1alpha1_asset_proto_rawDescData +} + +var file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_penumbra_core_asset_v1alpha1_asset_proto_goTypes = []interface{}{ + (*BalanceCommitment)(nil), // 0: penumbra.core.asset.v1alpha1.BalanceCommitment + (*AssetId)(nil), // 1: penumbra.core.asset.v1alpha1.AssetId + (*Denom)(nil), // 2: penumbra.core.asset.v1alpha1.Denom + (*DenomMetadata)(nil), // 3: penumbra.core.asset.v1alpha1.DenomMetadata + (*DenomUnit)(nil), // 4: penumbra.core.asset.v1alpha1.DenomUnit + (*Value)(nil), // 5: penumbra.core.asset.v1alpha1.Value + (*ValueView)(nil), // 6: penumbra.core.asset.v1alpha1.ValueView + (*ValueView_KnownDenom)(nil), // 7: penumbra.core.asset.v1alpha1.ValueView.KnownDenom + (*ValueView_UnknownDenom)(nil), // 8: penumbra.core.asset.v1alpha1.ValueView.UnknownDenom + (*v1alpha1.Amount)(nil), // 9: penumbra.core.num.v1alpha1.Amount +} +var file_penumbra_core_asset_v1alpha1_asset_proto_depIdxs = []int32{ + 4, // 0: penumbra.core.asset.v1alpha1.DenomMetadata.denom_units:type_name -> penumbra.core.asset.v1alpha1.DenomUnit + 1, // 1: penumbra.core.asset.v1alpha1.DenomMetadata.penumbra_asset_id:type_name -> penumbra.core.asset.v1alpha1.AssetId + 9, // 2: penumbra.core.asset.v1alpha1.Value.amount:type_name -> penumbra.core.num.v1alpha1.Amount + 1, // 3: penumbra.core.asset.v1alpha1.Value.asset_id:type_name -> penumbra.core.asset.v1alpha1.AssetId + 7, // 4: penumbra.core.asset.v1alpha1.ValueView.known_denom:type_name -> penumbra.core.asset.v1alpha1.ValueView.KnownDenom + 8, // 5: penumbra.core.asset.v1alpha1.ValueView.unknown_denom:type_name -> penumbra.core.asset.v1alpha1.ValueView.UnknownDenom + 9, // 6: penumbra.core.asset.v1alpha1.ValueView.KnownDenom.amount:type_name -> penumbra.core.num.v1alpha1.Amount + 3, // 7: penumbra.core.asset.v1alpha1.ValueView.KnownDenom.denom:type_name -> penumbra.core.asset.v1alpha1.DenomMetadata + 9, // 8: penumbra.core.asset.v1alpha1.ValueView.UnknownDenom.amount:type_name -> penumbra.core.num.v1alpha1.Amount + 1, // 9: penumbra.core.asset.v1alpha1.ValueView.UnknownDenom.asset_id:type_name -> penumbra.core.asset.v1alpha1.AssetId + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name +} + +func init() { file_penumbra_core_asset_v1alpha1_asset_proto_init() } +func file_penumbra_core_asset_v1alpha1_asset_proto_init() { + if File_penumbra_core_asset_v1alpha1_asset_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BalanceCommitment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AssetId); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Denom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DenomMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DenomUnit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Value); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueView_KnownDenom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValueView_UnknownDenom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*ValueView_KnownDenom_)(nil), + (*ValueView_UnknownDenom_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_asset_v1alpha1_asset_proto_rawDesc, + NumEnums: 0, + NumMessages: 9, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_asset_v1alpha1_asset_proto_goTypes, + DependencyIndexes: file_penumbra_core_asset_v1alpha1_asset_proto_depIdxs, + MessageInfos: file_penumbra_core_asset_v1alpha1_asset_proto_msgTypes, + }.Build() + File_penumbra_core_asset_v1alpha1_asset_proto = out.File + file_penumbra_core_asset_v1alpha1_asset_proto_rawDesc = nil + file_penumbra_core_asset_v1alpha1_asset_proto_goTypes = nil + file_penumbra_core_asset_v1alpha1_asset_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/chain/v1alpha1/chain.pb.go b/proto/go/gen/penumbra/core/chain/v1alpha1/chain.pb.go deleted file mode 100644 index 4677b18e76..0000000000 --- a/proto/go/gen/penumbra/core/chain/v1alpha1/chain.pb.go +++ /dev/null @@ -1,1663 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.31.0 -// protoc (unknown) -// source: penumbra/core/chain/v1alpha1/chain.proto - -package chainv1alpha1 - -import ( - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" - v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/dex/v1alpha1" - v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/stake/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) -) - -// Global chain configuration data, such as chain ID, epoch duration, etc. -type ChainParameters struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The identifier of the chain. - ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - // The duration of each epoch, in number of blocks. - EpochDuration uint64 `protobuf:"varint,2,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` - // The number of epochs an unbonding note for before being released. - UnbondingEpochs uint64 `protobuf:"varint,3,opt,name=unbonding_epochs,json=unbondingEpochs,proto3" json:"unbonding_epochs,omitempty"` - // The maximum number of validators in the consensus set. - ActiveValidatorLimit uint64 `protobuf:"varint,4,opt,name=active_validator_limit,json=activeValidatorLimit,proto3" json:"active_validator_limit,omitempty"` - // The base reward rate, expressed in basis points of basis points - BaseRewardRate uint64 `protobuf:"varint,9,opt,name=base_reward_rate,json=baseRewardRate,proto3" json:"base_reward_rate,omitempty"` - // The penalty for slashing due to misbehavior. - SlashingPenaltyMisbehavior uint64 `protobuf:"varint,5,opt,name=slashing_penalty_misbehavior,json=slashingPenaltyMisbehavior,proto3" json:"slashing_penalty_misbehavior,omitempty"` - // The penalty for slashing due to downtime. - SlashingPenaltyDowntime uint64 `protobuf:"varint,10,opt,name=slashing_penalty_downtime,json=slashingPenaltyDowntime,proto3" json:"slashing_penalty_downtime,omitempty"` - // The number of blocks in the window to check for downtime. - SignedBlocksWindowLen uint64 `protobuf:"varint,11,opt,name=signed_blocks_window_len,json=signedBlocksWindowLen,proto3" json:"signed_blocks_window_len,omitempty"` - // The maximum number of blocks in the window each validator can miss signing without slashing. - MissedBlocksMaximum uint64 `protobuf:"varint,12,opt,name=missed_blocks_maximum,json=missedBlocksMaximum,proto3" json:"missed_blocks_maximum,omitempty"` - // Whether IBC (forming connections, processing IBC packets) is enabled. - IbcEnabled bool `protobuf:"varint,6,opt,name=ibc_enabled,json=ibcEnabled,proto3" json:"ibc_enabled,omitempty"` - // Whether inbound ICS-20 transfers are enabled - InboundIcs20TransfersEnabled bool `protobuf:"varint,7,opt,name=inbound_ics20_transfers_enabled,json=inboundIcs20TransfersEnabled,proto3" json:"inbound_ics20_transfers_enabled,omitempty"` - // Whether outbound ICS-20 transfers are enabled - OutboundIcs20TransfersEnabled bool `protobuf:"varint,8,opt,name=outbound_ics20_transfers_enabled,json=outboundIcs20TransfersEnabled,proto3" json:"outbound_ics20_transfers_enabled,omitempty"` - // The number of blocks during which a proposal is voted on. - ProposalVotingBlocks uint64 `protobuf:"varint,20,opt,name=proposal_voting_blocks,json=proposalVotingBlocks,proto3" json:"proposal_voting_blocks,omitempty"` - // The deposit required to create a proposal. - ProposalDepositAmount *v1alpha1.Amount `protobuf:"bytes,21,opt,name=proposal_deposit_amount,json=proposalDepositAmount,proto3" json:"proposal_deposit_amount,omitempty"` - // The quorum required for a proposal to be considered valid, as a fraction of the total stake - // weight of the network. - ProposalValidQuorum string `protobuf:"bytes,22,opt,name=proposal_valid_quorum,json=proposalValidQuorum,proto3" json:"proposal_valid_quorum,omitempty"` - // The threshold for a proposal to pass voting, as a ratio of "yes" votes over "no" votes. - ProposalPassThreshold string `protobuf:"bytes,23,opt,name=proposal_pass_threshold,json=proposalPassThreshold,proto3" json:"proposal_pass_threshold,omitempty"` - // The threshold for a proposal to be slashed, regardless of whether the "yes" and "no" votes - // would have passed it, as a ratio of "no" votes over all total votes. - ProposalSlashThreshold string `protobuf:"bytes,24,opt,name=proposal_slash_threshold,json=proposalSlashThreshold,proto3" json:"proposal_slash_threshold,omitempty"` - // Whether DAO spend proposals are enabled. - DaoSpendProposalsEnabled bool `protobuf:"varint,25,opt,name=dao_spend_proposals_enabled,json=daoSpendProposalsEnabled,proto3" json:"dao_spend_proposals_enabled,omitempty"` -} - -func (x *ChainParameters) Reset() { - *x = ChainParameters{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChainParameters) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChainParameters) ProtoMessage() {} - -func (x *ChainParameters) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_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 ChainParameters.ProtoReflect.Descriptor instead. -func (*ChainParameters) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{0} -} - -func (x *ChainParameters) GetChainId() string { - if x != nil { - return x.ChainId - } - return "" -} - -func (x *ChainParameters) GetEpochDuration() uint64 { - if x != nil { - return x.EpochDuration - } - return 0 -} - -func (x *ChainParameters) GetUnbondingEpochs() uint64 { - if x != nil { - return x.UnbondingEpochs - } - return 0 -} - -func (x *ChainParameters) GetActiveValidatorLimit() uint64 { - if x != nil { - return x.ActiveValidatorLimit - } - return 0 -} - -func (x *ChainParameters) GetBaseRewardRate() uint64 { - if x != nil { - return x.BaseRewardRate - } - return 0 -} - -func (x *ChainParameters) GetSlashingPenaltyMisbehavior() uint64 { - if x != nil { - return x.SlashingPenaltyMisbehavior - } - return 0 -} - -func (x *ChainParameters) GetSlashingPenaltyDowntime() uint64 { - if x != nil { - return x.SlashingPenaltyDowntime - } - return 0 -} - -func (x *ChainParameters) GetSignedBlocksWindowLen() uint64 { - if x != nil { - return x.SignedBlocksWindowLen - } - return 0 -} - -func (x *ChainParameters) GetMissedBlocksMaximum() uint64 { - if x != nil { - return x.MissedBlocksMaximum - } - return 0 -} - -func (x *ChainParameters) GetIbcEnabled() bool { - if x != nil { - return x.IbcEnabled - } - return false -} - -func (x *ChainParameters) GetInboundIcs20TransfersEnabled() bool { - if x != nil { - return x.InboundIcs20TransfersEnabled - } - return false -} - -func (x *ChainParameters) GetOutboundIcs20TransfersEnabled() bool { - if x != nil { - return x.OutboundIcs20TransfersEnabled - } - return false -} - -func (x *ChainParameters) GetProposalVotingBlocks() uint64 { - if x != nil { - return x.ProposalVotingBlocks - } - return 0 -} - -func (x *ChainParameters) GetProposalDepositAmount() *v1alpha1.Amount { - if x != nil { - return x.ProposalDepositAmount - } - return nil -} - -func (x *ChainParameters) GetProposalValidQuorum() string { - if x != nil { - return x.ProposalValidQuorum - } - return "" -} - -func (x *ChainParameters) GetProposalPassThreshold() string { - if x != nil { - return x.ProposalPassThreshold - } - return "" -} - -func (x *ChainParameters) GetProposalSlashThreshold() string { - if x != nil { - return x.ProposalSlashThreshold - } - return "" -} - -func (x *ChainParameters) GetDaoSpendProposalsEnabled() bool { - if x != nil { - return x.DaoSpendProposalsEnabled - } - return false -} - -// The ratio between two numbers, used in governance to describe vote thresholds and quorums. -type Ratio struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The numerator. - Numerator uint64 `protobuf:"varint,1,opt,name=numerator,proto3" json:"numerator,omitempty"` - // The denominator. - Denominator uint64 `protobuf:"varint,2,opt,name=denominator,proto3" json:"denominator,omitempty"` -} - -func (x *Ratio) Reset() { - *x = Ratio{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Ratio) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Ratio) ProtoMessage() {} - -func (x *Ratio) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_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 Ratio.ProtoReflect.Descriptor instead. -func (*Ratio) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{1} -} - -func (x *Ratio) GetNumerator() uint64 { - if x != nil { - return x.Numerator - } - return 0 -} - -func (x *Ratio) GetDenominator() uint64 { - if x != nil { - return x.Denominator - } - return 0 -} - -// Parameters for Fuzzy Message Detection -type FmdParameters struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PrecisionBits uint32 `protobuf:"varint,1,opt,name=precision_bits,json=precisionBits,proto3" json:"precision_bits,omitempty"` - AsOfBlockHeight uint64 `protobuf:"varint,2,opt,name=as_of_block_height,json=asOfBlockHeight,proto3" json:"as_of_block_height,omitempty"` -} - -func (x *FmdParameters) Reset() { - *x = FmdParameters{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FmdParameters) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FmdParameters) ProtoMessage() {} - -func (x *FmdParameters) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_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 FmdParameters.ProtoReflect.Descriptor instead. -func (*FmdParameters) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{2} -} - -func (x *FmdParameters) GetPrecisionBits() uint32 { - if x != nil { - return x.PrecisionBits - } - return 0 -} - -func (x *FmdParameters) GetAsOfBlockHeight() uint64 { - if x != nil { - return x.AsOfBlockHeight - } - return 0 -} - -// Contains the minimum data needed to update client state. -type CompactBlock struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - // State payloads describing new state fragments. - StatePayloads []*StatePayload `protobuf:"bytes,2,rep,name=state_payloads,json=statePayloads,proto3" json:"state_payloads,omitempty"` - // Nullifiers identifying spent notes. - Nullifiers []*v1alpha1.Nullifier `protobuf:"bytes,3,rep,name=nullifiers,proto3" json:"nullifiers,omitempty"` - // The block root of this block. - BlockRoot *v1alpha1.MerkleRoot `protobuf:"bytes,4,opt,name=block_root,json=blockRoot,proto3" json:"block_root,omitempty"` - // The epoch root of this epoch (only present when the block is the last in an epoch). - EpochRoot *v1alpha1.MerkleRoot `protobuf:"bytes,17,opt,name=epoch_root,json=epochRoot,proto3" json:"epoch_root,omitempty"` - // If a proposal started voting in this block, this is set to `true`. - ProposalStarted bool `protobuf:"varint,20,opt,name=proposal_started,json=proposalStarted,proto3" json:"proposal_started,omitempty"` - // Latest Fuzzy Message Detection parameters. - FmdParameters *FmdParameters `protobuf:"bytes,100,opt,name=fmd_parameters,json=fmdParameters,proto3" json:"fmd_parameters,omitempty"` - // Price data for swaps executed in this block. - SwapOutputs []*v1alpha11.BatchSwapOutputData `protobuf:"bytes,5,rep,name=swap_outputs,json=swapOutputs,proto3" json:"swap_outputs,omitempty"` - // Updated chain parameters, if they have changed. - ChainParameters *ChainParameters `protobuf:"bytes,6,opt,name=chain_parameters,json=chainParameters,proto3" json:"chain_parameters,omitempty"` -} - -func (x *CompactBlock) Reset() { - *x = CompactBlock{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CompactBlock) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CompactBlock) ProtoMessage() {} - -func (x *CompactBlock) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_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 CompactBlock.ProtoReflect.Descriptor instead. -func (*CompactBlock) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{3} -} - -func (x *CompactBlock) GetHeight() uint64 { - if x != nil { - return x.Height - } - return 0 -} - -func (x *CompactBlock) GetStatePayloads() []*StatePayload { - if x != nil { - return x.StatePayloads - } - return nil -} - -func (x *CompactBlock) GetNullifiers() []*v1alpha1.Nullifier { - if x != nil { - return x.Nullifiers - } - return nil -} - -func (x *CompactBlock) GetBlockRoot() *v1alpha1.MerkleRoot { - if x != nil { - return x.BlockRoot - } - return nil -} - -func (x *CompactBlock) GetEpochRoot() *v1alpha1.MerkleRoot { - if x != nil { - return x.EpochRoot - } - return nil -} - -func (x *CompactBlock) GetProposalStarted() bool { - if x != nil { - return x.ProposalStarted - } - return false -} - -func (x *CompactBlock) GetFmdParameters() *FmdParameters { - if x != nil { - return x.FmdParameters - } - return nil -} - -func (x *CompactBlock) GetSwapOutputs() []*v1alpha11.BatchSwapOutputData { - if x != nil { - return x.SwapOutputs - } - return nil -} - -func (x *CompactBlock) GetChainParameters() *ChainParameters { - if x != nil { - return x.ChainParameters - } - return nil -} - -type StatePayload struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to StatePayload: - // - // *StatePayload_RolledUp_ - // *StatePayload_Note_ - // *StatePayload_Swap_ - StatePayload isStatePayload_StatePayload `protobuf_oneof:"state_payload"` -} - -func (x *StatePayload) Reset() { - *x = StatePayload{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StatePayload) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatePayload) ProtoMessage() {} - -func (x *StatePayload) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StatePayload.ProtoReflect.Descriptor instead. -func (*StatePayload) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{4} -} - -func (m *StatePayload) GetStatePayload() isStatePayload_StatePayload { - if m != nil { - return m.StatePayload - } - return nil -} - -func (x *StatePayload) GetRolledUp() *StatePayload_RolledUp { - if x, ok := x.GetStatePayload().(*StatePayload_RolledUp_); ok { - return x.RolledUp - } - return nil -} - -func (x *StatePayload) GetNote() *StatePayload_Note { - if x, ok := x.GetStatePayload().(*StatePayload_Note_); ok { - return x.Note - } - return nil -} - -func (x *StatePayload) GetSwap() *StatePayload_Swap { - if x, ok := x.GetStatePayload().(*StatePayload_Swap_); ok { - return x.Swap - } - return nil -} - -type isStatePayload_StatePayload interface { - isStatePayload_StatePayload() -} - -type StatePayload_RolledUp_ struct { - RolledUp *StatePayload_RolledUp `protobuf:"bytes,1,opt,name=rolled_up,json=rolledUp,proto3,oneof"` -} - -type StatePayload_Note_ struct { - Note *StatePayload_Note `protobuf:"bytes,2,opt,name=note,proto3,oneof"` -} - -type StatePayload_Swap_ struct { - Swap *StatePayload_Swap `protobuf:"bytes,3,opt,name=swap,proto3,oneof"` -} - -func (*StatePayload_RolledUp_) isStatePayload_StatePayload() {} - -func (*StatePayload_Note_) isStatePayload_StatePayload() {} - -func (*StatePayload_Swap_) isStatePayload_StatePayload() {} - -type KnownAssets struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Assets []*v1alpha1.DenomMetadata `protobuf:"bytes,1,rep,name=assets,proto3" json:"assets,omitempty"` -} - -func (x *KnownAssets) Reset() { - *x = KnownAssets{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *KnownAssets) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*KnownAssets) ProtoMessage() {} - -func (x *KnownAssets) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use KnownAssets.ProtoReflect.Descriptor instead. -func (*KnownAssets) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{5} -} - -func (x *KnownAssets) GetAssets() []*v1alpha1.DenomMetadata { - if x != nil { - return x.Assets - } - return nil -} - -// A spicy transaction ID -type NoteSource struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *NoteSource) Reset() { - *x = NoteSource{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NoteSource) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NoteSource) ProtoMessage() {} - -func (x *NoteSource) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NoteSource.ProtoReflect.Descriptor instead. -func (*NoteSource) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{6} -} - -func (x *NoteSource) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A NoteSource paired with the height at which the note was spent -type SpendInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - NoteSource *NoteSource `protobuf:"bytes,1,opt,name=note_source,json=noteSource,proto3" json:"note_source,omitempty"` - SpendHeight uint64 `protobuf:"varint,2,opt,name=spend_height,json=spendHeight,proto3" json:"spend_height,omitempty"` -} - -func (x *SpendInfo) Reset() { - *x = SpendInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpendInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpendInfo) ProtoMessage() {} - -func (x *SpendInfo) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SpendInfo.ProtoReflect.Descriptor instead. -func (*SpendInfo) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{7} -} - -func (x *SpendInfo) GetNoteSource() *NoteSource { - if x != nil { - return x.NoteSource - } - return nil -} - -func (x *SpendInfo) GetSpendHeight() uint64 { - if x != nil { - return x.SpendHeight - } - return 0 -} - -type GenesisAppState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to GenesisAppState: - // - // *GenesisAppState_GenesisContent - // *GenesisAppState_GenesisCheckpoint - GenesisAppState isGenesisAppState_GenesisAppState `protobuf_oneof:"genesis_app_state"` -} - -func (x *GenesisAppState) Reset() { - *x = GenesisAppState{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GenesisAppState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GenesisAppState) ProtoMessage() {} - -func (x *GenesisAppState) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GenesisAppState.ProtoReflect.Descriptor instead. -func (*GenesisAppState) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{8} -} - -func (m *GenesisAppState) GetGenesisAppState() isGenesisAppState_GenesisAppState { - if m != nil { - return m.GenesisAppState - } - return nil -} - -func (x *GenesisAppState) GetGenesisContent() *GenesisContent { - if x, ok := x.GetGenesisAppState().(*GenesisAppState_GenesisContent); ok { - return x.GenesisContent - } - return nil -} - -func (x *GenesisAppState) GetGenesisCheckpoint() []byte { - if x, ok := x.GetGenesisAppState().(*GenesisAppState_GenesisCheckpoint); ok { - return x.GenesisCheckpoint - } - return nil -} - -type isGenesisAppState_GenesisAppState interface { - isGenesisAppState_GenesisAppState() -} - -type GenesisAppState_GenesisContent struct { - GenesisContent *GenesisContent `protobuf:"bytes,1,opt,name=genesis_content,json=genesisContent,proto3,oneof"` -} - -type GenesisAppState_GenesisCheckpoint struct { - GenesisCheckpoint []byte `protobuf:"bytes,2,opt,name=genesis_checkpoint,json=genesisCheckpoint,proto3,oneof"` -} - -func (*GenesisAppState_GenesisContent) isGenesisAppState_GenesisAppState() {} - -func (*GenesisAppState_GenesisCheckpoint) isGenesisAppState_GenesisAppState() {} - -type GenesisContent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChainParams *ChainParameters `protobuf:"bytes,1,opt,name=chain_params,json=chainParams,proto3" json:"chain_params,omitempty"` - Validators []*v1alpha12.Validator `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators,omitempty"` - Allocations []*GenesisContent_Allocation `protobuf:"bytes,3,rep,name=allocations,proto3" json:"allocations,omitempty"` -} - -func (x *GenesisContent) Reset() { - *x = GenesisContent{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[9] - 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_chain_v1alpha1_chain_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GenesisContent.ProtoReflect.Descriptor instead. -func (*GenesisContent) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{9} -} - -func (x *GenesisContent) GetChainParams() *ChainParameters { - if x != nil { - return x.ChainParams - } - return nil -} - -func (x *GenesisContent) GetValidators() []*v1alpha12.Validator { - if x != nil { - return x.Validators - } - return nil -} - -func (x *GenesisContent) GetAllocations() []*GenesisContent_Allocation { - if x != nil { - return x.Allocations - } - return nil -} - -type Epoch struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Index uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` - StartHeight uint64 `protobuf:"varint,2,opt,name=start_height,json=startHeight,proto3" json:"start_height,omitempty"` -} - -func (x *Epoch) Reset() { - *x = Epoch{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Epoch) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Epoch) ProtoMessage() {} - -func (x *Epoch) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Epoch.ProtoReflect.Descriptor instead. -func (*Epoch) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{10} -} - -func (x *Epoch) GetIndex() uint64 { - if x != nil { - return x.Index - } - return 0 -} - -func (x *Epoch) GetStartHeight() uint64 { - if x != nil { - return x.StartHeight - } - return 0 -} - -type StatePayload_RolledUp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Commitment *v1alpha1.StateCommitment `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` -} - -func (x *StatePayload_RolledUp) Reset() { - *x = StatePayload_RolledUp{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StatePayload_RolledUp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatePayload_RolledUp) ProtoMessage() {} - -func (x *StatePayload_RolledUp) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StatePayload_RolledUp.ProtoReflect.Descriptor instead. -func (*StatePayload_RolledUp) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{4, 0} -} - -func (x *StatePayload_RolledUp) GetCommitment() *v1alpha1.StateCommitment { - if x != nil { - return x.Commitment - } - return nil -} - -type StatePayload_Note struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Source *NoteSource `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` - Note *v1alpha1.NotePayload `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` -} - -func (x *StatePayload_Note) Reset() { - *x = StatePayload_Note{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StatePayload_Note) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatePayload_Note) ProtoMessage() {} - -func (x *StatePayload_Note) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StatePayload_Note.ProtoReflect.Descriptor instead. -func (*StatePayload_Note) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{4, 1} -} - -func (x *StatePayload_Note) GetSource() *NoteSource { - if x != nil { - return x.Source - } - return nil -} - -func (x *StatePayload_Note) GetNote() *v1alpha1.NotePayload { - if x != nil { - return x.Note - } - return nil -} - -type StatePayload_Swap struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Source *NoteSource `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` - Swap *v1alpha11.SwapPayload `protobuf:"bytes,2,opt,name=swap,proto3" json:"swap,omitempty"` -} - -func (x *StatePayload_Swap) Reset() { - *x = StatePayload_Swap{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StatePayload_Swap) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatePayload_Swap) ProtoMessage() {} - -func (x *StatePayload_Swap) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StatePayload_Swap.ProtoReflect.Descriptor instead. -func (*StatePayload_Swap) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{4, 2} -} - -func (x *StatePayload_Swap) GetSource() *NoteSource { - if x != nil { - return x.Source - } - return nil -} - -func (x *StatePayload_Swap) GetSwap() *v1alpha11.SwapPayload { - if x != nil { - return x.Swap - } - return nil -} - -type GenesisContent_Allocation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Amount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - Address *v1alpha1.Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` -} - -func (x *GenesisContent_Allocation) Reset() { - *x = GenesisContent_Allocation{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GenesisContent_Allocation) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GenesisContent_Allocation) ProtoMessage() {} - -func (x *GenesisContent_Allocation) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[14] - 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_Allocation.ProtoReflect.Descriptor instead. -func (*GenesisContent_Allocation) Descriptor() ([]byte, []int) { - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{9, 0} -} - -func (x *GenesisContent_Allocation) GetAmount() *v1alpha1.Amount { - if x != nil { - return x.Amount - } - return nil -} - -func (x *GenesisContent_Allocation) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *GenesisContent_Allocation) GetAddress() *v1alpha1.Address { - if x != nil { - return x.Address - } - return nil -} - -var File_penumbra_core_chain_v1alpha1_chain_proto protoreflect.FileDescriptor - -var file_penumbra_core_chain_v1alpha1_chain_proto_rawDesc = []byte{ - 0x0a, 0x28, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 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, 0x12, 0x1c, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, - 0x6f, 0x72, 0x65, 0x2f, 0x64, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2f, 0x64, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 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, 0x22, 0xf4, 0x07, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 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, 0x25, 0x0a, 0x0e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, - 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x18, 0x03, - 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, - 0x04, 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, - 0x09, 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, 0x05, 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, 0x0a, 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, - 0x0b, 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, 0x0c, 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, - 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x62, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x62, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x12, 0x45, 0x0a, 0x1f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x63, 0x73, - 0x32, 0x30, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x69, 0x6e, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x49, 0x63, 0x73, 0x32, 0x30, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, - 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x20, 0x6f, 0x75, 0x74, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x63, 0x73, 0x32, 0x30, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x1d, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x63, 0x73, 0x32, - 0x30, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 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, 0x14, 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, 0x5d, 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, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, - 0x16, 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, 0x17, 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, 0x18, - 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, 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, 0x19, 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, 0x47, 0x0a, 0x05, 0x52, - 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, - 0x61, 0x74, 0x6f, 0x72, 0x22, 0x63, 0x0a, 0x0d, 0x46, 0x6d, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, - 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x12, - 0x61, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x73, 0x4f, 0x66, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x84, 0x05, 0x0a, 0x0c, 0x43, 0x6f, - 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x51, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x48, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x52, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, - 0x48, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x09, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x48, 0x0a, 0x0a, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, - 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x09, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x52, - 0x6f, 0x6f, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x12, 0x52, - 0x0a, 0x0e, 0x66, 0x6d, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x6d, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x52, 0x0d, 0x66, 0x6d, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x52, 0x0a, 0x0c, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x73, 0x77, 0x61, 0x70, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 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, - 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x22, 0xf0, 0x04, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x52, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x55, 0x70, 0x48, 0x00, 0x52, 0x08, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x64, 0x55, 0x70, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, - 0x4e, 0x6f, 0x74, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x04, - 0x73, 0x77, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x48, 0x00, 0x52, 0x04, 0x73, - 0x77, 0x61, 0x70, 0x1a, 0x5a, 0x0a, 0x08, 0x52, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x55, 0x70, 0x12, - 0x4e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x1a, - 0x88, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x6f, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x1a, 0x85, 0x01, 0x0a, 0x04, 0x53, - 0x77, 0x61, 0x70, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x04, 0x73, 0x77, - 0x61, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x22, 0x53, 0x0a, 0x0b, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x73, 0x12, 0x44, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x22, 0x22, 0x0a, 0x0a, 0x4e, 0x6f, 0x74, 0x65, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x79, 0x0a, 0x09, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, - 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, - 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 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, 0xb0, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x6e, 0x65, - 0x73, 0x69, 0x73, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x0f, 0x67, - 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 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, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x73, 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, 0xac, 0x03, 0x0a, 0x0e, 0x47, - 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, - 0x0c, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, - 0x47, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x12, 0x59, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x1a, 0xa3, 0x01, 0x0a, 0x0a, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x40, 0x0a, 0x05, 0x45, 0x70, 0x6f, - 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x9c, 0x02, 0x0a, 0x20, - 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x42, 0x0a, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x59, - 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, 0x68, 0x61, - 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x43, 0xaa, - 0x02, 0x1c, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, - 0x1c, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, - 0x68, 0x61, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x28, - 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x68, - 0x61, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1f, 0x50, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x43, 0x68, 0x61, 0x69, 0x6e, - 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} - -var ( - file_penumbra_core_chain_v1alpha1_chain_proto_rawDescOnce sync.Once - file_penumbra_core_chain_v1alpha1_chain_proto_rawDescData = file_penumbra_core_chain_v1alpha1_chain_proto_rawDesc -) - -func file_penumbra_core_chain_v1alpha1_chain_proto_rawDescGZIP() []byte { - file_penumbra_core_chain_v1alpha1_chain_proto_rawDescOnce.Do(func() { - file_penumbra_core_chain_v1alpha1_chain_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_chain_v1alpha1_chain_proto_rawDescData) - }) - return file_penumbra_core_chain_v1alpha1_chain_proto_rawDescData -} - -var file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes = make([]protoimpl.MessageInfo, 15) -var file_penumbra_core_chain_v1alpha1_chain_proto_goTypes = []interface{}{ - (*ChainParameters)(nil), // 0: penumbra.core.chain.v1alpha1.ChainParameters - (*Ratio)(nil), // 1: penumbra.core.chain.v1alpha1.Ratio - (*FmdParameters)(nil), // 2: penumbra.core.chain.v1alpha1.FmdParameters - (*CompactBlock)(nil), // 3: penumbra.core.chain.v1alpha1.CompactBlock - (*StatePayload)(nil), // 4: penumbra.core.chain.v1alpha1.StatePayload - (*KnownAssets)(nil), // 5: penumbra.core.chain.v1alpha1.KnownAssets - (*NoteSource)(nil), // 6: penumbra.core.chain.v1alpha1.NoteSource - (*SpendInfo)(nil), // 7: penumbra.core.chain.v1alpha1.SpendInfo - (*GenesisAppState)(nil), // 8: penumbra.core.chain.v1alpha1.GenesisAppState - (*GenesisContent)(nil), // 9: penumbra.core.chain.v1alpha1.GenesisContent - (*Epoch)(nil), // 10: penumbra.core.chain.v1alpha1.Epoch - (*StatePayload_RolledUp)(nil), // 11: penumbra.core.chain.v1alpha1.StatePayload.RolledUp - (*StatePayload_Note)(nil), // 12: penumbra.core.chain.v1alpha1.StatePayload.Note - (*StatePayload_Swap)(nil), // 13: penumbra.core.chain.v1alpha1.StatePayload.Swap - (*GenesisContent_Allocation)(nil), // 14: penumbra.core.chain.v1alpha1.GenesisContent.Allocation - (*v1alpha1.Amount)(nil), // 15: penumbra.core.crypto.v1alpha1.Amount - (*v1alpha1.Nullifier)(nil), // 16: penumbra.core.crypto.v1alpha1.Nullifier - (*v1alpha1.MerkleRoot)(nil), // 17: penumbra.core.crypto.v1alpha1.MerkleRoot - (*v1alpha11.BatchSwapOutputData)(nil), // 18: penumbra.core.dex.v1alpha1.BatchSwapOutputData - (*v1alpha1.DenomMetadata)(nil), // 19: penumbra.core.crypto.v1alpha1.DenomMetadata - (*v1alpha12.Validator)(nil), // 20: penumbra.core.stake.v1alpha1.Validator - (*v1alpha1.StateCommitment)(nil), // 21: penumbra.core.crypto.v1alpha1.StateCommitment - (*v1alpha1.NotePayload)(nil), // 22: penumbra.core.crypto.v1alpha1.NotePayload - (*v1alpha11.SwapPayload)(nil), // 23: penumbra.core.dex.v1alpha1.SwapPayload - (*v1alpha1.Address)(nil), // 24: penumbra.core.crypto.v1alpha1.Address -} -var file_penumbra_core_chain_v1alpha1_chain_proto_depIdxs = []int32{ - 15, // 0: penumbra.core.chain.v1alpha1.ChainParameters.proposal_deposit_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 4, // 1: penumbra.core.chain.v1alpha1.CompactBlock.state_payloads:type_name -> penumbra.core.chain.v1alpha1.StatePayload - 16, // 2: penumbra.core.chain.v1alpha1.CompactBlock.nullifiers:type_name -> penumbra.core.crypto.v1alpha1.Nullifier - 17, // 3: penumbra.core.chain.v1alpha1.CompactBlock.block_root:type_name -> penumbra.core.crypto.v1alpha1.MerkleRoot - 17, // 4: penumbra.core.chain.v1alpha1.CompactBlock.epoch_root:type_name -> penumbra.core.crypto.v1alpha1.MerkleRoot - 2, // 5: penumbra.core.chain.v1alpha1.CompactBlock.fmd_parameters:type_name -> penumbra.core.chain.v1alpha1.FmdParameters - 18, // 6: penumbra.core.chain.v1alpha1.CompactBlock.swap_outputs:type_name -> penumbra.core.dex.v1alpha1.BatchSwapOutputData - 0, // 7: penumbra.core.chain.v1alpha1.CompactBlock.chain_parameters:type_name -> penumbra.core.chain.v1alpha1.ChainParameters - 11, // 8: penumbra.core.chain.v1alpha1.StatePayload.rolled_up:type_name -> penumbra.core.chain.v1alpha1.StatePayload.RolledUp - 12, // 9: penumbra.core.chain.v1alpha1.StatePayload.note:type_name -> penumbra.core.chain.v1alpha1.StatePayload.Note - 13, // 10: penumbra.core.chain.v1alpha1.StatePayload.swap:type_name -> penumbra.core.chain.v1alpha1.StatePayload.Swap - 19, // 11: penumbra.core.chain.v1alpha1.KnownAssets.assets:type_name -> penumbra.core.crypto.v1alpha1.DenomMetadata - 6, // 12: penumbra.core.chain.v1alpha1.SpendInfo.note_source:type_name -> penumbra.core.chain.v1alpha1.NoteSource - 9, // 13: penumbra.core.chain.v1alpha1.GenesisAppState.genesis_content:type_name -> penumbra.core.chain.v1alpha1.GenesisContent - 0, // 14: penumbra.core.chain.v1alpha1.GenesisContent.chain_params:type_name -> penumbra.core.chain.v1alpha1.ChainParameters - 20, // 15: penumbra.core.chain.v1alpha1.GenesisContent.validators:type_name -> penumbra.core.stake.v1alpha1.Validator - 14, // 16: penumbra.core.chain.v1alpha1.GenesisContent.allocations:type_name -> penumbra.core.chain.v1alpha1.GenesisContent.Allocation - 21, // 17: penumbra.core.chain.v1alpha1.StatePayload.RolledUp.commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 6, // 18: penumbra.core.chain.v1alpha1.StatePayload.Note.source:type_name -> penumbra.core.chain.v1alpha1.NoteSource - 22, // 19: penumbra.core.chain.v1alpha1.StatePayload.Note.note:type_name -> penumbra.core.crypto.v1alpha1.NotePayload - 6, // 20: penumbra.core.chain.v1alpha1.StatePayload.Swap.source:type_name -> penumbra.core.chain.v1alpha1.NoteSource - 23, // 21: penumbra.core.chain.v1alpha1.StatePayload.Swap.swap:type_name -> penumbra.core.dex.v1alpha1.SwapPayload - 15, // 22: penumbra.core.chain.v1alpha1.GenesisContent.Allocation.amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 24, // 23: penumbra.core.chain.v1alpha1.GenesisContent.Allocation.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 24, // [24:24] is the sub-list for method output_type - 24, // [24:24] is the sub-list for method input_type - 24, // [24:24] is the sub-list for extension type_name - 24, // [24:24] is the sub-list for extension extendee - 0, // [0:24] is the sub-list for field type_name -} - -func init() { file_penumbra_core_chain_v1alpha1_chain_proto_init() } -func file_penumbra_core_chain_v1alpha1_chain_proto_init() { - if File_penumbra_core_chain_v1alpha1_chain_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChainParameters); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Ratio); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FmdParameters); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CompactBlock); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatePayload); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KnownAssets); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoteSource); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpendInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenesisAppState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[9].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_chain_v1alpha1_chain_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Epoch); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatePayload_RolledUp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatePayload_Note); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatePayload_Swap); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenesisContent_Allocation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[4].OneofWrappers = []interface{}{ - (*StatePayload_RolledUp_)(nil), - (*StatePayload_Note_)(nil), - (*StatePayload_Swap_)(nil), - } - file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes[8].OneofWrappers = []interface{}{ - (*GenesisAppState_GenesisContent)(nil), - (*GenesisAppState_GenesisCheckpoint)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_penumbra_core_chain_v1alpha1_chain_proto_rawDesc, - NumEnums: 0, - NumMessages: 15, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_penumbra_core_chain_v1alpha1_chain_proto_goTypes, - DependencyIndexes: file_penumbra_core_chain_v1alpha1_chain_proto_depIdxs, - MessageInfos: file_penumbra_core_chain_v1alpha1_chain_proto_msgTypes, - }.Build() - File_penumbra_core_chain_v1alpha1_chain_proto = out.File - file_penumbra_core_chain_v1alpha1_chain_proto_rawDesc = nil - file_penumbra_core_chain_v1alpha1_chain_proto_goTypes = nil - file_penumbra_core_chain_v1alpha1_chain_proto_depIdxs = nil -} diff --git a/proto/go/gen/penumbra/core/component/chain/v1alpha1/chain.pb.go b/proto/go/gen/penumbra/core/component/chain/v1alpha1/chain.pb.go new file mode 100644 index 0000000000..7ac8b63fc3 --- /dev/null +++ b/proto/go/gen/penumbra/core/component/chain/v1alpha1/chain.pb.go @@ -0,0 +1,1195 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/component/chain/v1alpha1/chain.proto + +package chainv1alpha1 + +import ( + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/stake/v1alpha1" + v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/num/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) +) + +// An authorization hash for a Penumbra transaction. +type EffectHash struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *EffectHash) Reset() { + *x = EffectHash{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EffectHash) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EffectHash) ProtoMessage() {} + +func (x *EffectHash) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_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 EffectHash.ProtoReflect.Descriptor instead. +func (*EffectHash) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{0} +} + +func (x *EffectHash) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// Global chain configuration data, such as chain ID, epoch duration, etc. +type ChainParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The identifier of the chain. + ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + // The duration of each epoch, in number of blocks. + EpochDuration uint64 `protobuf:"varint,2,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` + // The number of epochs an unbonding note for before being released. + UnbondingEpochs uint64 `protobuf:"varint,3,opt,name=unbonding_epochs,json=unbondingEpochs,proto3" json:"unbonding_epochs,omitempty"` + // The maximum number of validators in the consensus set. + ActiveValidatorLimit uint64 `protobuf:"varint,4,opt,name=active_validator_limit,json=activeValidatorLimit,proto3" json:"active_validator_limit,omitempty"` + // The base reward rate, expressed in basis points of basis points + BaseRewardRate uint64 `protobuf:"varint,9,opt,name=base_reward_rate,json=baseRewardRate,proto3" json:"base_reward_rate,omitempty"` + // The penalty for slashing due to misbehavior. + SlashingPenaltyMisbehavior uint64 `protobuf:"varint,5,opt,name=slashing_penalty_misbehavior,json=slashingPenaltyMisbehavior,proto3" json:"slashing_penalty_misbehavior,omitempty"` + // The penalty for slashing due to downtime. + SlashingPenaltyDowntime uint64 `protobuf:"varint,10,opt,name=slashing_penalty_downtime,json=slashingPenaltyDowntime,proto3" json:"slashing_penalty_downtime,omitempty"` + // The number of blocks in the window to check for downtime. + SignedBlocksWindowLen uint64 `protobuf:"varint,11,opt,name=signed_blocks_window_len,json=signedBlocksWindowLen,proto3" json:"signed_blocks_window_len,omitempty"` + // The maximum number of blocks in the window each validator can miss signing without slashing. + MissedBlocksMaximum uint64 `protobuf:"varint,12,opt,name=missed_blocks_maximum,json=missedBlocksMaximum,proto3" json:"missed_blocks_maximum,omitempty"` + // Whether IBC (forming connections, processing IBC packets) is enabled. + IbcEnabled bool `protobuf:"varint,6,opt,name=ibc_enabled,json=ibcEnabled,proto3" json:"ibc_enabled,omitempty"` + // Whether inbound ICS-20 transfers are enabled + InboundIcs20TransfersEnabled bool `protobuf:"varint,7,opt,name=inbound_ics20_transfers_enabled,json=inboundIcs20TransfersEnabled,proto3" json:"inbound_ics20_transfers_enabled,omitempty"` + // Whether outbound ICS-20 transfers are enabled + OutboundIcs20TransfersEnabled bool `protobuf:"varint,8,opt,name=outbound_ics20_transfers_enabled,json=outboundIcs20TransfersEnabled,proto3" json:"outbound_ics20_transfers_enabled,omitempty"` + // The number of blocks during which a proposal is voted on. + ProposalVotingBlocks uint64 `protobuf:"varint,20,opt,name=proposal_voting_blocks,json=proposalVotingBlocks,proto3" json:"proposal_voting_blocks,omitempty"` + // The deposit required to create a proposal. + ProposalDepositAmount *v1alpha1.Amount `protobuf:"bytes,21,opt,name=proposal_deposit_amount,json=proposalDepositAmount,proto3" json:"proposal_deposit_amount,omitempty"` + // The quorum required for a proposal to be considered valid, as a fraction of the total stake + // weight of the network. + ProposalValidQuorum string `protobuf:"bytes,22,opt,name=proposal_valid_quorum,json=proposalValidQuorum,proto3" json:"proposal_valid_quorum,omitempty"` + // The threshold for a proposal to pass voting, as a ratio of "yes" votes over "no" votes. + ProposalPassThreshold string `protobuf:"bytes,23,opt,name=proposal_pass_threshold,json=proposalPassThreshold,proto3" json:"proposal_pass_threshold,omitempty"` + // The threshold for a proposal to be slashed, regardless of whether the "yes" and "no" votes + // would have passed it, as a ratio of "no" votes over all total votes. + ProposalSlashThreshold string `protobuf:"bytes,24,opt,name=proposal_slash_threshold,json=proposalSlashThreshold,proto3" json:"proposal_slash_threshold,omitempty"` + // Whether DAO spend proposals are enabled. + DaoSpendProposalsEnabled bool `protobuf:"varint,25,opt,name=dao_spend_proposals_enabled,json=daoSpendProposalsEnabled,proto3" json:"dao_spend_proposals_enabled,omitempty"` +} + +func (x *ChainParameters) Reset() { + *x = ChainParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChainParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChainParameters) ProtoMessage() {} + +func (x *ChainParameters) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_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 ChainParameters.ProtoReflect.Descriptor instead. +func (*ChainParameters) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{1} +} + +func (x *ChainParameters) GetChainId() string { + if x != nil { + return x.ChainId + } + return "" +} + +func (x *ChainParameters) GetEpochDuration() uint64 { + if x != nil { + return x.EpochDuration + } + return 0 +} + +func (x *ChainParameters) GetUnbondingEpochs() uint64 { + if x != nil { + return x.UnbondingEpochs + } + return 0 +} + +func (x *ChainParameters) GetActiveValidatorLimit() uint64 { + if x != nil { + return x.ActiveValidatorLimit + } + return 0 +} + +func (x *ChainParameters) GetBaseRewardRate() uint64 { + if x != nil { + return x.BaseRewardRate + } + return 0 +} + +func (x *ChainParameters) GetSlashingPenaltyMisbehavior() uint64 { + if x != nil { + return x.SlashingPenaltyMisbehavior + } + return 0 +} + +func (x *ChainParameters) GetSlashingPenaltyDowntime() uint64 { + if x != nil { + return x.SlashingPenaltyDowntime + } + return 0 +} + +func (x *ChainParameters) GetSignedBlocksWindowLen() uint64 { + if x != nil { + return x.SignedBlocksWindowLen + } + return 0 +} + +func (x *ChainParameters) GetMissedBlocksMaximum() uint64 { + if x != nil { + return x.MissedBlocksMaximum + } + return 0 +} + +func (x *ChainParameters) GetIbcEnabled() bool { + if x != nil { + return x.IbcEnabled + } + return false +} + +func (x *ChainParameters) GetInboundIcs20TransfersEnabled() bool { + if x != nil { + return x.InboundIcs20TransfersEnabled + } + return false +} + +func (x *ChainParameters) GetOutboundIcs20TransfersEnabled() bool { + if x != nil { + return x.OutboundIcs20TransfersEnabled + } + return false +} + +func (x *ChainParameters) GetProposalVotingBlocks() uint64 { + if x != nil { + return x.ProposalVotingBlocks + } + return 0 +} + +func (x *ChainParameters) GetProposalDepositAmount() *v1alpha1.Amount { + if x != nil { + return x.ProposalDepositAmount + } + return nil +} + +func (x *ChainParameters) GetProposalValidQuorum() string { + if x != nil { + return x.ProposalValidQuorum + } + return "" +} + +func (x *ChainParameters) GetProposalPassThreshold() string { + if x != nil { + return x.ProposalPassThreshold + } + return "" +} + +func (x *ChainParameters) GetProposalSlashThreshold() string { + if x != nil { + return x.ProposalSlashThreshold + } + return "" +} + +func (x *ChainParameters) GetDaoSpendProposalsEnabled() bool { + if x != nil { + return x.DaoSpendProposalsEnabled + } + return false +} + +// The ratio between two numbers, used in governance to describe vote thresholds and quorums. +type Ratio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The numerator. + Numerator uint64 `protobuf:"varint,1,opt,name=numerator,proto3" json:"numerator,omitempty"` + // The denominator. + Denominator uint64 `protobuf:"varint,2,opt,name=denominator,proto3" json:"denominator,omitempty"` +} + +func (x *Ratio) Reset() { + *x = Ratio{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Ratio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ratio) ProtoMessage() {} + +func (x *Ratio) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_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 Ratio.ProtoReflect.Descriptor instead. +func (*Ratio) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{2} +} + +func (x *Ratio) GetNumerator() uint64 { + if x != nil { + return x.Numerator + } + return 0 +} + +func (x *Ratio) GetDenominator() uint64 { + if x != nil { + return x.Denominator + } + return 0 +} + +// Parameters for Fuzzy Message Detection +type FmdParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PrecisionBits uint32 `protobuf:"varint,1,opt,name=precision_bits,json=precisionBits,proto3" json:"precision_bits,omitempty"` + AsOfBlockHeight uint64 `protobuf:"varint,2,opt,name=as_of_block_height,json=asOfBlockHeight,proto3" json:"as_of_block_height,omitempty"` +} + +func (x *FmdParameters) Reset() { + *x = FmdParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FmdParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FmdParameters) ProtoMessage() {} + +func (x *FmdParameters) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_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 FmdParameters.ProtoReflect.Descriptor instead. +func (*FmdParameters) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{3} +} + +func (x *FmdParameters) GetPrecisionBits() uint32 { + if x != nil { + return x.PrecisionBits + } + return 0 +} + +func (x *FmdParameters) GetAsOfBlockHeight() uint64 { + if x != nil { + return x.AsOfBlockHeight + } + return 0 +} + +type KnownAssets struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Assets []*v1alpha11.DenomMetadata `protobuf:"bytes,1,rep,name=assets,proto3" json:"assets,omitempty"` +} + +func (x *KnownAssets) Reset() { + *x = KnownAssets{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KnownAssets) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KnownAssets) ProtoMessage() {} + +func (x *KnownAssets) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KnownAssets.ProtoReflect.Descriptor instead. +func (*KnownAssets) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{4} +} + +func (x *KnownAssets) GetAssets() []*v1alpha11.DenomMetadata { + if x != nil { + return x.Assets + } + return nil +} + +// A spicy transaction ID +type NoteSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *NoteSource) Reset() { + *x = NoteSource{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NoteSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NoteSource) ProtoMessage() {} + +func (x *NoteSource) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NoteSource.ProtoReflect.Descriptor instead. +func (*NoteSource) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{5} +} + +func (x *NoteSource) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// A NoteSource paired with the height at which the note was spent +type SpendInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NoteSource *NoteSource `protobuf:"bytes,1,opt,name=note_source,json=noteSource,proto3" json:"note_source,omitempty"` + SpendHeight uint64 `protobuf:"varint,2,opt,name=spend_height,json=spendHeight,proto3" json:"spend_height,omitempty"` +} + +func (x *SpendInfo) Reset() { + *x = SpendInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpendInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpendInfo) ProtoMessage() {} + +func (x *SpendInfo) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpendInfo.ProtoReflect.Descriptor instead. +func (*SpendInfo) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{6} +} + +func (x *SpendInfo) GetNoteSource() *NoteSource { + if x != nil { + return x.NoteSource + } + return nil +} + +func (x *SpendInfo) GetSpendHeight() uint64 { + if x != nil { + return x.SpendHeight + } + return 0 +} + +type GenesisAppState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to GenesisAppState: + // + // *GenesisAppState_GenesisContent + // *GenesisAppState_GenesisCheckpoint + GenesisAppState isGenesisAppState_GenesisAppState `protobuf_oneof:"genesis_app_state"` +} + +func (x *GenesisAppState) Reset() { + *x = GenesisAppState{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenesisAppState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisAppState) ProtoMessage() {} + +func (x *GenesisAppState) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenesisAppState.ProtoReflect.Descriptor instead. +func (*GenesisAppState) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{7} +} + +func (m *GenesisAppState) GetGenesisAppState() isGenesisAppState_GenesisAppState { + if m != nil { + return m.GenesisAppState + } + return nil +} + +func (x *GenesisAppState) GetGenesisContent() *GenesisContent { + if x, ok := x.GetGenesisAppState().(*GenesisAppState_GenesisContent); ok { + return x.GenesisContent + } + return nil +} + +func (x *GenesisAppState) GetGenesisCheckpoint() []byte { + if x, ok := x.GetGenesisAppState().(*GenesisAppState_GenesisCheckpoint); ok { + return x.GenesisCheckpoint + } + return nil +} + +type isGenesisAppState_GenesisAppState interface { + isGenesisAppState_GenesisAppState() +} + +type GenesisAppState_GenesisContent struct { + GenesisContent *GenesisContent `protobuf:"bytes,1,opt,name=genesis_content,json=genesisContent,proto3,oneof"` +} + +type GenesisAppState_GenesisCheckpoint struct { + GenesisCheckpoint []byte `protobuf:"bytes,2,opt,name=genesis_checkpoint,json=genesisCheckpoint,proto3,oneof"` +} + +func (*GenesisAppState_GenesisContent) isGenesisAppState_GenesisAppState() {} + +func (*GenesisAppState_GenesisCheckpoint) isGenesisAppState_GenesisAppState() {} + +type GenesisContent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChainParams *ChainParameters `protobuf:"bytes,1,opt,name=chain_params,json=chainParams,proto3" json:"chain_params,omitempty"` + Validators []*v1alpha12.Validator `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators,omitempty"` + Allocations []*GenesisContent_Allocation `protobuf:"bytes,3,rep,name=allocations,proto3" json:"allocations,omitempty"` +} + +func (x *GenesisContent) Reset() { + *x = GenesisContent{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[8] + 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_chain_v1alpha1_chain_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenesisContent.ProtoReflect.Descriptor instead. +func (*GenesisContent) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{8} +} + +func (x *GenesisContent) GetChainParams() *ChainParameters { + if x != nil { + return x.ChainParams + } + return nil +} + +func (x *GenesisContent) GetValidators() []*v1alpha12.Validator { + if x != nil { + return x.Validators + } + return nil +} + +func (x *GenesisContent) GetAllocations() []*GenesisContent_Allocation { + if x != nil { + return x.Allocations + } + return nil +} + +type Epoch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + StartHeight uint64 `protobuf:"varint,2,opt,name=start_height,json=startHeight,proto3" json:"start_height,omitempty"` +} + +func (x *Epoch) Reset() { + *x = Epoch{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Epoch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Epoch) ProtoMessage() {} + +func (x *Epoch) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Epoch.ProtoReflect.Descriptor instead. +func (*Epoch) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{9} +} + +func (x *Epoch) GetIndex() uint64 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *Epoch) GetStartHeight() uint64 { + if x != nil { + return x.StartHeight + } + return 0 +} + +type GenesisContent_Allocation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Address *v1alpha13.Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *GenesisContent_Allocation) Reset() { + *x = GenesisContent_Allocation{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenesisContent_Allocation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisContent_Allocation) ProtoMessage() {} + +func (x *GenesisContent_Allocation) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenesisContent_Allocation.ProtoReflect.Descriptor instead. +func (*GenesisContent_Allocation) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *GenesisContent_Allocation) GetAmount() *v1alpha1.Amount { + if x != nil { + return x.Amount + } + return nil +} + +func (x *GenesisContent_Allocation) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *GenesisContent_Allocation) GetAddress() *v1alpha13.Address { + if x != nil { + return x.Address + } + return nil +} + +var File_penumbra_core_component_chain_v1alpha1_chain_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x26, 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, 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, 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, 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, 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, 0x22, 0x22, 0x0a, 0x0a, 0x45, 0x66, 0x66, 0x65, + 0x63, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xf1, 0x07, 0x0a, + 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 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, 0x25, 0x0a, 0x0e, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0d, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x18, 0x03, 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, 0x04, 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, 0x09, 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, 0x05, 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, 0x0a, 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, 0x0b, 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, 0x0c, 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, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x62, 0x63, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, + 0x62, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x1f, 0x69, 0x6e, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x63, 0x73, 0x32, 0x30, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x1c, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x63, 0x73, 0x32, 0x30, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x12, 0x47, 0x0a, 0x20, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x63, 0x73, + 0x32, 0x30, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x6f, 0x75, 0x74, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x63, 0x73, 0x32, 0x30, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 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, 0x14, 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, 0x15, 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, 0x16, 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, 0x17, 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, 0x18, 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, 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, 0x19, 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, 0x47, 0x0a, 0x05, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6d, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x63, 0x0a, 0x0d, 0x46, 0x6d, 0x64, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, + 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x74, + 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, + 0x73, 0x4f, 0x66, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x52, + 0x0a, 0x0b, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x43, 0x0a, + 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 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, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x22, 0x22, 0x0a, 0x0a, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x83, 0x01, 0x0a, 0x09, 0x53, 0x70, 0x65, 0x6e, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x53, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0a, 0x6e, + 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 0xba, 0x01, 0x0a, + 0x0f, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x61, 0x0a, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x01, 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, 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, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x73, 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, 0xc5, 0x03, 0x0a, 0x0e, 0x47, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 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, 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, 0x12, 0x63, 0x0a, 0x0b, 0x61, + 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 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, 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, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x1a, 0x9e, 0x01, 0x0a, 0x0a, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3a, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 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, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 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, 0x40, 0x0a, 0x05, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x42, 0x0a, 0x43, 0x68, 0x61, 0x69, 0x6e, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, 0x43, 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, 0x43, 0x68, 0x61, 0x69, 0x6e, 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, + 0x43, 0x68, 0x61, 0x69, 0x6e, 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, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5c, 0x43, 0x68, 0x61, 0x69, 0x6e, 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, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescOnce sync.Once + file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescData = file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDesc +) + +func file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescGZIP() []byte { + file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescData) + }) + return file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDescData +} + +var file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_penumbra_core_component_chain_v1alpha1_chain_proto_goTypes = []interface{}{ + (*EffectHash)(nil), // 0: penumbra.core.component.chain.v1alpha1.EffectHash + (*ChainParameters)(nil), // 1: penumbra.core.component.chain.v1alpha1.ChainParameters + (*Ratio)(nil), // 2: penumbra.core.component.chain.v1alpha1.Ratio + (*FmdParameters)(nil), // 3: penumbra.core.component.chain.v1alpha1.FmdParameters + (*KnownAssets)(nil), // 4: penumbra.core.component.chain.v1alpha1.KnownAssets + (*NoteSource)(nil), // 5: penumbra.core.component.chain.v1alpha1.NoteSource + (*SpendInfo)(nil), // 6: penumbra.core.component.chain.v1alpha1.SpendInfo + (*GenesisAppState)(nil), // 7: penumbra.core.component.chain.v1alpha1.GenesisAppState + (*GenesisContent)(nil), // 8: penumbra.core.component.chain.v1alpha1.GenesisContent + (*Epoch)(nil), // 9: penumbra.core.component.chain.v1alpha1.Epoch + (*GenesisContent_Allocation)(nil), // 10: penumbra.core.component.chain.v1alpha1.GenesisContent.Allocation + (*v1alpha1.Amount)(nil), // 11: penumbra.core.num.v1alpha1.Amount + (*v1alpha11.DenomMetadata)(nil), // 12: penumbra.core.asset.v1alpha1.DenomMetadata + (*v1alpha12.Validator)(nil), // 13: penumbra.core.component.stake.v1alpha1.Validator + (*v1alpha13.Address)(nil), // 14: penumbra.core.keys.v1alpha1.Address +} +var file_penumbra_core_component_chain_v1alpha1_chain_proto_depIdxs = []int32{ + 11, // 0: penumbra.core.component.chain.v1alpha1.ChainParameters.proposal_deposit_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 12, // 1: penumbra.core.component.chain.v1alpha1.KnownAssets.assets:type_name -> penumbra.core.asset.v1alpha1.DenomMetadata + 5, // 2: penumbra.core.component.chain.v1alpha1.SpendInfo.note_source:type_name -> penumbra.core.component.chain.v1alpha1.NoteSource + 8, // 3: penumbra.core.component.chain.v1alpha1.GenesisAppState.genesis_content:type_name -> penumbra.core.component.chain.v1alpha1.GenesisContent + 1, // 4: penumbra.core.component.chain.v1alpha1.GenesisContent.chain_params:type_name -> penumbra.core.component.chain.v1alpha1.ChainParameters + 13, // 5: penumbra.core.component.chain.v1alpha1.GenesisContent.validators:type_name -> penumbra.core.component.stake.v1alpha1.Validator + 10, // 6: penumbra.core.component.chain.v1alpha1.GenesisContent.allocations:type_name -> penumbra.core.component.chain.v1alpha1.GenesisContent.Allocation + 11, // 7: penumbra.core.component.chain.v1alpha1.GenesisContent.Allocation.amount:type_name -> penumbra.core.num.v1alpha1.Amount + 14, // 8: penumbra.core.component.chain.v1alpha1.GenesisContent.Allocation.address:type_name -> penumbra.core.keys.v1alpha1.Address + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_penumbra_core_component_chain_v1alpha1_chain_proto_init() } +func file_penumbra_core_component_chain_v1alpha1_chain_proto_init() { + if File_penumbra_core_component_chain_v1alpha1_chain_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EffectHash); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChainParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Ratio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FmdParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KnownAssets); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NoteSource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpendInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisAppState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[8].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_chain_v1alpha1_chain_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Epoch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisContent_Allocation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*GenesisAppState_GenesisContent)(nil), + (*GenesisAppState_GenesisCheckpoint)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_component_chain_v1alpha1_chain_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_chain_v1alpha1_chain_proto_depIdxs, + MessageInfos: file_penumbra_core_component_chain_v1alpha1_chain_proto_msgTypes, + }.Build() + File_penumbra_core_component_chain_v1alpha1_chain_proto = out.File + file_penumbra_core_component_chain_v1alpha1_chain_proto_rawDesc = nil + file_penumbra_core_component_chain_v1alpha1_chain_proto_goTypes = nil + file_penumbra_core_component_chain_v1alpha1_chain_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/component/compact_block/v1alpha1/compact_block.pb.go b/proto/go/gen/penumbra/core/component/compact_block/v1alpha1/compact_block.pb.go new file mode 100644 index 0000000000..d993a2086f --- /dev/null +++ b/proto/go/gen/penumbra/core/component/compact_block/v1alpha1/compact_block.pb.go @@ -0,0 +1,686 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/component/compact_block/v1alpha1/compact_block.proto + +package compact_blockv1alpha1 + +import ( + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/chain/v1alpha1" + v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/dex/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/sct/v1alpha1" + v1alpha14 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/shielded_pool/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/tct/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) +) + +// Contains the minimum data needed to update client state. +type CompactBlock struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + // State payloads describing new state fragments. + StatePayloads []*StatePayload `protobuf:"bytes,2,rep,name=state_payloads,json=statePayloads,proto3" json:"state_payloads,omitempty"` + // Nullifiers identifying spent notes. + Nullifiers []*v1alpha1.Nullifier `protobuf:"bytes,3,rep,name=nullifiers,proto3" json:"nullifiers,omitempty"` + // The block root of this block. + BlockRoot *v1alpha11.MerkleRoot `protobuf:"bytes,4,opt,name=block_root,json=blockRoot,proto3" json:"block_root,omitempty"` + // The epoch root of this epoch (only present when the block is the last in an epoch). + EpochRoot *v1alpha11.MerkleRoot `protobuf:"bytes,17,opt,name=epoch_root,json=epochRoot,proto3" json:"epoch_root,omitempty"` + // If a proposal started voting in this block, this is set to `true`. + ProposalStarted bool `protobuf:"varint,20,opt,name=proposal_started,json=proposalStarted,proto3" json:"proposal_started,omitempty"` + // Latest Fuzzy Message Detection parameters. + FmdParameters *v1alpha12.FmdParameters `protobuf:"bytes,100,opt,name=fmd_parameters,json=fmdParameters,proto3" json:"fmd_parameters,omitempty"` + // Price data for swaps executed in this block. + SwapOutputs []*v1alpha13.BatchSwapOutputData `protobuf:"bytes,5,rep,name=swap_outputs,json=swapOutputs,proto3" json:"swap_outputs,omitempty"` + // Updated chain parameters, if they have changed. + ChainParameters *v1alpha12.ChainParameters `protobuf:"bytes,6,opt,name=chain_parameters,json=chainParameters,proto3" json:"chain_parameters,omitempty"` +} + +func (x *CompactBlock) Reset() { + *x = CompactBlock{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompactBlock) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompactBlock) ProtoMessage() {} + +func (x *CompactBlock) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_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 CompactBlock.ProtoReflect.Descriptor instead. +func (*CompactBlock) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescGZIP(), []int{0} +} + +func (x *CompactBlock) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *CompactBlock) GetStatePayloads() []*StatePayload { + if x != nil { + return x.StatePayloads + } + return nil +} + +func (x *CompactBlock) GetNullifiers() []*v1alpha1.Nullifier { + if x != nil { + return x.Nullifiers + } + return nil +} + +func (x *CompactBlock) GetBlockRoot() *v1alpha11.MerkleRoot { + if x != nil { + return x.BlockRoot + } + return nil +} + +func (x *CompactBlock) GetEpochRoot() *v1alpha11.MerkleRoot { + if x != nil { + return x.EpochRoot + } + return nil +} + +func (x *CompactBlock) GetProposalStarted() bool { + if x != nil { + return x.ProposalStarted + } + return false +} + +func (x *CompactBlock) GetFmdParameters() *v1alpha12.FmdParameters { + if x != nil { + return x.FmdParameters + } + return nil +} + +func (x *CompactBlock) GetSwapOutputs() []*v1alpha13.BatchSwapOutputData { + if x != nil { + return x.SwapOutputs + } + return nil +} + +func (x *CompactBlock) GetChainParameters() *v1alpha12.ChainParameters { + if x != nil { + return x.ChainParameters + } + return nil +} + +type StatePayload struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to StatePayload: + // + // *StatePayload_RolledUp_ + // *StatePayload_Note_ + // *StatePayload_Swap_ + StatePayload isStatePayload_StatePayload `protobuf_oneof:"state_payload"` +} + +func (x *StatePayload) Reset() { + *x = StatePayload{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatePayload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatePayload) ProtoMessage() {} + +func (x *StatePayload) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_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 StatePayload.ProtoReflect.Descriptor instead. +func (*StatePayload) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescGZIP(), []int{1} +} + +func (m *StatePayload) GetStatePayload() isStatePayload_StatePayload { + if m != nil { + return m.StatePayload + } + return nil +} + +func (x *StatePayload) GetRolledUp() *StatePayload_RolledUp { + if x, ok := x.GetStatePayload().(*StatePayload_RolledUp_); ok { + return x.RolledUp + } + return nil +} + +func (x *StatePayload) GetNote() *StatePayload_Note { + if x, ok := x.GetStatePayload().(*StatePayload_Note_); ok { + return x.Note + } + return nil +} + +func (x *StatePayload) GetSwap() *StatePayload_Swap { + if x, ok := x.GetStatePayload().(*StatePayload_Swap_); ok { + return x.Swap + } + return nil +} + +type isStatePayload_StatePayload interface { + isStatePayload_StatePayload() +} + +type StatePayload_RolledUp_ struct { + RolledUp *StatePayload_RolledUp `protobuf:"bytes,1,opt,name=rolled_up,json=rolledUp,proto3,oneof"` +} + +type StatePayload_Note_ struct { + Note *StatePayload_Note `protobuf:"bytes,2,opt,name=note,proto3,oneof"` +} + +type StatePayload_Swap_ struct { + Swap *StatePayload_Swap `protobuf:"bytes,3,opt,name=swap,proto3,oneof"` +} + +func (*StatePayload_RolledUp_) isStatePayload_StatePayload() {} + +func (*StatePayload_Note_) isStatePayload_StatePayload() {} + +func (*StatePayload_Swap_) isStatePayload_StatePayload() {} + +type StatePayload_RolledUp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Commitment *v1alpha11.StateCommitment `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` +} + +func (x *StatePayload_RolledUp) Reset() { + *x = StatePayload_RolledUp{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatePayload_RolledUp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatePayload_RolledUp) ProtoMessage() {} + +func (x *StatePayload_RolledUp) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_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 StatePayload_RolledUp.ProtoReflect.Descriptor instead. +func (*StatePayload_RolledUp) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *StatePayload_RolledUp) GetCommitment() *v1alpha11.StateCommitment { + if x != nil { + return x.Commitment + } + return nil +} + +type StatePayload_Note struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Source *v1alpha12.NoteSource `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + Note *v1alpha14.NotePayload `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *StatePayload_Note) Reset() { + *x = StatePayload_Note{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatePayload_Note) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatePayload_Note) ProtoMessage() {} + +func (x *StatePayload_Note) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_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 StatePayload_Note.ProtoReflect.Descriptor instead. +func (*StatePayload_Note) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescGZIP(), []int{1, 1} +} + +func (x *StatePayload_Note) GetSource() *v1alpha12.NoteSource { + if x != nil { + return x.Source + } + return nil +} + +func (x *StatePayload_Note) GetNote() *v1alpha14.NotePayload { + if x != nil { + return x.Note + } + return nil +} + +type StatePayload_Swap struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Source *v1alpha12.NoteSource `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"` + Swap *v1alpha13.SwapPayload `protobuf:"bytes,2,opt,name=swap,proto3" json:"swap,omitempty"` +} + +func (x *StatePayload_Swap) Reset() { + *x = StatePayload_Swap{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatePayload_Swap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatePayload_Swap) ProtoMessage() {} + +func (x *StatePayload_Swap) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatePayload_Swap.ProtoReflect.Descriptor instead. +func (*StatePayload_Swap) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescGZIP(), []int{1, 2} +} + +func (x *StatePayload_Swap) GetSource() *v1alpha12.NoteSource { + if x != nil { + return x.Source + } + return nil +} + +func (x *StatePayload_Swap) GetSwap() *v1alpha13.SwapPayload { + if x != nil { + return x.Swap + } + return nil +} + +var File_penumbra_core_component_compact_block_v1alpha1_compact_block_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDesc = []byte{ + 0x0a, 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, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, + 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2e, 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, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 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, 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, 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, 0x65, 0x78, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x78, 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, 0x22, 0xb9, 0x05, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x63, 0x0a, + 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x18, + 0x02, 0x20, 0x03, 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, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x12, 0x4f, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, + 0x18, 0x03, 0x20, 0x03, 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, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x18, 0x04, 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, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x47, 0x0a, 0x0a, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x11, 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, 0x09, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, + 0x12, 0x5c, 0x0a, 0x0e, 0x66, 0x6d, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x64, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x46, 0x6d, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, + 0x0d, 0x66, 0x6d, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5c, + 0x0a, 0x0c, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, + 0x20, 0x03, 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, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x0b, 0x73, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x62, 0x0a, 0x10, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x06, 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, + 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x22, 0xd4, 0x05, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x64, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x18, 0x01, + 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, 0x63, + 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x55, 0x70, 0x48, 0x00, 0x52, 0x08, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x55, 0x70, 0x12, 0x57, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 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, + 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, + 0x12, 0x57, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 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, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x53, 0x77, 0x61, + 0x70, 0x48, 0x00, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x1a, 0x59, 0x0a, 0x08, 0x52, 0x6f, 0x6c, + 0x6c, 0x65, 0x64, 0x55, 0x70, 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, 0x1a, 0xa3, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x4a, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 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, 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, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x1a, 0x99, 0x01, 0x0a, 0x04, 0x53, + 0x77, 0x61, 0x70, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, + 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x45, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x95, 0x03, 0x0a, 0x32, 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, 0x70, 0x61, 0x63, 0x74, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x11, + 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x73, 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, 0x70, + 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x3b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, 0x43, 0xaa, + 0x02, 0x2d, 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, 0x70, 0x61, 0x63, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, + 0x02, 0x2d, 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, 0x70, 0x61, 0x63, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, + 0x02, 0x39, 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, 0x70, 0x61, 0x63, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x31, 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, 0x70, 0x61, 0x63, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescOnce sync.Once + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescData = file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDesc +) + +func file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescGZIP() []byte { + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescData) + }) + return file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDescData +} + +var file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_goTypes = []interface{}{ + (*CompactBlock)(nil), // 0: penumbra.core.component.compact_block.v1alpha1.CompactBlock + (*StatePayload)(nil), // 1: penumbra.core.component.compact_block.v1alpha1.StatePayload + (*StatePayload_RolledUp)(nil), // 2: penumbra.core.component.compact_block.v1alpha1.StatePayload.RolledUp + (*StatePayload_Note)(nil), // 3: penumbra.core.component.compact_block.v1alpha1.StatePayload.Note + (*StatePayload_Swap)(nil), // 4: penumbra.core.component.compact_block.v1alpha1.StatePayload.Swap + (*v1alpha1.Nullifier)(nil), // 5: penumbra.core.component.sct.v1alpha1.Nullifier + (*v1alpha11.MerkleRoot)(nil), // 6: penumbra.crypto.tct.v1alpha1.MerkleRoot + (*v1alpha12.FmdParameters)(nil), // 7: penumbra.core.component.chain.v1alpha1.FmdParameters + (*v1alpha13.BatchSwapOutputData)(nil), // 8: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData + (*v1alpha12.ChainParameters)(nil), // 9: penumbra.core.component.chain.v1alpha1.ChainParameters + (*v1alpha11.StateCommitment)(nil), // 10: penumbra.crypto.tct.v1alpha1.StateCommitment + (*v1alpha12.NoteSource)(nil), // 11: penumbra.core.component.chain.v1alpha1.NoteSource + (*v1alpha14.NotePayload)(nil), // 12: penumbra.core.component.shielded_pool.v1alpha1.NotePayload + (*v1alpha13.SwapPayload)(nil), // 13: penumbra.core.component.dex.v1alpha1.SwapPayload +} +var file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_depIdxs = []int32{ + 1, // 0: penumbra.core.component.compact_block.v1alpha1.CompactBlock.state_payloads:type_name -> penumbra.core.component.compact_block.v1alpha1.StatePayload + 5, // 1: penumbra.core.component.compact_block.v1alpha1.CompactBlock.nullifiers:type_name -> penumbra.core.component.sct.v1alpha1.Nullifier + 6, // 2: penumbra.core.component.compact_block.v1alpha1.CompactBlock.block_root:type_name -> penumbra.crypto.tct.v1alpha1.MerkleRoot + 6, // 3: penumbra.core.component.compact_block.v1alpha1.CompactBlock.epoch_root:type_name -> penumbra.crypto.tct.v1alpha1.MerkleRoot + 7, // 4: penumbra.core.component.compact_block.v1alpha1.CompactBlock.fmd_parameters:type_name -> penumbra.core.component.chain.v1alpha1.FmdParameters + 8, // 5: penumbra.core.component.compact_block.v1alpha1.CompactBlock.swap_outputs:type_name -> penumbra.core.component.dex.v1alpha1.BatchSwapOutputData + 9, // 6: penumbra.core.component.compact_block.v1alpha1.CompactBlock.chain_parameters:type_name -> penumbra.core.component.chain.v1alpha1.ChainParameters + 2, // 7: penumbra.core.component.compact_block.v1alpha1.StatePayload.rolled_up:type_name -> penumbra.core.component.compact_block.v1alpha1.StatePayload.RolledUp + 3, // 8: penumbra.core.component.compact_block.v1alpha1.StatePayload.note:type_name -> penumbra.core.component.compact_block.v1alpha1.StatePayload.Note + 4, // 9: penumbra.core.component.compact_block.v1alpha1.StatePayload.swap:type_name -> penumbra.core.component.compact_block.v1alpha1.StatePayload.Swap + 10, // 10: penumbra.core.component.compact_block.v1alpha1.StatePayload.RolledUp.commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 11, // 11: penumbra.core.component.compact_block.v1alpha1.StatePayload.Note.source:type_name -> penumbra.core.component.chain.v1alpha1.NoteSource + 12, // 12: penumbra.core.component.compact_block.v1alpha1.StatePayload.Note.note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.NotePayload + 11, // 13: penumbra.core.component.compact_block.v1alpha1.StatePayload.Swap.source:type_name -> penumbra.core.component.chain.v1alpha1.NoteSource + 13, // 14: penumbra.core.component.compact_block.v1alpha1.StatePayload.Swap.swap:type_name -> penumbra.core.component.dex.v1alpha1.SwapPayload + 15, // [15:15] is the sub-list for method output_type + 15, // [15:15] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name +} + +func init() { file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_init() } +func file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_init() { + if File_penumbra_core_component_compact_block_v1alpha1_compact_block_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CompactBlock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatePayload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatePayload_RolledUp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatePayload_Note); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatePayload_Swap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*StatePayload_RolledUp_)(nil), + (*StatePayload_Note_)(nil), + (*StatePayload_Swap_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_depIdxs, + MessageInfos: file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_msgTypes, + }.Build() + File_penumbra_core_component_compact_block_v1alpha1_compact_block_proto = out.File + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_rawDesc = nil + file_penumbra_core_component_compact_block_v1alpha1_compact_block_proto_goTypes = nil + file_penumbra_core_component_compact_block_v1alpha1_compact_block_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 new file mode 100644 index 0000000000..9b6c956a7c --- /dev/null +++ b/proto/go/gen/penumbra/core/component/dao/v1alpha1/dao.pb.go @@ -0,0 +1,85 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/component/dao/v1alpha1/dao.proto + +package daov1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +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) +) + +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, 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_goTypes = []interface{}{} +var file_penumbra_core_component_dao_v1alpha1_dao_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_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 + } + 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: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_component_dao_v1alpha1_dao_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_dao_v1alpha1_dao_proto_depIdxs, + }.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/dex/v1alpha1/dex.pb.go b/proto/go/gen/penumbra/core/component/dex/v1alpha1/dex.pb.go new file mode 100644 index 0000000000..dff778d886 --- /dev/null +++ b/proto/go/gen/penumbra/core/component/dex/v1alpha1/dex.pb.go @@ -0,0 +1,3401 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/component/dex/v1alpha1/dex.proto + +package dexv1alpha1 + +import ( + v1alpha14 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/fee/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/sct/v1alpha1" + v1alpha16 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/shielded_pool/v1alpha1" + v1alpha15 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/num/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/tct/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) +) + +type PositionState_PositionStateEnum int32 + +const ( + PositionState_POSITION_STATE_ENUM_UNSPECIFIED PositionState_PositionStateEnum = 0 + // The position has been opened, is active, has reserves and accumulated + // fees, and can be traded against. + PositionState_POSITION_STATE_ENUM_OPENED PositionState_PositionStateEnum = 1 + // The position has been closed, is inactive and can no longer be traded + // against, but still has reserves and accumulated fees. + PositionState_POSITION_STATE_ENUM_CLOSED PositionState_PositionStateEnum = 2 + // The final reserves and accumulated fees have been withdrawn, leaving an + // empty, inactive position awaiting (possible) retroactive rewards. + PositionState_POSITION_STATE_ENUM_WITHDRAWN PositionState_PositionStateEnum = 3 + // Any retroactive rewards have been claimed. The position is now an inert, + // historical artefact. + PositionState_POSITION_STATE_ENUM_CLAIMED PositionState_PositionStateEnum = 4 +) + +// Enum value maps for PositionState_PositionStateEnum. +var ( + PositionState_PositionStateEnum_name = map[int32]string{ + 0: "POSITION_STATE_ENUM_UNSPECIFIED", + 1: "POSITION_STATE_ENUM_OPENED", + 2: "POSITION_STATE_ENUM_CLOSED", + 3: "POSITION_STATE_ENUM_WITHDRAWN", + 4: "POSITION_STATE_ENUM_CLAIMED", + } + PositionState_PositionStateEnum_value = map[string]int32{ + "POSITION_STATE_ENUM_UNSPECIFIED": 0, + "POSITION_STATE_ENUM_OPENED": 1, + "POSITION_STATE_ENUM_CLOSED": 2, + "POSITION_STATE_ENUM_WITHDRAWN": 3, + "POSITION_STATE_ENUM_CLAIMED": 4, + } +) + +func (x PositionState_PositionStateEnum) Enum() *PositionState_PositionStateEnum { + p := new(PositionState_PositionStateEnum) + *p = x + return p +} + +func (x PositionState_PositionStateEnum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PositionState_PositionStateEnum) Descriptor() protoreflect.EnumDescriptor { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_enumTypes[0].Descriptor() +} + +func (PositionState_PositionStateEnum) Type() protoreflect.EnumType { + return &file_penumbra_core_component_dex_v1alpha1_dex_proto_enumTypes[0] +} + +func (x PositionState_PositionStateEnum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PositionState_PositionStateEnum.Descriptor instead. +func (PositionState_PositionStateEnum) EnumDescriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{20, 0} +} + +// A Penumbra ZK swap proof. +type ZKSwapProof struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *ZKSwapProof) Reset() { + *x = ZKSwapProof{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZKSwapProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZKSwapProof) ProtoMessage() {} + +func (x *ZKSwapProof) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_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 ZKSwapProof.ProtoReflect.Descriptor instead. +func (*ZKSwapProof) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{0} +} + +func (x *ZKSwapProof) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// A Penumbra ZK swap claim proof. +type ZKSwapClaimProof struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *ZKSwapClaimProof) Reset() { + *x = ZKSwapClaimProof{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZKSwapClaimProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZKSwapClaimProof) ProtoMessage() {} + +func (x *ZKSwapClaimProof) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_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 ZKSwapClaimProof.ProtoReflect.Descriptor instead. +func (*ZKSwapClaimProof) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{1} +} + +func (x *ZKSwapClaimProof) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// A transaction action that submits a swap to the dex. +type Swap struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Contains the Swap proof. + Proof *ZKSwapProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` + // Encapsulates the authorized fields of the Swap action, used in signing. + Body *SwapBody `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"` +} + +func (x *Swap) Reset() { + *x = Swap{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Swap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Swap) ProtoMessage() {} + +func (x *Swap) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_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 Swap.ProtoReflect.Descriptor instead. +func (*Swap) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{2} +} + +func (x *Swap) GetProof() *ZKSwapProof { + if x != nil { + return x.Proof + } + return nil +} + +func (x *Swap) GetBody() *SwapBody { + if x != nil { + return x.Body + } + return nil +} + +// A transaction action that obtains assets previously confirmed +// via a Swap transaction. Does not include a spend authorization +// signature, as it is only capable of consuming the NFT from a +// Swap transaction. +type SwapClaim struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Contains the SwapClaim proof. + Proof *ZKSwapClaimProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` + // Encapsulates the authorized fields of the SwapClaim action, used in signing. + Body *SwapClaimBody `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` + // The epoch duration of the chain when the swap claim took place. + EpochDuration uint64 `protobuf:"varint,7,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` +} + +func (x *SwapClaim) Reset() { + *x = SwapClaim{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapClaim) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapClaim) ProtoMessage() {} + +func (x *SwapClaim) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_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 SwapClaim.ProtoReflect.Descriptor instead. +func (*SwapClaim) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{3} +} + +func (x *SwapClaim) GetProof() *ZKSwapClaimProof { + if x != nil { + return x.Proof + } + return nil +} + +func (x *SwapClaim) GetBody() *SwapClaimBody { + if x != nil { + return x.Body + } + return nil +} + +func (x *SwapClaim) GetEpochDuration() uint64 { + if x != nil { + return x.EpochDuration + } + return 0 +} + +// Encapsulates the authorized fields of the SwapClaim action, used in signing. +type SwapClaimBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The nullifier for the Swap commitment to be consumed. + Nullifier *v1alpha1.Nullifier `protobuf:"bytes,1,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + // The fee allows `SwapClaim` without an additional `Spend`. + Fee *v1alpha11.Fee `protobuf:"bytes,2,opt,name=fee,proto3" json:"fee,omitempty"` + // Note output for asset 1. + Output_1Commitment *v1alpha12.StateCommitment `protobuf:"bytes,3,opt,name=output_1_commitment,json=output1Commitment,proto3" json:"output_1_commitment,omitempty"` + // Note output for asset 2. + Output_2Commitment *v1alpha12.StateCommitment `protobuf:"bytes,4,opt,name=output_2_commitment,json=output2Commitment,proto3" json:"output_2_commitment,omitempty"` + // Input and output amounts, and asset IDs for the assets in the swap. + OutputData *BatchSwapOutputData `protobuf:"bytes,6,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` +} + +func (x *SwapClaimBody) Reset() { + *x = SwapClaimBody{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapClaimBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapClaimBody) ProtoMessage() {} + +func (x *SwapClaimBody) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwapClaimBody.ProtoReflect.Descriptor instead. +func (*SwapClaimBody) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{4} +} + +func (x *SwapClaimBody) GetNullifier() *v1alpha1.Nullifier { + if x != nil { + return x.Nullifier + } + return nil +} + +func (x *SwapClaimBody) GetFee() *v1alpha11.Fee { + if x != nil { + return x.Fee + } + return nil +} + +func (x *SwapClaimBody) GetOutput_1Commitment() *v1alpha12.StateCommitment { + if x != nil { + return x.Output_1Commitment + } + return nil +} + +func (x *SwapClaimBody) GetOutput_2Commitment() *v1alpha12.StateCommitment { + if x != nil { + return x.Output_2Commitment + } + return nil +} + +func (x *SwapClaimBody) GetOutputData() *BatchSwapOutputData { + if x != nil { + return x.OutputData + } + return nil +} + +// The authorized data of a Swap transaction. +type SwapBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The trading pair to swap. + TradingPair *TradingPair `protobuf:"bytes,1,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + // The amount for asset 1. + Delta_1I *v1alpha13.Amount `protobuf:"bytes,2,opt,name=delta_1_i,json=delta1I,proto3" json:"delta_1_i,omitempty"` + // The amount for asset 2. + Delta_2I *v1alpha13.Amount `protobuf:"bytes,3,opt,name=delta_2_i,json=delta2I,proto3" json:"delta_2_i,omitempty"` + // A commitment to a prepaid fee for the future SwapClaim. + // This is recorded separately from delta_j_i because it's shielded; + // in the future we'll want separate commitments to each delta_j_i + // anyways in order to prove consistency with flow encryption. + FeeCommitment *v1alpha14.BalanceCommitment `protobuf:"bytes,4,opt,name=fee_commitment,json=feeCommitment,proto3" json:"fee_commitment,omitempty"` + // The swap commitment and encryption of the swap data. + Payload *SwapPayload `protobuf:"bytes,5,opt,name=payload,proto3" json:"payload,omitempty"` +} + +func (x *SwapBody) Reset() { + *x = SwapBody{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapBody) ProtoMessage() {} + +func (x *SwapBody) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwapBody.ProtoReflect.Descriptor instead. +func (*SwapBody) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{5} +} + +func (x *SwapBody) GetTradingPair() *TradingPair { + if x != nil { + return x.TradingPair + } + return nil +} + +func (x *SwapBody) GetDelta_1I() *v1alpha13.Amount { + if x != nil { + return x.Delta_1I + } + return nil +} + +func (x *SwapBody) GetDelta_2I() *v1alpha13.Amount { + if x != nil { + return x.Delta_2I + } + return nil +} + +func (x *SwapBody) GetFeeCommitment() *v1alpha14.BalanceCommitment { + if x != nil { + return x.FeeCommitment + } + return nil +} + +func (x *SwapBody) GetPayload() *SwapPayload { + if x != nil { + return x.Payload + } + return nil +} + +type SwapPayload struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Commitment *v1alpha12.StateCommitment `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` + EncryptedSwap []byte `protobuf:"bytes,2,opt,name=encrypted_swap,json=encryptedSwap,proto3" json:"encrypted_swap,omitempty"` +} + +func (x *SwapPayload) Reset() { + *x = SwapPayload{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapPayload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapPayload) ProtoMessage() {} + +func (x *SwapPayload) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwapPayload.ProtoReflect.Descriptor instead. +func (*SwapPayload) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{6} +} + +func (x *SwapPayload) GetCommitment() *v1alpha12.StateCommitment { + if x != nil { + return x.Commitment + } + return nil +} + +func (x *SwapPayload) GetEncryptedSwap() []byte { + if x != nil { + return x.EncryptedSwap + } + return nil +} + +type SwapPlaintext struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The trading pair to swap. + TradingPair *TradingPair `protobuf:"bytes,1,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + // Input amount of asset 1 + Delta_1I *v1alpha13.Amount `protobuf:"bytes,2,opt,name=delta_1_i,json=delta1I,proto3" json:"delta_1_i,omitempty"` + // Input amount of asset 2 + Delta_2I *v1alpha13.Amount `protobuf:"bytes,3,opt,name=delta_2_i,json=delta2I,proto3" json:"delta_2_i,omitempty"` + // Pre-paid fee to claim the swap + ClaimFee *v1alpha11.Fee `protobuf:"bytes,4,opt,name=claim_fee,json=claimFee,proto3" json:"claim_fee,omitempty"` + // Address that will claim the swap outputs via SwapClaim. + ClaimAddress *v1alpha15.Address `protobuf:"bytes,5,opt,name=claim_address,json=claimAddress,proto3" json:"claim_address,omitempty"` + // Swap rseed (blinding factors are derived from this) + Rseed []byte `protobuf:"bytes,6,opt,name=rseed,proto3" json:"rseed,omitempty"` +} + +func (x *SwapPlaintext) Reset() { + *x = SwapPlaintext{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapPlaintext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapPlaintext) ProtoMessage() {} + +func (x *SwapPlaintext) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwapPlaintext.ProtoReflect.Descriptor instead. +func (*SwapPlaintext) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{7} +} + +func (x *SwapPlaintext) GetTradingPair() *TradingPair { + if x != nil { + return x.TradingPair + } + return nil +} + +func (x *SwapPlaintext) GetDelta_1I() *v1alpha13.Amount { + if x != nil { + return x.Delta_1I + } + return nil +} + +func (x *SwapPlaintext) GetDelta_2I() *v1alpha13.Amount { + if x != nil { + return x.Delta_2I + } + return nil +} + +func (x *SwapPlaintext) GetClaimFee() *v1alpha11.Fee { + if x != nil { + return x.ClaimFee + } + return nil +} + +func (x *SwapPlaintext) GetClaimAddress() *v1alpha15.Address { + if x != nil { + return x.ClaimAddress + } + return nil +} + +func (x *SwapPlaintext) GetRseed() []byte { + if x != nil { + return x.Rseed + } + return nil +} + +type SwapPlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The plaintext version of the swap to be performed. + SwapPlaintext *SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` + // The blinding factor for the fee commitment. The fee in the SwapPlan is private to prevent linkability with the SwapClaim. + FeeBlinding []byte `protobuf:"bytes,2,opt,name=fee_blinding,json=feeBlinding,proto3" json:"fee_blinding,omitempty"` + // The first blinding factor to use for the ZK swap proof. + ProofBlindingR []byte `protobuf:"bytes,3,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK swap proof. + ProofBlindingS []byte `protobuf:"bytes,4,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` +} + +func (x *SwapPlan) Reset() { + *x = SwapPlan{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapPlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapPlan) ProtoMessage() {} + +func (x *SwapPlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwapPlan.ProtoReflect.Descriptor instead. +func (*SwapPlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{8} +} + +func (x *SwapPlan) GetSwapPlaintext() *SwapPlaintext { + if x != nil { + return x.SwapPlaintext + } + return nil +} + +func (x *SwapPlan) GetFeeBlinding() []byte { + if x != nil { + return x.FeeBlinding + } + return nil +} + +func (x *SwapPlan) GetProofBlindingR() []byte { + if x != nil { + return x.ProofBlindingR + } + return nil +} + +func (x *SwapPlan) GetProofBlindingS() []byte { + if x != nil { + return x.ProofBlindingS + } + return nil +} + +type SwapClaimPlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The plaintext version of the swap to be performed. + SwapPlaintext *SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` + // The position of the swap commitment. + Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` + // Input and output amounts for the Swap. + OutputData *BatchSwapOutputData `protobuf:"bytes,3,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` + // The epoch duration, used in proving. + EpochDuration uint64 `protobuf:"varint,4,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` + // The first blinding factor to use for the ZK swap claim proof. + ProofBlindingR []byte `protobuf:"bytes,5,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK swap claim proof. + ProofBlindingS []byte `protobuf:"bytes,6,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` +} + +func (x *SwapClaimPlan) Reset() { + *x = SwapClaimPlan{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapClaimPlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapClaimPlan) ProtoMessage() {} + +func (x *SwapClaimPlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwapClaimPlan.ProtoReflect.Descriptor instead. +func (*SwapClaimPlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{9} +} + +func (x *SwapClaimPlan) GetSwapPlaintext() *SwapPlaintext { + if x != nil { + return x.SwapPlaintext + } + return nil +} + +func (x *SwapClaimPlan) GetPosition() uint64 { + if x != nil { + return x.Position + } + return 0 +} + +func (x *SwapClaimPlan) GetOutputData() *BatchSwapOutputData { + if x != nil { + return x.OutputData + } + return nil +} + +func (x *SwapClaimPlan) GetEpochDuration() uint64 { + if x != nil { + return x.EpochDuration + } + return 0 +} + +func (x *SwapClaimPlan) GetProofBlindingR() []byte { + if x != nil { + return x.ProofBlindingR + } + return nil +} + +func (x *SwapClaimPlan) GetProofBlindingS() []byte { + if x != nil { + return x.ProofBlindingS + } + return nil +} + +type SwapView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to SwapView: + // + // *SwapView_Visible_ + // *SwapView_Opaque_ + SwapView isSwapView_SwapView `protobuf_oneof:"swap_view"` +} + +func (x *SwapView) Reset() { + *x = SwapView{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapView) ProtoMessage() {} + +func (x *SwapView) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwapView.ProtoReflect.Descriptor instead. +func (*SwapView) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{10} +} + +func (m *SwapView) GetSwapView() isSwapView_SwapView { + if m != nil { + return m.SwapView + } + return nil +} + +func (x *SwapView) GetVisible() *SwapView_Visible { + if x, ok := x.GetSwapView().(*SwapView_Visible_); ok { + return x.Visible + } + return nil +} + +func (x *SwapView) GetOpaque() *SwapView_Opaque { + if x, ok := x.GetSwapView().(*SwapView_Opaque_); ok { + return x.Opaque + } + return nil +} + +type isSwapView_SwapView interface { + isSwapView_SwapView() +} + +type SwapView_Visible_ struct { + Visible *SwapView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` +} + +type SwapView_Opaque_ struct { + Opaque *SwapView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` +} + +func (*SwapView_Visible_) isSwapView_SwapView() {} + +func (*SwapView_Opaque_) isSwapView_SwapView() {} + +type SwapClaimView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to SwapClaimView: + // + // *SwapClaimView_Visible_ + // *SwapClaimView_Opaque_ + SwapClaimView isSwapClaimView_SwapClaimView `protobuf_oneof:"swap_claim_view"` +} + +func (x *SwapClaimView) Reset() { + *x = SwapClaimView{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapClaimView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapClaimView) ProtoMessage() {} + +func (x *SwapClaimView) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwapClaimView.ProtoReflect.Descriptor instead. +func (*SwapClaimView) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{11} +} + +func (m *SwapClaimView) GetSwapClaimView() isSwapClaimView_SwapClaimView { + if m != nil { + return m.SwapClaimView + } + return nil +} + +func (x *SwapClaimView) GetVisible() *SwapClaimView_Visible { + if x, ok := x.GetSwapClaimView().(*SwapClaimView_Visible_); ok { + return x.Visible + } + return nil +} + +func (x *SwapClaimView) GetOpaque() *SwapClaimView_Opaque { + if x, ok := x.GetSwapClaimView().(*SwapClaimView_Opaque_); ok { + return x.Opaque + } + return nil +} + +type isSwapClaimView_SwapClaimView interface { + isSwapClaimView_SwapClaimView() +} + +type SwapClaimView_Visible_ struct { + Visible *SwapClaimView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` +} + +type SwapClaimView_Opaque_ struct { + Opaque *SwapClaimView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` +} + +func (*SwapClaimView_Visible_) isSwapClaimView_SwapClaimView() {} + +func (*SwapClaimView_Opaque_) isSwapClaimView_SwapClaimView() {} + +// Holds two asset IDs. Ordering doesn't reflect trading direction. Instead, we +// require `asset_1 < asset_2` as field elements, to ensure a canonical +// representation of an unordered pair. +type TradingPair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The first asset of the pair. + Asset_1 *v1alpha14.AssetId `protobuf:"bytes,1,opt,name=asset_1,json=asset1,proto3" json:"asset_1,omitempty"` + // The second asset of the pair. + Asset_2 *v1alpha14.AssetId `protobuf:"bytes,2,opt,name=asset_2,json=asset2,proto3" json:"asset_2,omitempty"` +} + +func (x *TradingPair) Reset() { + *x = TradingPair{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TradingPair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TradingPair) ProtoMessage() {} + +func (x *TradingPair) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TradingPair.ProtoReflect.Descriptor instead. +func (*TradingPair) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{12} +} + +func (x *TradingPair) GetAsset_1() *v1alpha14.AssetId { + if x != nil { + return x.Asset_1 + } + return nil +} + +func (x *TradingPair) GetAsset_2() *v1alpha14.AssetId { + if x != nil { + return x.Asset_2 + } + return nil +} + +// Encodes a trading pair starting from asset `start` +// and ending on asset `end`. +type DirectedTradingPair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The start asset of the pair. + Start *v1alpha14.AssetId `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` + // The end asset of the pair. + End *v1alpha14.AssetId `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` +} + +func (x *DirectedTradingPair) Reset() { + *x = DirectedTradingPair{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DirectedTradingPair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectedTradingPair) ProtoMessage() {} + +func (x *DirectedTradingPair) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DirectedTradingPair.ProtoReflect.Descriptor instead. +func (*DirectedTradingPair) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{13} +} + +func (x *DirectedTradingPair) GetStart() *v1alpha14.AssetId { + if x != nil { + return x.Start + } + return nil +} + +func (x *DirectedTradingPair) GetEnd() *v1alpha14.AssetId { + if x != nil { + return x.End + } + return nil +} + +// Records the result of a batch swap on-chain. +// +// Used as a public input to a swap claim proof, as it implies the effective +// clearing price for the batch. +type BatchSwapOutputData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The total amount of asset 1 that was input to the batch swap. + Delta_1 *v1alpha13.Amount `protobuf:"bytes,1,opt,name=delta_1,json=delta1,proto3" json:"delta_1,omitempty"` + // The total amount of asset 2 that was input to the batch swap. + Delta_2 *v1alpha13.Amount `protobuf:"bytes,2,opt,name=delta_2,json=delta2,proto3" json:"delta_2,omitempty"` + // The total amount of asset 1 that was output from the batch swap for 2=>1 trades. + Lambda_1 *v1alpha13.Amount `protobuf:"bytes,3,opt,name=lambda_1,json=lambda1,proto3" json:"lambda_1,omitempty"` + // The total amount of asset 2 that was output from the batch swap for 1=>2 trades. + Lambda_2 *v1alpha13.Amount `protobuf:"bytes,4,opt,name=lambda_2,json=lambda2,proto3" json:"lambda_2,omitempty"` + // The total amount of asset 1 that was returned unfilled from the batch swap for 1=>2 trades. + Unfilled_1 *v1alpha13.Amount `protobuf:"bytes,5,opt,name=unfilled_1,json=unfilled1,proto3" json:"unfilled_1,omitempty"` + // The total amount of asset 2 that was returned unfilled from the batch swap for 2=>1 trades. + Unfilled_2 *v1alpha13.Amount `protobuf:"bytes,6,opt,name=unfilled_2,json=unfilled2,proto3" json:"unfilled_2,omitempty"` + // The height for which the batch swap data is valid. + Height uint64 `protobuf:"varint,7,opt,name=height,proto3" json:"height,omitempty"` + // The trading pair associated with the batch swap. + TradingPair *TradingPair `protobuf:"bytes,8,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + // The starting block height of the epoch for which the batch swap data is valid. + EpochStartingHeight uint64 `protobuf:"varint,9,opt,name=epoch_starting_height,json=epochStartingHeight,proto3" json:"epoch_starting_height,omitempty"` +} + +func (x *BatchSwapOutputData) Reset() { + *x = BatchSwapOutputData{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchSwapOutputData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchSwapOutputData) ProtoMessage() {} + +func (x *BatchSwapOutputData) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[14] + 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 BatchSwapOutputData.ProtoReflect.Descriptor instead. +func (*BatchSwapOutputData) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{14} +} + +func (x *BatchSwapOutputData) GetDelta_1() *v1alpha13.Amount { + if x != nil { + return x.Delta_1 + } + return nil +} + +func (x *BatchSwapOutputData) GetDelta_2() *v1alpha13.Amount { + if x != nil { + return x.Delta_2 + } + return nil +} + +func (x *BatchSwapOutputData) GetLambda_1() *v1alpha13.Amount { + if x != nil { + return x.Lambda_1 + } + return nil +} + +func (x *BatchSwapOutputData) GetLambda_2() *v1alpha13.Amount { + if x != nil { + return x.Lambda_2 + } + return nil +} + +func (x *BatchSwapOutputData) GetUnfilled_1() *v1alpha13.Amount { + if x != nil { + return x.Unfilled_1 + } + return nil +} + +func (x *BatchSwapOutputData) GetUnfilled_2() *v1alpha13.Amount { + if x != nil { + return x.Unfilled_2 + } + return nil +} + +func (x *BatchSwapOutputData) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *BatchSwapOutputData) GetTradingPair() *TradingPair { + if x != nil { + return x.TradingPair + } + return nil +} + +func (x *BatchSwapOutputData) GetEpochStartingHeight() uint64 { + if x != nil { + return x.EpochStartingHeight + } + return 0 +} + +// The trading function for a specific pair. +// For a pair (asset_1, asset_2), a trading function is defined by: +// `phi(R) = p*R_1 + q*R_2` and `gamma = 1 - fee`. +// The trading function is frequently referred to as "phi". +type TradingFunction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Component *BareTradingFunction `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"` + Pair *TradingPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` +} + +func (x *TradingFunction) Reset() { + *x = TradingFunction{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TradingFunction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TradingFunction) ProtoMessage() {} + +func (x *TradingFunction) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[15] + 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 TradingFunction.ProtoReflect.Descriptor instead. +func (*TradingFunction) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{15} +} + +func (x *TradingFunction) GetComponent() *BareTradingFunction { + if x != nil { + return x.Component + } + return nil +} + +func (x *TradingFunction) GetPair() *TradingPair { + if x != nil { + return x.Pair + } + return nil +} + +// The minimum amount of data describing a trading function. +// +// This implicitly treats the trading function as being between assets 1 and 2, +// without specifying what those assets are, to avoid duplicating data (each +// asset ID alone is twice the size of the trading function). +type BareTradingFunction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Fee uint32 `protobuf:"varint,1,opt,name=fee,proto3" json:"fee,omitempty"` + // This is not actually an amount, it's an integer the same width as an amount + P *v1alpha13.Amount `protobuf:"bytes,2,opt,name=p,proto3" json:"p,omitempty"` + // This is not actually an amount, it's an integer the same width as an amount + Q *v1alpha13.Amount `protobuf:"bytes,3,opt,name=q,proto3" json:"q,omitempty"` +} + +func (x *BareTradingFunction) Reset() { + *x = BareTradingFunction{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BareTradingFunction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BareTradingFunction) ProtoMessage() {} + +func (x *BareTradingFunction) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[16] + 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 BareTradingFunction.ProtoReflect.Descriptor instead. +func (*BareTradingFunction) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{16} +} + +func (x *BareTradingFunction) GetFee() uint32 { + if x != nil { + return x.Fee + } + return 0 +} + +func (x *BareTradingFunction) GetP() *v1alpha13.Amount { + if x != nil { + return x.P + } + return nil +} + +func (x *BareTradingFunction) GetQ() *v1alpha13.Amount { + if x != nil { + return x.Q + } + return nil +} + +// The reserves of a position. +// +// Like a position, this implicitly treats the trading function as being +// between assets 1 and 2, without specifying what those assets are, to avoid +// duplicating data (each asset ID alone is four times the size of the +// reserves). +type Reserves struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + R1 *v1alpha13.Amount `protobuf:"bytes,1,opt,name=r1,proto3" json:"r1,omitempty"` + R2 *v1alpha13.Amount `protobuf:"bytes,2,opt,name=r2,proto3" json:"r2,omitempty"` +} + +func (x *Reserves) Reset() { + *x = Reserves{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Reserves) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Reserves) ProtoMessage() {} + +func (x *Reserves) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[17] + 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 Reserves.ProtoReflect.Descriptor instead. +func (*Reserves) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{17} +} + +func (x *Reserves) GetR1() *v1alpha13.Amount { + if x != nil { + return x.R1 + } + return nil +} + +func (x *Reserves) GetR2() *v1alpha13.Amount { + if x != nil { + return x.R2 + } + return nil +} + +// Data identifying a position. +type Position struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Phi *TradingFunction `protobuf:"bytes,1,opt,name=phi,proto3" json:"phi,omitempty"` + // A random value used to disambiguate different positions with the exact same + // trading function. The chain should reject newly created positions with the + // same nonce as an existing position. This ensures that `PositionId`s will + // be unique, and allows us to track position ownership with a + // sequence of stateful NFTs based on the `PositionId`. + Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` + State *PositionState `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` + Reserves *Reserves `protobuf:"bytes,4,opt,name=reserves,proto3" json:"reserves,omitempty"` + // / If set to true, the position is a limit-order and will be closed + // / immediately after being filled. + CloseOnFill bool `protobuf:"varint,5,opt,name=close_on_fill,json=closeOnFill,proto3" json:"close_on_fill,omitempty"` +} + +func (x *Position) Reset() { + *x = Position{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Position) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Position) ProtoMessage() {} + +func (x *Position) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[18] + 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 Position.ProtoReflect.Descriptor instead. +func (*Position) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{18} +} + +func (x *Position) GetPhi() *TradingFunction { + if x != nil { + return x.Phi + } + return nil +} + +func (x *Position) GetNonce() []byte { + if x != nil { + return x.Nonce + } + return nil +} + +func (x *Position) GetState() *PositionState { + if x != nil { + return x.State + } + return nil +} + +func (x *Position) GetReserves() *Reserves { + if x != nil { + return x.Reserves + } + return nil +} + +func (x *Position) GetCloseOnFill() bool { + if x != nil { + return x.CloseOnFill + } + return false +} + +// A hash of a `Position`. +type PositionId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The bytes of the position ID. + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. + AltBech32M string `protobuf:"bytes,2,opt,name=alt_bech32m,json=altBech32m,proto3" json:"alt_bech32m,omitempty"` +} + +func (x *PositionId) Reset() { + *x = PositionId{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionId) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionId) ProtoMessage() {} + +func (x *PositionId) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[19] + 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 PositionId.ProtoReflect.Descriptor instead. +func (*PositionId) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{19} +} + +func (x *PositionId) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +func (x *PositionId) GetAltBech32M() string { + if x != nil { + return x.AltBech32M + } + return "" +} + +// The state of a position. +type PositionState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State PositionState_PositionStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.component.dex.v1alpha1.PositionState_PositionStateEnum" json:"state,omitempty"` +} + +func (x *PositionState) Reset() { + *x = PositionState{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionState) ProtoMessage() {} + +func (x *PositionState) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[20] + 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 PositionState.ProtoReflect.Descriptor instead. +func (*PositionState) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{20} +} + +func (x *PositionState) GetState() PositionState_PositionStateEnum { + if x != nil { + return x.State + } + return PositionState_POSITION_STATE_ENUM_UNSPECIFIED +} + +// An LPNFT tracking both ownership and state of a position. +// +// Tracking the state as part of the LPNFT means that all LP-related actions can +// be authorized by spending funds: a state transition (e.g., closing a +// position) is modeled as spending an "open position LPNFT" and minting a +// "closed position LPNFT" for the same (globally unique) position ID. +// +// This means that the LP mechanics can be agnostic to the mechanism used to +// record custody and spend authorization. For instance, they can be recorded +// in the shielded pool, where custody is based on off-chain keys, or they could +// be recorded in a programmatic on-chain account (in the future, e.g., to +// support interchain accounts). This also means that LP-related actions don't +// require any cryptographic implementation (proofs, signatures, etc), other +// than hooking into the value commitment mechanism used for transaction +// balances. +type LpNft struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + State *PositionState `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` +} + +func (x *LpNft) Reset() { + *x = LpNft{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LpNft) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LpNft) ProtoMessage() {} + +func (x *LpNft) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[21] + 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 LpNft.ProtoReflect.Descriptor instead. +func (*LpNft) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{21} +} + +func (x *LpNft) GetPositionId() *PositionId { + if x != nil { + return x.PositionId + } + return nil +} + +func (x *LpNft) GetState() *PositionState { + if x != nil { + return x.State + } + return nil +} + +// A transaction action that opens a new position. +// +// This action's contribution to the transaction's value balance is to consume +// the initial reserves and contribute an opened position NFT. +type PositionOpen struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Contains the data defining the position, sufficient to compute its `PositionId`. + // + // Positions are immutable, so the `PositionData` (and hence the `PositionId`) + // are unchanged over the entire lifetime of the position. + Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` +} + +func (x *PositionOpen) Reset() { + *x = PositionOpen{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionOpen) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionOpen) ProtoMessage() {} + +func (x *PositionOpen) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[22] + 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 PositionOpen.ProtoReflect.Descriptor instead. +func (*PositionOpen) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{22} +} + +func (x *PositionOpen) GetPosition() *Position { + if x != nil { + return x.Position + } + return nil +} + +// A transaction action that closes a position. +// +// This action's contribution to the transaction's value balance is to consume +// an opened position NFT and contribute a closed position NFT. +// +// Closing a position does not immediately withdraw funds, because Penumbra +// transactions (like any ZK transaction model) are early-binding: the prover +// must know the state transition they prove knowledge of, and they cannot know +// the final reserves with certainty until after the position has been deactivated. +type PositionClose struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` +} + +func (x *PositionClose) Reset() { + *x = PositionClose{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionClose) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionClose) ProtoMessage() {} + +func (x *PositionClose) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[23] + 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 PositionClose.ProtoReflect.Descriptor instead. +func (*PositionClose) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{23} +} + +func (x *PositionClose) GetPositionId() *PositionId { + if x != nil { + return x.PositionId + } + return nil +} + +// A transaction action that withdraws funds from a closed position. +// +// This action's contribution to the transaction's value balance is to consume a +// closed position NFT and contribute a withdrawn position NFT, as well as all +// of the funds that were in the position at the time of closing. +type PositionWithdraw struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + // A transparent (zero blinding factor) commitment to the position's final reserves and fees. + // + // The chain will check this commitment by recomputing it with the on-chain state. + ReservesCommitment *v1alpha14.BalanceCommitment `protobuf:"bytes,2,opt,name=reserves_commitment,json=reservesCommitment,proto3" json:"reserves_commitment,omitempty"` +} + +func (x *PositionWithdraw) Reset() { + *x = PositionWithdraw{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionWithdraw) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionWithdraw) ProtoMessage() {} + +func (x *PositionWithdraw) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[24] + 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 PositionWithdraw.ProtoReflect.Descriptor instead. +func (*PositionWithdraw) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{24} +} + +func (x *PositionWithdraw) GetPositionId() *PositionId { + if x != nil { + return x.PositionId + } + return nil +} + +func (x *PositionWithdraw) GetReservesCommitment() *v1alpha14.BalanceCommitment { + if x != nil { + return x.ReservesCommitment + } + return nil +} + +// A transaction action that claims retroactive rewards for a historical +// position. +// +// This action's contribution to the transaction's value balance is to consume a +// withdrawn position NFT and contribute its reward balance. +type PositionRewardClaim struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + // A transparent (zero blinding factor) commitment to the position's accumulated rewards. + // + // The chain will check this commitment by recomputing it with the on-chain state. + RewardsCommitment *v1alpha14.BalanceCommitment `protobuf:"bytes,2,opt,name=rewards_commitment,json=rewardsCommitment,proto3" json:"rewards_commitment,omitempty"` +} + +func (x *PositionRewardClaim) Reset() { + *x = PositionRewardClaim{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionRewardClaim) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionRewardClaim) ProtoMessage() {} + +func (x *PositionRewardClaim) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[25] + 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 PositionRewardClaim.ProtoReflect.Descriptor instead. +func (*PositionRewardClaim) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{25} +} + +func (x *PositionRewardClaim) GetPositionId() *PositionId { + if x != nil { + return x.PositionId + } + return nil +} + +func (x *PositionRewardClaim) GetRewardsCommitment() *v1alpha14.BalanceCommitment { + if x != nil { + return x.RewardsCommitment + } + return nil +} + +// Contains the entire execution of a particular swap. +type SwapExecution struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Traces []*SwapExecution_Trace `protobuf:"bytes,1,rep,name=traces,proto3" json:"traces,omitempty"` + // The total input amount for this execution. + Input *v1alpha14.Value `protobuf:"bytes,2,opt,name=input,proto3" json:"input,omitempty"` + // The total output amount for this execution. + Output *v1alpha14.Value `protobuf:"bytes,3,opt,name=output,proto3" json:"output,omitempty"` +} + +func (x *SwapExecution) Reset() { + *x = SwapExecution{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapExecution) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapExecution) ProtoMessage() {} + +func (x *SwapExecution) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[26] + 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 SwapExecution.ProtoReflect.Descriptor instead. +func (*SwapExecution) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{26} +} + +func (x *SwapExecution) GetTraces() []*SwapExecution_Trace { + if x != nil { + return x.Traces + } + return nil +} + +func (x *SwapExecution) GetInput() *v1alpha14.Value { + if x != nil { + return x.Input + } + return nil +} + +func (x *SwapExecution) GetOutput() *v1alpha14.Value { + if x != nil { + return x.Output + } + return nil +} + +// Contains private and public data for withdrawing funds from a closed position. +type PositionWithdrawPlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reserves *Reserves `protobuf:"bytes,1,opt,name=reserves,proto3" json:"reserves,omitempty"` + PositionId *PositionId `protobuf:"bytes,2,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + Pair *TradingPair `protobuf:"bytes,3,opt,name=pair,proto3" json:"pair,omitempty"` +} + +func (x *PositionWithdrawPlan) Reset() { + *x = PositionWithdrawPlan{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionWithdrawPlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionWithdrawPlan) ProtoMessage() {} + +func (x *PositionWithdrawPlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[27] + 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 PositionWithdrawPlan.ProtoReflect.Descriptor instead. +func (*PositionWithdrawPlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{27} +} + +func (x *PositionWithdrawPlan) GetReserves() *Reserves { + if x != nil { + return x.Reserves + } + return nil +} + +func (x *PositionWithdrawPlan) GetPositionId() *PositionId { + if x != nil { + return x.PositionId + } + return nil +} + +func (x *PositionWithdrawPlan) GetPair() *TradingPair { + if x != nil { + return x.Pair + } + return nil +} + +// Contains private and public data for claiming rewards from a position. +type PositionRewardClaimPlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reserves *Reserves `protobuf:"bytes,1,opt,name=reserves,proto3" json:"reserves,omitempty"` +} + +func (x *PositionRewardClaimPlan) Reset() { + *x = PositionRewardClaimPlan{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionRewardClaimPlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionRewardClaimPlan) ProtoMessage() {} + +func (x *PositionRewardClaimPlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[28] + 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 PositionRewardClaimPlan.ProtoReflect.Descriptor instead. +func (*PositionRewardClaimPlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{28} +} + +func (x *PositionRewardClaimPlan) GetReserves() *Reserves { + if x != nil { + return x.Reserves + } + return nil +} + +type SwapView_Visible struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Swap *Swap `protobuf:"bytes,1,opt,name=swap,proto3" json:"swap,omitempty"` + SwapPlaintext *SwapPlaintext `protobuf:"bytes,3,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` +} + +func (x *SwapView_Visible) Reset() { + *x = SwapView_Visible{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapView_Visible) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapView_Visible) ProtoMessage() {} + +func (x *SwapView_Visible) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[29] + 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 SwapView_Visible.ProtoReflect.Descriptor instead. +func (*SwapView_Visible) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{10, 0} +} + +func (x *SwapView_Visible) GetSwap() *Swap { + if x != nil { + return x.Swap + } + return nil +} + +func (x *SwapView_Visible) GetSwapPlaintext() *SwapPlaintext { + if x != nil { + return x.SwapPlaintext + } + return nil +} + +type SwapView_Opaque struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Swap *Swap `protobuf:"bytes,1,opt,name=swap,proto3" json:"swap,omitempty"` +} + +func (x *SwapView_Opaque) Reset() { + *x = SwapView_Opaque{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapView_Opaque) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapView_Opaque) ProtoMessage() {} + +func (x *SwapView_Opaque) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[30] + 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 SwapView_Opaque.ProtoReflect.Descriptor instead. +func (*SwapView_Opaque) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{10, 1} +} + +func (x *SwapView_Opaque) GetSwap() *Swap { + if x != nil { + return x.Swap + } + return nil +} + +type SwapClaimView_Visible struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SwapClaim *SwapClaim `protobuf:"bytes,1,opt,name=swap_claim,json=swapClaim,proto3" json:"swap_claim,omitempty"` + Output_1 *v1alpha16.NoteView `protobuf:"bytes,2,opt,name=output_1,json=output1,proto3" json:"output_1,omitempty"` + Output_2 *v1alpha16.NoteView `protobuf:"bytes,3,opt,name=output_2,json=output2,proto3" json:"output_2,omitempty"` +} + +func (x *SwapClaimView_Visible) Reset() { + *x = SwapClaimView_Visible{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapClaimView_Visible) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapClaimView_Visible) ProtoMessage() {} + +func (x *SwapClaimView_Visible) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[31] + 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 SwapClaimView_Visible.ProtoReflect.Descriptor instead. +func (*SwapClaimView_Visible) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{11, 0} +} + +func (x *SwapClaimView_Visible) GetSwapClaim() *SwapClaim { + if x != nil { + return x.SwapClaim + } + return nil +} + +func (x *SwapClaimView_Visible) GetOutput_1() *v1alpha16.NoteView { + if x != nil { + return x.Output_1 + } + return nil +} + +func (x *SwapClaimView_Visible) GetOutput_2() *v1alpha16.NoteView { + if x != nil { + return x.Output_2 + } + return nil +} + +type SwapClaimView_Opaque struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SwapClaim *SwapClaim `protobuf:"bytes,1,opt,name=swap_claim,json=swapClaim,proto3" json:"swap_claim,omitempty"` +} + +func (x *SwapClaimView_Opaque) Reset() { + *x = SwapClaimView_Opaque{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapClaimView_Opaque) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapClaimView_Opaque) ProtoMessage() {} + +func (x *SwapClaimView_Opaque) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[32] + 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 SwapClaimView_Opaque.ProtoReflect.Descriptor instead. +func (*SwapClaimView_Opaque) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{11, 1} +} + +func (x *SwapClaimView_Opaque) GetSwapClaim() *SwapClaim { + if x != nil { + return x.SwapClaim + } + return nil +} + +// Contains all individual steps consisting of a trade trace. +type SwapExecution_Trace struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Each step in the trade trace. + Value []*v1alpha14.Value `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"` +} + +func (x *SwapExecution_Trace) Reset() { + *x = SwapExecution_Trace{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwapExecution_Trace) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwapExecution_Trace) ProtoMessage() {} + +func (x *SwapExecution_Trace) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[33] + 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 SwapExecution_Trace.ProtoReflect.Descriptor instead. +func (*SwapExecution_Trace) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{26, 0} +} + +func (x *SwapExecution_Trace) GetValue() []*v1alpha14.Value { + if x != nil { + return x.Value + } + return nil +} + +var File_penumbra_core_component_dex_v1alpha1_dex_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_dex_v1alpha1_dex_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, 0x65, 0x78, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x78, 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, 0x65, 0x78, 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, 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, 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, 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, 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, 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, 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, 0x22, 0x23, 0x0a, 0x0b, 0x5a, 0x4b, + 0x53, 0x77, 0x61, 0x70, 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, + 0x28, 0x0a, 0x10, 0x5a, 0x4b, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 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, 0x93, 0x01, 0x0a, 0x04, 0x53, 0x77, + 0x61, 0x70, 0x12, 0x47, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 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, 0x64, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x5a, 0x4b, 0x53, 0x77, 0x61, 0x70, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x42, 0x0a, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x18, 0x04, 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, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, + 0xc9, 0x01, 0x0a, 0x09, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x4c, 0x0a, + 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x5a, 0x4b, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x47, 0x0a, 0x04, 0x62, + 0x6f, 0x64, 0x79, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, + 0x62, 0x6f, 0x64, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb5, 0x03, 0x0a, 0x0d, + 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x42, 0x6f, 0x64, 0x79, 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, 0x3b, 0x0a, 0x03, + 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 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, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x5d, 0x0a, 0x13, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x5f, 0x31, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x03, 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, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x31, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x32, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x04, 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, 0x11, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x32, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5a, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 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, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x22, 0x85, 0x03, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x70, 0x42, 0x6f, 0x64, 0x79, + 0x12, 0x54, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, + 0x31, 0x5f, 0x69, 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, 0x07, 0x64, + 0x65, 0x6c, 0x74, 0x61, 0x31, 0x49, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, + 0x32, 0x5f, 0x69, 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, 0x07, 0x64, + 0x65, 0x6c, 0x74, 0x61, 0x32, 0x49, 0x12, 0x56, 0x0a, 0x0e, 0x66, 0x65, 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, + 0x0d, 0x66, 0x65, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x0b, + 0x53, 0x77, 0x61, 0x70, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 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, 0x25, 0x0a, 0x0e, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, 0x77, 0x61, + 0x70, 0x22, 0x8e, 0x03, 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x12, 0x54, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x61, 0x69, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x6c, + 0x74, 0x61, 0x5f, 0x31, 0x5f, 0x69, 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, 0x07, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x31, 0x49, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x6c, + 0x74, 0x61, 0x5f, 0x32, 0x5f, 0x69, 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, 0x07, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x32, 0x49, 0x12, 0x46, 0x0a, 0x09, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 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, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x46, 0x65, + 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x05, 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, 0x0c, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x73, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x73, 0x65, + 0x65, 0x64, 0x22, 0xdd, 0x01, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x12, + 0x5a, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, + 0x74, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, + 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x73, 0x77, + 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x66, + 0x65, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0b, 0x66, 0x65, 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, 0x03, 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, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x53, 0x22, 0xde, 0x02, 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x5a, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6c, 0x61, + 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x52, 0x0d, 0x73, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 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, 0x5a, 0x0a, 0x0b, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 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, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, + 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0d, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x72, 0x18, 0x05, 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, 0x06, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x22, 0xae, 0x03, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x70, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x52, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 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, 0x64, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x56, 0x69, 0x65, + 0x77, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, + 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, 0x64, + 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, + 0x56, 0x69, 0x65, 0x77, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x70, 0x61, 0x71, 0x75, 0x65, 0x1a, 0xa5, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 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, 0x52, 0x04, 0x73, 0x77, 0x61, + 0x70, 0x12, 0x5a, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x03, 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, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, + 0x73, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x48, 0x0a, + 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 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, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x42, 0x0b, 0x0a, 0x09, 0x73, 0x77, 0x61, 0x70, 0x5f, + 0x76, 0x69, 0x65, 0x77, 0x22, 0xb1, 0x04, 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x12, 0x57, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 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, 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, 0x2e, 0x56, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, + 0x54, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 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, 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, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x70, 0x61, 0x71, 0x75, 0x65, 0x1a, 0x83, 0x02, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x12, 0x4e, 0x0a, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 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, + 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, + 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x09, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, + 0x6d, 0x12, 0x53, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x31, 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, 0x07, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x31, 0x12, 0x53, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x32, 0x18, 0x03, 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, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x32, 0x1a, 0x58, 0x0a, 0x06, 0x4f, + 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x4e, 0x0a, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x09, 0x73, 0x77, 0x61, 0x70, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x42, 0x11, 0x0a, 0x0f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x8d, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 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, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x31, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 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, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x32, 0x22, 0x8b, 0x01, 0x0a, 0x13, 0x44, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, + 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 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, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x37, 0x0a, + 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 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, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xb5, 0x04, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x31, 0x18, 0x01, 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, 0x06, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x31, 0x12, 0x3b, 0x0a, 0x07, 0x64, + 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x32, 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, 0x06, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x32, 0x12, 0x3d, 0x0a, 0x08, 0x6c, 0x61, 0x6d, 0x62, + 0x64, 0x61, 0x5f, 0x31, 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, 0x07, + 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x31, 0x12, 0x3d, 0x0a, 0x08, 0x6c, 0x61, 0x6d, 0x62, 0x64, + 0x61, 0x5f, 0x32, 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, 0x07, 0x6c, + 0x61, 0x6d, 0x62, 0x64, 0x61, 0x32, 0x12, 0x41, 0x0a, 0x0a, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, + 0x65, 0x64, 0x5f, 0x31, 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, 0x09, + 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x31, 0x12, 0x41, 0x0a, 0x0a, 0x75, 0x6e, 0x66, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x32, 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, 0x09, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x32, 0x12, 0x16, 0x0a, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x54, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x70, 0x61, 0x69, 0x72, 0x18, 0x08, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, + 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x70, + 0x6f, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x13, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xb1, + 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 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, + 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x72, + 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x70, + 0x61, 0x69, 0x72, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, + 0x69, 0x72, 0x22, 0x8b, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x72, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x30, 0x0a, 0x01, + 0x70, 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, 0x01, 0x70, 0x12, 0x30, + 0x0a, 0x01, 0x71, 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, 0x01, 0x71, + 0x22, 0x72, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x02, + 0x72, 0x31, 0x18, 0x01, 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, 0x02, 0x72, 0x31, + 0x12, 0x32, 0x0a, 0x02, 0x72, 0x32, 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, 0x02, 0x72, 0x32, 0x22, 0xa4, 0x02, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x47, 0x0a, 0x03, 0x70, 0x68, 0x69, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x70, 0x68, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, + 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, + 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 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, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x18, 0x04, 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, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x6c, 0x6f, 0x73, 0x65, + 0x5f, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x4f, 0x6e, 0x46, 0x69, 0x6c, 0x6c, 0x22, 0x43, 0x0a, 0x0a, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, + 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x74, 0x5f, 0x62, 0x65, 0x63, 0x68, 0x33, 0x32, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x74, 0x42, 0x65, 0x63, 0x68, 0x33, 0x32, 0x6d, + 0x22, 0xab, 0x02, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x64, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, + 0xbc, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 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, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, + 0x4d, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, + 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, + 0x4d, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, 0x52, 0x41, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x1f, 0x0a, + 0x1b, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x43, 0x4c, 0x41, 0x49, 0x4d, 0x45, 0x44, 0x10, 0x04, 0x22, 0xa5, + 0x01, 0x0a, 0x05, 0x4c, 0x70, 0x4e, 0x66, 0x74, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, + 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x5a, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x4a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 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, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x62, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, + 0x6f, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x51, 0x0a, 0x0b, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x60, + 0x0a, 0x13, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 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, 0x12, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0xc8, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, + 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5e, 0x0a, 0x12, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x02, 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, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9e, 0x02, 0x0a, 0x0d, + 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, + 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 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, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, + 0x12, 0x39, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, 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, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x03, 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, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, 0x42, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x63, + 0x65, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 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, 0xfc, 0x01, 0x0a, + 0x14, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x4a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x73, 0x18, 0x01, 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, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x73, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x02, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, 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, 0x64, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x22, 0x65, 0x0a, 0x17, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x4a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x73, 0x18, 0x01, 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, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x73, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, + 0x08, 0x44, 0x65, 0x78, 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, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x3b, 0x64, 0x65, 0x78, 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, 0x65, + 0x78, 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, 0x65, 0x78, 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, 0x65, 0x78, 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, 0x65, 0x78, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescOnce sync.Once + file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescData = file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDesc +) + +func file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescGZIP() []byte { + file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescData) + }) + return file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDescData +} + +var file_penumbra_core_component_dex_v1alpha1_dex_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes = make([]protoimpl.MessageInfo, 34) +var file_penumbra_core_component_dex_v1alpha1_dex_proto_goTypes = []interface{}{ + (PositionState_PositionStateEnum)(0), // 0: penumbra.core.component.dex.v1alpha1.PositionState.PositionStateEnum + (*ZKSwapProof)(nil), // 1: penumbra.core.component.dex.v1alpha1.ZKSwapProof + (*ZKSwapClaimProof)(nil), // 2: penumbra.core.component.dex.v1alpha1.ZKSwapClaimProof + (*Swap)(nil), // 3: penumbra.core.component.dex.v1alpha1.Swap + (*SwapClaim)(nil), // 4: penumbra.core.component.dex.v1alpha1.SwapClaim + (*SwapClaimBody)(nil), // 5: penumbra.core.component.dex.v1alpha1.SwapClaimBody + (*SwapBody)(nil), // 6: penumbra.core.component.dex.v1alpha1.SwapBody + (*SwapPayload)(nil), // 7: penumbra.core.component.dex.v1alpha1.SwapPayload + (*SwapPlaintext)(nil), // 8: penumbra.core.component.dex.v1alpha1.SwapPlaintext + (*SwapPlan)(nil), // 9: penumbra.core.component.dex.v1alpha1.SwapPlan + (*SwapClaimPlan)(nil), // 10: penumbra.core.component.dex.v1alpha1.SwapClaimPlan + (*SwapView)(nil), // 11: penumbra.core.component.dex.v1alpha1.SwapView + (*SwapClaimView)(nil), // 12: penumbra.core.component.dex.v1alpha1.SwapClaimView + (*TradingPair)(nil), // 13: penumbra.core.component.dex.v1alpha1.TradingPair + (*DirectedTradingPair)(nil), // 14: penumbra.core.component.dex.v1alpha1.DirectedTradingPair + (*BatchSwapOutputData)(nil), // 15: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData + (*TradingFunction)(nil), // 16: penumbra.core.component.dex.v1alpha1.TradingFunction + (*BareTradingFunction)(nil), // 17: penumbra.core.component.dex.v1alpha1.BareTradingFunction + (*Reserves)(nil), // 18: penumbra.core.component.dex.v1alpha1.Reserves + (*Position)(nil), // 19: penumbra.core.component.dex.v1alpha1.Position + (*PositionId)(nil), // 20: penumbra.core.component.dex.v1alpha1.PositionId + (*PositionState)(nil), // 21: penumbra.core.component.dex.v1alpha1.PositionState + (*LpNft)(nil), // 22: penumbra.core.component.dex.v1alpha1.LpNft + (*PositionOpen)(nil), // 23: penumbra.core.component.dex.v1alpha1.PositionOpen + (*PositionClose)(nil), // 24: penumbra.core.component.dex.v1alpha1.PositionClose + (*PositionWithdraw)(nil), // 25: penumbra.core.component.dex.v1alpha1.PositionWithdraw + (*PositionRewardClaim)(nil), // 26: penumbra.core.component.dex.v1alpha1.PositionRewardClaim + (*SwapExecution)(nil), // 27: penumbra.core.component.dex.v1alpha1.SwapExecution + (*PositionWithdrawPlan)(nil), // 28: penumbra.core.component.dex.v1alpha1.PositionWithdrawPlan + (*PositionRewardClaimPlan)(nil), // 29: penumbra.core.component.dex.v1alpha1.PositionRewardClaimPlan + (*SwapView_Visible)(nil), // 30: penumbra.core.component.dex.v1alpha1.SwapView.Visible + (*SwapView_Opaque)(nil), // 31: penumbra.core.component.dex.v1alpha1.SwapView.Opaque + (*SwapClaimView_Visible)(nil), // 32: penumbra.core.component.dex.v1alpha1.SwapClaimView.Visible + (*SwapClaimView_Opaque)(nil), // 33: penumbra.core.component.dex.v1alpha1.SwapClaimView.Opaque + (*SwapExecution_Trace)(nil), // 34: penumbra.core.component.dex.v1alpha1.SwapExecution.Trace + (*v1alpha1.Nullifier)(nil), // 35: penumbra.core.component.sct.v1alpha1.Nullifier + (*v1alpha11.Fee)(nil), // 36: penumbra.core.component.fee.v1alpha1.Fee + (*v1alpha12.StateCommitment)(nil), // 37: penumbra.crypto.tct.v1alpha1.StateCommitment + (*v1alpha13.Amount)(nil), // 38: penumbra.core.num.v1alpha1.Amount + (*v1alpha14.BalanceCommitment)(nil), // 39: penumbra.core.asset.v1alpha1.BalanceCommitment + (*v1alpha15.Address)(nil), // 40: penumbra.core.keys.v1alpha1.Address + (*v1alpha14.AssetId)(nil), // 41: penumbra.core.asset.v1alpha1.AssetId + (*v1alpha14.Value)(nil), // 42: penumbra.core.asset.v1alpha1.Value + (*v1alpha16.NoteView)(nil), // 43: penumbra.core.component.shielded_pool.v1alpha1.NoteView +} +var file_penumbra_core_component_dex_v1alpha1_dex_proto_depIdxs = []int32{ + 1, // 0: penumbra.core.component.dex.v1alpha1.Swap.proof:type_name -> penumbra.core.component.dex.v1alpha1.ZKSwapProof + 6, // 1: penumbra.core.component.dex.v1alpha1.Swap.body:type_name -> penumbra.core.component.dex.v1alpha1.SwapBody + 2, // 2: penumbra.core.component.dex.v1alpha1.SwapClaim.proof:type_name -> penumbra.core.component.dex.v1alpha1.ZKSwapClaimProof + 5, // 3: penumbra.core.component.dex.v1alpha1.SwapClaim.body:type_name -> penumbra.core.component.dex.v1alpha1.SwapClaimBody + 35, // 4: penumbra.core.component.dex.v1alpha1.SwapClaimBody.nullifier:type_name -> penumbra.core.component.sct.v1alpha1.Nullifier + 36, // 5: penumbra.core.component.dex.v1alpha1.SwapClaimBody.fee:type_name -> penumbra.core.component.fee.v1alpha1.Fee + 37, // 6: penumbra.core.component.dex.v1alpha1.SwapClaimBody.output_1_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 37, // 7: penumbra.core.component.dex.v1alpha1.SwapClaimBody.output_2_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 15, // 8: penumbra.core.component.dex.v1alpha1.SwapClaimBody.output_data:type_name -> penumbra.core.component.dex.v1alpha1.BatchSwapOutputData + 13, // 9: penumbra.core.component.dex.v1alpha1.SwapBody.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.TradingPair + 38, // 10: penumbra.core.component.dex.v1alpha1.SwapBody.delta_1_i:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 11: penumbra.core.component.dex.v1alpha1.SwapBody.delta_2_i:type_name -> penumbra.core.num.v1alpha1.Amount + 39, // 12: penumbra.core.component.dex.v1alpha1.SwapBody.fee_commitment:type_name -> penumbra.core.asset.v1alpha1.BalanceCommitment + 7, // 13: penumbra.core.component.dex.v1alpha1.SwapBody.payload:type_name -> penumbra.core.component.dex.v1alpha1.SwapPayload + 37, // 14: penumbra.core.component.dex.v1alpha1.SwapPayload.commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 13, // 15: penumbra.core.component.dex.v1alpha1.SwapPlaintext.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.TradingPair + 38, // 16: penumbra.core.component.dex.v1alpha1.SwapPlaintext.delta_1_i:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 17: penumbra.core.component.dex.v1alpha1.SwapPlaintext.delta_2_i:type_name -> penumbra.core.num.v1alpha1.Amount + 36, // 18: penumbra.core.component.dex.v1alpha1.SwapPlaintext.claim_fee:type_name -> penumbra.core.component.fee.v1alpha1.Fee + 40, // 19: penumbra.core.component.dex.v1alpha1.SwapPlaintext.claim_address:type_name -> penumbra.core.keys.v1alpha1.Address + 8, // 20: penumbra.core.component.dex.v1alpha1.SwapPlan.swap_plaintext:type_name -> penumbra.core.component.dex.v1alpha1.SwapPlaintext + 8, // 21: penumbra.core.component.dex.v1alpha1.SwapClaimPlan.swap_plaintext:type_name -> penumbra.core.component.dex.v1alpha1.SwapPlaintext + 15, // 22: penumbra.core.component.dex.v1alpha1.SwapClaimPlan.output_data:type_name -> penumbra.core.component.dex.v1alpha1.BatchSwapOutputData + 30, // 23: penumbra.core.component.dex.v1alpha1.SwapView.visible:type_name -> penumbra.core.component.dex.v1alpha1.SwapView.Visible + 31, // 24: penumbra.core.component.dex.v1alpha1.SwapView.opaque:type_name -> penumbra.core.component.dex.v1alpha1.SwapView.Opaque + 32, // 25: penumbra.core.component.dex.v1alpha1.SwapClaimView.visible:type_name -> penumbra.core.component.dex.v1alpha1.SwapClaimView.Visible + 33, // 26: penumbra.core.component.dex.v1alpha1.SwapClaimView.opaque:type_name -> penumbra.core.component.dex.v1alpha1.SwapClaimView.Opaque + 41, // 27: penumbra.core.component.dex.v1alpha1.TradingPair.asset_1:type_name -> penumbra.core.asset.v1alpha1.AssetId + 41, // 28: penumbra.core.component.dex.v1alpha1.TradingPair.asset_2:type_name -> penumbra.core.asset.v1alpha1.AssetId + 41, // 29: penumbra.core.component.dex.v1alpha1.DirectedTradingPair.start:type_name -> penumbra.core.asset.v1alpha1.AssetId + 41, // 30: penumbra.core.component.dex.v1alpha1.DirectedTradingPair.end:type_name -> penumbra.core.asset.v1alpha1.AssetId + 38, // 31: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData.delta_1:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 32: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData.delta_2:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 33: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData.lambda_1:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 34: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData.lambda_2:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 35: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData.unfilled_1:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 36: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData.unfilled_2:type_name -> penumbra.core.num.v1alpha1.Amount + 13, // 37: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.TradingPair + 17, // 38: penumbra.core.component.dex.v1alpha1.TradingFunction.component:type_name -> penumbra.core.component.dex.v1alpha1.BareTradingFunction + 13, // 39: penumbra.core.component.dex.v1alpha1.TradingFunction.pair:type_name -> penumbra.core.component.dex.v1alpha1.TradingPair + 38, // 40: penumbra.core.component.dex.v1alpha1.BareTradingFunction.p:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 41: penumbra.core.component.dex.v1alpha1.BareTradingFunction.q:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 42: penumbra.core.component.dex.v1alpha1.Reserves.r1:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 43: penumbra.core.component.dex.v1alpha1.Reserves.r2:type_name -> penumbra.core.num.v1alpha1.Amount + 16, // 44: penumbra.core.component.dex.v1alpha1.Position.phi:type_name -> penumbra.core.component.dex.v1alpha1.TradingFunction + 21, // 45: penumbra.core.component.dex.v1alpha1.Position.state:type_name -> penumbra.core.component.dex.v1alpha1.PositionState + 18, // 46: penumbra.core.component.dex.v1alpha1.Position.reserves:type_name -> penumbra.core.component.dex.v1alpha1.Reserves + 0, // 47: penumbra.core.component.dex.v1alpha1.PositionState.state:type_name -> penumbra.core.component.dex.v1alpha1.PositionState.PositionStateEnum + 20, // 48: penumbra.core.component.dex.v1alpha1.LpNft.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 21, // 49: penumbra.core.component.dex.v1alpha1.LpNft.state:type_name -> penumbra.core.component.dex.v1alpha1.PositionState + 19, // 50: penumbra.core.component.dex.v1alpha1.PositionOpen.position:type_name -> penumbra.core.component.dex.v1alpha1.Position + 20, // 51: penumbra.core.component.dex.v1alpha1.PositionClose.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 20, // 52: penumbra.core.component.dex.v1alpha1.PositionWithdraw.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 39, // 53: penumbra.core.component.dex.v1alpha1.PositionWithdraw.reserves_commitment:type_name -> penumbra.core.asset.v1alpha1.BalanceCommitment + 20, // 54: penumbra.core.component.dex.v1alpha1.PositionRewardClaim.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 39, // 55: penumbra.core.component.dex.v1alpha1.PositionRewardClaim.rewards_commitment:type_name -> penumbra.core.asset.v1alpha1.BalanceCommitment + 34, // 56: penumbra.core.component.dex.v1alpha1.SwapExecution.traces:type_name -> penumbra.core.component.dex.v1alpha1.SwapExecution.Trace + 42, // 57: penumbra.core.component.dex.v1alpha1.SwapExecution.input:type_name -> penumbra.core.asset.v1alpha1.Value + 42, // 58: penumbra.core.component.dex.v1alpha1.SwapExecution.output:type_name -> penumbra.core.asset.v1alpha1.Value + 18, // 59: penumbra.core.component.dex.v1alpha1.PositionWithdrawPlan.reserves:type_name -> penumbra.core.component.dex.v1alpha1.Reserves + 20, // 60: penumbra.core.component.dex.v1alpha1.PositionWithdrawPlan.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 13, // 61: penumbra.core.component.dex.v1alpha1.PositionWithdrawPlan.pair:type_name -> penumbra.core.component.dex.v1alpha1.TradingPair + 18, // 62: penumbra.core.component.dex.v1alpha1.PositionRewardClaimPlan.reserves:type_name -> penumbra.core.component.dex.v1alpha1.Reserves + 3, // 63: penumbra.core.component.dex.v1alpha1.SwapView.Visible.swap:type_name -> penumbra.core.component.dex.v1alpha1.Swap + 8, // 64: penumbra.core.component.dex.v1alpha1.SwapView.Visible.swap_plaintext:type_name -> penumbra.core.component.dex.v1alpha1.SwapPlaintext + 3, // 65: penumbra.core.component.dex.v1alpha1.SwapView.Opaque.swap:type_name -> penumbra.core.component.dex.v1alpha1.Swap + 4, // 66: penumbra.core.component.dex.v1alpha1.SwapClaimView.Visible.swap_claim:type_name -> penumbra.core.component.dex.v1alpha1.SwapClaim + 43, // 67: penumbra.core.component.dex.v1alpha1.SwapClaimView.Visible.output_1:type_name -> penumbra.core.component.shielded_pool.v1alpha1.NoteView + 43, // 68: penumbra.core.component.dex.v1alpha1.SwapClaimView.Visible.output_2:type_name -> penumbra.core.component.shielded_pool.v1alpha1.NoteView + 4, // 69: penumbra.core.component.dex.v1alpha1.SwapClaimView.Opaque.swap_claim:type_name -> penumbra.core.component.dex.v1alpha1.SwapClaim + 42, // 70: penumbra.core.component.dex.v1alpha1.SwapExecution.Trace.value:type_name -> penumbra.core.asset.v1alpha1.Value + 71, // [71:71] is the sub-list for method output_type + 71, // [71:71] is the sub-list for method input_type + 71, // [71:71] is the sub-list for extension type_name + 71, // [71:71] is the sub-list for extension extendee + 0, // [0:71] is the sub-list for field type_name +} + +func init() { file_penumbra_core_component_dex_v1alpha1_dex_proto_init() } +func file_penumbra_core_component_dex_v1alpha1_dex_proto_init() { + if File_penumbra_core_component_dex_v1alpha1_dex_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZKSwapProof); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZKSwapClaimProof); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Swap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapClaim); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapClaimBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapPayload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapPlaintext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapPlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapClaimPlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapClaimView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TradingPair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DirectedTradingPair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchSwapOutputData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TradingFunction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BareTradingFunction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Reserves); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Position); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionId); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LpNft); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionOpen); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionClose); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionWithdraw); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionRewardClaim); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapExecution); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionWithdrawPlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionRewardClaimPlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapView_Visible); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapView_Opaque); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapClaimView_Visible); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapClaimView_Opaque); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwapExecution_Trace); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[10].OneofWrappers = []interface{}{ + (*SwapView_Visible_)(nil), + (*SwapView_Opaque_)(nil), + } + file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes[11].OneofWrappers = []interface{}{ + (*SwapClaimView_Visible_)(nil), + (*SwapClaimView_Opaque_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDesc, + NumEnums: 1, + NumMessages: 34, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_component_dex_v1alpha1_dex_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_dex_v1alpha1_dex_proto_depIdxs, + EnumInfos: file_penumbra_core_component_dex_v1alpha1_dex_proto_enumTypes, + MessageInfos: file_penumbra_core_component_dex_v1alpha1_dex_proto_msgTypes, + }.Build() + File_penumbra_core_component_dex_v1alpha1_dex_proto = out.File + file_penumbra_core_component_dex_v1alpha1_dex_proto_rawDesc = nil + file_penumbra_core_component_dex_v1alpha1_dex_proto_goTypes = nil + file_penumbra_core_component_dex_v1alpha1_dex_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/component/distributions/v1alpha1/distributions.pb.go b/proto/go/gen/penumbra/core/component/distributions/v1alpha1/distributions.pb.go new file mode 100644 index 0000000000..9d3519978d --- /dev/null +++ b/proto/go/gen/penumbra/core/component/distributions/v1alpha1/distributions.pb.go @@ -0,0 +1,92 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/component/distributions/v1alpha1/distributions.proto + +package distributionsv1alpha1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" +) + +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) +) + +var File_penumbra_core_component_distributions_v1alpha1_distributions_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_distributions_v1alpha1_distributions_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x2e, 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, 0x42, 0x9a, 0x03, 0x0a, 0x32, 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, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x12, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x73, 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, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, 0x44, 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, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_penumbra_core_component_distributions_v1alpha1_distributions_proto_goTypes = []interface{}{} +var file_penumbra_core_component_distributions_v1alpha1_distributions_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_penumbra_core_component_distributions_v1alpha1_distributions_proto_init() } +func file_penumbra_core_component_distributions_v1alpha1_distributions_proto_init() { + if File_penumbra_core_component_distributions_v1alpha1_distributions_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_component_distributions_v1alpha1_distributions_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_component_distributions_v1alpha1_distributions_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_distributions_v1alpha1_distributions_proto_depIdxs, + }.Build() + File_penumbra_core_component_distributions_v1alpha1_distributions_proto = out.File + file_penumbra_core_component_distributions_v1alpha1_distributions_proto_rawDesc = nil + file_penumbra_core_component_distributions_v1alpha1_distributions_proto_goTypes = nil + file_penumbra_core_component_distributions_v1alpha1_distributions_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/component/fee/v1alpha1/fee.pb.go b/proto/go/gen/penumbra/core/component/fee/v1alpha1/fee.pb.go new file mode 100644 index 0000000000..27f9132c93 --- /dev/null +++ b/proto/go/gen/penumbra/core/component/fee/v1alpha1/fee.pb.go @@ -0,0 +1,195 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/component/fee/v1alpha1/fee.proto + +package feev1alpha1 + +import ( + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/num/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) +) + +// Specifies fees paid by a transaction. +type Fee struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The amount of the token used to pay fees. + Amount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + // If present, the asset ID of the token used to pay fees. + // If absent, specifies the staking token implicitly. + AssetId *v1alpha11.AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` +} + +func (x *Fee) Reset() { + *x = Fee{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_fee_v1alpha1_fee_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Fee) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Fee) ProtoMessage() {} + +func (x *Fee) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_fee_v1alpha1_fee_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 Fee.ProtoReflect.Descriptor instead. +func (*Fee) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDescGZIP(), []int{0} +} + +func (x *Fee) GetAmount() *v1alpha1.Amount { + if x != nil { + return x.Amount + } + return nil +} + +func (x *Fee) GetAssetId() *v1alpha11.AssetId { + if x != nil { + return x.AssetId + } + return nil +} + +var File_penumbra_core_component_fee_v1alpha1_fee_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_fee_v1alpha1_fee_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, 0x66, 0x65, 0x65, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x66, 0x65, 0x65, 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, 0x66, 0x65, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 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, 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, 0x83, 0x01, 0x0a, 0x03, 0x46, 0x65, 0x65, 0x12, 0x3a, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 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, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x08, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 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, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 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, 0x66, 0x65, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x08, 0x46, 0x65, 0x65, 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, 0x66, 0x65, + 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x66, 0x65, 0x65, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, 0x46, 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, 0x46, 0x65, 0x65, 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, 0x46, + 0x65, 0x65, 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, 0x46, 0x65, 0x65, 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, 0x46, 0x65, 0x65, 0x3a, + 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDescOnce sync.Once + file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDescData = file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDesc +) + +func file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDescGZIP() []byte { + file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDescData) + }) + return file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDescData +} + +var file_penumbra_core_component_fee_v1alpha1_fee_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_penumbra_core_component_fee_v1alpha1_fee_proto_goTypes = []interface{}{ + (*Fee)(nil), // 0: penumbra.core.component.fee.v1alpha1.Fee + (*v1alpha1.Amount)(nil), // 1: penumbra.core.num.v1alpha1.Amount + (*v1alpha11.AssetId)(nil), // 2: penumbra.core.asset.v1alpha1.AssetId +} +var file_penumbra_core_component_fee_v1alpha1_fee_proto_depIdxs = []int32{ + 1, // 0: penumbra.core.component.fee.v1alpha1.Fee.amount:type_name -> penumbra.core.num.v1alpha1.Amount + 2, // 1: penumbra.core.component.fee.v1alpha1.Fee.asset_id:type_name -> penumbra.core.asset.v1alpha1.AssetId + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_penumbra_core_component_fee_v1alpha1_fee_proto_init() } +func file_penumbra_core_component_fee_v1alpha1_fee_proto_init() { + if File_penumbra_core_component_fee_v1alpha1_fee_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_component_fee_v1alpha1_fee_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Fee); 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_fee_v1alpha1_fee_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_component_fee_v1alpha1_fee_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_fee_v1alpha1_fee_proto_depIdxs, + MessageInfos: file_penumbra_core_component_fee_v1alpha1_fee_proto_msgTypes, + }.Build() + File_penumbra_core_component_fee_v1alpha1_fee_proto = out.File + file_penumbra_core_component_fee_v1alpha1_fee_proto_rawDesc = nil + file_penumbra_core_component_fee_v1alpha1_fee_proto_goTypes = nil + file_penumbra_core_component_fee_v1alpha1_fee_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 new file mode 100644 index 0000000000..d37c549140 --- /dev/null +++ b/proto/go/gen/penumbra/core/component/governance/v1alpha1/governance.pb.go @@ -0,0 +1,3084 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/component/governance/v1alpha1/governance.proto + +package governancev1alpha1 + +import ( + v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + v1alpha15 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/chain/v1alpha1" + v1alpha14 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/shielded_pool/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/num/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/decaf377_rdsa/v1alpha1" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + 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) +) + +// A vote. +type Vote_Vote int32 + +const ( + Vote_VOTE_UNSPECIFIED Vote_Vote = 0 + Vote_VOTE_ABSTAIN Vote_Vote = 1 + Vote_VOTE_YES Vote_Vote = 2 + Vote_VOTE_NO Vote_Vote = 3 +) + +// Enum value maps for Vote_Vote. +var ( + Vote_Vote_name = map[int32]string{ + 0: "VOTE_UNSPECIFIED", + 1: "VOTE_ABSTAIN", + 2: "VOTE_YES", + 3: "VOTE_NO", + } + Vote_Vote_value = map[string]int32{ + "VOTE_UNSPECIFIED": 0, + "VOTE_ABSTAIN": 1, + "VOTE_YES": 2, + "VOTE_NO": 3, + } +) + +func (x Vote_Vote) Enum() *Vote_Vote { + p := new(Vote_Vote) + *p = x + return p +} + +func (x Vote_Vote) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Vote_Vote) Descriptor() protoreflect.EnumDescriptor { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_enumTypes[0].Descriptor() +} + +func (Vote_Vote) Type() protoreflect.EnumType { + return &file_penumbra_core_component_governance_v1alpha1_governance_proto_enumTypes[0] +} + +func (x Vote_Vote) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Vote_Vote.Descriptor instead. +func (Vote_Vote) EnumDescriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{13, 0} +} + +// A Penumbra ZK delegator vote proof. +type ZKDelegatorVoteProof struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *ZKDelegatorVoteProof) Reset() { + *x = ZKDelegatorVoteProof{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZKDelegatorVoteProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZKDelegatorVoteProof) ProtoMessage() {} + +func (x *ZKDelegatorVoteProof) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_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 ZKDelegatorVoteProof.ProtoReflect.Descriptor instead. +func (*ZKDelegatorVoteProof) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{0} +} + +func (x *ZKDelegatorVoteProof) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type ProposalSubmit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The proposal to be submitted. + Proposal *Proposal `protobuf:"bytes,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The amount of the proposal deposit. + DepositAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=deposit_amount,json=depositAmount,proto3" json:"deposit_amount,omitempty"` +} + +func (x *ProposalSubmit) Reset() { + *x = ProposalSubmit{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalSubmit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalSubmit) ProtoMessage() {} + +func (x *ProposalSubmit) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_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 ProposalSubmit.ProtoReflect.Descriptor instead. +func (*ProposalSubmit) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{1} +} + +func (x *ProposalSubmit) GetProposal() *Proposal { + if x != nil { + return x.Proposal + } + return nil +} + +func (x *ProposalSubmit) GetDepositAmount() *v1alpha1.Amount { + if x != nil { + return x.DepositAmount + } + return nil +} + +type ProposalWithdraw struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The proposal to be withdrawn. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The reason for the proposal being withdrawn. + Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (x *ProposalWithdraw) Reset() { + *x = ProposalWithdraw{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalWithdraw) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalWithdraw) ProtoMessage() {} + +func (x *ProposalWithdraw) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_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 ProposalWithdraw.ProtoReflect.Descriptor instead. +func (*ProposalWithdraw) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{2} +} + +func (x *ProposalWithdraw) GetProposal() uint64 { + if x != nil { + return x.Proposal + } + return 0 +} + +func (x *ProposalWithdraw) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +type ProposalDepositClaim struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The proposal to claim the deposit for. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The expected deposit amount. + DepositAmount *v1alpha1.Amount `protobuf:"bytes,2,opt,name=deposit_amount,json=depositAmount,proto3" json:"deposit_amount,omitempty"` + // The outcome of the proposal. + Outcome *ProposalOutcome `protobuf:"bytes,3,opt,name=outcome,proto3" json:"outcome,omitempty"` +} + +func (x *ProposalDepositClaim) Reset() { + *x = ProposalDepositClaim{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalDepositClaim) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalDepositClaim) ProtoMessage() {} + +func (x *ProposalDepositClaim) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_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 ProposalDepositClaim.ProtoReflect.Descriptor instead. +func (*ProposalDepositClaim) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{3} +} + +func (x *ProposalDepositClaim) GetProposal() uint64 { + if x != nil { + return x.Proposal + } + return 0 +} + +func (x *ProposalDepositClaim) GetDepositAmount() *v1alpha1.Amount { + if x != nil { + return x.DepositAmount + } + return nil +} + +func (x *ProposalDepositClaim) GetOutcome() *ProposalOutcome { + if x != nil { + return x.Outcome + } + return nil +} + +type ValidatorVote struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The effecting data for the vote. + Body *ValidatorVoteBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // The vote authorization signature is authorizing data. + AuthSig *v1alpha11.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` +} + +func (x *ValidatorVote) Reset() { + *x = ValidatorVote{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidatorVote) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidatorVote) ProtoMessage() {} + +func (x *ValidatorVote) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidatorVote.ProtoReflect.Descriptor instead. +func (*ValidatorVote) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{4} +} + +func (x *ValidatorVote) GetBody() *ValidatorVoteBody { + if x != nil { + return x.Body + } + return nil +} + +func (x *ValidatorVote) GetAuthSig() *v1alpha11.SpendAuthSignature { + if x != nil { + return x.AuthSig + } + return nil +} + +type ValidatorVoteBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The proposal being voted on. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The vote. + Vote *Vote `protobuf:"bytes,2,opt,name=vote,proto3" json:"vote,omitempty"` + // The validator identity. + IdentityKey *v1alpha12.IdentityKey `protobuf:"bytes,3,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + // The validator governance key. + GovernanceKey *v1alpha12.GovernanceKey `protobuf:"bytes,4,opt,name=governance_key,json=governanceKey,proto3" json:"governance_key,omitempty"` +} + +func (x *ValidatorVoteBody) Reset() { + *x = ValidatorVoteBody{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidatorVoteBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidatorVoteBody) ProtoMessage() {} + +func (x *ValidatorVoteBody) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidatorVoteBody.ProtoReflect.Descriptor instead. +func (*ValidatorVoteBody) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{5} +} + +func (x *ValidatorVoteBody) GetProposal() uint64 { + if x != nil { + return x.Proposal + } + return 0 +} + +func (x *ValidatorVoteBody) GetVote() *Vote { + if x != nil { + return x.Vote + } + return nil +} + +func (x *ValidatorVoteBody) GetIdentityKey() *v1alpha12.IdentityKey { + if x != nil { + return x.IdentityKey + } + return nil +} + +func (x *ValidatorVoteBody) GetGovernanceKey() *v1alpha12.GovernanceKey { + if x != nil { + return x.GovernanceKey + } + return nil +} + +type DelegatorVote struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The effecting data for the vote. + Body *DelegatorVoteBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // The vote authorization signature is authorizing data. + AuthSig *v1alpha11.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` + // The vote proof is authorizing data. + Proof *ZKDelegatorVoteProof `protobuf:"bytes,3,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (x *DelegatorVote) Reset() { + *x = DelegatorVote{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelegatorVote) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelegatorVote) ProtoMessage() {} + +func (x *DelegatorVote) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelegatorVote.ProtoReflect.Descriptor instead. +func (*DelegatorVote) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{6} +} + +func (x *DelegatorVote) GetBody() *DelegatorVoteBody { + if x != nil { + return x.Body + } + return nil +} + +func (x *DelegatorVote) GetAuthSig() *v1alpha11.SpendAuthSignature { + if x != nil { + return x.AuthSig + } + return nil +} + +func (x *DelegatorVote) GetProof() *ZKDelegatorVoteProof { + if x != nil { + return x.Proof + } + return nil +} + +type DelegatorVoteBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The proposal being voted on. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The start position of the proposal in the TCT. + StartPosition uint64 `protobuf:"varint,2,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` + // The vote. + Vote *Vote `protobuf:"bytes,3,opt,name=vote,proto3" json:"vote,omitempty"` + // The value of the delegation note. + Value *v1alpha13.Value `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` + // The amount of the delegation note, in unbonded penumbra. + UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,5,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` + // The nullifier of the input note. + Nullifier []byte `protobuf:"bytes,6,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + // The randomized validating key for the spend authorization signature. + Rk []byte `protobuf:"bytes,7,opt,name=rk,proto3" json:"rk,omitempty"` +} + +func (x *DelegatorVoteBody) Reset() { + *x = DelegatorVoteBody{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelegatorVoteBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelegatorVoteBody) ProtoMessage() {} + +func (x *DelegatorVoteBody) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelegatorVoteBody.ProtoReflect.Descriptor instead. +func (*DelegatorVoteBody) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{7} +} + +func (x *DelegatorVoteBody) GetProposal() uint64 { + if x != nil { + return x.Proposal + } + return 0 +} + +func (x *DelegatorVoteBody) GetStartPosition() uint64 { + if x != nil { + return x.StartPosition + } + return 0 +} + +func (x *DelegatorVoteBody) GetVote() *Vote { + if x != nil { + return x.Vote + } + return nil +} + +func (x *DelegatorVoteBody) GetValue() *v1alpha13.Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *DelegatorVoteBody) GetUnbondedAmount() *v1alpha1.Amount { + if x != nil { + return x.UnbondedAmount + } + return nil +} + +func (x *DelegatorVoteBody) GetNullifier() []byte { + if x != nil { + return x.Nullifier + } + return nil +} + +func (x *DelegatorVoteBody) GetRk() []byte { + if x != nil { + return x.Rk + } + return nil +} + +type DelegatorVoteView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to DelegatorVote: + // + // *DelegatorVoteView_Visible_ + // *DelegatorVoteView_Opaque_ + DelegatorVote isDelegatorVoteView_DelegatorVote `protobuf_oneof:"delegator_vote"` +} + +func (x *DelegatorVoteView) Reset() { + *x = DelegatorVoteView{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelegatorVoteView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelegatorVoteView) ProtoMessage() {} + +func (x *DelegatorVoteView) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelegatorVoteView.ProtoReflect.Descriptor instead. +func (*DelegatorVoteView) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{8} +} + +func (m *DelegatorVoteView) GetDelegatorVote() isDelegatorVoteView_DelegatorVote { + if m != nil { + return m.DelegatorVote + } + return nil +} + +func (x *DelegatorVoteView) GetVisible() *DelegatorVoteView_Visible { + if x, ok := x.GetDelegatorVote().(*DelegatorVoteView_Visible_); ok { + return x.Visible + } + return nil +} + +func (x *DelegatorVoteView) GetOpaque() *DelegatorVoteView_Opaque { + if x, ok := x.GetDelegatorVote().(*DelegatorVoteView_Opaque_); ok { + return x.Opaque + } + return nil +} + +type isDelegatorVoteView_DelegatorVote interface { + isDelegatorVoteView_DelegatorVote() +} + +type DelegatorVoteView_Visible_ struct { + Visible *DelegatorVoteView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` +} + +type DelegatorVoteView_Opaque_ struct { + Opaque *DelegatorVoteView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` +} + +func (*DelegatorVoteView_Visible_) isDelegatorVoteView_DelegatorVote() {} + +func (*DelegatorVoteView_Opaque_) isDelegatorVoteView_DelegatorVote() {} + +type DelegatorVotePlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The proposal to vote on. + Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` + // The start position of the proposal in the TCT. + StartPosition uint64 `protobuf:"varint,2,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` + // The vote to cast. + Vote *Vote `protobuf:"bytes,3,opt,name=vote,proto3" json:"vote,omitempty"` + // The delegation note to prove that we can vote. + StakedNote *v1alpha14.Note `protobuf:"bytes,4,opt,name=staked_note,json=stakedNote,proto3" json:"staked_note,omitempty"` + // The position of that delegation note. + StakedNotePosition uint64 `protobuf:"varint,5,opt,name=staked_note_position,json=stakedNotePosition,proto3" json:"staked_note_position,omitempty"` + // The unbonded amount equivalent to the delegation note. + UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,6,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` + // The randomizer to use for the proof of spend capability. + Randomizer []byte `protobuf:"bytes,7,opt,name=randomizer,proto3" json:"randomizer,omitempty"` + // The first blinding factor to use for the ZK delegator vote proof. + ProofBlindingR []byte `protobuf:"bytes,8,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK delegator vote proof. + ProofBlindingS []byte `protobuf:"bytes,9,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` +} + +func (x *DelegatorVotePlan) Reset() { + *x = DelegatorVotePlan{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelegatorVotePlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelegatorVotePlan) ProtoMessage() {} + +func (x *DelegatorVotePlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DelegatorVotePlan.ProtoReflect.Descriptor instead. +func (*DelegatorVotePlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{9} +} + +func (x *DelegatorVotePlan) GetProposal() uint64 { + if x != nil { + return x.Proposal + } + return 0 +} + +func (x *DelegatorVotePlan) GetStartPosition() uint64 { + if x != nil { + return x.StartPosition + } + return 0 +} + +func (x *DelegatorVotePlan) GetVote() *Vote { + if x != nil { + return x.Vote + } + return nil +} + +func (x *DelegatorVotePlan) GetStakedNote() *v1alpha14.Note { + if x != nil { + return x.StakedNote + } + return nil +} + +func (x *DelegatorVotePlan) GetStakedNotePosition() uint64 { + if x != nil { + return x.StakedNotePosition + } + return 0 +} + +func (x *DelegatorVotePlan) GetUnbondedAmount() *v1alpha1.Amount { + if x != nil { + return x.UnbondedAmount + } + return nil +} + +func (x *DelegatorVotePlan) GetRandomizer() []byte { + if x != nil { + return x.Randomizer + } + return nil +} + +func (x *DelegatorVotePlan) GetProofBlindingR() []byte { + if x != nil { + return x.ProofBlindingR + } + return nil +} + +func (x *DelegatorVotePlan) GetProofBlindingS() []byte { + if x != nil { + return x.ProofBlindingS + } + return nil +} + +type DaoDeposit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value to deposit into the DAO. + Value *v1alpha13.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *DaoDeposit) Reset() { + *x = DaoDeposit{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DaoDeposit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DaoDeposit) ProtoMessage() {} + +func (x *DaoDeposit) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DaoDeposit.ProtoReflect.Descriptor instead. +func (*DaoDeposit) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{10} +} + +func (x *DaoDeposit) GetValue() *v1alpha13.Value { + if x != nil { + return x.Value + } + return nil +} + +type DaoSpend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value to spend from the DAO. + Value *v1alpha13.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *DaoSpend) Reset() { + *x = DaoSpend{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DaoSpend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DaoSpend) ProtoMessage() {} + +func (x *DaoSpend) 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)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DaoSpend.ProtoReflect.Descriptor instead. +func (*DaoSpend) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{11} +} + +func (x *DaoSpend) GetValue() *v1alpha13.Value { + if x != nil { + return x.Value + } + return nil +} + +type DaoOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value to output from the DAO. + 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{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DaoOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DaoOutput) ProtoMessage() {} + +func (x *DaoOutput) 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)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DaoOutput.ProtoReflect.Descriptor instead. +func (*DaoOutput) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{12} +} + +func (x *DaoOutput) GetValue() *v1alpha13.Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *DaoOutput) GetAddress() *v1alpha12.Address { + if x != nil { + return x.Address + } + return nil +} + +// A vote on a proposal. +type Vote struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The vote. + Vote Vote_Vote `protobuf:"varint,1,opt,name=vote,proto3,enum=penumbra.core.component.governance.v1alpha1.Vote_Vote" json:"vote,omitempty"` +} + +func (x *Vote) Reset() { + *x = Vote{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Vote) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Vote) ProtoMessage() {} + +func (x *Vote) 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)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Vote.ProtoReflect.Descriptor instead. +func (*Vote) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{13} +} + +func (x *Vote) GetVote() Vote_Vote { + if x != nil { + return x.Vote + } + return Vote_VOTE_UNSPECIFIED +} + +// The current state of a proposal. +type ProposalState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The state of the proposal. + // + // Types that are assignable to State: + // + // *ProposalState_Voting_ + // *ProposalState_Withdrawn_ + // *ProposalState_Finished_ + // *ProposalState_Claimed_ + State isProposalState_State `protobuf_oneof:"state"` +} + +func (x *ProposalState) Reset() { + *x = ProposalState{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalState) ProtoMessage() {} + +func (x *ProposalState) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[14] + 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 ProposalState.ProtoReflect.Descriptor instead. +func (*ProposalState) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{14} +} + +func (m *ProposalState) GetState() isProposalState_State { + if m != nil { + return m.State + } + return nil +} + +func (x *ProposalState) GetVoting() *ProposalState_Voting { + if x, ok := x.GetState().(*ProposalState_Voting_); ok { + return x.Voting + } + return nil +} + +func (x *ProposalState) GetWithdrawn() *ProposalState_Withdrawn { + if x, ok := x.GetState().(*ProposalState_Withdrawn_); ok { + return x.Withdrawn + } + return nil +} + +func (x *ProposalState) GetFinished() *ProposalState_Finished { + if x, ok := x.GetState().(*ProposalState_Finished_); ok { + return x.Finished + } + return nil +} + +func (x *ProposalState) GetClaimed() *ProposalState_Claimed { + if x, ok := x.GetState().(*ProposalState_Claimed_); ok { + return x.Claimed + } + return nil +} + +type isProposalState_State interface { + isProposalState_State() +} + +type ProposalState_Voting_ struct { + Voting *ProposalState_Voting `protobuf:"bytes,2,opt,name=voting,proto3,oneof"` +} + +type ProposalState_Withdrawn_ struct { + Withdrawn *ProposalState_Withdrawn `protobuf:"bytes,3,opt,name=withdrawn,proto3,oneof"` +} + +type ProposalState_Finished_ struct { + Finished *ProposalState_Finished `protobuf:"bytes,4,opt,name=finished,proto3,oneof"` +} + +type ProposalState_Claimed_ struct { + Claimed *ProposalState_Claimed `protobuf:"bytes,5,opt,name=claimed,proto3,oneof"` +} + +func (*ProposalState_Voting_) isProposalState_State() {} + +func (*ProposalState_Withdrawn_) isProposalState_State() {} + +func (*ProposalState_Finished_) isProposalState_State() {} + +func (*ProposalState_Claimed_) isProposalState_State() {} + +// The outcome of a concluded proposal. +type ProposalOutcome struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Outcome: + // + // *ProposalOutcome_Passed_ + // *ProposalOutcome_Failed_ + // *ProposalOutcome_Slashed_ + Outcome isProposalOutcome_Outcome `protobuf_oneof:"outcome"` +} + +func (x *ProposalOutcome) Reset() { + *x = ProposalOutcome{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalOutcome) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalOutcome) ProtoMessage() {} + +func (x *ProposalOutcome) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[15] + 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 ProposalOutcome.ProtoReflect.Descriptor instead. +func (*ProposalOutcome) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15} +} + +func (m *ProposalOutcome) GetOutcome() isProposalOutcome_Outcome { + if m != nil { + return m.Outcome + } + return nil +} + +func (x *ProposalOutcome) GetPassed() *ProposalOutcome_Passed { + if x, ok := x.GetOutcome().(*ProposalOutcome_Passed_); ok { + return x.Passed + } + return nil +} + +func (x *ProposalOutcome) GetFailed() *ProposalOutcome_Failed { + if x, ok := x.GetOutcome().(*ProposalOutcome_Failed_); ok { + return x.Failed + } + return nil +} + +func (x *ProposalOutcome) GetSlashed() *ProposalOutcome_Slashed { + if x, ok := x.GetOutcome().(*ProposalOutcome_Slashed_); ok { + return x.Slashed + } + return nil +} + +type isProposalOutcome_Outcome interface { + isProposalOutcome_Outcome() +} + +type ProposalOutcome_Passed_ struct { + Passed *ProposalOutcome_Passed `protobuf:"bytes,1,opt,name=passed,proto3,oneof"` +} + +type ProposalOutcome_Failed_ struct { + Failed *ProposalOutcome_Failed `protobuf:"bytes,2,opt,name=failed,proto3,oneof"` +} + +type ProposalOutcome_Slashed_ struct { + Slashed *ProposalOutcome_Slashed `protobuf:"bytes,3,opt,name=slashed,proto3,oneof"` +} + +func (*ProposalOutcome_Passed_) isProposalOutcome_Outcome() {} + +func (*ProposalOutcome_Failed_) isProposalOutcome_Outcome() {} + +func (*ProposalOutcome_Slashed_) isProposalOutcome_Outcome() {} + +// A tally of votes on a proposal. +type Tally struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The number of votes in favor of the proposal. + Yes uint64 `protobuf:"varint,1,opt,name=yes,proto3" json:"yes,omitempty"` + // The number of votes against the proposal. + No uint64 `protobuf:"varint,2,opt,name=no,proto3" json:"no,omitempty"` + // The number of abstentions. + Abstain uint64 `protobuf:"varint,3,opt,name=abstain,proto3" json:"abstain,omitempty"` +} + +func (x *Tally) Reset() { + *x = Tally{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Tally) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Tally) ProtoMessage() {} + +func (x *Tally) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[16] + 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 Tally.ProtoReflect.Descriptor instead. +func (*Tally) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{16} +} + +func (x *Tally) GetYes() uint64 { + if x != nil { + return x.Yes + } + return 0 +} + +func (x *Tally) GetNo() uint64 { + if x != nil { + return x.No + } + return 0 +} + +func (x *Tally) GetAbstain() uint64 { + if x != nil { + return x.Abstain + } + return 0 +} + +// A proposal to be voted upon. +type Proposal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique identifier of the proposal. + Id uint64 `protobuf:"varint,4,opt,name=id,proto3" json:"id,omitempty"` + // A short title for the proposal. + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + // 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"` +} + +func (x *Proposal) Reset() { + *x = Proposal{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Proposal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Proposal) ProtoMessage() {} + +func (x *Proposal) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[17] + 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 Proposal.ProtoReflect.Descriptor instead. +func (*Proposal) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{17} +} + +func (x *Proposal) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Proposal) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Proposal) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Proposal) GetSignaling() *Proposal_Signaling { + if x != nil { + return x.Signaling + } + return nil +} + +func (x *Proposal) GetEmergency() *Proposal_Emergency { + if x != nil { + return x.Emergency + } + return nil +} + +func (x *Proposal) GetParameterChange() *Proposal_ParameterChange { + if x != nil { + return x.ParameterChange + } + return nil +} + +func (x *Proposal) GetDaoSpend() *Proposal_DaoSpend { + if x != nil { + return x.DaoSpend + } + return nil +} + +func (x *Proposal) GetUpgradePlan() *Proposal_UpgradePlan { + if x != nil { + return x.UpgradePlan + } + return nil +} + +type DelegatorVoteView_Visible struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DelegatorVote *DelegatorVote `protobuf:"bytes,1,opt,name=delegator_vote,json=delegatorVote,proto3" json:"delegator_vote,omitempty"` + Note *v1alpha14.NoteView `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *DelegatorVoteView_Visible) Reset() { + *x = DelegatorVoteView_Visible{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelegatorVoteView_Visible) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelegatorVoteView_Visible) ProtoMessage() {} + +func (x *DelegatorVoteView_Visible) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[18] + 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 DelegatorVoteView_Visible.ProtoReflect.Descriptor instead. +func (*DelegatorVoteView_Visible) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *DelegatorVoteView_Visible) GetDelegatorVote() *DelegatorVote { + if x != nil { + return x.DelegatorVote + } + return nil +} + +func (x *DelegatorVoteView_Visible) GetNote() *v1alpha14.NoteView { + if x != nil { + return x.Note + } + return nil +} + +type DelegatorVoteView_Opaque struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DelegatorVote *DelegatorVote `protobuf:"bytes,1,opt,name=delegator_vote,json=delegatorVote,proto3" json:"delegator_vote,omitempty"` +} + +func (x *DelegatorVoteView_Opaque) Reset() { + *x = DelegatorVoteView_Opaque{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DelegatorVoteView_Opaque) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DelegatorVoteView_Opaque) ProtoMessage() {} + +func (x *DelegatorVoteView_Opaque) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[19] + 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 DelegatorVoteView_Opaque.ProtoReflect.Descriptor instead. +func (*DelegatorVoteView_Opaque) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{8, 1} +} + +func (x *DelegatorVoteView_Opaque) GetDelegatorVote() *DelegatorVote { + if x != nil { + return x.DelegatorVote + } + return nil +} + +// Voting is in progress and the proposal has not yet concluded voting or been withdrawn. +type ProposalState_Voting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ProposalState_Voting) Reset() { + *x = ProposalState_Voting{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalState_Voting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalState_Voting) ProtoMessage() {} + +func (x *ProposalState_Voting) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[20] + 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 ProposalState_Voting.ProtoReflect.Descriptor instead. +func (*ProposalState_Voting) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{14, 0} +} + +// The proposal has been withdrawn but the voting period is not yet concluded. +type ProposalState_Withdrawn struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The reason for the withdrawal. + Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (x *ProposalState_Withdrawn) Reset() { + *x = ProposalState_Withdrawn{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalState_Withdrawn) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalState_Withdrawn) ProtoMessage() {} + +func (x *ProposalState_Withdrawn) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[21] + 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 ProposalState_Withdrawn.ProtoReflect.Descriptor instead. +func (*ProposalState_Withdrawn) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{14, 1} +} + +func (x *ProposalState_Withdrawn) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +// The voting period has ended, and the proposal has been assigned an outcome. +type ProposalState_Finished struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Outcome *ProposalOutcome `protobuf:"bytes,1,opt,name=outcome,proto3" json:"outcome,omitempty"` +} + +func (x *ProposalState_Finished) Reset() { + *x = ProposalState_Finished{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalState_Finished) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalState_Finished) ProtoMessage() {} + +func (x *ProposalState_Finished) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[22] + 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 ProposalState_Finished.ProtoReflect.Descriptor instead. +func (*ProposalState_Finished) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{14, 2} +} + +func (x *ProposalState_Finished) GetOutcome() *ProposalOutcome { + if x != nil { + return x.Outcome + } + return nil +} + +// The voting period has ended, and the original proposer has claimed their deposit. +type ProposalState_Claimed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Outcome *ProposalOutcome `protobuf:"bytes,1,opt,name=outcome,proto3" json:"outcome,omitempty"` +} + +func (x *ProposalState_Claimed) Reset() { + *x = ProposalState_Claimed{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalState_Claimed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalState_Claimed) ProtoMessage() {} + +func (x *ProposalState_Claimed) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[23] + 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 ProposalState_Claimed.ProtoReflect.Descriptor instead. +func (*ProposalState_Claimed) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{14, 3} +} + +func (x *ProposalState_Claimed) GetOutcome() *ProposalOutcome { + if x != nil { + return x.Outcome + } + return nil +} + +// Whether or not the proposal was withdrawn. +type ProposalOutcome_Withdrawn struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The reason for withdrawing the proposal during the voting period. + Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (x *ProposalOutcome_Withdrawn) Reset() { + *x = ProposalOutcome_Withdrawn{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalOutcome_Withdrawn) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalOutcome_Withdrawn) ProtoMessage() {} + +func (x *ProposalOutcome_Withdrawn) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[24] + 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 ProposalOutcome_Withdrawn.ProtoReflect.Descriptor instead. +func (*ProposalOutcome_Withdrawn) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15, 0} +} + +func (x *ProposalOutcome_Withdrawn) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +// The proposal was passed. +type ProposalOutcome_Passed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ProposalOutcome_Passed) Reset() { + *x = ProposalOutcome_Passed{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalOutcome_Passed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalOutcome_Passed) ProtoMessage() {} + +func (x *ProposalOutcome_Passed) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[25] + 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 ProposalOutcome_Passed.ProtoReflect.Descriptor instead. +func (*ProposalOutcome_Passed) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15, 1} +} + +// The proposal did not pass. +type ProposalOutcome_Failed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Present if the proposal was withdrawn during the voting period. + Withdrawn *ProposalOutcome_Withdrawn `protobuf:"bytes,1,opt,name=withdrawn,proto3" json:"withdrawn,omitempty"` +} + +func (x *ProposalOutcome_Failed) Reset() { + *x = ProposalOutcome_Failed{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalOutcome_Failed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalOutcome_Failed) ProtoMessage() {} + +func (x *ProposalOutcome_Failed) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[26] + 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 ProposalOutcome_Failed.ProtoReflect.Descriptor instead. +func (*ProposalOutcome_Failed) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15, 2} +} + +func (x *ProposalOutcome_Failed) GetWithdrawn() *ProposalOutcome_Withdrawn { + if x != nil { + return x.Withdrawn + } + return nil +} + +// The proposal did not pass, and was slashed. +type ProposalOutcome_Slashed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Present if the proposal was withdrawn during the voting period. + Withdrawn *ProposalOutcome_Withdrawn `protobuf:"bytes,1,opt,name=withdrawn,proto3" json:"withdrawn,omitempty"` +} + +func (x *ProposalOutcome_Slashed) Reset() { + *x = ProposalOutcome_Slashed{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProposalOutcome_Slashed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProposalOutcome_Slashed) ProtoMessage() {} + +func (x *ProposalOutcome_Slashed) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[27] + 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 ProposalOutcome_Slashed.ProtoReflect.Descriptor instead. +func (*ProposalOutcome_Slashed) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15, 3} +} + +func (x *ProposalOutcome_Slashed) GetWithdrawn() *ProposalOutcome_Withdrawn { + if x != nil { + return x.Withdrawn + } + return nil +} + +// A signaling proposal is meant to register a vote on-chain, but does not have an automatic +// effect when passed. +// +// It optionally contains a reference to a commit which contains code to upgrade the chain. +type Proposal_Signaling struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The commit to be voted upon, if any is relevant. + Commit string `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"` +} + +func (x *Proposal_Signaling) Reset() { + *x = Proposal_Signaling{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Proposal_Signaling) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Proposal_Signaling) ProtoMessage() {} + +func (x *Proposal_Signaling) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[28] + 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 Proposal_Signaling.ProtoReflect.Descriptor instead. +func (*Proposal_Signaling) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{17, 0} +} + +func (x *Proposal_Signaling) GetCommit() string { + if x != nil { + return x.Commit + } + return "" +} + +// An emergency proposal can be passed instantaneously by a 2/3 majority of validators, without +// waiting for the voting period to expire. +// +// If the boolean `halt_chain` is set to `true`, then the chain will halt immediately when the +// proposal is passed. +type Proposal_Emergency struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // If `true`, the chain will halt immediately when the proposal is passed. + HaltChain bool `protobuf:"varint,1,opt,name=halt_chain,json=haltChain,proto3" json:"halt_chain,omitempty"` +} + +func (x *Proposal_Emergency) Reset() { + *x = Proposal_Emergency{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Proposal_Emergency) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Proposal_Emergency) ProtoMessage() {} + +func (x *Proposal_Emergency) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[29] + 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 Proposal_Emergency.ProtoReflect.Descriptor instead. +func (*Proposal_Emergency) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{17, 1} +} + +func (x *Proposal_Emergency) GetHaltChain() bool { + if x != nil { + return x.HaltChain + } + return false +} + +// A parameter change proposal describes a replacement of the chain parameters, which should take +// effect when the proposal is passed. +type Proposal_ParameterChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The old chain parameters to be replaced: even if the proposal passes, the update will not be + // applied if the chain parameters have changed *at all* from these chain parameters. Usually, + // this should be set to the current chain parameters at time of proposal. + OldParameters *v1alpha15.ChainParameters `protobuf:"bytes,1,opt,name=old_parameters,json=oldParameters,proto3" json:"old_parameters,omitempty"` + // The new chain parameters to be set: the *entire* chain parameters will be replaced with these + // at the time the proposal is passed. + NewParameters *v1alpha15.ChainParameters `protobuf:"bytes,2,opt,name=new_parameters,json=newParameters,proto3" json:"new_parameters,omitempty"` +} + +func (x *Proposal_ParameterChange) Reset() { + *x = Proposal_ParameterChange{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Proposal_ParameterChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Proposal_ParameterChange) ProtoMessage() {} + +func (x *Proposal_ParameterChange) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[30] + 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 Proposal_ParameterChange.ProtoReflect.Descriptor instead. +func (*Proposal_ParameterChange) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{17, 2} +} + +func (x *Proposal_ParameterChange) GetOldParameters() *v1alpha15.ChainParameters { + if x != nil { + return x.OldParameters + } + return nil +} + +func (x *Proposal_ParameterChange) GetNewParameters() *v1alpha15.ChainParameters { + if x != nil { + return x.NewParameters + } + return nil +} + +// A DAO spend proposal describes zero or more transactions to execute on behalf of the DAO, with +// access to its funds, and zero or more scheduled transactions from previous passed proposals to +// cancel. +type Proposal_DaoSpend 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. + 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{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Proposal_DaoSpend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Proposal_DaoSpend) ProtoMessage() {} + +func (x *Proposal_DaoSpend) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[31] + 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 Proposal_DaoSpend.ProtoReflect.Descriptor instead. +func (*Proposal_DaoSpend) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{17, 3} +} + +func (x *Proposal_DaoSpend) GetTransactionPlan() *anypb.Any { + if x != nil { + return x.TransactionPlan + } + return nil +} + +// An upgrade plan describes a candidate upgrade to be executed at a certain height. If passed, the chain +// will halt at the specified height. +type Proposal_UpgradePlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *Proposal_UpgradePlan) Reset() { + *x = Proposal_UpgradePlan{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Proposal_UpgradePlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Proposal_UpgradePlan) ProtoMessage() {} + +func (x *Proposal_UpgradePlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[32] + 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 Proposal_UpgradePlan.ProtoReflect.Descriptor instead. +func (*Proposal_UpgradePlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{17, 4} +} + +func (x *Proposal_UpgradePlan) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +var File_penumbra_core_component_governance_v1alpha1_governance_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x2b, + 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, 0x1a, 0x19, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, + 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, 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, 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, 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, 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, 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, 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, 0x96, + 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, 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, 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, 0xd3, 0x02, + 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, 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 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, + 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, + 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, + 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, + 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, 0xde, 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, 0xd1, 0x01, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x5e, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x0d, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5e, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 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, 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, 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 ( + file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescOnce sync.Once + file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescData = file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDesc +) + +func file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescGZIP() []byte { + file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescData) + }) + return file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDescData +} + +var file_penumbra_core_component_governance_v1alpha1_governance_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_penumbra_core_component_governance_v1alpha1_governance_proto_goTypes = []interface{}{ + (Vote_Vote)(0), // 0: penumbra.core.component.governance.v1alpha1.Vote.Vote + (*ZKDelegatorVoteProof)(nil), // 1: penumbra.core.component.governance.v1alpha1.ZKDelegatorVoteProof + (*ProposalSubmit)(nil), // 2: penumbra.core.component.governance.v1alpha1.ProposalSubmit + (*ProposalWithdraw)(nil), // 3: penumbra.core.component.governance.v1alpha1.ProposalWithdraw + (*ProposalDepositClaim)(nil), // 4: penumbra.core.component.governance.v1alpha1.ProposalDepositClaim + (*ValidatorVote)(nil), // 5: penumbra.core.component.governance.v1alpha1.ValidatorVote + (*ValidatorVoteBody)(nil), // 6: penumbra.core.component.governance.v1alpha1.ValidatorVoteBody + (*DelegatorVote)(nil), // 7: penumbra.core.component.governance.v1alpha1.DelegatorVote + (*DelegatorVoteBody)(nil), // 8: penumbra.core.component.governance.v1alpha1.DelegatorVoteBody + (*DelegatorVoteView)(nil), // 9: penumbra.core.component.governance.v1alpha1.DelegatorVoteView + (*DelegatorVotePlan)(nil), // 10: penumbra.core.component.governance.v1alpha1.DelegatorVotePlan + (*DaoDeposit)(nil), // 11: penumbra.core.component.governance.v1alpha1.DaoDeposit + (*DaoSpend)(nil), // 12: penumbra.core.component.governance.v1alpha1.DaoSpend + (*DaoOutput)(nil), // 13: penumbra.core.component.governance.v1alpha1.DaoOutput + (*Vote)(nil), // 14: penumbra.core.component.governance.v1alpha1.Vote + (*ProposalState)(nil), // 15: penumbra.core.component.governance.v1alpha1.ProposalState + (*ProposalOutcome)(nil), // 16: penumbra.core.component.governance.v1alpha1.ProposalOutcome + (*Tally)(nil), // 17: penumbra.core.component.governance.v1alpha1.Tally + (*Proposal)(nil), // 18: penumbra.core.component.governance.v1alpha1.Proposal + (*DelegatorVoteView_Visible)(nil), // 19: penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Visible + (*DelegatorVoteView_Opaque)(nil), // 20: penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Opaque + (*ProposalState_Voting)(nil), // 21: penumbra.core.component.governance.v1alpha1.ProposalState.Voting + (*ProposalState_Withdrawn)(nil), // 22: penumbra.core.component.governance.v1alpha1.ProposalState.Withdrawn + (*ProposalState_Finished)(nil), // 23: penumbra.core.component.governance.v1alpha1.ProposalState.Finished + (*ProposalState_Claimed)(nil), // 24: penumbra.core.component.governance.v1alpha1.ProposalState.Claimed + (*ProposalOutcome_Withdrawn)(nil), // 25: penumbra.core.component.governance.v1alpha1.ProposalOutcome.Withdrawn + (*ProposalOutcome_Passed)(nil), // 26: penumbra.core.component.governance.v1alpha1.ProposalOutcome.Passed + (*ProposalOutcome_Failed)(nil), // 27: penumbra.core.component.governance.v1alpha1.ProposalOutcome.Failed + (*ProposalOutcome_Slashed)(nil), // 28: penumbra.core.component.governance.v1alpha1.ProposalOutcome.Slashed + (*Proposal_Signaling)(nil), // 29: penumbra.core.component.governance.v1alpha1.Proposal.Signaling + (*Proposal_Emergency)(nil), // 30: penumbra.core.component.governance.v1alpha1.Proposal.Emergency + (*Proposal_ParameterChange)(nil), // 31: penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange + (*Proposal_DaoSpend)(nil), // 32: penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend + (*Proposal_UpgradePlan)(nil), // 33: penumbra.core.component.governance.v1alpha1.Proposal.UpgradePlan + (*v1alpha1.Amount)(nil), // 34: penumbra.core.num.v1alpha1.Amount + (*v1alpha11.SpendAuthSignature)(nil), // 35: penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature + (*v1alpha12.IdentityKey)(nil), // 36: penumbra.core.keys.v1alpha1.IdentityKey + (*v1alpha12.GovernanceKey)(nil), // 37: penumbra.core.keys.v1alpha1.GovernanceKey + (*v1alpha13.Value)(nil), // 38: penumbra.core.asset.v1alpha1.Value + (*v1alpha14.Note)(nil), // 39: penumbra.core.component.shielded_pool.v1alpha1.Note + (*v1alpha12.Address)(nil), // 40: penumbra.core.keys.v1alpha1.Address + (*v1alpha14.NoteView)(nil), // 41: penumbra.core.component.shielded_pool.v1alpha1.NoteView + (*v1alpha15.ChainParameters)(nil), // 42: penumbra.core.component.chain.v1alpha1.ChainParameters + (*anypb.Any)(nil), // 43: google.protobuf.Any +} +var file_penumbra_core_component_governance_v1alpha1_governance_proto_depIdxs = []int32{ + 18, // 0: penumbra.core.component.governance.v1alpha1.ProposalSubmit.proposal:type_name -> penumbra.core.component.governance.v1alpha1.Proposal + 34, // 1: penumbra.core.component.governance.v1alpha1.ProposalSubmit.deposit_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 34, // 2: penumbra.core.component.governance.v1alpha1.ProposalDepositClaim.deposit_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 16, // 3: penumbra.core.component.governance.v1alpha1.ProposalDepositClaim.outcome:type_name -> penumbra.core.component.governance.v1alpha1.ProposalOutcome + 6, // 4: penumbra.core.component.governance.v1alpha1.ValidatorVote.body:type_name -> penumbra.core.component.governance.v1alpha1.ValidatorVoteBody + 35, // 5: penumbra.core.component.governance.v1alpha1.ValidatorVote.auth_sig:type_name -> penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature + 14, // 6: penumbra.core.component.governance.v1alpha1.ValidatorVoteBody.vote:type_name -> penumbra.core.component.governance.v1alpha1.Vote + 36, // 7: penumbra.core.component.governance.v1alpha1.ValidatorVoteBody.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 37, // 8: penumbra.core.component.governance.v1alpha1.ValidatorVoteBody.governance_key:type_name -> penumbra.core.keys.v1alpha1.GovernanceKey + 8, // 9: penumbra.core.component.governance.v1alpha1.DelegatorVote.body:type_name -> penumbra.core.component.governance.v1alpha1.DelegatorVoteBody + 35, // 10: penumbra.core.component.governance.v1alpha1.DelegatorVote.auth_sig:type_name -> penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature + 1, // 11: penumbra.core.component.governance.v1alpha1.DelegatorVote.proof:type_name -> penumbra.core.component.governance.v1alpha1.ZKDelegatorVoteProof + 14, // 12: penumbra.core.component.governance.v1alpha1.DelegatorVoteBody.vote:type_name -> penumbra.core.component.governance.v1alpha1.Vote + 38, // 13: penumbra.core.component.governance.v1alpha1.DelegatorVoteBody.value:type_name -> penumbra.core.asset.v1alpha1.Value + 34, // 14: penumbra.core.component.governance.v1alpha1.DelegatorVoteBody.unbonded_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 19, // 15: penumbra.core.component.governance.v1alpha1.DelegatorVoteView.visible:type_name -> penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Visible + 20, // 16: penumbra.core.component.governance.v1alpha1.DelegatorVoteView.opaque:type_name -> penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Opaque + 14, // 17: penumbra.core.component.governance.v1alpha1.DelegatorVotePlan.vote:type_name -> penumbra.core.component.governance.v1alpha1.Vote + 39, // 18: penumbra.core.component.governance.v1alpha1.DelegatorVotePlan.staked_note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Note + 34, // 19: penumbra.core.component.governance.v1alpha1.DelegatorVotePlan.unbonded_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 38, // 20: penumbra.core.component.governance.v1alpha1.DaoDeposit.value:type_name -> penumbra.core.asset.v1alpha1.Value + 38, // 21: penumbra.core.component.governance.v1alpha1.DaoSpend.value:type_name -> penumbra.core.asset.v1alpha1.Value + 38, // 22: penumbra.core.component.governance.v1alpha1.DaoOutput.value:type_name -> penumbra.core.asset.v1alpha1.Value + 40, // 23: penumbra.core.component.governance.v1alpha1.DaoOutput.address:type_name -> penumbra.core.keys.v1alpha1.Address + 0, // 24: penumbra.core.component.governance.v1alpha1.Vote.vote:type_name -> penumbra.core.component.governance.v1alpha1.Vote.Vote + 21, // 25: penumbra.core.component.governance.v1alpha1.ProposalState.voting:type_name -> penumbra.core.component.governance.v1alpha1.ProposalState.Voting + 22, // 26: penumbra.core.component.governance.v1alpha1.ProposalState.withdrawn:type_name -> penumbra.core.component.governance.v1alpha1.ProposalState.Withdrawn + 23, // 27: penumbra.core.component.governance.v1alpha1.ProposalState.finished:type_name -> penumbra.core.component.governance.v1alpha1.ProposalState.Finished + 24, // 28: penumbra.core.component.governance.v1alpha1.ProposalState.claimed:type_name -> penumbra.core.component.governance.v1alpha1.ProposalState.Claimed + 26, // 29: penumbra.core.component.governance.v1alpha1.ProposalOutcome.passed:type_name -> penumbra.core.component.governance.v1alpha1.ProposalOutcome.Passed + 27, // 30: penumbra.core.component.governance.v1alpha1.ProposalOutcome.failed:type_name -> penumbra.core.component.governance.v1alpha1.ProposalOutcome.Failed + 28, // 31: penumbra.core.component.governance.v1alpha1.ProposalOutcome.slashed:type_name -> penumbra.core.component.governance.v1alpha1.ProposalOutcome.Slashed + 29, // 32: penumbra.core.component.governance.v1alpha1.Proposal.signaling:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.Signaling + 30, // 33: penumbra.core.component.governance.v1alpha1.Proposal.emergency:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.Emergency + 31, // 34: penumbra.core.component.governance.v1alpha1.Proposal.parameter_change:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange + 32, // 35: penumbra.core.component.governance.v1alpha1.Proposal.dao_spend:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend + 33, // 36: penumbra.core.component.governance.v1alpha1.Proposal.upgrade_plan:type_name -> penumbra.core.component.governance.v1alpha1.Proposal.UpgradePlan + 7, // 37: penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Visible.delegator_vote:type_name -> penumbra.core.component.governance.v1alpha1.DelegatorVote + 41, // 38: penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Visible.note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.NoteView + 7, // 39: penumbra.core.component.governance.v1alpha1.DelegatorVoteView.Opaque.delegator_vote:type_name -> penumbra.core.component.governance.v1alpha1.DelegatorVote + 16, // 40: penumbra.core.component.governance.v1alpha1.ProposalState.Finished.outcome:type_name -> penumbra.core.component.governance.v1alpha1.ProposalOutcome + 16, // 41: penumbra.core.component.governance.v1alpha1.ProposalState.Claimed.outcome:type_name -> penumbra.core.component.governance.v1alpha1.ProposalOutcome + 25, // 42: penumbra.core.component.governance.v1alpha1.ProposalOutcome.Failed.withdrawn:type_name -> penumbra.core.component.governance.v1alpha1.ProposalOutcome.Withdrawn + 25, // 43: penumbra.core.component.governance.v1alpha1.ProposalOutcome.Slashed.withdrawn:type_name -> penumbra.core.component.governance.v1alpha1.ProposalOutcome.Withdrawn + 42, // 44: penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange.old_parameters:type_name -> penumbra.core.component.chain.v1alpha1.ChainParameters + 42, // 45: penumbra.core.component.governance.v1alpha1.Proposal.ParameterChange.new_parameters:type_name -> penumbra.core.component.chain.v1alpha1.ChainParameters + 43, // 46: penumbra.core.component.governance.v1alpha1.Proposal.DaoSpend.transaction_plan:type_name -> google.protobuf.Any + 47, // [47:47] is the sub-list for method output_type + 47, // [47:47] is the sub-list for method input_type + 47, // [47:47] is the sub-list for extension type_name + 47, // [47:47] is the sub-list for extension extendee + 0, // [0:47] is the sub-list for field type_name +} + +func init() { file_penumbra_core_component_governance_v1alpha1_governance_proto_init() } +func file_penumbra_core_component_governance_v1alpha1_governance_proto_init() { + if File_penumbra_core_component_governance_v1alpha1_governance_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZKDelegatorVoteProof); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalSubmit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalWithdraw); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalDepositClaim); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidatorVote); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidatorVoteBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegatorVote); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegatorVoteBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegatorVoteView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegatorVotePlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DaoDeposit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DaoSpend); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DaoOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Vote); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalOutcome); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Tally); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Proposal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegatorVoteView_Visible); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DelegatorVoteView_Opaque); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalState_Voting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalState_Withdrawn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalState_Finished); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalState_Claimed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalOutcome_Withdrawn); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalOutcome_Passed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalOutcome_Failed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProposalOutcome_Slashed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Proposal_Signaling); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Proposal_Emergency); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Proposal_ParameterChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Proposal_DaoSpend); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Proposal_UpgradePlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[8].OneofWrappers = []interface{}{ + (*DelegatorVoteView_Visible_)(nil), + (*DelegatorVoteView_Opaque_)(nil), + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[14].OneofWrappers = []interface{}{ + (*ProposalState_Voting_)(nil), + (*ProposalState_Withdrawn_)(nil), + (*ProposalState_Finished_)(nil), + (*ProposalState_Claimed_)(nil), + } + file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes[15].OneofWrappers = []interface{}{ + (*ProposalOutcome_Passed_)(nil), + (*ProposalOutcome_Failed_)(nil), + (*ProposalOutcome_Slashed_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDesc, + NumEnums: 1, + NumMessages: 33, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_component_governance_v1alpha1_governance_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_governance_v1alpha1_governance_proto_depIdxs, + EnumInfos: file_penumbra_core_component_governance_v1alpha1_governance_proto_enumTypes, + MessageInfos: file_penumbra_core_component_governance_v1alpha1_governance_proto_msgTypes, + }.Build() + File_penumbra_core_component_governance_v1alpha1_governance_proto = out.File + file_penumbra_core_component_governance_v1alpha1_governance_proto_rawDesc = nil + file_penumbra_core_component_governance_v1alpha1_governance_proto_goTypes = nil + file_penumbra_core_component_governance_v1alpha1_governance_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/ibc/v1alpha1/ibc.pb.go b/proto/go/gen/penumbra/core/component/ibc/v1alpha1/ibc.pb.go similarity index 52% rename from proto/go/gen/penumbra/core/ibc/v1alpha1/ibc.pb.go rename to proto/go/gen/penumbra/core/component/ibc/v1alpha1/ibc.pb.go index 7111d54e65..ab20bf1e80 100644 --- a/proto/go/gen/penumbra/core/ibc/v1alpha1/ibc.pb.go +++ b/proto/go/gen/penumbra/core/component/ibc/v1alpha1/ibc.pb.go @@ -2,13 +2,15 @@ // versions: // protoc-gen-go v1.31.0 // protoc (unknown) -// source: penumbra/core/ibc/v1alpha1/ibc.proto +// source: penumbra/core/component/ibc/v1alpha1/ibc.proto package ibcv1alpha1 import ( types "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/num/v1alpha1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" @@ -28,35 +30,13 @@ type IbcAction struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // oneof action { - // .ibc.core.connection.v1.MsgConnectionOpenInit connection_open_init = 1; - // .ibc.core.connection.v1.MsgConnectionOpenTry connection_open_try = 2; - // .ibc.core.connection.v1.MsgConnectionOpenAck connection_open_ack = 3; - // .ibc.core.connection.v1.MsgConnectionOpenConfirm connection_open_confirm = 4; - // - // .ibc.core.channel.v1.MsgChannelOpenInit channel_open_init = 5; - // .ibc.core.channel.v1.MsgChannelOpenTry channel_open_try = 6; - // .ibc.core.channel.v1.MsgChannelOpenAck channel_open_ack = 7; - // .ibc.core.channel.v1.MsgChannelOpenConfirm channel_open_confirm = 8; - // .ibc.core.channel.v1.MsgChannelCloseInit channel_close_init = 9; - // .ibc.core.channel.v1.MsgChannelCloseConfirm channel_close_confirm = 10; - // - // .ibc.core.channel.v1.MsgRecvPacket recv_packet = 11; - // .ibc.core.channel.v1.MsgTimeout timeout = 12; - // .ibc.core.channel.v1.MsgAcknowledgement acknowledgement = 13; - // - // .ibc.core.client.v1.MsgCreateClient create_client = 14; - // .ibc.core.client.v1.MsgUpdateClient update_client = 15; - // .ibc.core.client.v1.MsgUpgradeClient upgrade_client = 16; - // .ibc.core.client.v1.MsgSubmitMisbehaviour submit_misbehaviour = 17; - // } RawAction *anypb.Any `protobuf:"bytes,1,opt,name=raw_action,json=rawAction,proto3" json:"raw_action,omitempty"` } func (x *IbcAction) Reset() { *x = IbcAction{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[0] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -69,7 +49,7 @@ func (x *IbcAction) String() string { func (*IbcAction) ProtoMessage() {} func (x *IbcAction) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[0] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82,7 +62,7 @@ func (x *IbcAction) ProtoReflect() protoreflect.Message { // Deprecated: Use IbcAction.ProtoReflect.Descriptor instead. func (*IbcAction) Descriptor() ([]byte, []int) { - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{0} + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{0} } func (x *IbcAction) GetRawAction() *anypb.Any { @@ -113,7 +93,7 @@ type FungibleTokenPacketData struct { func (x *FungibleTokenPacketData) Reset() { *x = FungibleTokenPacketData{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[1] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -126,7 +106,7 @@ func (x *FungibleTokenPacketData) String() string { func (*FungibleTokenPacketData) ProtoMessage() {} func (x *FungibleTokenPacketData) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[1] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -139,7 +119,7 @@ func (x *FungibleTokenPacketData) ProtoReflect() protoreflect.Message { // Deprecated: Use FungibleTokenPacketData.ProtoReflect.Descriptor instead. func (*FungibleTokenPacketData) Descriptor() ([]byte, []int) { - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{1} + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{1} } func (x *FungibleTokenPacketData) GetDenom() string { @@ -170,18 +150,19 @@ func (x *FungibleTokenPacketData) GetReceiver() string { return "" } +// A Penumbra transaction action requesting an ICS20 transfer. type Ics20Withdrawal struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Amount *v1alpha1.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - Denom *v1alpha1.Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Denom *v1alpha11.Denom `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` // the address on the destination chain to send the transfer to DestinationChainAddress string `protobuf:"bytes,3,opt,name=destination_chain_address,json=destinationChainAddress,proto3" json:"destination_chain_address,omitempty"` // a "sender" penumbra address to use to return funds from this withdrawal. // this should be an ephemeral address - ReturnAddress *v1alpha1.Address `protobuf:"bytes,4,opt,name=return_address,json=returnAddress,proto3" json:"return_address,omitempty"` + ReturnAddress *v1alpha12.Address `protobuf:"bytes,4,opt,name=return_address,json=returnAddress,proto3" json:"return_address,omitempty"` // The height on the counterparty chain at which this transfer expires, and // funds are sent back to the return address. TimeoutHeight *types.Height `protobuf:"bytes,5,opt,name=timeout_height,json=timeoutHeight,proto3" json:"timeout_height,omitempty"` @@ -194,7 +175,7 @@ type Ics20Withdrawal struct { func (x *Ics20Withdrawal) Reset() { *x = Ics20Withdrawal{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[2] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -207,7 +188,7 @@ func (x *Ics20Withdrawal) String() string { func (*Ics20Withdrawal) ProtoMessage() {} func (x *Ics20Withdrawal) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[2] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -220,7 +201,7 @@ func (x *Ics20Withdrawal) ProtoReflect() protoreflect.Message { // Deprecated: Use Ics20Withdrawal.ProtoReflect.Descriptor instead. func (*Ics20Withdrawal) Descriptor() ([]byte, []int) { - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{2} + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{2} } func (x *Ics20Withdrawal) GetAmount() *v1alpha1.Amount { @@ -230,7 +211,7 @@ func (x *Ics20Withdrawal) GetAmount() *v1alpha1.Amount { return nil } -func (x *Ics20Withdrawal) GetDenom() *v1alpha1.Denom { +func (x *Ics20Withdrawal) GetDenom() *v1alpha11.Denom { if x != nil { return x.Denom } @@ -244,7 +225,7 @@ func (x *Ics20Withdrawal) GetDestinationChainAddress() string { return "" } -func (x *Ics20Withdrawal) GetReturnAddress() *v1alpha1.Address { +func (x *Ics20Withdrawal) GetReturnAddress() *v1alpha12.Address { if x != nil { return x.ReturnAddress } @@ -286,7 +267,7 @@ type ClientData struct { func (x *ClientData) Reset() { *x = ClientData{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[3] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -299,7 +280,7 @@ func (x *ClientData) String() string { func (*ClientData) ProtoMessage() {} func (x *ClientData) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[3] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -312,7 +293,7 @@ func (x *ClientData) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientData.ProtoReflect.Descriptor instead. func (*ClientData) Descriptor() ([]byte, []int) { - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{3} + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{3} } func (x *ClientData) GetClientId() string { @@ -354,7 +335,7 @@ type ClientCounter struct { func (x *ClientCounter) Reset() { *x = ClientCounter{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[4] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -367,7 +348,7 @@ func (x *ClientCounter) String() string { func (*ClientCounter) ProtoMessage() {} func (x *ClientCounter) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[4] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -380,7 +361,7 @@ func (x *ClientCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientCounter.ProtoReflect.Descriptor instead. func (*ClientCounter) Descriptor() ([]byte, []int) { - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{4} + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{4} } func (x *ClientCounter) GetCounter() uint64 { @@ -401,7 +382,7 @@ type ConsensusState struct { func (x *ConsensusState) Reset() { *x = ConsensusState{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[5] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -414,7 +395,7 @@ func (x *ConsensusState) String() string { func (*ConsensusState) ProtoMessage() {} func (x *ConsensusState) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[5] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -427,7 +408,7 @@ func (x *ConsensusState) ProtoReflect() protoreflect.Message { // Deprecated: Use ConsensusState.ProtoReflect.Descriptor instead. func (*ConsensusState) Descriptor() ([]byte, []int) { - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{5} + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{5} } func (x *ConsensusState) GetConsensusState() *anypb.Any { @@ -448,7 +429,7 @@ type VerifiedHeights struct { func (x *VerifiedHeights) Reset() { *x = VerifiedHeights{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[6] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -461,7 +442,7 @@ func (x *VerifiedHeights) String() string { func (*VerifiedHeights) ProtoMessage() {} func (x *VerifiedHeights) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[6] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -474,7 +455,7 @@ func (x *VerifiedHeights) ProtoReflect() protoreflect.Message { // Deprecated: Use VerifiedHeights.ProtoReflect.Descriptor instead. func (*VerifiedHeights) Descriptor() ([]byte, []int) { - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{6} + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{6} } func (x *VerifiedHeights) GetHeights() []*types.Height { @@ -495,7 +476,7 @@ type ConnectionCounter struct { func (x *ConnectionCounter) Reset() { *x = ConnectionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[7] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -508,7 +489,7 @@ func (x *ConnectionCounter) String() string { func (*ConnectionCounter) ProtoMessage() {} func (x *ConnectionCounter) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[7] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -521,7 +502,7 @@ func (x *ConnectionCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use ConnectionCounter.ProtoReflect.Descriptor instead. func (*ConnectionCounter) Descriptor() ([]byte, []int) { - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{7} + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{7} } func (x *ConnectionCounter) GetCounter() uint64 { @@ -542,7 +523,7 @@ type ClientConnections struct { func (x *ClientConnections) Reset() { *x = ClientConnections{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[8] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -555,7 +536,7 @@ func (x *ClientConnections) String() string { func (*ClientConnections) ProtoMessage() {} func (x *ClientConnections) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[8] + mi := &file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -568,7 +549,7 @@ func (x *ClientConnections) ProtoReflect() protoreflect.Message { // Deprecated: Use ClientConnections.ProtoReflect.Descriptor instead. func (*ClientConnections) Descriptor() ([]byte, []int) { - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{8} + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP(), []int{8} } func (x *ClientConnections) GetConnections() []string { @@ -578,20 +559,26 @@ func (x *ClientConnections) GetConnections() []string { return nil } -var File_penumbra_core_ibc_v1alpha1_ibc_proto protoreflect.FileDescriptor - -var file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDesc = []byte{ - 0x0a, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, - 0x69, 0x62, 0x63, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x62, 0x63, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x1a, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, - 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, - 0x69, 0x62, 0x63, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x40, 0x0a, 0x09, 0x49, 0x62, +var File_penumbra_core_component_ibc_v1alpha1_ibc_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_ibc_v1alpha1_ibc_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, 0x69, 0x62, 0x63, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x62, 0x63, 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, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x1f, 0x69, 0x62, 0x63, 0x2f, 0x63, 0x6f, 0x72, 0x65, + 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 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, 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, 0x40, 0x0a, 0x09, 0x49, 0x62, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x0a, 0x72, 0x61, 0x77, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 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, @@ -603,121 +590,125 @@ var file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDesc = []byte{ 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x22, 0xa4, 0x03, 0x0a, 0x0f, 0x49, 0x63, - 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x3d, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x64, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x4d, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 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, 0x41, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x62, - 0x63, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x22, 0xb4, 0x01, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x0c, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 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, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, - 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, - 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x29, 0x0a, 0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x22, 0x4f, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x22, 0x47, 0x0a, 0x0f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x07, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x22, 0x2d, 0x0a, 0x11, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x11, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x42, 0x8c, 0x02, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x08, 0x49, 0x62, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x55, 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, - 0x69, 0x62, 0x63, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x69, 0x62, 0x63, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x49, 0xaa, 0x02, - 0x1a, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x49, - 0x62, 0x63, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1a, 0x50, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x49, 0x62, 0x63, 0x5c, - 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x26, 0x50, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x49, 0x62, 0x63, 0x5c, 0x56, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x1d, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, - 0x72, 0x65, 0x3a, 0x3a, 0x49, 0x62, 0x63, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x22, 0x9e, 0x03, 0x0a, 0x0f, 0x49, 0x63, + 0x73, 0x32, 0x30, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x3a, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 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, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x18, 0x02, 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, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x05, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x4b, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x04, 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, 0x41, 0x0a, + 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xb4, 0x01, 0x0a, 0x0a, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 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, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x22, 0x29, 0x0a, 0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x4f, 0x0a, 0x0e, + 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3d, + 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x01, 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, 0x0e, 0x63, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x47, 0x0a, + 0x0f, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x12, 0x34, 0x0a, 0x07, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x07, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x22, 0x2d, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 0x69, 0x62, 0x63, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x08, 0x49, 0x62, 0x63, 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, 0x69, 0x62, + 0x63, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x69, 0x62, 0x63, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, 0x49, 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, 0x49, 0x62, 0x63, 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, 0x49, + 0x62, 0x63, 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, 0x49, 0x62, 0x63, 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, 0x49, 0x62, 0x63, 0x3a, + 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( - file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescOnce sync.Once - file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescData = file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDesc + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescOnce sync.Once + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescData = file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDesc ) -func file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescGZIP() []byte { - file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescOnce.Do(func() { - file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescData) +func file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescGZIP() []byte { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescData) }) - return file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDescData -} - -var file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_penumbra_core_ibc_v1alpha1_ibc_proto_goTypes = []interface{}{ - (*IbcAction)(nil), // 0: penumbra.core.ibc.v1alpha1.IbcAction - (*FungibleTokenPacketData)(nil), // 1: penumbra.core.ibc.v1alpha1.FungibleTokenPacketData - (*Ics20Withdrawal)(nil), // 2: penumbra.core.ibc.v1alpha1.Ics20Withdrawal - (*ClientData)(nil), // 3: penumbra.core.ibc.v1alpha1.ClientData - (*ClientCounter)(nil), // 4: penumbra.core.ibc.v1alpha1.ClientCounter - (*ConsensusState)(nil), // 5: penumbra.core.ibc.v1alpha1.ConsensusState - (*VerifiedHeights)(nil), // 6: penumbra.core.ibc.v1alpha1.VerifiedHeights - (*ConnectionCounter)(nil), // 7: penumbra.core.ibc.v1alpha1.ConnectionCounter - (*ClientConnections)(nil), // 8: penumbra.core.ibc.v1alpha1.ClientConnections + return file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDescData +} + +var file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_penumbra_core_component_ibc_v1alpha1_ibc_proto_goTypes = []interface{}{ + (*IbcAction)(nil), // 0: penumbra.core.component.ibc.v1alpha1.IbcAction + (*FungibleTokenPacketData)(nil), // 1: penumbra.core.component.ibc.v1alpha1.FungibleTokenPacketData + (*Ics20Withdrawal)(nil), // 2: penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal + (*ClientData)(nil), // 3: penumbra.core.component.ibc.v1alpha1.ClientData + (*ClientCounter)(nil), // 4: penumbra.core.component.ibc.v1alpha1.ClientCounter + (*ConsensusState)(nil), // 5: penumbra.core.component.ibc.v1alpha1.ConsensusState + (*VerifiedHeights)(nil), // 6: penumbra.core.component.ibc.v1alpha1.VerifiedHeights + (*ConnectionCounter)(nil), // 7: penumbra.core.component.ibc.v1alpha1.ConnectionCounter + (*ClientConnections)(nil), // 8: penumbra.core.component.ibc.v1alpha1.ClientConnections (*anypb.Any)(nil), // 9: google.protobuf.Any - (*v1alpha1.Amount)(nil), // 10: penumbra.core.crypto.v1alpha1.Amount - (*v1alpha1.Denom)(nil), // 11: penumbra.core.crypto.v1alpha1.Denom - (*v1alpha1.Address)(nil), // 12: penumbra.core.crypto.v1alpha1.Address + (*v1alpha1.Amount)(nil), // 10: penumbra.core.num.v1alpha1.Amount + (*v1alpha11.Denom)(nil), // 11: penumbra.core.asset.v1alpha1.Denom + (*v1alpha12.Address)(nil), // 12: penumbra.core.keys.v1alpha1.Address (*types.Height)(nil), // 13: ibc.core.client.v1.Height } -var file_penumbra_core_ibc_v1alpha1_ibc_proto_depIdxs = []int32{ - 9, // 0: penumbra.core.ibc.v1alpha1.IbcAction.raw_action:type_name -> google.protobuf.Any - 10, // 1: penumbra.core.ibc.v1alpha1.Ics20Withdrawal.amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 11, // 2: penumbra.core.ibc.v1alpha1.Ics20Withdrawal.denom:type_name -> penumbra.core.crypto.v1alpha1.Denom - 12, // 3: penumbra.core.ibc.v1alpha1.Ics20Withdrawal.return_address:type_name -> penumbra.core.crypto.v1alpha1.Address - 13, // 4: penumbra.core.ibc.v1alpha1.Ics20Withdrawal.timeout_height:type_name -> ibc.core.client.v1.Height - 9, // 5: penumbra.core.ibc.v1alpha1.ClientData.client_state:type_name -> google.protobuf.Any - 9, // 6: penumbra.core.ibc.v1alpha1.ConsensusState.consensus_state:type_name -> google.protobuf.Any - 13, // 7: penumbra.core.ibc.v1alpha1.VerifiedHeights.heights:type_name -> ibc.core.client.v1.Height +var file_penumbra_core_component_ibc_v1alpha1_ibc_proto_depIdxs = []int32{ + 9, // 0: penumbra.core.component.ibc.v1alpha1.IbcAction.raw_action:type_name -> google.protobuf.Any + 10, // 1: penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal.amount:type_name -> penumbra.core.num.v1alpha1.Amount + 11, // 2: penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal.denom:type_name -> penumbra.core.asset.v1alpha1.Denom + 12, // 3: penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal.return_address:type_name -> penumbra.core.keys.v1alpha1.Address + 13, // 4: penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal.timeout_height:type_name -> ibc.core.client.v1.Height + 9, // 5: penumbra.core.component.ibc.v1alpha1.ClientData.client_state:type_name -> google.protobuf.Any + 9, // 6: penumbra.core.component.ibc.v1alpha1.ConsensusState.consensus_state:type_name -> google.protobuf.Any + 13, // 7: penumbra.core.component.ibc.v1alpha1.VerifiedHeights.heights:type_name -> ibc.core.client.v1.Height 8, // [8:8] is the sub-list for method output_type 8, // [8:8] is the sub-list for method input_type 8, // [8:8] is the sub-list for extension type_name @@ -725,13 +716,13 @@ var file_penumbra_core_ibc_v1alpha1_ibc_proto_depIdxs = []int32{ 0, // [0:8] is the sub-list for field type_name } -func init() { file_penumbra_core_ibc_v1alpha1_ibc_proto_init() } -func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { - if File_penumbra_core_ibc_v1alpha1_ibc_proto != nil { +func init() { file_penumbra_core_component_ibc_v1alpha1_ibc_proto_init() } +func file_penumbra_core_component_ibc_v1alpha1_ibc_proto_init() { + if File_penumbra_core_component_ibc_v1alpha1_ibc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IbcAction); i { case 0: return &v.state @@ -743,7 +734,7 @@ func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { return nil } } - file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FungibleTokenPacketData); i { case 0: return &v.state @@ -755,7 +746,7 @@ func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { return nil } } - file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ics20Withdrawal); i { case 0: return &v.state @@ -767,7 +758,7 @@ func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { return nil } } - file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientData); i { case 0: return &v.state @@ -779,7 +770,7 @@ func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { return nil } } - file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientCounter); i { case 0: return &v.state @@ -791,7 +782,7 @@ func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { return nil } } - file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConsensusState); i { case 0: return &v.state @@ -803,7 +794,7 @@ func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { return nil } } - file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VerifiedHeights); i { case 0: return &v.state @@ -815,7 +806,7 @@ func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { return nil } } - file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConnectionCounter); i { case 0: return &v.state @@ -827,7 +818,7 @@ func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { return nil } } - file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientConnections); i { case 0: return &v.state @@ -844,18 +835,18 @@ func file_penumbra_core_ibc_v1alpha1_ibc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDesc, + RawDescriptor: file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDesc, NumEnums: 0, NumMessages: 9, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_penumbra_core_ibc_v1alpha1_ibc_proto_goTypes, - DependencyIndexes: file_penumbra_core_ibc_v1alpha1_ibc_proto_depIdxs, - MessageInfos: file_penumbra_core_ibc_v1alpha1_ibc_proto_msgTypes, + GoTypes: file_penumbra_core_component_ibc_v1alpha1_ibc_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_ibc_v1alpha1_ibc_proto_depIdxs, + MessageInfos: file_penumbra_core_component_ibc_v1alpha1_ibc_proto_msgTypes, }.Build() - File_penumbra_core_ibc_v1alpha1_ibc_proto = out.File - file_penumbra_core_ibc_v1alpha1_ibc_proto_rawDesc = nil - file_penumbra_core_ibc_v1alpha1_ibc_proto_goTypes = nil - file_penumbra_core_ibc_v1alpha1_ibc_proto_depIdxs = nil + File_penumbra_core_component_ibc_v1alpha1_ibc_proto = out.File + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_rawDesc = nil + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_goTypes = nil + file_penumbra_core_component_ibc_v1alpha1_ibc_proto_depIdxs = nil } 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 new file mode 100644 index 0000000000..1a52e119fa --- /dev/null +++ b/proto/go/gen/penumbra/core/component/sct/v1alpha1/sct.pb.go @@ -0,0 +1,165 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/component/sct/v1alpha1/sct.proto + +package sctv1alpha1 + +import ( + 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) +) + +type Nullifier struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *Nullifier) Reset() { + *x = Nullifier{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_sct_v1alpha1_sct_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Nullifier) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Nullifier) ProtoMessage() {} + +func (x *Nullifier) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_sct_v1alpha1_sct_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 Nullifier.ProtoReflect.Descriptor instead. +func (*Nullifier) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDescGZIP(), []int{0} +} + +func (x *Nullifier) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +var File_penumbra_core_component_sct_v1alpha1_sct_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_sct_v1alpha1_sct_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, 0x73, 0x63, 0x74, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x63, 0x74, 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, 0x73, 0x63, 0x74, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 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, 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 ( + file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDescOnce sync.Once + file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDescData = file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDesc +) + +func file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDescGZIP() []byte { + file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDescData) + }) + return file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDescData +} + +var file_penumbra_core_component_sct_v1alpha1_sct_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_penumbra_core_component_sct_v1alpha1_sct_proto_goTypes = []interface{}{ + (*Nullifier)(nil), // 0: penumbra.core.component.sct.v1alpha1.Nullifier +} +var file_penumbra_core_component_sct_v1alpha1_sct_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_penumbra_core_component_sct_v1alpha1_sct_proto_init() } +func file_penumbra_core_component_sct_v1alpha1_sct_proto_init() { + if File_penumbra_core_component_sct_v1alpha1_sct_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_component_sct_v1alpha1_sct_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Nullifier); 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_sct_v1alpha1_sct_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_component_sct_v1alpha1_sct_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_sct_v1alpha1_sct_proto_depIdxs, + MessageInfos: file_penumbra_core_component_sct_v1alpha1_sct_proto_msgTypes, + }.Build() + File_penumbra_core_component_sct_v1alpha1_sct_proto = out.File + file_penumbra_core_component_sct_v1alpha1_sct_proto_rawDesc = nil + file_penumbra_core_component_sct_v1alpha1_sct_proto_goTypes = nil + file_penumbra_core_component_sct_v1alpha1_sct_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.pb.go b/proto/go/gen/penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.pb.go new file mode 100644 index 0000000000..76096a198e --- /dev/null +++ b/proto/go/gen/penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.pb.go @@ -0,0 +1,1837 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto + +package shielded_poolv1alpha1 + +import ( + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/decaf377_rdsa/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/tct/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) +) + +type Note struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Rseed []byte `protobuf:"bytes,2,opt,name=rseed,proto3" json:"rseed,omitempty"` + Address *v1alpha11.Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *Note) Reset() { + *x = Note{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Note) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Note) ProtoMessage() {} + +func (x *Note) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_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 Note.ProtoReflect.Descriptor instead. +func (*Note) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{0} +} + +func (x *Note) GetValue() *v1alpha1.Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *Note) GetRseed() []byte { + if x != nil { + return x.Rseed + } + return nil +} + +func (x *Note) GetAddress() *v1alpha11.Address { + if x != nil { + return x.Address + } + return nil +} + +type NoteView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *v1alpha1.ValueView `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Rseed []byte `protobuf:"bytes,2,opt,name=rseed,proto3" json:"rseed,omitempty"` + Address *v1alpha11.AddressView `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *NoteView) Reset() { + *x = NoteView{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NoteView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NoteView) ProtoMessage() {} + +func (x *NoteView) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_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 NoteView.ProtoReflect.Descriptor instead. +func (*NoteView) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{1} +} + +func (x *NoteView) GetValue() *v1alpha1.ValueView { + if x != nil { + return x.Value + } + return nil +} + +func (x *NoteView) GetRseed() []byte { + if x != nil { + return x.Rseed + } + return nil +} + +func (x *NoteView) GetAddress() *v1alpha11.AddressView { + if x != nil { + return x.Address + } + return nil +} + +// An encrypted note. +// 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. +type NoteCiphertext struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *NoteCiphertext) Reset() { + *x = NoteCiphertext{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NoteCiphertext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NoteCiphertext) ProtoMessage() {} + +func (x *NoteCiphertext) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_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 NoteCiphertext.ProtoReflect.Descriptor instead. +func (*NoteCiphertext) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{2} +} + +func (x *NoteCiphertext) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// The body of an output description, including only the minimal +// data required to scan and process the output. +type NotePayload struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The note commitment for the output note. 32 bytes. + NoteCommitment *v1alpha12.StateCommitment `protobuf:"bytes,1,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` + // The encoding of an ephemeral public key. 32 bytes. + EphemeralKey []byte `protobuf:"bytes,2,opt,name=ephemeral_key,json=ephemeralKey,proto3" json:"ephemeral_key,omitempty"` + // An encryption of the newly created note. + // 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. + EncryptedNote *NoteCiphertext `protobuf:"bytes,3,opt,name=encrypted_note,json=encryptedNote,proto3" json:"encrypted_note,omitempty"` +} + +func (x *NotePayload) Reset() { + *x = NotePayload{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotePayload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotePayload) ProtoMessage() {} + +func (x *NotePayload) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_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 NotePayload.ProtoReflect.Descriptor instead. +func (*NotePayload) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{3} +} + +func (x *NotePayload) GetNoteCommitment() *v1alpha12.StateCommitment { + if x != nil { + return x.NoteCommitment + } + return nil +} + +func (x *NotePayload) GetEphemeralKey() []byte { + if x != nil { + return x.EphemeralKey + } + return nil +} + +func (x *NotePayload) GetEncryptedNote() *NoteCiphertext { + if x != nil { + return x.EncryptedNote + } + return nil +} + +// A Penumbra ZK output proof. +type ZKOutputProof struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *ZKOutputProof) Reset() { + *x = ZKOutputProof{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZKOutputProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZKOutputProof) ProtoMessage() {} + +func (x *ZKOutputProof) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ZKOutputProof.ProtoReflect.Descriptor instead. +func (*ZKOutputProof) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{4} +} + +func (x *ZKOutputProof) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// A Penumbra ZK spend proof. +type ZKSpendProof struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *ZKSpendProof) Reset() { + *x = ZKSpendProof{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZKSpendProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZKSpendProof) ProtoMessage() {} + +func (x *ZKSpendProof) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ZKSpendProof.ProtoReflect.Descriptor instead. +func (*ZKSpendProof) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{5} +} + +func (x *ZKSpendProof) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// A Penumbra ZK nullifier derivation proof. +type ZKNullifierDerivationProof struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *ZKNullifierDerivationProof) Reset() { + *x = ZKNullifierDerivationProof{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZKNullifierDerivationProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZKNullifierDerivationProof) ProtoMessage() {} + +func (x *ZKNullifierDerivationProof) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ZKNullifierDerivationProof.ProtoReflect.Descriptor instead. +func (*ZKNullifierDerivationProof) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{6} +} + +func (x *ZKNullifierDerivationProof) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// Spends a shielded note. +type Spend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The effecting data of the spend. + Body *SpendBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // The authorizing signature for the spend. + AuthSig *v1alpha13.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` + // The proof that the spend is well-formed is authorizing data. + Proof *ZKSpendProof `protobuf:"bytes,3,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (x *Spend) Reset() { + *x = Spend{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Spend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Spend) ProtoMessage() {} + +func (x *Spend) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Spend.ProtoReflect.Descriptor instead. +func (*Spend) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{7} +} + +func (x *Spend) GetBody() *SpendBody { + if x != nil { + return x.Body + } + return nil +} + +func (x *Spend) GetAuthSig() *v1alpha13.SpendAuthSignature { + if x != nil { + return x.AuthSig + } + return nil +} + +func (x *Spend) GetProof() *ZKSpendProof { + if x != nil { + return x.Proof + } + return nil +} + +// The body of a spend description, containing only the effecting data +// describing changes to the ledger, and not the authorizing data that allows +// those changes to be performed. +type SpendBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A commitment to the value of the input note. + BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,1,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` + // The nullifier of the input note. + Nullifier []byte `protobuf:"bytes,3,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + // The randomized validating key for the spend authorization signature. + Rk []byte `protobuf:"bytes,4,opt,name=rk,proto3" json:"rk,omitempty"` +} + +func (x *SpendBody) Reset() { + *x = SpendBody{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpendBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpendBody) ProtoMessage() {} + +func (x *SpendBody) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpendBody.ProtoReflect.Descriptor instead. +func (*SpendBody) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{8} +} + +func (x *SpendBody) GetBalanceCommitment() *v1alpha1.BalanceCommitment { + if x != nil { + return x.BalanceCommitment + } + return nil +} + +func (x *SpendBody) GetNullifier() []byte { + if x != nil { + return x.Nullifier + } + return nil +} + +func (x *SpendBody) GetRk() []byte { + if x != nil { + return x.Rk + } + return nil +} + +type SpendView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to SpendView: + // + // *SpendView_Visible_ + // *SpendView_Opaque_ + SpendView isSpendView_SpendView `protobuf_oneof:"spend_view"` +} + +func (x *SpendView) Reset() { + *x = SpendView{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpendView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpendView) ProtoMessage() {} + +func (x *SpendView) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpendView.ProtoReflect.Descriptor instead. +func (*SpendView) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{9} +} + +func (m *SpendView) GetSpendView() isSpendView_SpendView { + if m != nil { + return m.SpendView + } + return nil +} + +func (x *SpendView) GetVisible() *SpendView_Visible { + if x, ok := x.GetSpendView().(*SpendView_Visible_); ok { + return x.Visible + } + return nil +} + +func (x *SpendView) GetOpaque() *SpendView_Opaque { + if x, ok := x.GetSpendView().(*SpendView_Opaque_); ok { + return x.Opaque + } + return nil +} + +type isSpendView_SpendView interface { + isSpendView_SpendView() +} + +type SpendView_Visible_ struct { + Visible *SpendView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` +} + +type SpendView_Opaque_ struct { + Opaque *SpendView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` +} + +func (*SpendView_Visible_) isSpendView_SpendView() {} + +func (*SpendView_Opaque_) isSpendView_SpendView() {} + +type SpendPlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The plaintext note we plan to spend. + Note *Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` + // The position of the note we plan to spend. + Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` + // The randomizer to use for the spend. + Randomizer []byte `protobuf:"bytes,3,opt,name=randomizer,proto3" json:"randomizer,omitempty"` + // The blinding factor to use for the value commitment. + ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` + // The first blinding factor to use for the ZK spend proof. + ProofBlindingR []byte `protobuf:"bytes,5,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK spend proof. + ProofBlindingS []byte `protobuf:"bytes,6,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` +} + +func (x *SpendPlan) Reset() { + *x = SpendPlan{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpendPlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpendPlan) ProtoMessage() {} + +func (x *SpendPlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpendPlan.ProtoReflect.Descriptor instead. +func (*SpendPlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{10} +} + +func (x *SpendPlan) GetNote() *Note { + if x != nil { + return x.Note + } + return nil +} + +func (x *SpendPlan) GetPosition() uint64 { + if x != nil { + return x.Position + } + return 0 +} + +func (x *SpendPlan) GetRandomizer() []byte { + if x != nil { + return x.Randomizer + } + return nil +} + +func (x *SpendPlan) GetValueBlinding() []byte { + if x != nil { + return x.ValueBlinding + } + return nil +} + +func (x *SpendPlan) GetProofBlindingR() []byte { + if x != nil { + return x.ProofBlindingR + } + return nil +} + +func (x *SpendPlan) GetProofBlindingS() []byte { + if x != nil { + return x.ProofBlindingS + } + return nil +} + +// Creates a new shielded note. +type Output struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The effecting data for the output. + Body *OutputBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // The output proof is authorizing data. + Proof *ZKOutputProof `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"` +} + +func (x *Output) Reset() { + *x = Output{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Output) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Output) ProtoMessage() {} + +func (x *Output) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Output.ProtoReflect.Descriptor instead. +func (*Output) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{11} +} + +func (x *Output) GetBody() *OutputBody { + if x != nil { + return x.Body + } + return nil +} + +func (x *Output) GetProof() *ZKOutputProof { + if x != nil { + return x.Proof + } + return nil +} + +// The body of an output description, containing only the effecting data +// describing changes to the ledger, and not the authorizing data that allows +// those changes to be performed. +type OutputBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimal data required to scan and process the new output note. + NotePayload *NotePayload `protobuf:"bytes,1,opt,name=note_payload,json=notePayload,proto3" json:"note_payload,omitempty"` + // A commitment to the value of the output note. 32 bytes. + BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,2,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` + // An encrypted key for decrypting the memo. + WrappedMemoKey []byte `protobuf:"bytes,3,opt,name=wrapped_memo_key,json=wrappedMemoKey,proto3" json:"wrapped_memo_key,omitempty"` + // The key material used for note encryption, wrapped in encryption to the + // sender's outgoing viewing key. 80 bytes. + OvkWrappedKey []byte `protobuf:"bytes,4,opt,name=ovk_wrapped_key,json=ovkWrappedKey,proto3" json:"ovk_wrapped_key,omitempty"` +} + +func (x *OutputBody) Reset() { + *x = OutputBody{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutputBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutputBody) ProtoMessage() {} + +func (x *OutputBody) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutputBody.ProtoReflect.Descriptor instead. +func (*OutputBody) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{12} +} + +func (x *OutputBody) GetNotePayload() *NotePayload { + if x != nil { + return x.NotePayload + } + return nil +} + +func (x *OutputBody) GetBalanceCommitment() *v1alpha1.BalanceCommitment { + if x != nil { + return x.BalanceCommitment + } + return nil +} + +func (x *OutputBody) GetWrappedMemoKey() []byte { + if x != nil { + return x.WrappedMemoKey + } + return nil +} + +func (x *OutputBody) GetOvkWrappedKey() []byte { + if x != nil { + return x.OvkWrappedKey + } + return nil +} + +type OutputView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to OutputView: + // + // *OutputView_Visible_ + // *OutputView_Opaque_ + OutputView isOutputView_OutputView `protobuf_oneof:"output_view"` +} + +func (x *OutputView) Reset() { + *x = OutputView{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutputView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutputView) ProtoMessage() {} + +func (x *OutputView) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutputView.ProtoReflect.Descriptor instead. +func (*OutputView) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{13} +} + +func (m *OutputView) GetOutputView() isOutputView_OutputView { + if m != nil { + return m.OutputView + } + return nil +} + +func (x *OutputView) GetVisible() *OutputView_Visible { + if x, ok := x.GetOutputView().(*OutputView_Visible_); ok { + return x.Visible + } + return nil +} + +func (x *OutputView) GetOpaque() *OutputView_Opaque { + if x, ok := x.GetOutputView().(*OutputView_Opaque_); ok { + return x.Opaque + } + return nil +} + +type isOutputView_OutputView interface { + isOutputView_OutputView() +} + +type OutputView_Visible_ struct { + Visible *OutputView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` +} + +type OutputView_Opaque_ struct { + Opaque *OutputView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` +} + +func (*OutputView_Visible_) isOutputView_OutputView() {} + +func (*OutputView_Opaque_) isOutputView_OutputView() {} + +type OutputPlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value to send to this output. + Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + // The destination address to send it to. + DestAddress *v1alpha11.Address `protobuf:"bytes,2,opt,name=dest_address,json=destAddress,proto3" json:"dest_address,omitempty"` + // The rseed to use for the new note. + Rseed []byte `protobuf:"bytes,3,opt,name=rseed,proto3" json:"rseed,omitempty"` + // The blinding factor to use for the value commitment. + ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` + // The first blinding factor to use for the ZK output proof. + ProofBlindingR []byte `protobuf:"bytes,5,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` + // The second blinding factor to use for the ZK output proof. + ProofBlindingS []byte `protobuf:"bytes,6,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` +} + +func (x *OutputPlan) Reset() { + *x = OutputPlan{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutputPlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutputPlan) ProtoMessage() {} + +func (x *OutputPlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[14] + 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 OutputPlan.ProtoReflect.Descriptor instead. +func (*OutputPlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{14} +} + +func (x *OutputPlan) GetValue() *v1alpha1.Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *OutputPlan) GetDestAddress() *v1alpha11.Address { + if x != nil { + return x.DestAddress + } + return nil +} + +func (x *OutputPlan) GetRseed() []byte { + if x != nil { + return x.Rseed + } + return nil +} + +func (x *OutputPlan) GetValueBlinding() []byte { + if x != nil { + return x.ValueBlinding + } + return nil +} + +func (x *OutputPlan) GetProofBlindingR() []byte { + if x != nil { + return x.ProofBlindingR + } + return nil +} + +func (x *OutputPlan) GetProofBlindingS() []byte { + if x != nil { + return x.ProofBlindingS + } + return nil +} + +type SpendView_Visible struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3" json:"spend,omitempty"` + Note *NoteView `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *SpendView_Visible) Reset() { + *x = SpendView_Visible{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpendView_Visible) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpendView_Visible) ProtoMessage() {} + +func (x *SpendView_Visible) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[15] + 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 SpendView_Visible.ProtoReflect.Descriptor instead. +func (*SpendView_Visible) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *SpendView_Visible) GetSpend() *Spend { + if x != nil { + return x.Spend + } + return nil +} + +func (x *SpendView_Visible) GetNote() *NoteView { + if x != nil { + return x.Note + } + return nil +} + +type SpendView_Opaque struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3" json:"spend,omitempty"` +} + +func (x *SpendView_Opaque) Reset() { + *x = SpendView_Opaque{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpendView_Opaque) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpendView_Opaque) ProtoMessage() {} + +func (x *SpendView_Opaque) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[16] + 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 SpendView_Opaque.ProtoReflect.Descriptor instead. +func (*SpendView_Opaque) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{9, 1} +} + +func (x *SpendView_Opaque) GetSpend() *Spend { + if x != nil { + return x.Spend + } + return nil +} + +type OutputView_Visible struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *Output `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + Note *NoteView `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + PayloadKey *v1alpha11.PayloadKey `protobuf:"bytes,3,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` +} + +func (x *OutputView_Visible) Reset() { + *x = OutputView_Visible{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutputView_Visible) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutputView_Visible) ProtoMessage() {} + +func (x *OutputView_Visible) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[17] + 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 OutputView_Visible.ProtoReflect.Descriptor instead. +func (*OutputView_Visible) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{13, 0} +} + +func (x *OutputView_Visible) GetOutput() *Output { + if x != nil { + return x.Output + } + return nil +} + +func (x *OutputView_Visible) GetNote() *NoteView { + if x != nil { + return x.Note + } + return nil +} + +func (x *OutputView_Visible) GetPayloadKey() *v1alpha11.PayloadKey { + if x != nil { + return x.PayloadKey + } + return nil +} + +type OutputView_Opaque struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Output *Output `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` +} + +func (x *OutputView_Opaque) Reset() { + *x = OutputView_Opaque{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutputView_Opaque) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutputView_Opaque) ProtoMessage() {} + +func (x *OutputView_Opaque) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[18] + 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 OutputView_Opaque.ProtoReflect.Descriptor instead. +func (*OutputView_Opaque) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP(), []int{13, 1} +} + +func (x *OutputView_Opaque) GetOutput() *Output { + if x != nil { + return x.Output + } + return nil +} + +var File_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x2e, 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, 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, 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, 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, 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, 0x22, 0x97, 0x01, 0x0a, 0x04, 0x4e, + 0x6f, 0x74, 0x65, 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, 0x14, + 0x0a, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x72, + 0x73, 0x65, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x03, 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, 0xa3, 0x01, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x12, 0x3d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 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, 0x56, 0x69, 0x65, 0x77, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 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, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, + 0x77, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x26, 0x0a, 0x0e, 0x4e, 0x6f, + 0x74, 0x65, 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, 0xf1, 0x01, 0x0a, 0x0b, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x56, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 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, 0x0e, 0x6e, 0x6f, 0x74, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x70, + 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0c, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x12, + 0x65, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x74, + 0x65, 0x18, 0x03, 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, 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, 0x43, 0x69, 0x70, + 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x22, 0x25, 0x0a, 0x0d, 0x5a, 0x4b, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 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, 0x24, 0x0a, + 0x0c, 0x5a, 0x4b, 0x53, 0x70, 0x65, 0x6e, 0x64, 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, 0x32, 0x0a, 0x1a, 0x5a, 0x4b, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x81, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x6e, + 0x64, 0x12, 0x4d, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 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, 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, 0x52, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 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, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x5a, 0x4b, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x99, 0x01, 0x0a, 0x09, + 0x53, 0x70, 0x65, 0x6e, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x5e, 0x0a, 0x12, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 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, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6c, + 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x75, + 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x02, 0x72, 0x6b, 0x22, 0xd2, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x65, 0x6e, + 0x64, 0x56, 0x69, 0x65, 0x77, 0x12, 0x5d, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 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, 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, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x12, 0x5a, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, + 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, + 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, 0x2e, + 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, + 0x1a, 0xa4, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x4b, 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, 0x64, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, + 0x6e, 0x64, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 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, 0x55, 0x0a, 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, + 0x65, 0x12, 0x4b, 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, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x42, 0x0c, + 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x8c, 0x02, 0x0a, + 0x09, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x6f, + 0x74, 0x65, 0x18, 0x01, 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, 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, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x72, + 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 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, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x22, 0xad, 0x01, 0x0a, 0x06, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x4e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 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, 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, 0x42, 0x6f, 0x64, 0x79, + 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x53, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, + 0x02, 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, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x5a, 0x4b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x9e, 0x02, 0x0a, 0x0a, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x5e, 0x0a, 0x0c, 0x6e, 0x6f, + 0x74, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 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, 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, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0b, 0x6e, + 0x6f, 0x74, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x5e, 0x0a, 0x12, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x02, 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, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x4d, 0x65, 0x6d, + 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x76, 0x6b, 0x5f, 0x77, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, + 0x76, 0x6b, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x22, 0xa6, 0x04, 0x0a, + 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x5e, 0x0a, 0x07, 0x76, + 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 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, 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, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x6f, + 0x70, 0x61, 0x71, 0x75, 0x65, 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, 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, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x1a, 0xf1, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, + 0x69, 0x62, 0x6c, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, + 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, + 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, 0x52, 0x06, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 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, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x03, 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, 0x1a, 0x58, 0x0a, 0x06, + 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x18, 0x01, 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, 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, 0x52, 0x06, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0xa1, 0x02, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x50, 0x6c, 0x61, 0x6e, 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, + 0x47, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x5f, 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, 0x0b, 0x64, 0x65, 0x73, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x73, 0x65, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 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, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x42, 0x95, 0x03, 0x0a, 0x32, 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, 0x68, 0x69, 0x65, 0x6c, 0x64, + 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x42, 0x11, 0x53, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x73, 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, 0x68, + 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, + 0x6f, 0x6c, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x50, 0x43, 0x43, + 0x53, 0xaa, 0x02, 0x2d, 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, 0x68, 0x69, 0x65, + 0x6c, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0xca, 0x02, 0x2d, 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, 0x68, 0x69, 0x65, + 0x6c, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0xe2, 0x02, 0x39, 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, 0x68, 0x69, 0x65, + 0x6c, 0x64, 0x65, 0x64, 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, 0x31, + 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, 0x68, 0x69, 0x65, 0x6c, + 0x64, 0x65, 0x64, 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_shielded_pool_v1alpha1_shielded_pool_proto_rawDescOnce sync.Once + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescData = file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDesc +) + +func file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescGZIP() []byte { + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescData) + }) + return file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDescData +} + +var file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_goTypes = []interface{}{ + (*Note)(nil), // 0: penumbra.core.component.shielded_pool.v1alpha1.Note + (*NoteView)(nil), // 1: penumbra.core.component.shielded_pool.v1alpha1.NoteView + (*NoteCiphertext)(nil), // 2: penumbra.core.component.shielded_pool.v1alpha1.NoteCiphertext + (*NotePayload)(nil), // 3: penumbra.core.component.shielded_pool.v1alpha1.NotePayload + (*ZKOutputProof)(nil), // 4: penumbra.core.component.shielded_pool.v1alpha1.ZKOutputProof + (*ZKSpendProof)(nil), // 5: penumbra.core.component.shielded_pool.v1alpha1.ZKSpendProof + (*ZKNullifierDerivationProof)(nil), // 6: penumbra.core.component.shielded_pool.v1alpha1.ZKNullifierDerivationProof + (*Spend)(nil), // 7: penumbra.core.component.shielded_pool.v1alpha1.Spend + (*SpendBody)(nil), // 8: penumbra.core.component.shielded_pool.v1alpha1.SpendBody + (*SpendView)(nil), // 9: penumbra.core.component.shielded_pool.v1alpha1.SpendView + (*SpendPlan)(nil), // 10: penumbra.core.component.shielded_pool.v1alpha1.SpendPlan + (*Output)(nil), // 11: penumbra.core.component.shielded_pool.v1alpha1.Output + (*OutputBody)(nil), // 12: penumbra.core.component.shielded_pool.v1alpha1.OutputBody + (*OutputView)(nil), // 13: penumbra.core.component.shielded_pool.v1alpha1.OutputView + (*OutputPlan)(nil), // 14: penumbra.core.component.shielded_pool.v1alpha1.OutputPlan + (*SpendView_Visible)(nil), // 15: penumbra.core.component.shielded_pool.v1alpha1.SpendView.Visible + (*SpendView_Opaque)(nil), // 16: penumbra.core.component.shielded_pool.v1alpha1.SpendView.Opaque + (*OutputView_Visible)(nil), // 17: penumbra.core.component.shielded_pool.v1alpha1.OutputView.Visible + (*OutputView_Opaque)(nil), // 18: penumbra.core.component.shielded_pool.v1alpha1.OutputView.Opaque + (*v1alpha1.Value)(nil), // 19: penumbra.core.asset.v1alpha1.Value + (*v1alpha11.Address)(nil), // 20: penumbra.core.keys.v1alpha1.Address + (*v1alpha1.ValueView)(nil), // 21: penumbra.core.asset.v1alpha1.ValueView + (*v1alpha11.AddressView)(nil), // 22: penumbra.core.keys.v1alpha1.AddressView + (*v1alpha12.StateCommitment)(nil), // 23: penumbra.crypto.tct.v1alpha1.StateCommitment + (*v1alpha13.SpendAuthSignature)(nil), // 24: penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature + (*v1alpha1.BalanceCommitment)(nil), // 25: penumbra.core.asset.v1alpha1.BalanceCommitment + (*v1alpha11.PayloadKey)(nil), // 26: penumbra.core.keys.v1alpha1.PayloadKey +} +var file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_depIdxs = []int32{ + 19, // 0: penumbra.core.component.shielded_pool.v1alpha1.Note.value:type_name -> penumbra.core.asset.v1alpha1.Value + 20, // 1: penumbra.core.component.shielded_pool.v1alpha1.Note.address:type_name -> penumbra.core.keys.v1alpha1.Address + 21, // 2: penumbra.core.component.shielded_pool.v1alpha1.NoteView.value:type_name -> penumbra.core.asset.v1alpha1.ValueView + 22, // 3: penumbra.core.component.shielded_pool.v1alpha1.NoteView.address:type_name -> penumbra.core.keys.v1alpha1.AddressView + 23, // 4: penumbra.core.component.shielded_pool.v1alpha1.NotePayload.note_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 2, // 5: penumbra.core.component.shielded_pool.v1alpha1.NotePayload.encrypted_note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.NoteCiphertext + 8, // 6: penumbra.core.component.shielded_pool.v1alpha1.Spend.body:type_name -> penumbra.core.component.shielded_pool.v1alpha1.SpendBody + 24, // 7: penumbra.core.component.shielded_pool.v1alpha1.Spend.auth_sig:type_name -> penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature + 5, // 8: penumbra.core.component.shielded_pool.v1alpha1.Spend.proof:type_name -> penumbra.core.component.shielded_pool.v1alpha1.ZKSpendProof + 25, // 9: penumbra.core.component.shielded_pool.v1alpha1.SpendBody.balance_commitment:type_name -> penumbra.core.asset.v1alpha1.BalanceCommitment + 15, // 10: penumbra.core.component.shielded_pool.v1alpha1.SpendView.visible:type_name -> penumbra.core.component.shielded_pool.v1alpha1.SpendView.Visible + 16, // 11: penumbra.core.component.shielded_pool.v1alpha1.SpendView.opaque:type_name -> penumbra.core.component.shielded_pool.v1alpha1.SpendView.Opaque + 0, // 12: penumbra.core.component.shielded_pool.v1alpha1.SpendPlan.note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Note + 12, // 13: penumbra.core.component.shielded_pool.v1alpha1.Output.body:type_name -> penumbra.core.component.shielded_pool.v1alpha1.OutputBody + 4, // 14: penumbra.core.component.shielded_pool.v1alpha1.Output.proof:type_name -> penumbra.core.component.shielded_pool.v1alpha1.ZKOutputProof + 3, // 15: penumbra.core.component.shielded_pool.v1alpha1.OutputBody.note_payload:type_name -> penumbra.core.component.shielded_pool.v1alpha1.NotePayload + 25, // 16: penumbra.core.component.shielded_pool.v1alpha1.OutputBody.balance_commitment:type_name -> penumbra.core.asset.v1alpha1.BalanceCommitment + 17, // 17: penumbra.core.component.shielded_pool.v1alpha1.OutputView.visible:type_name -> penumbra.core.component.shielded_pool.v1alpha1.OutputView.Visible + 18, // 18: penumbra.core.component.shielded_pool.v1alpha1.OutputView.opaque:type_name -> penumbra.core.component.shielded_pool.v1alpha1.OutputView.Opaque + 19, // 19: penumbra.core.component.shielded_pool.v1alpha1.OutputPlan.value:type_name -> penumbra.core.asset.v1alpha1.Value + 20, // 20: penumbra.core.component.shielded_pool.v1alpha1.OutputPlan.dest_address:type_name -> penumbra.core.keys.v1alpha1.Address + 7, // 21: penumbra.core.component.shielded_pool.v1alpha1.SpendView.Visible.spend:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Spend + 1, // 22: penumbra.core.component.shielded_pool.v1alpha1.SpendView.Visible.note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.NoteView + 7, // 23: penumbra.core.component.shielded_pool.v1alpha1.SpendView.Opaque.spend:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Spend + 11, // 24: penumbra.core.component.shielded_pool.v1alpha1.OutputView.Visible.output:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Output + 1, // 25: penumbra.core.component.shielded_pool.v1alpha1.OutputView.Visible.note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.NoteView + 26, // 26: penumbra.core.component.shielded_pool.v1alpha1.OutputView.Visible.payload_key:type_name -> penumbra.core.keys.v1alpha1.PayloadKey + 11, // 27: penumbra.core.component.shielded_pool.v1alpha1.OutputView.Opaque.output:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Output + 28, // [28:28] is the sub-list for method output_type + 28, // [28:28] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name +} + +func init() { file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_init() } +func file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_init() { + if File_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Note); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NoteView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NoteCiphertext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotePayload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZKOutputProof); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZKSpendProof); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZKNullifierDerivationProof); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Spend); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpendBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpendView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpendPlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Output); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutputBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutputView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutputPlan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpendView_Visible); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpendView_Opaque); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutputView_Visible); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutputView_Opaque); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*SpendView_Visible_)(nil), + (*SpendView_Opaque_)(nil), + } + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes[13].OneofWrappers = []interface{}{ + (*OutputView_Visible_)(nil), + (*OutputView_Opaque_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDesc, + NumEnums: 0, + NumMessages: 19, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_depIdxs, + MessageInfos: file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_msgTypes, + }.Build() + File_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto = out.File + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_rawDesc = nil + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_goTypes = nil + file_penumbra_core_component_shielded_pool_v1alpha1_shielded_pool_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/stake/v1alpha1/stake.pb.go b/proto/go/gen/penumbra/core/component/stake/v1alpha1/stake.pb.go similarity index 50% rename from proto/go/gen/penumbra/core/stake/v1alpha1/stake.pb.go rename to proto/go/gen/penumbra/core/component/stake/v1alpha1/stake.pb.go index 7c7802e780..7cb26df074 100644 --- a/proto/go/gen/penumbra/core/stake/v1alpha1/stake.pb.go +++ b/proto/go/gen/penumbra/core/component/stake/v1alpha1/stake.pb.go @@ -2,12 +2,14 @@ // versions: // protoc-gen-go v1.31.0 // protoc (unknown) -// source: penumbra/core/stake/v1alpha1/stake.proto +// source: penumbra/core/component/stake/v1alpha1/stake.proto package stakev1alpha1 import ( - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/num/v1alpha1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -57,11 +59,11 @@ func (x BondingState_BondingStateEnum) String() string { } func (BondingState_BondingStateEnum) Descriptor() protoreflect.EnumDescriptor { - return file_penumbra_core_stake_v1alpha1_stake_proto_enumTypes[0].Descriptor() + return file_penumbra_core_component_stake_v1alpha1_stake_proto_enumTypes[0].Descriptor() } func (BondingState_BondingStateEnum) Type() protoreflect.EnumType { - return &file_penumbra_core_stake_v1alpha1_stake_proto_enumTypes[0] + return &file_penumbra_core_component_stake_v1alpha1_stake_proto_enumTypes[0] } func (x BondingState_BondingStateEnum) Number() protoreflect.EnumNumber { @@ -70,7 +72,7 @@ func (x BondingState_BondingStateEnum) Number() protoreflect.EnumNumber { // Deprecated: Use BondingState_BondingStateEnum.Descriptor instead. func (BondingState_BondingStateEnum) EnumDescriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{6, 0} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{7, 0} } type ValidatorState_ValidatorStateEnum int32 @@ -115,11 +117,11 @@ func (x ValidatorState_ValidatorStateEnum) String() string { } func (ValidatorState_ValidatorStateEnum) Descriptor() protoreflect.EnumDescriptor { - return file_penumbra_core_stake_v1alpha1_stake_proto_enumTypes[1].Descriptor() + return file_penumbra_core_component_stake_v1alpha1_stake_proto_enumTypes[1].Descriptor() } func (ValidatorState_ValidatorStateEnum) Type() protoreflect.EnumType { - return &file_penumbra_core_stake_v1alpha1_stake_proto_enumTypes[1] + return &file_penumbra_core_component_stake_v1alpha1_stake_proto_enumTypes[1] } func (x ValidatorState_ValidatorStateEnum) Number() protoreflect.EnumNumber { @@ -128,7 +130,55 @@ func (x ValidatorState_ValidatorStateEnum) Number() protoreflect.EnumNumber { // Deprecated: Use ValidatorState_ValidatorStateEnum.Descriptor instead. func (ValidatorState_ValidatorStateEnum) EnumDescriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{7, 0} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{8, 0} +} + +// A Penumbra ZK undelegate claim proof. +type ZKUndelegateClaimProof struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *ZKUndelegateClaimProof) Reset() { + *x = ZKUndelegateClaimProof{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ZKUndelegateClaimProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ZKUndelegateClaimProof) ProtoMessage() {} + +func (x *ZKUndelegateClaimProof) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_component_stake_v1alpha1_stake_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 ZKUndelegateClaimProof.ProtoReflect.Descriptor instead. +func (*ZKUndelegateClaimProof) Descriptor() ([]byte, []int) { + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{0} +} + +func (x *ZKUndelegateClaimProof) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil } // Describes a validator's configuration data. @@ -164,7 +214,7 @@ type Validator struct { func (x *Validator) Reset() { *x = Validator{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[0] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -177,7 +227,7 @@ func (x *Validator) String() string { func (*Validator) ProtoMessage() {} func (x *Validator) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[0] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -190,7 +240,7 @@ func (x *Validator) ProtoReflect() protoreflect.Message { // Deprecated: Use Validator.ProtoReflect.Descriptor instead. func (*Validator) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{0} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{1} } func (x *Validator) GetIdentityKey() *v1alpha1.IdentityKey { @@ -268,7 +318,7 @@ type ValidatorList struct { func (x *ValidatorList) Reset() { *x = ValidatorList{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[1] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -281,7 +331,7 @@ func (x *ValidatorList) String() string { func (*ValidatorList) ProtoMessage() {} func (x *ValidatorList) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[1] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -294,7 +344,7 @@ func (x *ValidatorList) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorList.ProtoReflect.Descriptor instead. func (*ValidatorList) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{1} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{2} } func (x *ValidatorList) GetValidatorKeys() []*v1alpha1.IdentityKey { @@ -322,7 +372,7 @@ type FundingStream struct { func (x *FundingStream) Reset() { *x = FundingStream{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[2] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -335,7 +385,7 @@ func (x *FundingStream) String() string { func (*FundingStream) ProtoMessage() {} func (x *FundingStream) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[2] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -348,7 +398,7 @@ func (x *FundingStream) ProtoReflect() protoreflect.Message { // Deprecated: Use FundingStream.ProtoReflect.Descriptor instead. func (*FundingStream) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{2} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{3} } func (m *FundingStream) GetRecipient() isFundingStream_Recipient { @@ -403,7 +453,7 @@ type RateData struct { func (x *RateData) Reset() { *x = RateData{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[3] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -416,7 +466,7 @@ func (x *RateData) String() string { func (*RateData) ProtoMessage() {} func (x *RateData) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[3] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -429,7 +479,7 @@ func (x *RateData) ProtoReflect() protoreflect.Message { // Deprecated: Use RateData.ProtoReflect.Descriptor instead. func (*RateData) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{3} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{4} } func (x *RateData) GetIdentityKey() *v1alpha1.IdentityKey { @@ -474,7 +524,7 @@ type BaseRateData struct { func (x *BaseRateData) Reset() { *x = BaseRateData{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[4] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -487,7 +537,7 @@ func (x *BaseRateData) String() string { func (*BaseRateData) ProtoMessage() {} func (x *BaseRateData) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[4] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -500,7 +550,7 @@ func (x *BaseRateData) ProtoReflect() protoreflect.Message { // Deprecated: Use BaseRateData.ProtoReflect.Descriptor instead. func (*BaseRateData) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{4} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{5} } func (x *BaseRateData) GetEpochIndex() uint64 { @@ -539,7 +589,7 @@ type ValidatorStatus struct { func (x *ValidatorStatus) Reset() { *x = ValidatorStatus{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[5] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -552,7 +602,7 @@ func (x *ValidatorStatus) String() string { func (*ValidatorStatus) ProtoMessage() {} func (x *ValidatorStatus) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[5] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -565,7 +615,7 @@ func (x *ValidatorStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorStatus.ProtoReflect.Descriptor instead. func (*ValidatorStatus) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{5} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{6} } func (x *ValidatorStatus) GetIdentityKey() *v1alpha1.IdentityKey { @@ -602,14 +652,14 @@ type BondingState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - State BondingState_BondingStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.stake.v1alpha1.BondingState_BondingStateEnum" json:"state,omitempty"` + State BondingState_BondingStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.component.stake.v1alpha1.BondingState_BondingStateEnum" json:"state,omitempty"` UnbondingEpoch uint64 `protobuf:"varint,2,opt,name=unbonding_epoch,json=unbondingEpoch,proto3" json:"unbonding_epoch,omitempty"` } func (x *BondingState) Reset() { *x = BondingState{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[6] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -622,7 +672,7 @@ func (x *BondingState) String() string { func (*BondingState) ProtoMessage() {} func (x *BondingState) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[6] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -635,7 +685,7 @@ func (x *BondingState) ProtoReflect() protoreflect.Message { // Deprecated: Use BondingState.ProtoReflect.Descriptor instead. func (*BondingState) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{6} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{7} } func (x *BondingState) GetState() BondingState_BondingStateEnum { @@ -658,13 +708,13 @@ type ValidatorState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - State ValidatorState_ValidatorStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.stake.v1alpha1.ValidatorState_ValidatorStateEnum" json:"state,omitempty"` + State ValidatorState_ValidatorStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.component.stake.v1alpha1.ValidatorState_ValidatorStateEnum" json:"state,omitempty"` } func (x *ValidatorState) Reset() { *x = ValidatorState{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[7] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -677,7 +727,7 @@ func (x *ValidatorState) String() string { func (*ValidatorState) ProtoMessage() {} func (x *ValidatorState) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[7] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -690,7 +740,7 @@ func (x *ValidatorState) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorState.ProtoReflect.Descriptor instead. func (*ValidatorState) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{7} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{8} } func (x *ValidatorState) GetState() ValidatorState_ValidatorStateEnum { @@ -714,7 +764,7 @@ type ValidatorInfo struct { func (x *ValidatorInfo) Reset() { *x = ValidatorInfo{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[8] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -727,7 +777,7 @@ func (x *ValidatorInfo) String() string { func (*ValidatorInfo) ProtoMessage() {} func (x *ValidatorInfo) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[8] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -740,7 +790,7 @@ func (x *ValidatorInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorInfo.ProtoReflect.Descriptor instead. func (*ValidatorInfo) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{8} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{9} } func (x *ValidatorInfo) GetValidator() *Validator { @@ -779,7 +829,7 @@ type ValidatorDefinition struct { func (x *ValidatorDefinition) Reset() { *x = ValidatorDefinition{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[9] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -792,7 +842,7 @@ func (x *ValidatorDefinition) String() string { func (*ValidatorDefinition) ProtoMessage() {} func (x *ValidatorDefinition) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[9] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -805,7 +855,7 @@ func (x *ValidatorDefinition) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorDefinition.ProtoReflect.Descriptor instead. func (*ValidatorDefinition) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{9} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{10} } func (x *ValidatorDefinition) GetValidator() *Validator { @@ -835,19 +885,19 @@ type Delegate struct { EpochIndex uint64 `protobuf:"varint,2,opt,name=epoch_index,json=epochIndex,proto3" json:"epoch_index,omitempty"` // The delegation amount, in units of unbonded stake. // TODO: use flow aggregation to hide this, replacing it with bytes amount_ciphertext; - UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` + UnbondedAmount *v1alpha11.Amount `protobuf:"bytes,3,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` // The amount of delegation tokens produced by this action. // // This is implied by the validator's exchange rate in the specified epoch // (and should be checked in transaction validation!), but including it allows // stateless verification that the transaction is internally consistent. - DelegationAmount *v1alpha1.Amount `protobuf:"bytes,4,opt,name=delegation_amount,json=delegationAmount,proto3" json:"delegation_amount,omitempty"` + DelegationAmount *v1alpha11.Amount `protobuf:"bytes,4,opt,name=delegation_amount,json=delegationAmount,proto3" json:"delegation_amount,omitempty"` } func (x *Delegate) Reset() { *x = Delegate{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[10] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -860,7 +910,7 @@ func (x *Delegate) String() string { func (*Delegate) ProtoMessage() {} func (x *Delegate) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[10] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -873,7 +923,7 @@ func (x *Delegate) ProtoReflect() protoreflect.Message { // Deprecated: Use Delegate.ProtoReflect.Descriptor instead. func (*Delegate) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{10} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{11} } func (x *Delegate) GetValidatorIdentity() *v1alpha1.IdentityKey { @@ -890,14 +940,14 @@ func (x *Delegate) GetEpochIndex() uint64 { return 0 } -func (x *Delegate) GetUnbondedAmount() *v1alpha1.Amount { +func (x *Delegate) GetUnbondedAmount() *v1alpha11.Amount { if x != nil { return x.UnbondedAmount } return nil } -func (x *Delegate) GetDelegationAmount() *v1alpha1.Amount { +func (x *Delegate) GetDelegationAmount() *v1alpha11.Amount { if x != nil { return x.DelegationAmount } @@ -915,19 +965,19 @@ type Undelegate struct { // The index of the epoch in which this undelegation was performed. StartEpochIndex uint64 `protobuf:"varint,2,opt,name=start_epoch_index,json=startEpochIndex,proto3" json:"start_epoch_index,omitempty"` // The amount to undelegate, in units of unbonding tokens. - UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` + UnbondedAmount *v1alpha11.Amount `protobuf:"bytes,3,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` // The amount of delegation tokens consumed by this action. // // This is implied by the validator's exchange rate in the specified epoch // (and should be checked in transaction validation!), but including it allows // stateless verification that the transaction is internally consistent. - DelegationAmount *v1alpha1.Amount `protobuf:"bytes,4,opt,name=delegation_amount,json=delegationAmount,proto3" json:"delegation_amount,omitempty"` + DelegationAmount *v1alpha11.Amount `protobuf:"bytes,4,opt,name=delegation_amount,json=delegationAmount,proto3" json:"delegation_amount,omitempty"` } func (x *Undelegate) Reset() { *x = Undelegate{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[11] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -940,7 +990,7 @@ func (x *Undelegate) String() string { func (*Undelegate) ProtoMessage() {} func (x *Undelegate) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[11] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -953,7 +1003,7 @@ func (x *Undelegate) ProtoReflect() protoreflect.Message { // Deprecated: Use Undelegate.ProtoReflect.Descriptor instead. func (*Undelegate) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{11} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{12} } func (x *Undelegate) GetValidatorIdentity() *v1alpha1.IdentityKey { @@ -970,14 +1020,14 @@ func (x *Undelegate) GetStartEpochIndex() uint64 { return 0 } -func (x *Undelegate) GetUnbondedAmount() *v1alpha1.Amount { +func (x *Undelegate) GetUnbondedAmount() *v1alpha11.Amount { if x != nil { return x.UnbondedAmount } return nil } -func (x *Undelegate) GetDelegationAmount() *v1alpha1.Amount { +func (x *Undelegate) GetDelegationAmount() *v1alpha11.Amount { if x != nil { return x.DelegationAmount } @@ -998,7 +1048,7 @@ type UndelegateClaim struct { func (x *UndelegateClaim) Reset() { *x = UndelegateClaim{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[12] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1011,7 +1061,7 @@ func (x *UndelegateClaim) String() string { func (*UndelegateClaim) ProtoMessage() {} func (x *UndelegateClaim) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[12] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1024,7 +1074,7 @@ func (x *UndelegateClaim) ProtoReflect() protoreflect.Message { // Deprecated: Use UndelegateClaim.ProtoReflect.Descriptor instead. func (*UndelegateClaim) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{12} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{13} } func (x *UndelegateClaim) GetBody() *UndelegateClaimBody { @@ -1054,13 +1104,13 @@ type UndelegateClaimBody struct { // In the happy path (no slashing), this is 0. Penalty *Penalty `protobuf:"bytes,3,opt,name=penalty,proto3" json:"penalty,omitempty"` // The action's contribution to the transaction's value balance. - BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,4,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` + BalanceCommitment *v1alpha12.BalanceCommitment `protobuf:"bytes,4,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` } func (x *UndelegateClaimBody) Reset() { *x = UndelegateClaimBody{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[13] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1073,7 +1123,7 @@ func (x *UndelegateClaimBody) String() string { func (*UndelegateClaimBody) ProtoMessage() {} func (x *UndelegateClaimBody) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[13] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1086,7 +1136,7 @@ func (x *UndelegateClaimBody) ProtoReflect() protoreflect.Message { // Deprecated: Use UndelegateClaimBody.ProtoReflect.Descriptor instead. func (*UndelegateClaimBody) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{13} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{14} } func (x *UndelegateClaimBody) GetValidatorIdentity() *v1alpha1.IdentityKey { @@ -1110,7 +1160,7 @@ func (x *UndelegateClaimBody) GetPenalty() *Penalty { return nil } -func (x *UndelegateClaimBody) GetBalanceCommitment() *v1alpha1.BalanceCommitment { +func (x *UndelegateClaimBody) GetBalanceCommitment() *v1alpha12.BalanceCommitment { if x != nil { return x.BalanceCommitment } @@ -1131,7 +1181,7 @@ type UndelegateClaimPlan struct { Penalty *Penalty `protobuf:"bytes,4,opt,name=penalty,proto3" json:"penalty,omitempty"` // The amount of unbonding tokens to claim. // This is a bare number because its denom is determined by the preceding data. - UnbondingAmount *v1alpha1.Amount `protobuf:"bytes,5,opt,name=unbonding_amount,json=unbondingAmount,proto3" json:"unbonding_amount,omitempty"` + UnbondingAmount *v1alpha11.Amount `protobuf:"bytes,5,opt,name=unbonding_amount,json=unbondingAmount,proto3" json:"unbonding_amount,omitempty"` // The blinding factor to use for the balance commitment. BalanceBlinding []byte `protobuf:"bytes,6,opt,name=balance_blinding,json=balanceBlinding,proto3" json:"balance_blinding,omitempty"` // The first blinding factor to use for the ZK undelegate claim proof. @@ -1143,7 +1193,7 @@ type UndelegateClaimPlan struct { func (x *UndelegateClaimPlan) Reset() { *x = UndelegateClaimPlan{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[14] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1156,7 +1206,7 @@ func (x *UndelegateClaimPlan) String() string { func (*UndelegateClaimPlan) ProtoMessage() {} func (x *UndelegateClaimPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[14] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1169,7 +1219,7 @@ func (x *UndelegateClaimPlan) ProtoReflect() protoreflect.Message { // Deprecated: Use UndelegateClaimPlan.ProtoReflect.Descriptor instead. func (*UndelegateClaimPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{14} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{15} } func (x *UndelegateClaimPlan) GetValidatorIdentity() *v1alpha1.IdentityKey { @@ -1193,7 +1243,7 @@ func (x *UndelegateClaimPlan) GetPenalty() *Penalty { return nil } -func (x *UndelegateClaimPlan) GetUnbondingAmount() *v1alpha1.Amount { +func (x *UndelegateClaimPlan) GetUnbondingAmount() *v1alpha11.Amount { if x != nil { return x.UnbondingAmount } @@ -1234,7 +1284,7 @@ type DelegationChanges struct { func (x *DelegationChanges) Reset() { *x = DelegationChanges{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[15] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1247,7 +1297,7 @@ func (x *DelegationChanges) String() string { func (*DelegationChanges) ProtoMessage() {} func (x *DelegationChanges) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[15] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1260,7 +1310,7 @@ func (x *DelegationChanges) ProtoReflect() protoreflect.Message { // Deprecated: Use DelegationChanges.ProtoReflect.Descriptor instead. func (*DelegationChanges) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{15} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{16} } func (x *DelegationChanges) GetDelegations() []*Delegate { @@ -1291,7 +1341,7 @@ type Uptime struct { func (x *Uptime) Reset() { *x = Uptime{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[16] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1304,7 +1354,7 @@ func (x *Uptime) String() string { func (*Uptime) ProtoMessage() {} func (x *Uptime) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[16] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1317,7 +1367,7 @@ func (x *Uptime) ProtoReflect() protoreflect.Message { // Deprecated: Use Uptime.ProtoReflect.Descriptor instead. func (*Uptime) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{16} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{17} } func (x *Uptime) GetAsOfBlockHeight() uint64 { @@ -1354,7 +1404,7 @@ type CurrentConsensusKeys struct { func (x *CurrentConsensusKeys) Reset() { *x = CurrentConsensusKeys{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[17] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1367,7 +1417,7 @@ func (x *CurrentConsensusKeys) String() string { func (*CurrentConsensusKeys) ProtoMessage() {} func (x *CurrentConsensusKeys) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[17] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1380,7 +1430,7 @@ func (x *CurrentConsensusKeys) ProtoReflect() protoreflect.Message { // Deprecated: Use CurrentConsensusKeys.ProtoReflect.Descriptor instead. func (*CurrentConsensusKeys) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{17} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{18} } func (x *CurrentConsensusKeys) GetConsensusKeys() []*v1alpha1.ConsensusKey { @@ -1402,7 +1452,7 @@ type Penalty struct { func (x *Penalty) Reset() { *x = Penalty{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[18] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1415,7 +1465,7 @@ func (x *Penalty) String() string { func (*Penalty) ProtoMessage() {} func (x *Penalty) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[18] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1428,7 +1478,7 @@ func (x *Penalty) ProtoReflect() protoreflect.Message { // Deprecated: Use Penalty.ProtoReflect.Descriptor instead. func (*Penalty) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{18} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{19} } func (x *Penalty) GetInner() uint64 { @@ -1453,7 +1503,7 @@ type FundingStream_ToAddress struct { func (x *FundingStream_ToAddress) Reset() { *x = FundingStream_ToAddress{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[19] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1466,7 +1516,7 @@ func (x *FundingStream_ToAddress) String() string { func (*FundingStream_ToAddress) ProtoMessage() {} func (x *FundingStream_ToAddress) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[19] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1479,7 +1529,7 @@ func (x *FundingStream_ToAddress) ProtoReflect() protoreflect.Message { // Deprecated: Use FundingStream_ToAddress.ProtoReflect.Descriptor instead. func (*FundingStream_ToAddress) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{2, 0} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{3, 0} } func (x *FundingStream_ToAddress) GetAddress() string { @@ -1509,7 +1559,7 @@ type FundingStream_ToDao struct { func (x *FundingStream_ToDao) Reset() { *x = FundingStream_ToDao{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[20] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1522,7 +1572,7 @@ func (x *FundingStream_ToDao) String() string { func (*FundingStream_ToDao) ProtoMessage() {} func (x *FundingStream_ToDao) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[20] + mi := &file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1535,7 +1585,7 @@ func (x *FundingStream_ToDao) ProtoReflect() protoreflect.Message { // Deprecated: Use FundingStream_ToDao.ProtoReflect.Descriptor instead. func (*FundingStream_ToDao) Descriptor() ([]byte, []int) { - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{2, 1} + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP(), []int{3, 1} } func (x *FundingStream_ToDao) GetRateBps() uint32 { @@ -1545,389 +1595,410 @@ func (x *FundingStream_ToDao) GetRateBps() uint32 { return 0 } -var File_penumbra_core_stake_v1alpha1_stake_proto protoreflect.FileDescriptor - -var file_penumbra_core_stake_v1alpha1_stake_proto_rawDesc = []byte{ - 0x0a, 0x28, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 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, 0x12, 0x1c, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbd, 0x03, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x4d, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, - 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, - 0x73, 0x69, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x54, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x52, 0x0e, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x53, 0x0a, 0x0e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x22, 0x62, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 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, 0xa6, 0x02, 0x0a, 0x0d, 0x46, 0x75, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x56, 0x0a, 0x0a, 0x74, 0x6f, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x6f, 0x5f, 0x64, 0x61, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 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, 0xe6, 0x01, 0x0a, 0x08, 0x52, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, +var File_penumbra_core_component_stake_v1alpha1_stake_proto protoreflect.FileDescriptor + +var file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x26, 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, 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, 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, 0x2e, 0x0a, 0x16, 0x5a, 0x4b, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, 0x69, 0x6d, 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, 0xc3, 0x03, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 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, + 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, + 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, + 0x69, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, + 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5e, + 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x73, 0x18, 0x06, 0x20, 0x03, 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, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x0e, + 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0e, 0x67, 0x6f, 0x76, 0x65, 0x72, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 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, 0x22, 0x60, 0x0a, 0x0d, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x0e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 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, 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, + 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, + 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, 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, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x98, 0x02, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4f, - 0x0a, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, - 0xa5, 0x02, 0x0a, 0x0c, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x51, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, + 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, 0x45, 0x44, 0x10, 0x03, 0x22, 0xd1, 0x02, 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0xe2, 0x01, 0x0a, 0x0d, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, - 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 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, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 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, 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, 0x43, 0x0a, 0x09, 0x72, - 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x77, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0xaa, 0x02, 0x0a, 0x08, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x59, 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, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x4e, 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, + 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, 0x52, 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, 0x25, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 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, 0xb7, 0x02, 0x0a, 0x0a, 0x55, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x59, 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, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 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, + 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, 0x4e, 0x0a, 0x0f, - 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x52, 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, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x6e, 0x0a, 0x0f, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, - 0x61, 0x69, 0x6d, 0x12, 0x45, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 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, 0xbe, 0x02, 0x0a, 0x13, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, - 0x6c, 0x61, 0x69, 0x6d, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x59, 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, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, - 0x3f, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 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, 0x5f, 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, 0x30, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 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, 0xae, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x59, 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, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x3f, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 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, 0x50, 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, 0x25, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 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, 0xad, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4e, 0x0a, 0x0d, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x6a, 0x0a, 0x14, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x52, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x42, 0x9c, 0x02, - 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x59, 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, 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, 0x03, 0x50, 0x43, - 0x53, 0xaa, 0x02, 0x1c, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, - 0x65, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0xca, 0x02, 0x1c, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, - 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, - 0x02, 0x28, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, + 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, + 0x2e, 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, 0x04, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 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, 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, 0x1f, 0x50, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 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, + 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 ( - file_penumbra_core_stake_v1alpha1_stake_proto_rawDescOnce sync.Once - file_penumbra_core_stake_v1alpha1_stake_proto_rawDescData = file_penumbra_core_stake_v1alpha1_stake_proto_rawDesc + file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescOnce sync.Once + file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescData = file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDesc ) -func file_penumbra_core_stake_v1alpha1_stake_proto_rawDescGZIP() []byte { - file_penumbra_core_stake_v1alpha1_stake_proto_rawDescOnce.Do(func() { - file_penumbra_core_stake_v1alpha1_stake_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_stake_v1alpha1_stake_proto_rawDescData) +func file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescGZIP() []byte { + file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescOnce.Do(func() { + file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescData) }) - return file_penumbra_core_stake_v1alpha1_stake_proto_rawDescData -} - -var file_penumbra_core_stake_v1alpha1_stake_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes = make([]protoimpl.MessageInfo, 21) -var file_penumbra_core_stake_v1alpha1_stake_proto_goTypes = []interface{}{ - (BondingState_BondingStateEnum)(0), // 0: penumbra.core.stake.v1alpha1.BondingState.BondingStateEnum - (ValidatorState_ValidatorStateEnum)(0), // 1: penumbra.core.stake.v1alpha1.ValidatorState.ValidatorStateEnum - (*Validator)(nil), // 2: penumbra.core.stake.v1alpha1.Validator - (*ValidatorList)(nil), // 3: penumbra.core.stake.v1alpha1.ValidatorList - (*FundingStream)(nil), // 4: penumbra.core.stake.v1alpha1.FundingStream - (*RateData)(nil), // 5: penumbra.core.stake.v1alpha1.RateData - (*BaseRateData)(nil), // 6: penumbra.core.stake.v1alpha1.BaseRateData - (*ValidatorStatus)(nil), // 7: penumbra.core.stake.v1alpha1.ValidatorStatus - (*BondingState)(nil), // 8: penumbra.core.stake.v1alpha1.BondingState - (*ValidatorState)(nil), // 9: penumbra.core.stake.v1alpha1.ValidatorState - (*ValidatorInfo)(nil), // 10: penumbra.core.stake.v1alpha1.ValidatorInfo - (*ValidatorDefinition)(nil), // 11: penumbra.core.stake.v1alpha1.ValidatorDefinition - (*Delegate)(nil), // 12: penumbra.core.stake.v1alpha1.Delegate - (*Undelegate)(nil), // 13: penumbra.core.stake.v1alpha1.Undelegate - (*UndelegateClaim)(nil), // 14: penumbra.core.stake.v1alpha1.UndelegateClaim - (*UndelegateClaimBody)(nil), // 15: penumbra.core.stake.v1alpha1.UndelegateClaimBody - (*UndelegateClaimPlan)(nil), // 16: penumbra.core.stake.v1alpha1.UndelegateClaimPlan - (*DelegationChanges)(nil), // 17: penumbra.core.stake.v1alpha1.DelegationChanges - (*Uptime)(nil), // 18: penumbra.core.stake.v1alpha1.Uptime - (*CurrentConsensusKeys)(nil), // 19: penumbra.core.stake.v1alpha1.CurrentConsensusKeys - (*Penalty)(nil), // 20: penumbra.core.stake.v1alpha1.Penalty - (*FundingStream_ToAddress)(nil), // 21: penumbra.core.stake.v1alpha1.FundingStream.ToAddress - (*FundingStream_ToDao)(nil), // 22: penumbra.core.stake.v1alpha1.FundingStream.ToDao - (*v1alpha1.IdentityKey)(nil), // 23: penumbra.core.crypto.v1alpha1.IdentityKey - (*v1alpha1.GovernanceKey)(nil), // 24: penumbra.core.crypto.v1alpha1.GovernanceKey - (*v1alpha1.Amount)(nil), // 25: penumbra.core.crypto.v1alpha1.Amount - (*v1alpha1.BalanceCommitment)(nil), // 26: penumbra.core.crypto.v1alpha1.BalanceCommitment - (*v1alpha1.ConsensusKey)(nil), // 27: penumbra.core.crypto.v1alpha1.ConsensusKey -} -var file_penumbra_core_stake_v1alpha1_stake_proto_depIdxs = []int32{ - 23, // 0: penumbra.core.stake.v1alpha1.Validator.identity_key:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 4, // 1: penumbra.core.stake.v1alpha1.Validator.funding_streams:type_name -> penumbra.core.stake.v1alpha1.FundingStream - 24, // 2: penumbra.core.stake.v1alpha1.Validator.governance_key:type_name -> penumbra.core.crypto.v1alpha1.GovernanceKey - 23, // 3: penumbra.core.stake.v1alpha1.ValidatorList.validator_keys:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 21, // 4: penumbra.core.stake.v1alpha1.FundingStream.to_address:type_name -> penumbra.core.stake.v1alpha1.FundingStream.ToAddress - 22, // 5: penumbra.core.stake.v1alpha1.FundingStream.to_dao:type_name -> penumbra.core.stake.v1alpha1.FundingStream.ToDao - 23, // 6: penumbra.core.stake.v1alpha1.RateData.identity_key:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 23, // 7: penumbra.core.stake.v1alpha1.ValidatorStatus.identity_key:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 9, // 8: penumbra.core.stake.v1alpha1.ValidatorStatus.state:type_name -> penumbra.core.stake.v1alpha1.ValidatorState - 8, // 9: penumbra.core.stake.v1alpha1.ValidatorStatus.bonding_state:type_name -> penumbra.core.stake.v1alpha1.BondingState - 0, // 10: penumbra.core.stake.v1alpha1.BondingState.state:type_name -> penumbra.core.stake.v1alpha1.BondingState.BondingStateEnum - 1, // 11: penumbra.core.stake.v1alpha1.ValidatorState.state:type_name -> penumbra.core.stake.v1alpha1.ValidatorState.ValidatorStateEnum - 2, // 12: penumbra.core.stake.v1alpha1.ValidatorInfo.validator:type_name -> penumbra.core.stake.v1alpha1.Validator - 7, // 13: penumbra.core.stake.v1alpha1.ValidatorInfo.status:type_name -> penumbra.core.stake.v1alpha1.ValidatorStatus - 5, // 14: penumbra.core.stake.v1alpha1.ValidatorInfo.rate_data:type_name -> penumbra.core.stake.v1alpha1.RateData - 2, // 15: penumbra.core.stake.v1alpha1.ValidatorDefinition.validator:type_name -> penumbra.core.stake.v1alpha1.Validator - 23, // 16: penumbra.core.stake.v1alpha1.Delegate.validator_identity:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 25, // 17: penumbra.core.stake.v1alpha1.Delegate.unbonded_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 25, // 18: penumbra.core.stake.v1alpha1.Delegate.delegation_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 23, // 19: penumbra.core.stake.v1alpha1.Undelegate.validator_identity:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 25, // 20: penumbra.core.stake.v1alpha1.Undelegate.unbonded_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 25, // 21: penumbra.core.stake.v1alpha1.Undelegate.delegation_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 15, // 22: penumbra.core.stake.v1alpha1.UndelegateClaim.body:type_name -> penumbra.core.stake.v1alpha1.UndelegateClaimBody - 23, // 23: penumbra.core.stake.v1alpha1.UndelegateClaimBody.validator_identity:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 20, // 24: penumbra.core.stake.v1alpha1.UndelegateClaimBody.penalty:type_name -> penumbra.core.stake.v1alpha1.Penalty - 26, // 25: penumbra.core.stake.v1alpha1.UndelegateClaimBody.balance_commitment:type_name -> penumbra.core.crypto.v1alpha1.BalanceCommitment - 23, // 26: penumbra.core.stake.v1alpha1.UndelegateClaimPlan.validator_identity:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 20, // 27: penumbra.core.stake.v1alpha1.UndelegateClaimPlan.penalty:type_name -> penumbra.core.stake.v1alpha1.Penalty - 25, // 28: penumbra.core.stake.v1alpha1.UndelegateClaimPlan.unbonding_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 12, // 29: penumbra.core.stake.v1alpha1.DelegationChanges.delegations:type_name -> penumbra.core.stake.v1alpha1.Delegate - 13, // 30: penumbra.core.stake.v1alpha1.DelegationChanges.undelegations:type_name -> penumbra.core.stake.v1alpha1.Undelegate - 27, // 31: penumbra.core.stake.v1alpha1.CurrentConsensusKeys.consensus_keys:type_name -> penumbra.core.crypto.v1alpha1.ConsensusKey + return file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDescData +} + +var file_penumbra_core_component_stake_v1alpha1_stake_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_penumbra_core_component_stake_v1alpha1_stake_proto_goTypes = []interface{}{ + (BondingState_BondingStateEnum)(0), // 0: penumbra.core.component.stake.v1alpha1.BondingState.BondingStateEnum + (ValidatorState_ValidatorStateEnum)(0), // 1: penumbra.core.component.stake.v1alpha1.ValidatorState.ValidatorStateEnum + (*ZKUndelegateClaimProof)(nil), // 2: penumbra.core.component.stake.v1alpha1.ZKUndelegateClaimProof + (*Validator)(nil), // 3: penumbra.core.component.stake.v1alpha1.Validator + (*ValidatorList)(nil), // 4: penumbra.core.component.stake.v1alpha1.ValidatorList + (*FundingStream)(nil), // 5: penumbra.core.component.stake.v1alpha1.FundingStream + (*RateData)(nil), // 6: penumbra.core.component.stake.v1alpha1.RateData + (*BaseRateData)(nil), // 7: penumbra.core.component.stake.v1alpha1.BaseRateData + (*ValidatorStatus)(nil), // 8: penumbra.core.component.stake.v1alpha1.ValidatorStatus + (*BondingState)(nil), // 9: penumbra.core.component.stake.v1alpha1.BondingState + (*ValidatorState)(nil), // 10: penumbra.core.component.stake.v1alpha1.ValidatorState + (*ValidatorInfo)(nil), // 11: penumbra.core.component.stake.v1alpha1.ValidatorInfo + (*ValidatorDefinition)(nil), // 12: penumbra.core.component.stake.v1alpha1.ValidatorDefinition + (*Delegate)(nil), // 13: penumbra.core.component.stake.v1alpha1.Delegate + (*Undelegate)(nil), // 14: penumbra.core.component.stake.v1alpha1.Undelegate + (*UndelegateClaim)(nil), // 15: penumbra.core.component.stake.v1alpha1.UndelegateClaim + (*UndelegateClaimBody)(nil), // 16: penumbra.core.component.stake.v1alpha1.UndelegateClaimBody + (*UndelegateClaimPlan)(nil), // 17: penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan + (*DelegationChanges)(nil), // 18: penumbra.core.component.stake.v1alpha1.DelegationChanges + (*Uptime)(nil), // 19: penumbra.core.component.stake.v1alpha1.Uptime + (*CurrentConsensusKeys)(nil), // 20: penumbra.core.component.stake.v1alpha1.CurrentConsensusKeys + (*Penalty)(nil), // 21: penumbra.core.component.stake.v1alpha1.Penalty + (*FundingStream_ToAddress)(nil), // 22: penumbra.core.component.stake.v1alpha1.FundingStream.ToAddress + (*FundingStream_ToDao)(nil), // 23: penumbra.core.component.stake.v1alpha1.FundingStream.ToDao + (*v1alpha1.IdentityKey)(nil), // 24: penumbra.core.keys.v1alpha1.IdentityKey + (*v1alpha1.GovernanceKey)(nil), // 25: penumbra.core.keys.v1alpha1.GovernanceKey + (*v1alpha11.Amount)(nil), // 26: penumbra.core.num.v1alpha1.Amount + (*v1alpha12.BalanceCommitment)(nil), // 27: penumbra.core.asset.v1alpha1.BalanceCommitment + (*v1alpha1.ConsensusKey)(nil), // 28: penumbra.core.keys.v1alpha1.ConsensusKey +} +var file_penumbra_core_component_stake_v1alpha1_stake_proto_depIdxs = []int32{ + 24, // 0: penumbra.core.component.stake.v1alpha1.Validator.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 5, // 1: penumbra.core.component.stake.v1alpha1.Validator.funding_streams:type_name -> penumbra.core.component.stake.v1alpha1.FundingStream + 25, // 2: penumbra.core.component.stake.v1alpha1.Validator.governance_key:type_name -> penumbra.core.keys.v1alpha1.GovernanceKey + 24, // 3: penumbra.core.component.stake.v1alpha1.ValidatorList.validator_keys:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 22, // 4: penumbra.core.component.stake.v1alpha1.FundingStream.to_address:type_name -> penumbra.core.component.stake.v1alpha1.FundingStream.ToAddress + 23, // 5: penumbra.core.component.stake.v1alpha1.FundingStream.to_dao:type_name -> penumbra.core.component.stake.v1alpha1.FundingStream.ToDao + 24, // 6: penumbra.core.component.stake.v1alpha1.RateData.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 24, // 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 + 9, // 9: penumbra.core.component.stake.v1alpha1.ValidatorStatus.bonding_state:type_name -> penumbra.core.component.stake.v1alpha1.BondingState + 0, // 10: penumbra.core.component.stake.v1alpha1.BondingState.state:type_name -> penumbra.core.component.stake.v1alpha1.BondingState.BondingStateEnum + 1, // 11: penumbra.core.component.stake.v1alpha1.ValidatorState.state:type_name -> penumbra.core.component.stake.v1alpha1.ValidatorState.ValidatorStateEnum + 3, // 12: penumbra.core.component.stake.v1alpha1.ValidatorInfo.validator:type_name -> penumbra.core.component.stake.v1alpha1.Validator + 8, // 13: penumbra.core.component.stake.v1alpha1.ValidatorInfo.status:type_name -> penumbra.core.component.stake.v1alpha1.ValidatorStatus + 6, // 14: penumbra.core.component.stake.v1alpha1.ValidatorInfo.rate_data:type_name -> penumbra.core.component.stake.v1alpha1.RateData + 3, // 15: penumbra.core.component.stake.v1alpha1.ValidatorDefinition.validator:type_name -> penumbra.core.component.stake.v1alpha1.Validator + 24, // 16: penumbra.core.component.stake.v1alpha1.Delegate.validator_identity:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 26, // 17: penumbra.core.component.stake.v1alpha1.Delegate.unbonded_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 26, // 18: penumbra.core.component.stake.v1alpha1.Delegate.delegation_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 24, // 19: penumbra.core.component.stake.v1alpha1.Undelegate.validator_identity:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 26, // 20: penumbra.core.component.stake.v1alpha1.Undelegate.unbonded_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 26, // 21: penumbra.core.component.stake.v1alpha1.Undelegate.delegation_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 16, // 22: penumbra.core.component.stake.v1alpha1.UndelegateClaim.body:type_name -> penumbra.core.component.stake.v1alpha1.UndelegateClaimBody + 24, // 23: penumbra.core.component.stake.v1alpha1.UndelegateClaimBody.validator_identity:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 21, // 24: penumbra.core.component.stake.v1alpha1.UndelegateClaimBody.penalty:type_name -> penumbra.core.component.stake.v1alpha1.Penalty + 27, // 25: penumbra.core.component.stake.v1alpha1.UndelegateClaimBody.balance_commitment:type_name -> penumbra.core.asset.v1alpha1.BalanceCommitment + 24, // 26: penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan.validator_identity:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 21, // 27: penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan.penalty:type_name -> penumbra.core.component.stake.v1alpha1.Penalty + 26, // 28: penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan.unbonding_amount:type_name -> penumbra.core.num.v1alpha1.Amount + 13, // 29: penumbra.core.component.stake.v1alpha1.DelegationChanges.delegations:type_name -> penumbra.core.component.stake.v1alpha1.Delegate + 14, // 30: penumbra.core.component.stake.v1alpha1.DelegationChanges.undelegations:type_name -> penumbra.core.component.stake.v1alpha1.Undelegate + 28, // 31: penumbra.core.component.stake.v1alpha1.CurrentConsensusKeys.consensus_keys:type_name -> penumbra.core.keys.v1alpha1.ConsensusKey 32, // [32:32] is the sub-list for method output_type 32, // [32:32] is the sub-list for method input_type 32, // [32:32] is the sub-list for extension type_name @@ -1935,13 +2006,25 @@ var file_penumbra_core_stake_v1alpha1_stake_proto_depIdxs = []int32{ 0, // [0:32] is the sub-list for field type_name } -func init() { file_penumbra_core_stake_v1alpha1_stake_proto_init() } -func file_penumbra_core_stake_v1alpha1_stake_proto_init() { - if File_penumbra_core_stake_v1alpha1_stake_proto != nil { +func init() { file_penumbra_core_component_stake_v1alpha1_stake_proto_init() } +func file_penumbra_core_component_stake_v1alpha1_stake_proto_init() { + if File_penumbra_core_component_stake_v1alpha1_stake_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZKUndelegateClaimProof); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Validator); i { case 0: return &v.state @@ -1953,7 +2036,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorList); i { case 0: return &v.state @@ -1965,7 +2048,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingStream); i { case 0: return &v.state @@ -1977,7 +2060,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RateData); i { case 0: return &v.state @@ -1989,7 +2072,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BaseRateData); i { case 0: return &v.state @@ -2001,7 +2084,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorStatus); i { case 0: return &v.state @@ -2013,7 +2096,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BondingState); i { case 0: return &v.state @@ -2025,7 +2108,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorState); i { case 0: return &v.state @@ -2037,7 +2120,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorInfo); i { case 0: return &v.state @@ -2049,7 +2132,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorDefinition); i { case 0: return &v.state @@ -2061,7 +2144,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Delegate); i { case 0: return &v.state @@ -2073,7 +2156,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Undelegate); i { case 0: return &v.state @@ -2085,7 +2168,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UndelegateClaim); i { case 0: return &v.state @@ -2097,7 +2180,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UndelegateClaimBody); i { case 0: return &v.state @@ -2109,7 +2192,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UndelegateClaimPlan); i { case 0: return &v.state @@ -2121,7 +2204,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DelegationChanges); i { case 0: return &v.state @@ -2133,7 +2216,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Uptime); i { case 0: return &v.state @@ -2145,7 +2228,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CurrentConsensusKeys); i { case 0: return &v.state @@ -2157,7 +2240,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Penalty); i { case 0: return &v.state @@ -2169,7 +2252,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingStream_ToAddress); i { case 0: return &v.state @@ -2181,7 +2264,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { return nil } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingStream_ToDao); i { case 0: return &v.state @@ -2194,7 +2277,7 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { } } } - file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes[2].OneofWrappers = []interface{}{ + file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes[3].OneofWrappers = []interface{}{ (*FundingStream_ToAddress_)(nil), (*FundingStream_ToDao_)(nil), } @@ -2202,19 +2285,19 @@ func file_penumbra_core_stake_v1alpha1_stake_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_penumbra_core_stake_v1alpha1_stake_proto_rawDesc, + RawDescriptor: file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDesc, NumEnums: 2, - NumMessages: 21, + NumMessages: 22, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_penumbra_core_stake_v1alpha1_stake_proto_goTypes, - DependencyIndexes: file_penumbra_core_stake_v1alpha1_stake_proto_depIdxs, - EnumInfos: file_penumbra_core_stake_v1alpha1_stake_proto_enumTypes, - MessageInfos: file_penumbra_core_stake_v1alpha1_stake_proto_msgTypes, + GoTypes: file_penumbra_core_component_stake_v1alpha1_stake_proto_goTypes, + DependencyIndexes: file_penumbra_core_component_stake_v1alpha1_stake_proto_depIdxs, + EnumInfos: file_penumbra_core_component_stake_v1alpha1_stake_proto_enumTypes, + MessageInfos: file_penumbra_core_component_stake_v1alpha1_stake_proto_msgTypes, }.Build() - File_penumbra_core_stake_v1alpha1_stake_proto = out.File - file_penumbra_core_stake_v1alpha1_stake_proto_rawDesc = nil - file_penumbra_core_stake_v1alpha1_stake_proto_goTypes = nil - file_penumbra_core_stake_v1alpha1_stake_proto_depIdxs = nil + File_penumbra_core_component_stake_v1alpha1_stake_proto = out.File + file_penumbra_core_component_stake_v1alpha1_stake_proto_rawDesc = nil + file_penumbra_core_component_stake_v1alpha1_stake_proto_goTypes = nil + file_penumbra_core_component_stake_v1alpha1_stake_proto_depIdxs = nil } diff --git a/proto/go/gen/penumbra/core/crypto/v1alpha1/crypto.pb.go b/proto/go/gen/penumbra/core/crypto/v1alpha1/crypto.pb.go deleted file mode 100644 index 248e152770..0000000000 --- a/proto/go/gen/penumbra/core/crypto/v1alpha1/crypto.pb.go +++ /dev/null @@ -1,3417 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.31.0 -// protoc (unknown) -// source: penumbra/core/crypto/v1alpha1/crypto.proto - -package cryptov1alpha1 - -import ( - 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) -) - -// Specifies fees paid by a transaction. -type Fee struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The amount of the token used to pay fees. - Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - // If present, the asset ID of the token used to pay fees. - // If absent, specifies the staking token implicitly. - AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` -} - -func (x *Fee) Reset() { - *x = Fee{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Fee) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Fee) ProtoMessage() {} - -func (x *Fee) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_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 Fee.ProtoReflect.Descriptor instead. -func (*Fee) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{0} -} - -func (x *Fee) GetAmount() *Amount { - if x != nil { - return x.Amount - } - return nil -} - -func (x *Fee) GetAssetId() *AssetId { - if x != nil { - return x.AssetId - } - return nil -} - -// A Penumbra address. An address in Penumbra is a Bech32m-encoded -// string, with the human-readable prefix (HRP) `penumbrav2t`. -type Address struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The bytes of the address. Must be represented as a series of - // `uint8` (i.e. values 0 through 255), with a length of 80 elements. - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` - // Alternatively, a Bech32m-encoded string representation of the `inner` - // bytes. - // - // NOTE: implementations are not required to support parsing this field. - // Implementations should prefer to encode the bytes in all messages they - // produce. Implementations must not accept messages with both `inner` and - // `alt_bech32m` set. - AltBech32M string `protobuf:"bytes,2,opt,name=alt_bech32m,json=altBech32m,proto3" json:"alt_bech32m,omitempty"` -} - -func (x *Address) Reset() { - *x = Address{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Address) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Address) ProtoMessage() {} - -func (x *Address) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_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 Address.ProtoReflect.Descriptor instead. -func (*Address) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{1} -} - -func (x *Address) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -func (x *Address) GetAltBech32M() string { - if x != nil { - return x.AltBech32M - } - return "" -} - -type AddressView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to AddressView: - // - // *AddressView_Visible_ - // *AddressView_Opaque_ - AddressView isAddressView_AddressView `protobuf_oneof:"address_view"` -} - -func (x *AddressView) Reset() { - *x = AddressView{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddressView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddressView) ProtoMessage() {} - -func (x *AddressView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_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 AddressView.ProtoReflect.Descriptor instead. -func (*AddressView) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{2} -} - -func (m *AddressView) GetAddressView() isAddressView_AddressView { - if m != nil { - return m.AddressView - } - return nil -} - -func (x *AddressView) GetVisible() *AddressView_Visible { - if x, ok := x.GetAddressView().(*AddressView_Visible_); ok { - return x.Visible - } - return nil -} - -func (x *AddressView) GetOpaque() *AddressView_Opaque { - if x, ok := x.GetAddressView().(*AddressView_Opaque_); ok { - return x.Opaque - } - return nil -} - -type isAddressView_AddressView interface { - isAddressView_AddressView() -} - -type AddressView_Visible_ struct { - Visible *AddressView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` -} - -type AddressView_Opaque_ struct { - Opaque *AddressView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` -} - -func (*AddressView_Visible_) isAddressView_AddressView() {} - -func (*AddressView_Opaque_) isAddressView_AddressView() {} - -type SpendKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *SpendKey) Reset() { - *x = SpendKey{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpendKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpendKey) ProtoMessage() {} - -func (x *SpendKey) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_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 SpendKey.ProtoReflect.Descriptor instead. -func (*SpendKey) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{3} -} - -func (x *SpendKey) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type SpendVerificationKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *SpendVerificationKey) Reset() { - *x = SpendVerificationKey{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpendVerificationKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpendVerificationKey) ProtoMessage() {} - -func (x *SpendVerificationKey) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SpendVerificationKey.ProtoReflect.Descriptor instead. -func (*SpendVerificationKey) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{4} -} - -func (x *SpendVerificationKey) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type FullViewingKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *FullViewingKey) Reset() { - *x = FullViewingKey{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FullViewingKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FullViewingKey) ProtoMessage() {} - -func (x *FullViewingKey) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FullViewingKey.ProtoReflect.Descriptor instead. -func (*FullViewingKey) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{5} -} - -func (x *FullViewingKey) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type AccountGroupId struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *AccountGroupId) Reset() { - *x = AccountGroupId{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountGroupId) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountGroupId) ProtoMessage() {} - -func (x *AccountGroupId) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AccountGroupId.ProtoReflect.Descriptor instead. -func (*AccountGroupId) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{6} -} - -func (x *AccountGroupId) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type Diversifier struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *Diversifier) Reset() { - *x = Diversifier{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Diversifier) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Diversifier) ProtoMessage() {} - -func (x *Diversifier) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Diversifier.ProtoReflect.Descriptor instead. -func (*Diversifier) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{7} -} - -func (x *Diversifier) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type AddressIndex struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Account uint32 `protobuf:"varint,2,opt,name=account,proto3" json:"account,omitempty"` - Randomizer []byte `protobuf:"bytes,3,opt,name=randomizer,proto3" json:"randomizer,omitempty"` -} - -func (x *AddressIndex) Reset() { - *x = AddressIndex{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddressIndex) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddressIndex) ProtoMessage() {} - -func (x *AddressIndex) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddressIndex.ProtoReflect.Descriptor instead. -func (*AddressIndex) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{8} -} - -func (x *AddressIndex) GetAccount() uint32 { - if x != nil { - return x.Account - } - return 0 -} - -func (x *AddressIndex) GetRandomizer() []byte { - if x != nil { - return x.Randomizer - } - return nil -} - -type StateCommitment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *StateCommitment) Reset() { - *x = StateCommitment{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StateCommitment) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StateCommitment) ProtoMessage() {} - -func (x *StateCommitment) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StateCommitment.ProtoReflect.Descriptor instead. -func (*StateCommitment) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{9} -} - -func (x *StateCommitment) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type BalanceCommitment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *BalanceCommitment) Reset() { - *x = BalanceCommitment{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BalanceCommitment) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BalanceCommitment) ProtoMessage() {} - -func (x *BalanceCommitment) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BalanceCommitment.ProtoReflect.Descriptor instead. -func (*BalanceCommitment) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{10} -} - -func (x *BalanceCommitment) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A Penumbra asset ID. -type AssetId struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The bytes of the asset ID. - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` - // Alternatively, a Bech32m-encoded string representation of the `inner` - // bytes. - // - // NOTE: implementations are not required to support parsing this field. - // Implementations should prefer to encode the `inner` bytes in all messages they - // produce. Implementations must not accept messages with both `inner` and - // `alt_bech32m` set. This field exists for convenience of RPC users. - AltBech32M string `protobuf:"bytes,2,opt,name=alt_bech32m,json=altBech32m,proto3" json:"alt_bech32m,omitempty"` - // Alternatively, a base denomination string which should be hashed to obtain the asset ID. - // - // NOTE: implementations are not required to support parsing this field. - // Implementations should prefer to encode the bytes in all messages they - // produce. Implementations must not accept messages with both `inner` and - // `alt_base_denom` set. This field exists for convenience of RPC users. - AltBaseDenom string `protobuf:"bytes,3,opt,name=alt_base_denom,json=altBaseDenom,proto3" json:"alt_base_denom,omitempty"` -} - -func (x *AssetId) Reset() { - *x = AssetId{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AssetId) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AssetId) ProtoMessage() {} - -func (x *AssetId) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AssetId.ProtoReflect.Descriptor instead. -func (*AssetId) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{11} -} - -func (x *AssetId) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -func (x *AssetId) GetAltBech32M() string { - if x != nil { - return x.AltBech32M - } - return "" -} - -func (x *AssetId) GetAltBaseDenom() string { - if x != nil { - return x.AltBaseDenom - } - return "" -} - -// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, -// split over two fields, `lo` and `hi`, representing the low- and high-order bytes -// of the 128-bit value, respectively. Clients must assemble these bits in their -// implementation into a `uint128` or comparable data structure, in order to model -// the Amount accurately. -type Amount struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Lo uint64 `protobuf:"varint,1,opt,name=lo,proto3" json:"lo,omitempty"` - Hi uint64 `protobuf:"varint,2,opt,name=hi,proto3" json:"hi,omitempty"` -} - -func (x *Amount) Reset() { - *x = Amount{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Amount) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Amount) ProtoMessage() {} - -func (x *Amount) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Amount.ProtoReflect.Descriptor instead. -func (*Amount) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{12} -} - -func (x *Amount) GetLo() uint64 { - if x != nil { - return x.Lo - } - return 0 -} - -func (x *Amount) GetHi() uint64 { - if x != nil { - return x.Hi - } - return 0 -} - -type Denom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` -} - -func (x *Denom) Reset() { - *x = Denom{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Denom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Denom) ProtoMessage() {} - -func (x *Denom) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Denom.ProtoReflect.Descriptor instead. -func (*Denom) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{13} -} - -func (x *Denom) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -// DenomMetadata represents a struct that describes a basic token. -type DenomMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` - // denom_units represents the list of DenomUnit's for a given coin - DenomUnits []*DenomUnit `protobuf:"bytes,2,rep,name=denom_units,json=denomUnits,proto3" json:"denom_units,omitempty"` - // base represents the base denom (should be the DenomUnit with exponent = 0). - Base string `protobuf:"bytes,3,opt,name=base,proto3" json:"base,omitempty"` - // display indicates the suggested denom that should be - // displayed in clients. - Display string `protobuf:"bytes,4,opt,name=display,proto3" json:"display,omitempty"` - // name defines the name of the token (eg: Cosmos Atom) - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - // symbol is the token symbol usually shown on exchanges (eg: ATOM). This can - // be the same as the display. - Symbol string `protobuf:"bytes,6,opt,name=symbol,proto3" json:"symbol,omitempty"` - // URI to a document (on or off-chain) that contains additional information. Optional. - Uri string `protobuf:"bytes,7,opt,name=uri,proto3" json:"uri,omitempty"` - // URIHash is a sha256 hash of a document pointed by URI. It's used to verify that - // the document didn't change. Optional. - UriHash string `protobuf:"bytes,8,opt,name=uri_hash,json=uriHash,proto3" json:"uri_hash,omitempty"` - // the asset ID on Penumbra for this denomination. - PenumbraAssetId *AssetId `protobuf:"bytes,1984,opt,name=penumbra_asset_id,json=penumbraAssetId,proto3" json:"penumbra_asset_id,omitempty"` -} - -func (x *DenomMetadata) Reset() { - *x = DenomMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DenomMetadata) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DenomMetadata) ProtoMessage() {} - -func (x *DenomMetadata) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[14] - 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 DenomMetadata.ProtoReflect.Descriptor instead. -func (*DenomMetadata) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{14} -} - -func (x *DenomMetadata) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *DenomMetadata) GetDenomUnits() []*DenomUnit { - if x != nil { - return x.DenomUnits - } - return nil -} - -func (x *DenomMetadata) GetBase() string { - if x != nil { - return x.Base - } - return "" -} - -func (x *DenomMetadata) GetDisplay() string { - if x != nil { - return x.Display - } - return "" -} - -func (x *DenomMetadata) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *DenomMetadata) GetSymbol() string { - if x != nil { - return x.Symbol - } - return "" -} - -func (x *DenomMetadata) GetUri() string { - if x != nil { - return x.Uri - } - return "" -} - -func (x *DenomMetadata) GetUriHash() string { - if x != nil { - return x.UriHash - } - return "" -} - -func (x *DenomMetadata) GetPenumbraAssetId() *AssetId { - if x != nil { - return x.PenumbraAssetId - } - return nil -} - -// DenomUnit represents a struct that describes a given denomination unit of the basic token. -type DenomUnit struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // denom represents the string name of the given denom unit (e.g uatom). - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - // exponent represents power of 10 exponent that one must - // raise the base_denom to in order to equal the given DenomUnit's denom - // 1 denom = 10^exponent base_denom - // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with - // exponent = 6, thus: 1 atom = 10^6 uatom). - Exponent uint32 `protobuf:"varint,2,opt,name=exponent,proto3" json:"exponent,omitempty"` - // aliases is a list of string aliases for the given denom - Aliases []string `protobuf:"bytes,3,rep,name=aliases,proto3" json:"aliases,omitempty"` -} - -func (x *DenomUnit) Reset() { - *x = DenomUnit{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DenomUnit) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DenomUnit) ProtoMessage() {} - -func (x *DenomUnit) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[15] - 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 DenomUnit.ProtoReflect.Descriptor instead. -func (*DenomUnit) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{15} -} - -func (x *DenomUnit) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *DenomUnit) GetExponent() uint32 { - if x != nil { - return x.Exponent - } - return 0 -} - -func (x *DenomUnit) GetAliases() []string { - if x != nil { - return x.Aliases - } - return nil -} - -type Value struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` -} - -func (x *Value) Reset() { - *x = Value{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Value) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Value) ProtoMessage() {} - -func (x *Value) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[16] - 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 Value.ProtoReflect.Descriptor instead. -func (*Value) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{16} -} - -func (x *Value) GetAmount() *Amount { - if x != nil { - return x.Amount - } - return nil -} - -func (x *Value) GetAssetId() *AssetId { - if x != nil { - return x.AssetId - } - return nil -} - -// Represents a value of a known or unknown denomination. -// -// Note: unlike some other View types, we don't just store the underlying -// `Value` message together with an additional `Denom`. Instead, we record -// either an `Amount` and `Denom` (only) or an `Amount` and `AssetId`. This is -// because we don't want to allow a situation where the supplied `Denom` doesn't -// match the `AssetId`, and a consumer of the API that doesn't check is tricked. -// This way, the `Denom` will always match, because the consumer is forced to -// recompute it themselves if they want it. -type ValueView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to ValueView: - // - // *ValueView_KnownDenom_ - // *ValueView_UnknownDenom_ - ValueView isValueView_ValueView `protobuf_oneof:"value_view"` -} - -func (x *ValueView) Reset() { - *x = ValueView{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ValueView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ValueView) ProtoMessage() {} - -func (x *ValueView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[17] - 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 ValueView.ProtoReflect.Descriptor instead. -func (*ValueView) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{17} -} - -func (m *ValueView) GetValueView() isValueView_ValueView { - if m != nil { - return m.ValueView - } - return nil -} - -func (x *ValueView) GetKnownDenom() *ValueView_KnownDenom { - if x, ok := x.GetValueView().(*ValueView_KnownDenom_); ok { - return x.KnownDenom - } - return nil -} - -func (x *ValueView) GetUnknownDenom() *ValueView_UnknownDenom { - if x, ok := x.GetValueView().(*ValueView_UnknownDenom_); ok { - return x.UnknownDenom - } - return nil -} - -type isValueView_ValueView interface { - isValueView_ValueView() -} - -type ValueView_KnownDenom_ struct { - KnownDenom *ValueView_KnownDenom `protobuf:"bytes,1,opt,name=known_denom,json=knownDenom,proto3,oneof"` -} - -type ValueView_UnknownDenom_ struct { - UnknownDenom *ValueView_UnknownDenom `protobuf:"bytes,2,opt,name=unknown_denom,json=unknownDenom,proto3,oneof"` -} - -func (*ValueView_KnownDenom_) isValueView_ValueView() {} - -func (*ValueView_UnknownDenom_) isValueView_ValueView() {} - -type MerkleRoot struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *MerkleRoot) Reset() { - *x = MerkleRoot{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MerkleRoot) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MerkleRoot) ProtoMessage() {} - -func (x *MerkleRoot) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[18] - 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 MerkleRoot.ProtoReflect.Descriptor instead. -func (*MerkleRoot) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{18} -} - -func (x *MerkleRoot) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A validator's identity key (decaf377-rdsa spendauth verification key). -type IdentityKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Ik []byte `protobuf:"bytes,1,opt,name=ik,proto3" json:"ik,omitempty"` -} - -func (x *IdentityKey) Reset() { - *x = IdentityKey{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IdentityKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IdentityKey) ProtoMessage() {} - -func (x *IdentityKey) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[19] - 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 IdentityKey.ProtoReflect.Descriptor instead. -func (*IdentityKey) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{19} -} - -func (x *IdentityKey) GetIk() []byte { - if x != nil { - return x.Ik - } - return nil -} - -// A validator's governance key (decaf377-rdsa spendauth verification key). -type GovernanceKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Gk []byte `protobuf:"bytes,1,opt,name=gk,proto3" json:"gk,omitempty"` -} - -func (x *GovernanceKey) Reset() { - *x = GovernanceKey{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GovernanceKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GovernanceKey) ProtoMessage() {} - -func (x *GovernanceKey) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[20] - 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 GovernanceKey.ProtoReflect.Descriptor instead. -func (*GovernanceKey) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{20} -} - -func (x *GovernanceKey) GetGk() []byte { - if x != nil { - return x.Gk - } - return nil -} - -type ConsensusKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *ConsensusKey) Reset() { - *x = ConsensusKey{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ConsensusKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ConsensusKey) ProtoMessage() {} - -func (x *ConsensusKey) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[21] - 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 ConsensusKey.ProtoReflect.Descriptor instead. -func (*ConsensusKey) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{21} -} - -func (x *ConsensusKey) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type Note struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Value *Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` - Rseed []byte `protobuf:"bytes,2,opt,name=rseed,proto3" json:"rseed,omitempty"` - Address *Address `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` -} - -func (x *Note) Reset() { - *x = Note{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Note) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Note) ProtoMessage() {} - -func (x *Note) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[22] - 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 Note.ProtoReflect.Descriptor instead. -func (*Note) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{22} -} - -func (x *Note) GetValue() *Value { - if x != nil { - return x.Value - } - return nil -} - -func (x *Note) GetRseed() []byte { - if x != nil { - return x.Rseed - } - return nil -} - -func (x *Note) GetAddress() *Address { - if x != nil { - return x.Address - } - return nil -} - -type NoteView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Value *ValueView `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` - Rseed []byte `protobuf:"bytes,2,opt,name=rseed,proto3" json:"rseed,omitempty"` - Address *AddressView `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` -} - -func (x *NoteView) Reset() { - *x = NoteView{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NoteView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NoteView) ProtoMessage() {} - -func (x *NoteView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[23] - 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 NoteView.ProtoReflect.Descriptor instead. -func (*NoteView) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{23} -} - -func (x *NoteView) GetValue() *ValueView { - if x != nil { - return x.Value - } - return nil -} - -func (x *NoteView) GetRseed() []byte { - if x != nil { - return x.Rseed - } - return nil -} - -func (x *NoteView) GetAddress() *AddressView { - if x != nil { - return x.Address - } - return nil -} - -// An encrypted note. -// 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. -type NoteCiphertext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *NoteCiphertext) Reset() { - *x = NoteCiphertext{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NoteCiphertext) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NoteCiphertext) ProtoMessage() {} - -func (x *NoteCiphertext) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[24] - 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 NoteCiphertext.ProtoReflect.Descriptor instead. -func (*NoteCiphertext) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{24} -} - -func (x *NoteCiphertext) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type Nullifier struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *Nullifier) Reset() { - *x = Nullifier{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Nullifier) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Nullifier) ProtoMessage() {} - -func (x *Nullifier) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[25] - 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 Nullifier.ProtoReflect.Descriptor instead. -func (*Nullifier) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{25} -} - -func (x *Nullifier) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type SpendAuthSignature struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *SpendAuthSignature) Reset() { - *x = SpendAuthSignature{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SpendAuthSignature) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpendAuthSignature) ProtoMessage() {} - -func (x *SpendAuthSignature) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[26] - 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 SpendAuthSignature.ProtoReflect.Descriptor instead. -func (*SpendAuthSignature) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{26} -} - -func (x *SpendAuthSignature) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type BindingSignature struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *BindingSignature) Reset() { - *x = BindingSignature{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BindingSignature) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BindingSignature) ProtoMessage() {} - -func (x *BindingSignature) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[27] - 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 BindingSignature.ProtoReflect.Descriptor instead. -func (*BindingSignature) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{27} -} - -func (x *BindingSignature) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// The body of an output description, including only the minimal -// data required to scan and process the output. -type NotePayload struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The note commitment for the output note. 32 bytes. - NoteCommitment *StateCommitment `protobuf:"bytes,1,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` - // The encoding of an ephemeral public key. 32 bytes. - EphemeralKey []byte `protobuf:"bytes,2,opt,name=ephemeral_key,json=ephemeralKey,proto3" json:"ephemeral_key,omitempty"` - // An encryption of the newly created note. - // 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. - EncryptedNote *NoteCiphertext `protobuf:"bytes,3,opt,name=encrypted_note,json=encryptedNote,proto3" json:"encrypted_note,omitempty"` -} - -func (x *NotePayload) Reset() { - *x = NotePayload{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NotePayload) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NotePayload) ProtoMessage() {} - -func (x *NotePayload) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[28] - 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 NotePayload.ProtoReflect.Descriptor instead. -func (*NotePayload) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{28} -} - -func (x *NotePayload) GetNoteCommitment() *StateCommitment { - if x != nil { - return x.NoteCommitment - } - return nil -} - -func (x *NotePayload) GetEphemeralKey() []byte { - if x != nil { - return x.EphemeralKey - } - return nil -} - -func (x *NotePayload) GetEncryptedNote() *NoteCiphertext { - if x != nil { - return x.EncryptedNote - } - return nil -} - -// An authentication path from a state commitment to the root of the state commitment tree. -type StateCommitmentProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - NoteCommitment *StateCommitment `protobuf:"bytes,1,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` - Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` - AuthPath []*MerklePathChunk `protobuf:"bytes,3,rep,name=auth_path,json=authPath,proto3" json:"auth_path,omitempty"` // always length 24 -} - -func (x *StateCommitmentProof) Reset() { - *x = StateCommitmentProof{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StateCommitmentProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StateCommitmentProof) ProtoMessage() {} - -func (x *StateCommitmentProof) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[29] - 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 StateCommitmentProof.ProtoReflect.Descriptor instead. -func (*StateCommitmentProof) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{29} -} - -func (x *StateCommitmentProof) GetNoteCommitment() *StateCommitment { - if x != nil { - return x.NoteCommitment - } - return nil -} - -func (x *StateCommitmentProof) GetPosition() uint64 { - if x != nil { - return x.Position - } - return 0 -} - -func (x *StateCommitmentProof) GetAuthPath() []*MerklePathChunk { - if x != nil { - return x.AuthPath - } - return nil -} - -// A set of 3 sibling hashes in the auth path for some note commitment. -type MerklePathChunk struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Sibling_1 []byte `protobuf:"bytes,1,opt,name=sibling_1,json=sibling1,proto3" json:"sibling_1,omitempty"` - Sibling_2 []byte `protobuf:"bytes,2,opt,name=sibling_2,json=sibling2,proto3" json:"sibling_2,omitempty"` - Sibling_3 []byte `protobuf:"bytes,3,opt,name=sibling_3,json=sibling3,proto3" json:"sibling_3,omitempty"` -} - -func (x *MerklePathChunk) Reset() { - *x = MerklePathChunk{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MerklePathChunk) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MerklePathChunk) ProtoMessage() {} - -func (x *MerklePathChunk) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[30] - 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 MerklePathChunk.ProtoReflect.Descriptor instead. -func (*MerklePathChunk) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{30} -} - -func (x *MerklePathChunk) GetSibling_1() []byte { - if x != nil { - return x.Sibling_1 - } - return nil -} - -func (x *MerklePathChunk) GetSibling_2() []byte { - if x != nil { - return x.Sibling_2 - } - return nil -} - -func (x *MerklePathChunk) GetSibling_3() []byte { - if x != nil { - return x.Sibling_3 - } - return nil -} - -// A clue for use with Fuzzy Message Detection. -type Clue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *Clue) Reset() { - *x = Clue{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Clue) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Clue) ProtoMessage() {} - -func (x *Clue) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[31] - 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 Clue.ProtoReflect.Descriptor instead. -func (*Clue) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{31} -} - -func (x *Clue) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// An authorization hash for a Penumbra transaction. -type EffectHash struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *EffectHash) Reset() { - *x = EffectHash{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *EffectHash) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EffectHash) ProtoMessage() {} - -func (x *EffectHash) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[32] - 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 EffectHash.ProtoReflect.Descriptor instead. -func (*EffectHash) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{32} -} - -func (x *EffectHash) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A Penumbra ZK output proof. -type ZKOutputProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *ZKOutputProof) Reset() { - *x = ZKOutputProof{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ZKOutputProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ZKOutputProof) ProtoMessage() {} - -func (x *ZKOutputProof) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[33] - 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 ZKOutputProof.ProtoReflect.Descriptor instead. -func (*ZKOutputProof) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{33} -} - -func (x *ZKOutputProof) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A Penumbra ZK spend proof. -type ZKSpendProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *ZKSpendProof) Reset() { - *x = ZKSpendProof{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ZKSpendProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ZKSpendProof) ProtoMessage() {} - -func (x *ZKSpendProof) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[34] - 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 ZKSpendProof.ProtoReflect.Descriptor instead. -func (*ZKSpendProof) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{34} -} - -func (x *ZKSpendProof) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A Penumbra ZK swap proof. -type ZKSwapProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *ZKSwapProof) Reset() { - *x = ZKSwapProof{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ZKSwapProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ZKSwapProof) ProtoMessage() {} - -func (x *ZKSwapProof) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[35] - 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 ZKSwapProof.ProtoReflect.Descriptor instead. -func (*ZKSwapProof) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{35} -} - -func (x *ZKSwapProof) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A Penumbra ZK swap claim proof. -type ZKSwapClaimProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *ZKSwapClaimProof) Reset() { - *x = ZKSwapClaimProof{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ZKSwapClaimProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ZKSwapClaimProof) ProtoMessage() {} - -func (x *ZKSwapClaimProof) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[36] - 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 ZKSwapClaimProof.ProtoReflect.Descriptor instead. -func (*ZKSwapClaimProof) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{36} -} - -func (x *ZKSwapClaimProof) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A Penumbra ZK undelegate claim proof. -type ZKUndelegateClaimProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *ZKUndelegateClaimProof) Reset() { - *x = ZKUndelegateClaimProof{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ZKUndelegateClaimProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ZKUndelegateClaimProof) ProtoMessage() {} - -func (x *ZKUndelegateClaimProof) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[37] - 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 ZKUndelegateClaimProof.ProtoReflect.Descriptor instead. -func (*ZKUndelegateClaimProof) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{37} -} - -func (x *ZKUndelegateClaimProof) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A Penumbra ZK delegator vote proof. -type ZKDelegatorVoteProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *ZKDelegatorVoteProof) Reset() { - *x = ZKDelegatorVoteProof{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ZKDelegatorVoteProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ZKDelegatorVoteProof) ProtoMessage() {} - -func (x *ZKDelegatorVoteProof) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[38] - 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 ZKDelegatorVoteProof.ProtoReflect.Descriptor instead. -func (*ZKDelegatorVoteProof) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{38} -} - -func (x *ZKDelegatorVoteProof) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -// A Penumbra ZK nullifier derivation proof. -type ZKNullifierDerivationProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *ZKNullifierDerivationProof) Reset() { - *x = ZKNullifierDerivationProof{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ZKNullifierDerivationProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ZKNullifierDerivationProof) ProtoMessage() {} - -func (x *ZKNullifierDerivationProof) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[39] - 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 ZKNullifierDerivationProof.ProtoReflect.Descriptor instead. -func (*ZKNullifierDerivationProof) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{39} -} - -func (x *ZKNullifierDerivationProof) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type AddressView_Visible struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - Index *AddressIndex `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` - AccountGroupId *AccountGroupId `protobuf:"bytes,3,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` -} - -func (x *AddressView_Visible) Reset() { - *x = AddressView_Visible{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddressView_Visible) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddressView_Visible) ProtoMessage() {} - -func (x *AddressView_Visible) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[40] - 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 AddressView_Visible.ProtoReflect.Descriptor instead. -func (*AddressView_Visible) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{2, 0} -} - -func (x *AddressView_Visible) GetAddress() *Address { - if x != nil { - return x.Address - } - return nil -} - -func (x *AddressView_Visible) GetIndex() *AddressIndex { - if x != nil { - return x.Index - } - return nil -} - -func (x *AddressView_Visible) GetAccountGroupId() *AccountGroupId { - if x != nil { - return x.AccountGroupId - } - return nil -} - -type AddressView_Opaque struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` -} - -func (x *AddressView_Opaque) Reset() { - *x = AddressView_Opaque{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddressView_Opaque) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddressView_Opaque) ProtoMessage() {} - -func (x *AddressView_Opaque) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[41] - 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 AddressView_Opaque.ProtoReflect.Descriptor instead. -func (*AddressView_Opaque) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{2, 1} -} - -func (x *AddressView_Opaque) GetAddress() *Address { - if x != nil { - return x.Address - } - return nil -} - -// A value whose asset ID has a known denomination. -type ValueView_KnownDenom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - Denom *DenomMetadata `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` -} - -func (x *ValueView_KnownDenom) Reset() { - *x = ValueView_KnownDenom{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ValueView_KnownDenom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ValueView_KnownDenom) ProtoMessage() {} - -func (x *ValueView_KnownDenom) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[42] - 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 ValueView_KnownDenom.ProtoReflect.Descriptor instead. -func (*ValueView_KnownDenom) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{17, 0} -} - -func (x *ValueView_KnownDenom) GetAmount() *Amount { - if x != nil { - return x.Amount - } - return nil -} - -func (x *ValueView_KnownDenom) GetDenom() *DenomMetadata { - if x != nil { - return x.Denom - } - return nil -} - -type ValueView_UnknownDenom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Amount *Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - AssetId *AssetId `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` -} - -func (x *ValueView_UnknownDenom) Reset() { - *x = ValueView_UnknownDenom{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ValueView_UnknownDenom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ValueView_UnknownDenom) ProtoMessage() {} - -func (x *ValueView_UnknownDenom) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[43] - 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 ValueView_UnknownDenom.ProtoReflect.Descriptor instead. -func (*ValueView_UnknownDenom) Descriptor() ([]byte, []int) { - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP(), []int{17, 1} -} - -func (x *ValueView_UnknownDenom) GetAmount() *Amount { - if x != nil { - return x.Amount - } - return nil -} - -func (x *ValueView_UnknownDenom) GetAssetId() *AssetId { - if x != nil { - return x.AssetId - } - return nil -} - -var File_penumbra_core_crypto_v1alpha1_crypto_proto protoreflect.FileDescriptor - -var file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDesc = []byte{ - 0x0a, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x22, 0x87, 0x01, 0x0a, 0x03, - 0x46, 0x65, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x07, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x74, 0x5f, 0x62, 0x65, - 0x63, 0x68, 0x33, 0x32, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x74, - 0x42, 0x65, 0x63, 0x68, 0x33, 0x32, 0x6d, 0x22, 0xf0, 0x03, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x12, 0x4e, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x56, 0x69, 0x65, 0x77, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, - 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, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, - 0x69, 0x65, 0x77, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, - 0x61, 0x71, 0x75, 0x65, 0x1a, 0xe7, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x12, 0x40, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x41, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x1a, 0x4a, - 0x0a, 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 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, 0x42, 0x0e, 0x0a, 0x0c, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x20, 0x0a, 0x08, 0x53, 0x70, - 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x14, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x26, 0x0a, 0x0e, 0x46, 0x75, - 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x22, 0x26, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x0b, 0x44, 0x69, - 0x76, 0x65, 0x72, 0x73, 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, - 0x48, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x22, 0x27, 0x0a, 0x0f, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x22, 0x29, 0x0a, 0x11, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x66, 0x0a, - 0x07, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x6c, 0x74, 0x5f, 0x62, 0x65, 0x63, 0x68, 0x33, 0x32, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x74, 0x42, 0x65, 0x63, 0x68, 0x33, 0x32, 0x6d, 0x12, - 0x24, 0x0a, 0x0e, 0x61, 0x6c, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x74, 0x42, 0x61, 0x73, 0x65, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x28, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x6c, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x6f, 0x12, - 0x0e, 0x0a, 0x02, 0x68, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x68, 0x69, 0x22, - 0x1d, 0x0a, 0x05, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0xd8, - 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x75, 0x6e, 0x69, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, - 0x74, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, 0x73, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x72, 0x69, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x72, 0x69, - 0x48, 0x61, 0x73, 0x68, 0x12, 0x53, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0xc0, 0x0f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x0f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x57, 0x0a, 0x09, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, - 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, - 0x65, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0xf4, - 0x03, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x56, 0x0a, 0x0b, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x4b, 0x6e, 0x6f, 0x77, - 0x6e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x0a, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x5c, 0x0a, 0x0d, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x1a, 0x8f, 0x01, 0x0a, 0x0a, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x12, 0x3d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x42, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x1a, 0x90, 0x01, 0x0a, 0x0c, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x3d, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x07, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x22, 0x0a, 0x0a, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, - 0x6f, 0x6f, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x0b, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6b, 0x22, 0x1f, 0x0a, 0x0d, 0x47, 0x6f, 0x76, 0x65, - 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x67, 0x6b, 0x22, 0x24, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, - 0x9a, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 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, 0xa6, 0x01, 0x0a, - 0x08, 0x4e, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x56, 0x69, - 0x65, 0x77, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x73, 0x65, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x12, - 0x44, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x52, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x26, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x65, 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, 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, 0x2a, 0x0a, 0x12, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x10, - 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xe1, 0x01, 0x0a, 0x0b, 0x4e, 0x6f, 0x74, 0x65, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x57, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, - 0x0e, 0x6e, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, - 0x6c, 0x4b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, - 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x65, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x14, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x12, 0x57, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 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, 0x0e, 0x6e, 0x6f, - 0x74, 0x65, 0x43, 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, 0x4b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x72, 0x6b, - 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x08, 0x61, 0x75, 0x74, - 0x68, 0x50, 0x61, 0x74, 0x68, 0x22, 0x68, 0x0a, 0x0f, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x62, 0x6c, - 0x69, 0x6e, 0x67, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x69, 0x62, - 0x6c, 0x69, 0x6e, 0x67, 0x31, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, - 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, - 0x67, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x33, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x33, 0x22, - 0x1c, 0x0a, 0x04, 0x43, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x22, 0x0a, - 0x0a, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, - 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, - 0x72, 0x22, 0x25, 0x0a, 0x0d, 0x5a, 0x4b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 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, 0x24, 0x0a, 0x0c, 0x5a, 0x4b, 0x53, 0x70, - 0x65, 0x6e, 0x64, 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, 0x23, - 0x0a, 0x0b, 0x5a, 0x4b, 0x53, 0x77, 0x61, 0x70, 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, 0x28, 0x0a, 0x10, 0x5a, 0x4b, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 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, 0x2e, 0x0a, - 0x16, 0x5a, 0x4b, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 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, 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, 0x32, 0x0a, 0x1a, 0x5a, - 0x4b, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 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, 0x42, - 0xa4, 0x02, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0b, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5b, 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, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x3b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x43, 0xaa, 0x02, 0x1d, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1d, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5c, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x29, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5c, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x20, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, - 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x3a, 0x3a, 0x56, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescOnce sync.Once - file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescData = file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDesc -) - -func file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescGZIP() []byte { - file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescOnce.Do(func() { - file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescData) - }) - return file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDescData -} - -var file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes = make([]protoimpl.MessageInfo, 44) -var file_penumbra_core_crypto_v1alpha1_crypto_proto_goTypes = []interface{}{ - (*Fee)(nil), // 0: penumbra.core.crypto.v1alpha1.Fee - (*Address)(nil), // 1: penumbra.core.crypto.v1alpha1.Address - (*AddressView)(nil), // 2: penumbra.core.crypto.v1alpha1.AddressView - (*SpendKey)(nil), // 3: penumbra.core.crypto.v1alpha1.SpendKey - (*SpendVerificationKey)(nil), // 4: penumbra.core.crypto.v1alpha1.SpendVerificationKey - (*FullViewingKey)(nil), // 5: penumbra.core.crypto.v1alpha1.FullViewingKey - (*AccountGroupId)(nil), // 6: penumbra.core.crypto.v1alpha1.AccountGroupId - (*Diversifier)(nil), // 7: penumbra.core.crypto.v1alpha1.Diversifier - (*AddressIndex)(nil), // 8: penumbra.core.crypto.v1alpha1.AddressIndex - (*StateCommitment)(nil), // 9: penumbra.core.crypto.v1alpha1.StateCommitment - (*BalanceCommitment)(nil), // 10: penumbra.core.crypto.v1alpha1.BalanceCommitment - (*AssetId)(nil), // 11: penumbra.core.crypto.v1alpha1.AssetId - (*Amount)(nil), // 12: penumbra.core.crypto.v1alpha1.Amount - (*Denom)(nil), // 13: penumbra.core.crypto.v1alpha1.Denom - (*DenomMetadata)(nil), // 14: penumbra.core.crypto.v1alpha1.DenomMetadata - (*DenomUnit)(nil), // 15: penumbra.core.crypto.v1alpha1.DenomUnit - (*Value)(nil), // 16: penumbra.core.crypto.v1alpha1.Value - (*ValueView)(nil), // 17: penumbra.core.crypto.v1alpha1.ValueView - (*MerkleRoot)(nil), // 18: penumbra.core.crypto.v1alpha1.MerkleRoot - (*IdentityKey)(nil), // 19: penumbra.core.crypto.v1alpha1.IdentityKey - (*GovernanceKey)(nil), // 20: penumbra.core.crypto.v1alpha1.GovernanceKey - (*ConsensusKey)(nil), // 21: penumbra.core.crypto.v1alpha1.ConsensusKey - (*Note)(nil), // 22: penumbra.core.crypto.v1alpha1.Note - (*NoteView)(nil), // 23: penumbra.core.crypto.v1alpha1.NoteView - (*NoteCiphertext)(nil), // 24: penumbra.core.crypto.v1alpha1.NoteCiphertext - (*Nullifier)(nil), // 25: penumbra.core.crypto.v1alpha1.Nullifier - (*SpendAuthSignature)(nil), // 26: penumbra.core.crypto.v1alpha1.SpendAuthSignature - (*BindingSignature)(nil), // 27: penumbra.core.crypto.v1alpha1.BindingSignature - (*NotePayload)(nil), // 28: penumbra.core.crypto.v1alpha1.NotePayload - (*StateCommitmentProof)(nil), // 29: penumbra.core.crypto.v1alpha1.StateCommitmentProof - (*MerklePathChunk)(nil), // 30: penumbra.core.crypto.v1alpha1.MerklePathChunk - (*Clue)(nil), // 31: penumbra.core.crypto.v1alpha1.Clue - (*EffectHash)(nil), // 32: penumbra.core.crypto.v1alpha1.EffectHash - (*ZKOutputProof)(nil), // 33: penumbra.core.crypto.v1alpha1.ZKOutputProof - (*ZKSpendProof)(nil), // 34: penumbra.core.crypto.v1alpha1.ZKSpendProof - (*ZKSwapProof)(nil), // 35: penumbra.core.crypto.v1alpha1.ZKSwapProof - (*ZKSwapClaimProof)(nil), // 36: penumbra.core.crypto.v1alpha1.ZKSwapClaimProof - (*ZKUndelegateClaimProof)(nil), // 37: penumbra.core.crypto.v1alpha1.ZKUndelegateClaimProof - (*ZKDelegatorVoteProof)(nil), // 38: penumbra.core.crypto.v1alpha1.ZKDelegatorVoteProof - (*ZKNullifierDerivationProof)(nil), // 39: penumbra.core.crypto.v1alpha1.ZKNullifierDerivationProof - (*AddressView_Visible)(nil), // 40: penumbra.core.crypto.v1alpha1.AddressView.Visible - (*AddressView_Opaque)(nil), // 41: penumbra.core.crypto.v1alpha1.AddressView.Opaque - (*ValueView_KnownDenom)(nil), // 42: penumbra.core.crypto.v1alpha1.ValueView.KnownDenom - (*ValueView_UnknownDenom)(nil), // 43: penumbra.core.crypto.v1alpha1.ValueView.UnknownDenom -} -var file_penumbra_core_crypto_v1alpha1_crypto_proto_depIdxs = []int32{ - 12, // 0: penumbra.core.crypto.v1alpha1.Fee.amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 11, // 1: penumbra.core.crypto.v1alpha1.Fee.asset_id:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 40, // 2: penumbra.core.crypto.v1alpha1.AddressView.visible:type_name -> penumbra.core.crypto.v1alpha1.AddressView.Visible - 41, // 3: penumbra.core.crypto.v1alpha1.AddressView.opaque:type_name -> penumbra.core.crypto.v1alpha1.AddressView.Opaque - 15, // 4: penumbra.core.crypto.v1alpha1.DenomMetadata.denom_units:type_name -> penumbra.core.crypto.v1alpha1.DenomUnit - 11, // 5: penumbra.core.crypto.v1alpha1.DenomMetadata.penumbra_asset_id:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 12, // 6: penumbra.core.crypto.v1alpha1.Value.amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 11, // 7: penumbra.core.crypto.v1alpha1.Value.asset_id:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 42, // 8: penumbra.core.crypto.v1alpha1.ValueView.known_denom:type_name -> penumbra.core.crypto.v1alpha1.ValueView.KnownDenom - 43, // 9: penumbra.core.crypto.v1alpha1.ValueView.unknown_denom:type_name -> penumbra.core.crypto.v1alpha1.ValueView.UnknownDenom - 16, // 10: penumbra.core.crypto.v1alpha1.Note.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 1, // 11: penumbra.core.crypto.v1alpha1.Note.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 17, // 12: penumbra.core.crypto.v1alpha1.NoteView.value:type_name -> penumbra.core.crypto.v1alpha1.ValueView - 2, // 13: penumbra.core.crypto.v1alpha1.NoteView.address:type_name -> penumbra.core.crypto.v1alpha1.AddressView - 9, // 14: penumbra.core.crypto.v1alpha1.NotePayload.note_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 24, // 15: penumbra.core.crypto.v1alpha1.NotePayload.encrypted_note:type_name -> penumbra.core.crypto.v1alpha1.NoteCiphertext - 9, // 16: penumbra.core.crypto.v1alpha1.StateCommitmentProof.note_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 30, // 17: penumbra.core.crypto.v1alpha1.StateCommitmentProof.auth_path:type_name -> penumbra.core.crypto.v1alpha1.MerklePathChunk - 1, // 18: penumbra.core.crypto.v1alpha1.AddressView.Visible.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 8, // 19: penumbra.core.crypto.v1alpha1.AddressView.Visible.index:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 6, // 20: penumbra.core.crypto.v1alpha1.AddressView.Visible.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId - 1, // 21: penumbra.core.crypto.v1alpha1.AddressView.Opaque.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 12, // 22: penumbra.core.crypto.v1alpha1.ValueView.KnownDenom.amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 14, // 23: penumbra.core.crypto.v1alpha1.ValueView.KnownDenom.denom:type_name -> penumbra.core.crypto.v1alpha1.DenomMetadata - 12, // 24: penumbra.core.crypto.v1alpha1.ValueView.UnknownDenom.amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 11, // 25: penumbra.core.crypto.v1alpha1.ValueView.UnknownDenom.asset_id:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 26, // [26:26] is the sub-list for method output_type - 26, // [26:26] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name -} - -func init() { file_penumbra_core_crypto_v1alpha1_crypto_proto_init() } -func file_penumbra_core_crypto_v1alpha1_crypto_proto_init() { - if File_penumbra_core_crypto_v1alpha1_crypto_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Fee); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Address); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddressView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpendKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpendVerificationKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FullViewingKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountGroupId); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Diversifier); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddressIndex); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateCommitment); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BalanceCommitment); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AssetId); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Amount); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Denom); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DenomMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DenomUnit); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Value); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MerkleRoot); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IdentityKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GovernanceKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConsensusKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Note); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoteView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoteCiphertext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Nullifier); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpendAuthSignature); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BindingSignature); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotePayload); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StateCommitmentProof); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MerklePathChunk); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Clue); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EffectHash); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZKOutputProof); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZKSpendProof); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZKSwapProof); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZKSwapClaimProof); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZKUndelegateClaimProof); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZKDelegatorVoteProof); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZKNullifierDerivationProof); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddressView_Visible); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddressView_Opaque); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueView_KnownDenom); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueView_UnknownDenom); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[2].OneofWrappers = []interface{}{ - (*AddressView_Visible_)(nil), - (*AddressView_Opaque_)(nil), - } - file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes[17].OneofWrappers = []interface{}{ - (*ValueView_KnownDenom_)(nil), - (*ValueView_UnknownDenom_)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDesc, - NumEnums: 0, - NumMessages: 44, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_penumbra_core_crypto_v1alpha1_crypto_proto_goTypes, - DependencyIndexes: file_penumbra_core_crypto_v1alpha1_crypto_proto_depIdxs, - MessageInfos: file_penumbra_core_crypto_v1alpha1_crypto_proto_msgTypes, - }.Build() - File_penumbra_core_crypto_v1alpha1_crypto_proto = out.File - file_penumbra_core_crypto_v1alpha1_crypto_proto_rawDesc = nil - file_penumbra_core_crypto_v1alpha1_crypto_proto_goTypes = nil - file_penumbra_core_crypto_v1alpha1_crypto_proto_depIdxs = nil -} diff --git a/proto/go/gen/penumbra/core/dex/v1alpha1/dex.pb.go b/proto/go/gen/penumbra/core/dex/v1alpha1/dex.pb.go deleted file mode 100644 index 3f958efa65..0000000000 --- a/proto/go/gen/penumbra/core/dex/v1alpha1/dex.pb.go +++ /dev/null @@ -1,3219 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.31.0 -// protoc (unknown) -// source: penumbra/core/dex/v1alpha1/dex.proto - -package dexv1alpha1 - -import ( - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/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) -) - -type PositionState_PositionStateEnum int32 - -const ( - PositionState_POSITION_STATE_ENUM_UNSPECIFIED PositionState_PositionStateEnum = 0 - // The position has been opened, is active, has reserves and accumulated - // fees, and can be traded against. - PositionState_POSITION_STATE_ENUM_OPENED PositionState_PositionStateEnum = 1 - // The position has been closed, is inactive and can no longer be traded - // against, but still has reserves and accumulated fees. - PositionState_POSITION_STATE_ENUM_CLOSED PositionState_PositionStateEnum = 2 - // The final reserves and accumulated fees have been withdrawn, leaving an - // empty, inactive position awaiting (possible) retroactive rewards. - PositionState_POSITION_STATE_ENUM_WITHDRAWN PositionState_PositionStateEnum = 3 - // Any retroactive rewards have been claimed. The position is now an inert, - // historical artefact. - PositionState_POSITION_STATE_ENUM_CLAIMED PositionState_PositionStateEnum = 4 -) - -// Enum value maps for PositionState_PositionStateEnum. -var ( - PositionState_PositionStateEnum_name = map[int32]string{ - 0: "POSITION_STATE_ENUM_UNSPECIFIED", - 1: "POSITION_STATE_ENUM_OPENED", - 2: "POSITION_STATE_ENUM_CLOSED", - 3: "POSITION_STATE_ENUM_WITHDRAWN", - 4: "POSITION_STATE_ENUM_CLAIMED", - } - PositionState_PositionStateEnum_value = map[string]int32{ - "POSITION_STATE_ENUM_UNSPECIFIED": 0, - "POSITION_STATE_ENUM_OPENED": 1, - "POSITION_STATE_ENUM_CLOSED": 2, - "POSITION_STATE_ENUM_WITHDRAWN": 3, - "POSITION_STATE_ENUM_CLAIMED": 4, - } -) - -func (x PositionState_PositionStateEnum) Enum() *PositionState_PositionStateEnum { - p := new(PositionState_PositionStateEnum) - *p = x - return p -} - -func (x PositionState_PositionStateEnum) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (PositionState_PositionStateEnum) Descriptor() protoreflect.EnumDescriptor { - return file_penumbra_core_dex_v1alpha1_dex_proto_enumTypes[0].Descriptor() -} - -func (PositionState_PositionStateEnum) Type() protoreflect.EnumType { - return &file_penumbra_core_dex_v1alpha1_dex_proto_enumTypes[0] -} - -func (x PositionState_PositionStateEnum) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use PositionState_PositionStateEnum.Descriptor instead. -func (PositionState_PositionStateEnum) EnumDescriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{18, 0} -} - -// A transaction action that submits a swap to the dex. -type Swap struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Contains the Swap proof. - Proof *v1alpha1.ZKSwapProof `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` - // Encapsulates the authorized fields of the Swap action, used in signing. - Body *SwapBody `protobuf:"bytes,4,opt,name=body,proto3" json:"body,omitempty"` -} - -func (x *Swap) Reset() { - *x = Swap{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Swap) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Swap) ProtoMessage() {} - -func (x *Swap) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_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 Swap.ProtoReflect.Descriptor instead. -func (*Swap) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{0} -} - -func (x *Swap) GetProof() *v1alpha1.ZKSwapProof { - if x != nil { - return x.Proof - } - return nil -} - -func (x *Swap) GetBody() *SwapBody { - if x != nil { - return x.Body - } - return nil -} - -// A transaction action that obtains assets previously confirmed -// via a Swap transaction. Does not include a spend authorization -// signature, as it is only capable of consuming the NFT from a -// Swap transaction. -type SwapClaim struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Contains the SwapClaim proof. - Proof []byte `protobuf:"bytes,1,opt,name=proof,proto3" json:"proof,omitempty"` - // Encapsulates the authorized fields of the SwapClaim action, used in signing. - Body *SwapClaimBody `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` - // The epoch duration of the chain when the swap claim took place. - EpochDuration uint64 `protobuf:"varint,7,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` -} - -func (x *SwapClaim) Reset() { - *x = SwapClaim{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapClaim) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapClaim) ProtoMessage() {} - -func (x *SwapClaim) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_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 SwapClaim.ProtoReflect.Descriptor instead. -func (*SwapClaim) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{1} -} - -func (x *SwapClaim) GetProof() []byte { - if x != nil { - return x.Proof - } - return nil -} - -func (x *SwapClaim) GetBody() *SwapClaimBody { - if x != nil { - return x.Body - } - return nil -} - -func (x *SwapClaim) GetEpochDuration() uint64 { - if x != nil { - return x.EpochDuration - } - return 0 -} - -// Encapsulates the authorized fields of the SwapClaim action, used in signing. -type SwapClaimBody struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The nullifier for the Swap commitment to be consumed. - Nullifier *v1alpha1.Nullifier `protobuf:"bytes,1,opt,name=nullifier,proto3" json:"nullifier,omitempty"` - // The fee allows `SwapClaim` without an additional `Spend`. - Fee *v1alpha1.Fee `protobuf:"bytes,2,opt,name=fee,proto3" json:"fee,omitempty"` - // Note output for asset 1. - Output_1Commitment *v1alpha1.StateCommitment `protobuf:"bytes,3,opt,name=output_1_commitment,json=output1Commitment,proto3" json:"output_1_commitment,omitempty"` - // Note output for asset 2. - Output_2Commitment *v1alpha1.StateCommitment `protobuf:"bytes,4,opt,name=output_2_commitment,json=output2Commitment,proto3" json:"output_2_commitment,omitempty"` - // Input and output amounts, and asset IDs for the assets in the swap. - OutputData *BatchSwapOutputData `protobuf:"bytes,6,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` -} - -func (x *SwapClaimBody) Reset() { - *x = SwapClaimBody{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapClaimBody) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapClaimBody) ProtoMessage() {} - -func (x *SwapClaimBody) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_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 SwapClaimBody.ProtoReflect.Descriptor instead. -func (*SwapClaimBody) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{2} -} - -func (x *SwapClaimBody) GetNullifier() *v1alpha1.Nullifier { - if x != nil { - return x.Nullifier - } - return nil -} - -func (x *SwapClaimBody) GetFee() *v1alpha1.Fee { - if x != nil { - return x.Fee - } - return nil -} - -func (x *SwapClaimBody) GetOutput_1Commitment() *v1alpha1.StateCommitment { - if x != nil { - return x.Output_1Commitment - } - return nil -} - -func (x *SwapClaimBody) GetOutput_2Commitment() *v1alpha1.StateCommitment { - if x != nil { - return x.Output_2Commitment - } - return nil -} - -func (x *SwapClaimBody) GetOutputData() *BatchSwapOutputData { - if x != nil { - return x.OutputData - } - return nil -} - -// The authorized data of a Swap transaction. -type SwapBody struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The trading pair to swap. - TradingPair *TradingPair `protobuf:"bytes,1,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` - // The amount for asset 1. - Delta_1I *v1alpha1.Amount `protobuf:"bytes,2,opt,name=delta_1_i,json=delta1I,proto3" json:"delta_1_i,omitempty"` - // The amount for asset 2. - Delta_2I *v1alpha1.Amount `protobuf:"bytes,3,opt,name=delta_2_i,json=delta2I,proto3" json:"delta_2_i,omitempty"` - // A commitment to a prepaid fee for the future SwapClaim. - // This is recorded separately from delta_j_i because it's shielded; - // in the future we'll want separate commitments to each delta_j_i - // anyways in order to prove consistency with flow encryption. - FeeCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,4,opt,name=fee_commitment,json=feeCommitment,proto3" json:"fee_commitment,omitempty"` - // The swap commitment and encryption of the swap data. - Payload *SwapPayload `protobuf:"bytes,5,opt,name=payload,proto3" json:"payload,omitempty"` -} - -func (x *SwapBody) Reset() { - *x = SwapBody{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapBody) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapBody) ProtoMessage() {} - -func (x *SwapBody) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_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 SwapBody.ProtoReflect.Descriptor instead. -func (*SwapBody) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{3} -} - -func (x *SwapBody) GetTradingPair() *TradingPair { - if x != nil { - return x.TradingPair - } - return nil -} - -func (x *SwapBody) GetDelta_1I() *v1alpha1.Amount { - if x != nil { - return x.Delta_1I - } - return nil -} - -func (x *SwapBody) GetDelta_2I() *v1alpha1.Amount { - if x != nil { - return x.Delta_2I - } - return nil -} - -func (x *SwapBody) GetFeeCommitment() *v1alpha1.BalanceCommitment { - if x != nil { - return x.FeeCommitment - } - return nil -} - -func (x *SwapBody) GetPayload() *SwapPayload { - if x != nil { - return x.Payload - } - return nil -} - -type SwapPayload struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Commitment *v1alpha1.StateCommitment `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - EncryptedSwap []byte `protobuf:"bytes,2,opt,name=encrypted_swap,json=encryptedSwap,proto3" json:"encrypted_swap,omitempty"` -} - -func (x *SwapPayload) Reset() { - *x = SwapPayload{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapPayload) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapPayload) ProtoMessage() {} - -func (x *SwapPayload) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SwapPayload.ProtoReflect.Descriptor instead. -func (*SwapPayload) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{4} -} - -func (x *SwapPayload) GetCommitment() *v1alpha1.StateCommitment { - if x != nil { - return x.Commitment - } - return nil -} - -func (x *SwapPayload) GetEncryptedSwap() []byte { - if x != nil { - return x.EncryptedSwap - } - return nil -} - -type SwapPlaintext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The trading pair to swap. - TradingPair *TradingPair `protobuf:"bytes,1,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` - // Input amount of asset 1 - Delta_1I *v1alpha1.Amount `protobuf:"bytes,2,opt,name=delta_1_i,json=delta1I,proto3" json:"delta_1_i,omitempty"` - // Input amount of asset 2 - Delta_2I *v1alpha1.Amount `protobuf:"bytes,3,opt,name=delta_2_i,json=delta2I,proto3" json:"delta_2_i,omitempty"` - // Pre-paid fee to claim the swap - ClaimFee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=claim_fee,json=claimFee,proto3" json:"claim_fee,omitempty"` - // Address that will claim the swap outputs via SwapClaim. - ClaimAddress *v1alpha1.Address `protobuf:"bytes,5,opt,name=claim_address,json=claimAddress,proto3" json:"claim_address,omitempty"` - // Swap rseed (blinding factors are derived from this) - Rseed []byte `protobuf:"bytes,6,opt,name=rseed,proto3" json:"rseed,omitempty"` -} - -func (x *SwapPlaintext) Reset() { - *x = SwapPlaintext{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapPlaintext) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapPlaintext) ProtoMessage() {} - -func (x *SwapPlaintext) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SwapPlaintext.ProtoReflect.Descriptor instead. -func (*SwapPlaintext) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{5} -} - -func (x *SwapPlaintext) GetTradingPair() *TradingPair { - if x != nil { - return x.TradingPair - } - return nil -} - -func (x *SwapPlaintext) GetDelta_1I() *v1alpha1.Amount { - if x != nil { - return x.Delta_1I - } - return nil -} - -func (x *SwapPlaintext) GetDelta_2I() *v1alpha1.Amount { - if x != nil { - return x.Delta_2I - } - return nil -} - -func (x *SwapPlaintext) GetClaimFee() *v1alpha1.Fee { - if x != nil { - return x.ClaimFee - } - return nil -} - -func (x *SwapPlaintext) GetClaimAddress() *v1alpha1.Address { - if x != nil { - return x.ClaimAddress - } - return nil -} - -func (x *SwapPlaintext) GetRseed() []byte { - if x != nil { - return x.Rseed - } - return nil -} - -type SwapPlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The plaintext version of the swap to be performed. - SwapPlaintext *SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` - // The blinding factor for the fee commitment. The fee in the SwapPlan is private to prevent linkability with the SwapClaim. - FeeBlinding []byte `protobuf:"bytes,2,opt,name=fee_blinding,json=feeBlinding,proto3" json:"fee_blinding,omitempty"` - // The first blinding factor to use for the ZK swap proof. - ProofBlindingR []byte `protobuf:"bytes,3,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` - // The second blinding factor to use for the ZK swap proof. - ProofBlindingS []byte `protobuf:"bytes,4,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` -} - -func (x *SwapPlan) Reset() { - *x = SwapPlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapPlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapPlan) ProtoMessage() {} - -func (x *SwapPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SwapPlan.ProtoReflect.Descriptor instead. -func (*SwapPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{6} -} - -func (x *SwapPlan) GetSwapPlaintext() *SwapPlaintext { - if x != nil { - return x.SwapPlaintext - } - return nil -} - -func (x *SwapPlan) GetFeeBlinding() []byte { - if x != nil { - return x.FeeBlinding - } - return nil -} - -func (x *SwapPlan) GetProofBlindingR() []byte { - if x != nil { - return x.ProofBlindingR - } - return nil -} - -func (x *SwapPlan) GetProofBlindingS() []byte { - if x != nil { - return x.ProofBlindingS - } - return nil -} - -type SwapClaimPlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The plaintext version of the swap to be performed. - SwapPlaintext *SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` - // The position of the swap commitment. - Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` - // Input and output amounts for the Swap. - OutputData *BatchSwapOutputData `protobuf:"bytes,3,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` - // The epoch duration, used in proving. - EpochDuration uint64 `protobuf:"varint,4,opt,name=epoch_duration,json=epochDuration,proto3" json:"epoch_duration,omitempty"` - // The first blinding factor to use for the ZK swap claim proof. - ProofBlindingR []byte `protobuf:"bytes,5,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` - // The second blinding factor to use for the ZK swap claim proof. - ProofBlindingS []byte `protobuf:"bytes,6,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` -} - -func (x *SwapClaimPlan) Reset() { - *x = SwapClaimPlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapClaimPlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapClaimPlan) ProtoMessage() {} - -func (x *SwapClaimPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SwapClaimPlan.ProtoReflect.Descriptor instead. -func (*SwapClaimPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{7} -} - -func (x *SwapClaimPlan) GetSwapPlaintext() *SwapPlaintext { - if x != nil { - return x.SwapPlaintext - } - return nil -} - -func (x *SwapClaimPlan) GetPosition() uint64 { - if x != nil { - return x.Position - } - return 0 -} - -func (x *SwapClaimPlan) GetOutputData() *BatchSwapOutputData { - if x != nil { - return x.OutputData - } - return nil -} - -func (x *SwapClaimPlan) GetEpochDuration() uint64 { - if x != nil { - return x.EpochDuration - } - return 0 -} - -func (x *SwapClaimPlan) GetProofBlindingR() []byte { - if x != nil { - return x.ProofBlindingR - } - return nil -} - -func (x *SwapClaimPlan) GetProofBlindingS() []byte { - if x != nil { - return x.ProofBlindingS - } - return nil -} - -type SwapView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to SwapView: - // - // *SwapView_Visible_ - // *SwapView_Opaque_ - SwapView isSwapView_SwapView `protobuf_oneof:"swap_view"` -} - -func (x *SwapView) Reset() { - *x = SwapView{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapView) ProtoMessage() {} - -func (x *SwapView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SwapView.ProtoReflect.Descriptor instead. -func (*SwapView) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{8} -} - -func (m *SwapView) GetSwapView() isSwapView_SwapView { - if m != nil { - return m.SwapView - } - return nil -} - -func (x *SwapView) GetVisible() *SwapView_Visible { - if x, ok := x.GetSwapView().(*SwapView_Visible_); ok { - return x.Visible - } - return nil -} - -func (x *SwapView) GetOpaque() *SwapView_Opaque { - if x, ok := x.GetSwapView().(*SwapView_Opaque_); ok { - return x.Opaque - } - return nil -} - -type isSwapView_SwapView interface { - isSwapView_SwapView() -} - -type SwapView_Visible_ struct { - Visible *SwapView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` -} - -type SwapView_Opaque_ struct { - Opaque *SwapView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` -} - -func (*SwapView_Visible_) isSwapView_SwapView() {} - -func (*SwapView_Opaque_) isSwapView_SwapView() {} - -type SwapClaimView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to SwapClaimView: - // - // *SwapClaimView_Visible_ - // *SwapClaimView_Opaque_ - SwapClaimView isSwapClaimView_SwapClaimView `protobuf_oneof:"swap_claim_view"` -} - -func (x *SwapClaimView) Reset() { - *x = SwapClaimView{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapClaimView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapClaimView) ProtoMessage() {} - -func (x *SwapClaimView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SwapClaimView.ProtoReflect.Descriptor instead. -func (*SwapClaimView) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{9} -} - -func (m *SwapClaimView) GetSwapClaimView() isSwapClaimView_SwapClaimView { - if m != nil { - return m.SwapClaimView - } - return nil -} - -func (x *SwapClaimView) GetVisible() *SwapClaimView_Visible { - if x, ok := x.GetSwapClaimView().(*SwapClaimView_Visible_); ok { - return x.Visible - } - return nil -} - -func (x *SwapClaimView) GetOpaque() *SwapClaimView_Opaque { - if x, ok := x.GetSwapClaimView().(*SwapClaimView_Opaque_); ok { - return x.Opaque - } - return nil -} - -type isSwapClaimView_SwapClaimView interface { - isSwapClaimView_SwapClaimView() -} - -type SwapClaimView_Visible_ struct { - Visible *SwapClaimView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` -} - -type SwapClaimView_Opaque_ struct { - Opaque *SwapClaimView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` -} - -func (*SwapClaimView_Visible_) isSwapClaimView_SwapClaimView() {} - -func (*SwapClaimView_Opaque_) isSwapClaimView_SwapClaimView() {} - -// Holds two asset IDs. Ordering doesn't reflect trading direction. Instead, we -// require `asset_1 < asset_2` as field elements, to ensure a canonical -// representation of an unordered pair. -type TradingPair struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The first asset of the pair. - Asset_1 *v1alpha1.AssetId `protobuf:"bytes,1,opt,name=asset_1,json=asset1,proto3" json:"asset_1,omitempty"` - // The second asset of the pair. - Asset_2 *v1alpha1.AssetId `protobuf:"bytes,2,opt,name=asset_2,json=asset2,proto3" json:"asset_2,omitempty"` -} - -func (x *TradingPair) Reset() { - *x = TradingPair{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TradingPair) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TradingPair) ProtoMessage() {} - -func (x *TradingPair) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TradingPair.ProtoReflect.Descriptor instead. -func (*TradingPair) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{10} -} - -func (x *TradingPair) GetAsset_1() *v1alpha1.AssetId { - if x != nil { - return x.Asset_1 - } - return nil -} - -func (x *TradingPair) GetAsset_2() *v1alpha1.AssetId { - if x != nil { - return x.Asset_2 - } - return nil -} - -// Encodes a trading pair starting from asset `start` -// and ending on asset `end`. -type DirectedTradingPair struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The start asset of the pair. - Start *v1alpha1.AssetId `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` - // The end asset of the pair. - End *v1alpha1.AssetId `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` -} - -func (x *DirectedTradingPair) Reset() { - *x = DirectedTradingPair{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DirectedTradingPair) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DirectedTradingPair) ProtoMessage() {} - -func (x *DirectedTradingPair) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DirectedTradingPair.ProtoReflect.Descriptor instead. -func (*DirectedTradingPair) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{11} -} - -func (x *DirectedTradingPair) GetStart() *v1alpha1.AssetId { - if x != nil { - return x.Start - } - return nil -} - -func (x *DirectedTradingPair) GetEnd() *v1alpha1.AssetId { - if x != nil { - return x.End - } - return nil -} - -// Records the result of a batch swap on-chain. -// -// Used as a public input to a swap claim proof, as it implies the effective -// clearing price for the batch. -type BatchSwapOutputData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The total amount of asset 1 that was input to the batch swap. - Delta_1 *v1alpha1.Amount `protobuf:"bytes,1,opt,name=delta_1,json=delta1,proto3" json:"delta_1,omitempty"` - // The total amount of asset 2 that was input to the batch swap. - Delta_2 *v1alpha1.Amount `protobuf:"bytes,2,opt,name=delta_2,json=delta2,proto3" json:"delta_2,omitempty"` - // The total amount of asset 1 that was output from the batch swap for 2=>1 trades. - Lambda_1 *v1alpha1.Amount `protobuf:"bytes,3,opt,name=lambda_1,json=lambda1,proto3" json:"lambda_1,omitempty"` - // The total amount of asset 2 that was output from the batch swap for 1=>2 trades. - Lambda_2 *v1alpha1.Amount `protobuf:"bytes,4,opt,name=lambda_2,json=lambda2,proto3" json:"lambda_2,omitempty"` - // The total amount of asset 1 that was returned unfilled from the batch swap for 1=>2 trades. - Unfilled_1 *v1alpha1.Amount `protobuf:"bytes,5,opt,name=unfilled_1,json=unfilled1,proto3" json:"unfilled_1,omitempty"` - // The total amount of asset 2 that was returned unfilled from the batch swap for 2=>1 trades. - Unfilled_2 *v1alpha1.Amount `protobuf:"bytes,6,opt,name=unfilled_2,json=unfilled2,proto3" json:"unfilled_2,omitempty"` - // The height for which the batch swap data is valid. - Height uint64 `protobuf:"varint,7,opt,name=height,proto3" json:"height,omitempty"` - // The trading pair associated with the batch swap. - TradingPair *TradingPair `protobuf:"bytes,8,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` - // The starting block height of the epoch for which the batch swap data is valid. - EpochStartingHeight uint64 `protobuf:"varint,9,opt,name=epoch_starting_height,json=epochStartingHeight,proto3" json:"epoch_starting_height,omitempty"` -} - -func (x *BatchSwapOutputData) Reset() { - *x = BatchSwapOutputData{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BatchSwapOutputData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BatchSwapOutputData) ProtoMessage() {} - -func (x *BatchSwapOutputData) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BatchSwapOutputData.ProtoReflect.Descriptor instead. -func (*BatchSwapOutputData) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{12} -} - -func (x *BatchSwapOutputData) GetDelta_1() *v1alpha1.Amount { - if x != nil { - return x.Delta_1 - } - return nil -} - -func (x *BatchSwapOutputData) GetDelta_2() *v1alpha1.Amount { - if x != nil { - return x.Delta_2 - } - return nil -} - -func (x *BatchSwapOutputData) GetLambda_1() *v1alpha1.Amount { - if x != nil { - return x.Lambda_1 - } - return nil -} - -func (x *BatchSwapOutputData) GetLambda_2() *v1alpha1.Amount { - if x != nil { - return x.Lambda_2 - } - return nil -} - -func (x *BatchSwapOutputData) GetUnfilled_1() *v1alpha1.Amount { - if x != nil { - return x.Unfilled_1 - } - return nil -} - -func (x *BatchSwapOutputData) GetUnfilled_2() *v1alpha1.Amount { - if x != nil { - return x.Unfilled_2 - } - return nil -} - -func (x *BatchSwapOutputData) GetHeight() uint64 { - if x != nil { - return x.Height - } - return 0 -} - -func (x *BatchSwapOutputData) GetTradingPair() *TradingPair { - if x != nil { - return x.TradingPair - } - return nil -} - -func (x *BatchSwapOutputData) GetEpochStartingHeight() uint64 { - if x != nil { - return x.EpochStartingHeight - } - return 0 -} - -// The trading function for a specific pair. -// For a pair (asset_1, asset_2), a trading function is defined by: -// `phi(R) = p*R_1 + q*R_2` and `gamma = 1 - fee`. -// The trading function is frequently referred to as "phi". -type TradingFunction struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Component *BareTradingFunction `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"` - Pair *TradingPair `protobuf:"bytes,2,opt,name=pair,proto3" json:"pair,omitempty"` -} - -func (x *TradingFunction) Reset() { - *x = TradingFunction{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TradingFunction) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TradingFunction) ProtoMessage() {} - -func (x *TradingFunction) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use TradingFunction.ProtoReflect.Descriptor instead. -func (*TradingFunction) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{13} -} - -func (x *TradingFunction) GetComponent() *BareTradingFunction { - if x != nil { - return x.Component - } - return nil -} - -func (x *TradingFunction) GetPair() *TradingPair { - if x != nil { - return x.Pair - } - return nil -} - -// The minimum amount of data describing a trading function. -// -// This implicitly treats the trading function as being between assets 1 and 2, -// without specifying what those assets are, to avoid duplicating data (each -// asset ID alone is twice the size of the trading function). -type BareTradingFunction struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Fee uint32 `protobuf:"varint,1,opt,name=fee,proto3" json:"fee,omitempty"` - // This is not actually an amount, it's an integer the same width as an amount - P *v1alpha1.Amount `protobuf:"bytes,2,opt,name=p,proto3" json:"p,omitempty"` - // This is not actually an amount, it's an integer the same width as an amount - Q *v1alpha1.Amount `protobuf:"bytes,3,opt,name=q,proto3" json:"q,omitempty"` -} - -func (x *BareTradingFunction) Reset() { - *x = BareTradingFunction{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BareTradingFunction) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BareTradingFunction) ProtoMessage() {} - -func (x *BareTradingFunction) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[14] - 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 BareTradingFunction.ProtoReflect.Descriptor instead. -func (*BareTradingFunction) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{14} -} - -func (x *BareTradingFunction) GetFee() uint32 { - if x != nil { - return x.Fee - } - return 0 -} - -func (x *BareTradingFunction) GetP() *v1alpha1.Amount { - if x != nil { - return x.P - } - return nil -} - -func (x *BareTradingFunction) GetQ() *v1alpha1.Amount { - if x != nil { - return x.Q - } - return nil -} - -// The reserves of a position. -// -// Like a position, this implicitly treats the trading function as being -// between assets 1 and 2, without specifying what those assets are, to avoid -// duplicating data (each asset ID alone is four times the size of the -// reserves). -type Reserves struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - R1 *v1alpha1.Amount `protobuf:"bytes,1,opt,name=r1,proto3" json:"r1,omitempty"` - R2 *v1alpha1.Amount `protobuf:"bytes,2,opt,name=r2,proto3" json:"r2,omitempty"` -} - -func (x *Reserves) Reset() { - *x = Reserves{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Reserves) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Reserves) ProtoMessage() {} - -func (x *Reserves) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[15] - 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 Reserves.ProtoReflect.Descriptor instead. -func (*Reserves) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{15} -} - -func (x *Reserves) GetR1() *v1alpha1.Amount { - if x != nil { - return x.R1 - } - return nil -} - -func (x *Reserves) GetR2() *v1alpha1.Amount { - if x != nil { - return x.R2 - } - return nil -} - -// Data identifying a position. -type Position struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Phi *TradingFunction `protobuf:"bytes,1,opt,name=phi,proto3" json:"phi,omitempty"` - // A random value used to disambiguate different positions with the exact same - // trading function. The chain should reject newly created positions with the - // same nonce as an existing position. This ensures that `PositionId`s will - // be unique, and allows us to track position ownership with a - // sequence of stateful NFTs based on the `PositionId`. - Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` - State *PositionState `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` - Reserves *Reserves `protobuf:"bytes,4,opt,name=reserves,proto3" json:"reserves,omitempty"` - // / If set to true, the position is a limit-order and will be closed - // / immediately after being filled. - CloseOnFill bool `protobuf:"varint,5,opt,name=close_on_fill,json=closeOnFill,proto3" json:"close_on_fill,omitempty"` -} - -func (x *Position) Reset() { - *x = Position{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Position) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Position) ProtoMessage() {} - -func (x *Position) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[16] - 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 Position.ProtoReflect.Descriptor instead. -func (*Position) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{16} -} - -func (x *Position) GetPhi() *TradingFunction { - if x != nil { - return x.Phi - } - return nil -} - -func (x *Position) GetNonce() []byte { - if x != nil { - return x.Nonce - } - return nil -} - -func (x *Position) GetState() *PositionState { - if x != nil { - return x.State - } - return nil -} - -func (x *Position) GetReserves() *Reserves { - if x != nil { - return x.Reserves - } - return nil -} - -func (x *Position) GetCloseOnFill() bool { - if x != nil { - return x.CloseOnFill - } - return false -} - -// A hash of a `Position`. -type PositionId struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The bytes of the position ID. - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` - // Alternatively, a Bech32m-encoded string representation of the `inner` - // bytes. - // - // NOTE: implementations are not required to support parsing this field. - // Implementations should prefer to encode the bytes in all messages they - // produce. Implementations must not accept messages with both `inner` and - // `alt_bech32m` set. - AltBech32M string `protobuf:"bytes,2,opt,name=alt_bech32m,json=altBech32m,proto3" json:"alt_bech32m,omitempty"` -} - -func (x *PositionId) Reset() { - *x = PositionId{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionId) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionId) ProtoMessage() {} - -func (x *PositionId) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[17] - 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 PositionId.ProtoReflect.Descriptor instead. -func (*PositionId) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{17} -} - -func (x *PositionId) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -func (x *PositionId) GetAltBech32M() string { - if x != nil { - return x.AltBech32M - } - return "" -} - -// The state of a position. -type PositionState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - State PositionState_PositionStateEnum `protobuf:"varint,1,opt,name=state,proto3,enum=penumbra.core.dex.v1alpha1.PositionState_PositionStateEnum" json:"state,omitempty"` -} - -func (x *PositionState) Reset() { - *x = PositionState{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionState) ProtoMessage() {} - -func (x *PositionState) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[18] - 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 PositionState.ProtoReflect.Descriptor instead. -func (*PositionState) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{18} -} - -func (x *PositionState) GetState() PositionState_PositionStateEnum { - if x != nil { - return x.State - } - return PositionState_POSITION_STATE_ENUM_UNSPECIFIED -} - -// An LPNFT tracking both ownership and state of a position. -// -// Tracking the state as part of the LPNFT means that all LP-related actions can -// be authorized by spending funds: a state transition (e.g., closing a -// position) is modeled as spending an "open position LPNFT" and minting a -// "closed position LPNFT" for the same (globally unique) position ID. -// -// This means that the LP mechanics can be agnostic to the mechanism used to -// record custody and spend authorization. For instance, they can be recorded -// in the shielded pool, where custody is based on off-chain keys, or they could -// be recorded in a programmatic on-chain account (in the future, e.g., to -// support interchain accounts). This also means that LP-related actions don't -// require any cryptographic implementation (proofs, signatures, etc), other -// than hooking into the value commitment mechanism used for transaction -// balances. -type LpNft struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` - State *PositionState `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` -} - -func (x *LpNft) Reset() { - *x = LpNft{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *LpNft) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LpNft) ProtoMessage() {} - -func (x *LpNft) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[19] - 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 LpNft.ProtoReflect.Descriptor instead. -func (*LpNft) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{19} -} - -func (x *LpNft) GetPositionId() *PositionId { - if x != nil { - return x.PositionId - } - return nil -} - -func (x *LpNft) GetState() *PositionState { - if x != nil { - return x.State - } - return nil -} - -// A transaction action that opens a new position. -// -// This action's contribution to the transaction's value balance is to consume -// the initial reserves and contribute an opened position NFT. -type PositionOpen struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Contains the data defining the position, sufficient to compute its `PositionId`. - // - // Positions are immutable, so the `PositionData` (and hence the `PositionId`) - // are unchanged over the entire lifetime of the position. - Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` -} - -func (x *PositionOpen) Reset() { - *x = PositionOpen{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionOpen) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionOpen) ProtoMessage() {} - -func (x *PositionOpen) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[20] - 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 PositionOpen.ProtoReflect.Descriptor instead. -func (*PositionOpen) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{20} -} - -func (x *PositionOpen) GetPosition() *Position { - if x != nil { - return x.Position - } - return nil -} - -// A transaction action that closes a position. -// -// This action's contribution to the transaction's value balance is to consume -// an opened position NFT and contribute a closed position NFT. -// -// Closing a position does not immediately withdraw funds, because Penumbra -// transactions (like any ZK transaction model) are early-binding: the prover -// must know the state transition they prove knowledge of, and they cannot know -// the final reserves with certainty until after the position has been deactivated. -type PositionClose struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` -} - -func (x *PositionClose) Reset() { - *x = PositionClose{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionClose) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionClose) ProtoMessage() {} - -func (x *PositionClose) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[21] - 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 PositionClose.ProtoReflect.Descriptor instead. -func (*PositionClose) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{21} -} - -func (x *PositionClose) GetPositionId() *PositionId { - if x != nil { - return x.PositionId - } - return nil -} - -// A transaction action that withdraws funds from a closed position. -// -// This action's contribution to the transaction's value balance is to consume a -// closed position NFT and contribute a withdrawn position NFT, as well as all -// of the funds that were in the position at the time of closing. -type PositionWithdraw struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` - // A transparent (zero blinding factor) commitment to the position's final reserves and fees. - // - // The chain will check this commitment by recomputing it with the on-chain state. - ReservesCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,2,opt,name=reserves_commitment,json=reservesCommitment,proto3" json:"reserves_commitment,omitempty"` -} - -func (x *PositionWithdraw) Reset() { - *x = PositionWithdraw{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionWithdraw) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionWithdraw) ProtoMessage() {} - -func (x *PositionWithdraw) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[22] - 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 PositionWithdraw.ProtoReflect.Descriptor instead. -func (*PositionWithdraw) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{22} -} - -func (x *PositionWithdraw) GetPositionId() *PositionId { - if x != nil { - return x.PositionId - } - return nil -} - -func (x *PositionWithdraw) GetReservesCommitment() *v1alpha1.BalanceCommitment { - if x != nil { - return x.ReservesCommitment - } - return nil -} - -// A transaction action that claims retroactive rewards for a historical -// position. -// -// This action's contribution to the transaction's value balance is to consume a -// withdrawn position NFT and contribute its reward balance. -type PositionRewardClaim struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PositionId *PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` - // A transparent (zero blinding factor) commitment to the position's accumulated rewards. - // - // The chain will check this commitment by recomputing it with the on-chain state. - RewardsCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,2,opt,name=rewards_commitment,json=rewardsCommitment,proto3" json:"rewards_commitment,omitempty"` -} - -func (x *PositionRewardClaim) Reset() { - *x = PositionRewardClaim{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionRewardClaim) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionRewardClaim) ProtoMessage() {} - -func (x *PositionRewardClaim) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[23] - 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 PositionRewardClaim.ProtoReflect.Descriptor instead. -func (*PositionRewardClaim) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{23} -} - -func (x *PositionRewardClaim) GetPositionId() *PositionId { - if x != nil { - return x.PositionId - } - return nil -} - -func (x *PositionRewardClaim) GetRewardsCommitment() *v1alpha1.BalanceCommitment { - if x != nil { - return x.RewardsCommitment - } - return nil -} - -// Contains the entire execution of a particular swap. -type SwapExecution struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Traces []*SwapExecution_Trace `protobuf:"bytes,1,rep,name=traces,proto3" json:"traces,omitempty"` - // The total input amount for this execution. - Input *v1alpha1.Value `protobuf:"bytes,2,opt,name=input,proto3" json:"input,omitempty"` - // The total output amount for this execution. - Output *v1alpha1.Value `protobuf:"bytes,3,opt,name=output,proto3" json:"output,omitempty"` -} - -func (x *SwapExecution) Reset() { - *x = SwapExecution{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapExecution) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapExecution) ProtoMessage() {} - -func (x *SwapExecution) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[24] - 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 SwapExecution.ProtoReflect.Descriptor instead. -func (*SwapExecution) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{24} -} - -func (x *SwapExecution) GetTraces() []*SwapExecution_Trace { - if x != nil { - return x.Traces - } - return nil -} - -func (x *SwapExecution) GetInput() *v1alpha1.Value { - if x != nil { - return x.Input - } - return nil -} - -func (x *SwapExecution) GetOutput() *v1alpha1.Value { - if x != nil { - return x.Output - } - return nil -} - -// Contains private and public data for withdrawing funds from a closed position. -type PositionWithdrawPlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Reserves *Reserves `protobuf:"bytes,1,opt,name=reserves,proto3" json:"reserves,omitempty"` - PositionId *PositionId `protobuf:"bytes,2,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` - Pair *TradingPair `protobuf:"bytes,3,opt,name=pair,proto3" json:"pair,omitempty"` -} - -func (x *PositionWithdrawPlan) Reset() { - *x = PositionWithdrawPlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionWithdrawPlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionWithdrawPlan) ProtoMessage() {} - -func (x *PositionWithdrawPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[25] - 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 PositionWithdrawPlan.ProtoReflect.Descriptor instead. -func (*PositionWithdrawPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{25} -} - -func (x *PositionWithdrawPlan) GetReserves() *Reserves { - if x != nil { - return x.Reserves - } - return nil -} - -func (x *PositionWithdrawPlan) GetPositionId() *PositionId { - if x != nil { - return x.PositionId - } - return nil -} - -func (x *PositionWithdrawPlan) GetPair() *TradingPair { - if x != nil { - return x.Pair - } - return nil -} - -// Contains private and public data for claiming rewards from a position. -type PositionRewardClaimPlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Reserves *Reserves `protobuf:"bytes,1,opt,name=reserves,proto3" json:"reserves,omitempty"` -} - -func (x *PositionRewardClaimPlan) Reset() { - *x = PositionRewardClaimPlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionRewardClaimPlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionRewardClaimPlan) ProtoMessage() {} - -func (x *PositionRewardClaimPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[26] - 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 PositionRewardClaimPlan.ProtoReflect.Descriptor instead. -func (*PositionRewardClaimPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{26} -} - -func (x *PositionRewardClaimPlan) GetReserves() *Reserves { - if x != nil { - return x.Reserves - } - return nil -} - -type SwapView_Visible struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Swap *Swap `protobuf:"bytes,1,opt,name=swap,proto3" json:"swap,omitempty"` - SwapPlaintext *SwapPlaintext `protobuf:"bytes,3,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` -} - -func (x *SwapView_Visible) Reset() { - *x = SwapView_Visible{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapView_Visible) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapView_Visible) ProtoMessage() {} - -func (x *SwapView_Visible) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[27] - 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 SwapView_Visible.ProtoReflect.Descriptor instead. -func (*SwapView_Visible) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{8, 0} -} - -func (x *SwapView_Visible) GetSwap() *Swap { - if x != nil { - return x.Swap - } - return nil -} - -func (x *SwapView_Visible) GetSwapPlaintext() *SwapPlaintext { - if x != nil { - return x.SwapPlaintext - } - return nil -} - -type SwapView_Opaque struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Swap *Swap `protobuf:"bytes,1,opt,name=swap,proto3" json:"swap,omitempty"` -} - -func (x *SwapView_Opaque) Reset() { - *x = SwapView_Opaque{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapView_Opaque) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapView_Opaque) ProtoMessage() {} - -func (x *SwapView_Opaque) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[28] - 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 SwapView_Opaque.ProtoReflect.Descriptor instead. -func (*SwapView_Opaque) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{8, 1} -} - -func (x *SwapView_Opaque) GetSwap() *Swap { - if x != nil { - return x.Swap - } - return nil -} - -type SwapClaimView_Visible struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SwapClaim *SwapClaim `protobuf:"bytes,1,opt,name=swap_claim,json=swapClaim,proto3" json:"swap_claim,omitempty"` - Output_1 *v1alpha1.NoteView `protobuf:"bytes,2,opt,name=output_1,json=output1,proto3" json:"output_1,omitempty"` - Output_2 *v1alpha1.NoteView `protobuf:"bytes,3,opt,name=output_2,json=output2,proto3" json:"output_2,omitempty"` -} - -func (x *SwapClaimView_Visible) Reset() { - *x = SwapClaimView_Visible{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapClaimView_Visible) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapClaimView_Visible) ProtoMessage() {} - -func (x *SwapClaimView_Visible) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[29] - 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 SwapClaimView_Visible.ProtoReflect.Descriptor instead. -func (*SwapClaimView_Visible) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{9, 0} -} - -func (x *SwapClaimView_Visible) GetSwapClaim() *SwapClaim { - if x != nil { - return x.SwapClaim - } - return nil -} - -func (x *SwapClaimView_Visible) GetOutput_1() *v1alpha1.NoteView { - if x != nil { - return x.Output_1 - } - return nil -} - -func (x *SwapClaimView_Visible) GetOutput_2() *v1alpha1.NoteView { - if x != nil { - return x.Output_2 - } - return nil -} - -type SwapClaimView_Opaque struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SwapClaim *SwapClaim `protobuf:"bytes,1,opt,name=swap_claim,json=swapClaim,proto3" json:"swap_claim,omitempty"` -} - -func (x *SwapClaimView_Opaque) Reset() { - *x = SwapClaimView_Opaque{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapClaimView_Opaque) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapClaimView_Opaque) ProtoMessage() {} - -func (x *SwapClaimView_Opaque) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[30] - 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 SwapClaimView_Opaque.ProtoReflect.Descriptor instead. -func (*SwapClaimView_Opaque) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{9, 1} -} - -func (x *SwapClaimView_Opaque) GetSwapClaim() *SwapClaim { - if x != nil { - return x.SwapClaim - } - return nil -} - -// Contains all individual steps consisting of a trade trace. -type SwapExecution_Trace struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Each step in the trade trace. - Value []*v1alpha1.Value `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"` -} - -func (x *SwapExecution_Trace) Reset() { - *x = SwapExecution_Trace{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapExecution_Trace) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapExecution_Trace) ProtoMessage() {} - -func (x *SwapExecution_Trace) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[31] - 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 SwapExecution_Trace.ProtoReflect.Descriptor instead. -func (*SwapExecution_Trace) Descriptor() ([]byte, []int) { - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP(), []int{24, 0} -} - -func (x *SwapExecution_Trace) GetValue() []*v1alpha1.Value { - if x != nil { - return x.Value - } - return nil -} - -var File_penumbra_core_dex_v1alpha1_dex_proto protoreflect.FileDescriptor - -var file_penumbra_core_dex_v1alpha1_dex_proto_rawDesc = []byte{ - 0x0a, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, - 0x64, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x78, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x1a, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, - 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x82, - 0x01, 0x0a, 0x04, 0x53, 0x77, 0x61, 0x70, 0x12, 0x40, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x5a, 0x4b, 0x53, 0x77, 0x61, 0x70, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, - 0x6f, 0x64, 0x79, 0x22, 0x87, 0x01, 0x0a, 0x09, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, - 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x3d, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x42, 0x6f, 0x64, 0x79, - 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9f, 0x03, - 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x42, 0x6f, 0x64, 0x79, 0x12, - 0x46, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x34, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x5e, 0x0a, - 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x31, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 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, 0x11, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x31, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5e, 0x0a, - 0x13, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x32, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 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, 0x11, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x32, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, - 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, - 0xf8, 0x02, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x4a, 0x0a, 0x0c, - 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, - 0x61, 0x5f, 0x31, 0x5f, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x31, 0x49, 0x12, 0x41, 0x0a, 0x09, 0x64, - 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x32, 0x5f, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x32, 0x49, 0x12, 0x57, - 0x0a, 0x0e, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x0d, 0x66, 0x65, 0x65, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x84, 0x01, 0x0a, 0x0b, 0x53, - 0x77, 0x61, 0x70, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x4e, 0x0a, 0x0a, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x25, 0x0a, 0x0e, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x53, 0x77, 0x61, - 0x70, 0x22, 0x85, 0x03, 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x12, 0x4a, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, - 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, - 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, - 0x41, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x31, 0x5f, 0x69, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x74, 0x61, - 0x31, 0x49, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x32, 0x5f, 0x69, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x64, 0x65, - 0x6c, 0x74, 0x61, 0x32, 0x49, 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x66, - 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x52, 0x08, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x46, 0x65, 0x65, 0x12, 0x4b, 0x0a, 0x0d, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0c, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x22, 0xd3, 0x01, 0x0a, 0x08, 0x53, 0x77, - 0x61, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, - 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, - 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x73, 0x77, 0x61, 0x70, 0x50, - 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x65, 0x65, 0x5f, - 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, - 0x66, 0x65, 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, - 0x03, 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, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x22, - 0xca, 0x02, 0x0a, 0x0d, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6c, 0x61, - 0x6e, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x73, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, - 0x65, 0x78, 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, - 0x50, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6f, - 0x66, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x18, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x22, 0xfc, 0x02, 0x0a, - 0x08, 0x53, 0x77, 0x61, 0x70, 0x56, 0x69, 0x65, 0x77, 0x12, 0x48, 0x0a, 0x07, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x56, 0x69, 0x65, 0x77, - 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x53, 0x77, 0x61, 0x70, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x1a, 0x91, 0x01, 0x0a, 0x07, 0x56, - 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x50, 0x0a, 0x0e, - 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, - 0x0d, 0x73, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x1a, 0x3e, - 0x0a, 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x42, 0x0b, - 0x0a, 0x09, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0xe7, 0x03, 0x0a, 0x0d, - 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x56, 0x69, 0x65, 0x77, 0x12, 0x4d, 0x0a, - 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, - 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x4a, 0x0a, 0x06, - 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x1a, 0xd7, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, - 0x09, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x42, 0x0a, 0x08, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x5f, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x31, 0x12, 0x42, - 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x32, 0x1a, 0x4e, 0x0a, 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x0a, - 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, - 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x09, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x42, 0x11, 0x0a, 0x0f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, - 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x8f, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, 0x3f, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x31, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x06, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x31, 0x12, 0x3f, 0x0a, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, - 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, - 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x32, 0x22, 0x8d, 0x01, 0x0a, 0x13, 0x44, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x12, - 0x3c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x38, 0x0a, - 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x49, 0x64, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xbd, 0x04, 0x0a, 0x13, 0x42, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x3e, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x31, 0x12, - 0x3e, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x32, 0x12, - 0x40, 0x0a, 0x08, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, - 0x31, 0x12, 0x40, 0x0a, 0x08, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x5f, 0x32, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x6c, 0x61, 0x6d, 0x62, - 0x64, 0x61, 0x32, 0x12, 0x44, 0x0a, 0x0a, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, - 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, - 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x31, 0x12, 0x44, 0x0a, 0x0a, 0x75, 0x6e, 0x66, - 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x32, 0x12, - 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x4a, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, - 0x61, 0x69, 0x72, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x13, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, - 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x9d, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x09, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, - 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x72, 0x65, - 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x70, 0x61, - 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, - 0x72, 0x52, 0x04, 0x70, 0x61, 0x69, 0x72, 0x22, 0x91, 0x01, 0x0a, 0x13, 0x42, 0x61, 0x72, 0x65, - 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x66, 0x65, - 0x65, 0x12, 0x33, 0x0a, 0x01, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x01, 0x70, 0x12, 0x33, 0x0a, 0x01, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x01, 0x71, 0x22, 0x78, 0x0a, 0x08, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x02, 0x72, 0x31, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x02, 0x72, 0x31, 0x12, 0x35, - 0x0a, 0x02, 0x72, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x02, 0x72, 0x32, 0x22, 0x86, 0x02, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x03, 0x70, 0x68, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x70, 0x68, - 0x69, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x6c, - 0x6f, 0x73, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x4f, 0x6e, 0x46, 0x69, 0x6c, 0x6c, 0x22, 0x43, - 0x0a, 0x0a, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, - 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x74, 0x5f, 0x62, 0x65, 0x63, 0x68, 0x33, 0x32, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x74, 0x42, 0x65, 0x63, 0x68, - 0x33, 0x32, 0x6d, 0x22, 0xa1, 0x02, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, - 0x0a, 0x1f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 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, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x45, - 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x44, - 0x52, 0x41, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x43, 0x4c, - 0x41, 0x49, 0x4d, 0x45, 0x44, 0x10, 0x04, 0x22, 0x91, 0x01, 0x0a, 0x05, 0x4c, 0x70, 0x4e, 0x66, - 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x50, 0x0a, 0x0c, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x40, 0x0a, 0x08, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x58, 0x0a, - 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x47, - 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xbe, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x47, 0x0a, 0x0b, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x61, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xbf, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, - 0x12, 0x47, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5f, 0x0a, 0x12, 0x72, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x97, 0x02, 0x0a, 0x0d, 0x53, - 0x77, 0x61, 0x70, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x06, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x06, 0x74, - 0x72, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x1a, - 0x43, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x14, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x40, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x73, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x12, - 0x47, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x04, 0x70, 0x61, 0x69, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, - 0x04, 0x70, 0x61, 0x69, 0x72, 0x22, 0x5b, 0x0a, 0x17, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, 0x6c, 0x61, 0x6e, - 0x12, 0x40, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x73, 0x42, 0x8c, 0x02, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x08, 0x44, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x55, 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, - 0x64, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x64, 0x65, 0x78, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x44, 0xaa, 0x02, - 0x1a, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x44, - 0x65, 0x78, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1a, 0x50, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x44, 0x65, 0x78, 0x5c, - 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x26, 0x50, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x44, 0x65, 0x78, 0x5c, 0x56, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x1d, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, - 0x72, 0x65, 0x3a, 0x3a, 0x44, 0x65, 0x78, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_penumbra_core_dex_v1alpha1_dex_proto_rawDescOnce sync.Once - file_penumbra_core_dex_v1alpha1_dex_proto_rawDescData = file_penumbra_core_dex_v1alpha1_dex_proto_rawDesc -) - -func file_penumbra_core_dex_v1alpha1_dex_proto_rawDescGZIP() []byte { - file_penumbra_core_dex_v1alpha1_dex_proto_rawDescOnce.Do(func() { - file_penumbra_core_dex_v1alpha1_dex_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_dex_v1alpha1_dex_proto_rawDescData) - }) - return file_penumbra_core_dex_v1alpha1_dex_proto_rawDescData -} - -var file_penumbra_core_dex_v1alpha1_dex_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes = make([]protoimpl.MessageInfo, 32) -var file_penumbra_core_dex_v1alpha1_dex_proto_goTypes = []interface{}{ - (PositionState_PositionStateEnum)(0), // 0: penumbra.core.dex.v1alpha1.PositionState.PositionStateEnum - (*Swap)(nil), // 1: penumbra.core.dex.v1alpha1.Swap - (*SwapClaim)(nil), // 2: penumbra.core.dex.v1alpha1.SwapClaim - (*SwapClaimBody)(nil), // 3: penumbra.core.dex.v1alpha1.SwapClaimBody - (*SwapBody)(nil), // 4: penumbra.core.dex.v1alpha1.SwapBody - (*SwapPayload)(nil), // 5: penumbra.core.dex.v1alpha1.SwapPayload - (*SwapPlaintext)(nil), // 6: penumbra.core.dex.v1alpha1.SwapPlaintext - (*SwapPlan)(nil), // 7: penumbra.core.dex.v1alpha1.SwapPlan - (*SwapClaimPlan)(nil), // 8: penumbra.core.dex.v1alpha1.SwapClaimPlan - (*SwapView)(nil), // 9: penumbra.core.dex.v1alpha1.SwapView - (*SwapClaimView)(nil), // 10: penumbra.core.dex.v1alpha1.SwapClaimView - (*TradingPair)(nil), // 11: penumbra.core.dex.v1alpha1.TradingPair - (*DirectedTradingPair)(nil), // 12: penumbra.core.dex.v1alpha1.DirectedTradingPair - (*BatchSwapOutputData)(nil), // 13: penumbra.core.dex.v1alpha1.BatchSwapOutputData - (*TradingFunction)(nil), // 14: penumbra.core.dex.v1alpha1.TradingFunction - (*BareTradingFunction)(nil), // 15: penumbra.core.dex.v1alpha1.BareTradingFunction - (*Reserves)(nil), // 16: penumbra.core.dex.v1alpha1.Reserves - (*Position)(nil), // 17: penumbra.core.dex.v1alpha1.Position - (*PositionId)(nil), // 18: penumbra.core.dex.v1alpha1.PositionId - (*PositionState)(nil), // 19: penumbra.core.dex.v1alpha1.PositionState - (*LpNft)(nil), // 20: penumbra.core.dex.v1alpha1.LpNft - (*PositionOpen)(nil), // 21: penumbra.core.dex.v1alpha1.PositionOpen - (*PositionClose)(nil), // 22: penumbra.core.dex.v1alpha1.PositionClose - (*PositionWithdraw)(nil), // 23: penumbra.core.dex.v1alpha1.PositionWithdraw - (*PositionRewardClaim)(nil), // 24: penumbra.core.dex.v1alpha1.PositionRewardClaim - (*SwapExecution)(nil), // 25: penumbra.core.dex.v1alpha1.SwapExecution - (*PositionWithdrawPlan)(nil), // 26: penumbra.core.dex.v1alpha1.PositionWithdrawPlan - (*PositionRewardClaimPlan)(nil), // 27: penumbra.core.dex.v1alpha1.PositionRewardClaimPlan - (*SwapView_Visible)(nil), // 28: penumbra.core.dex.v1alpha1.SwapView.Visible - (*SwapView_Opaque)(nil), // 29: penumbra.core.dex.v1alpha1.SwapView.Opaque - (*SwapClaimView_Visible)(nil), // 30: penumbra.core.dex.v1alpha1.SwapClaimView.Visible - (*SwapClaimView_Opaque)(nil), // 31: penumbra.core.dex.v1alpha1.SwapClaimView.Opaque - (*SwapExecution_Trace)(nil), // 32: penumbra.core.dex.v1alpha1.SwapExecution.Trace - (*v1alpha1.ZKSwapProof)(nil), // 33: penumbra.core.crypto.v1alpha1.ZKSwapProof - (*v1alpha1.Nullifier)(nil), // 34: penumbra.core.crypto.v1alpha1.Nullifier - (*v1alpha1.Fee)(nil), // 35: penumbra.core.crypto.v1alpha1.Fee - (*v1alpha1.StateCommitment)(nil), // 36: penumbra.core.crypto.v1alpha1.StateCommitment - (*v1alpha1.Amount)(nil), // 37: penumbra.core.crypto.v1alpha1.Amount - (*v1alpha1.BalanceCommitment)(nil), // 38: penumbra.core.crypto.v1alpha1.BalanceCommitment - (*v1alpha1.Address)(nil), // 39: penumbra.core.crypto.v1alpha1.Address - (*v1alpha1.AssetId)(nil), // 40: penumbra.core.crypto.v1alpha1.AssetId - (*v1alpha1.Value)(nil), // 41: penumbra.core.crypto.v1alpha1.Value - (*v1alpha1.NoteView)(nil), // 42: penumbra.core.crypto.v1alpha1.NoteView -} -var file_penumbra_core_dex_v1alpha1_dex_proto_depIdxs = []int32{ - 33, // 0: penumbra.core.dex.v1alpha1.Swap.proof:type_name -> penumbra.core.crypto.v1alpha1.ZKSwapProof - 4, // 1: penumbra.core.dex.v1alpha1.Swap.body:type_name -> penumbra.core.dex.v1alpha1.SwapBody - 3, // 2: penumbra.core.dex.v1alpha1.SwapClaim.body:type_name -> penumbra.core.dex.v1alpha1.SwapClaimBody - 34, // 3: penumbra.core.dex.v1alpha1.SwapClaimBody.nullifier:type_name -> penumbra.core.crypto.v1alpha1.Nullifier - 35, // 4: penumbra.core.dex.v1alpha1.SwapClaimBody.fee:type_name -> penumbra.core.crypto.v1alpha1.Fee - 36, // 5: penumbra.core.dex.v1alpha1.SwapClaimBody.output_1_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 36, // 6: penumbra.core.dex.v1alpha1.SwapClaimBody.output_2_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 13, // 7: penumbra.core.dex.v1alpha1.SwapClaimBody.output_data:type_name -> penumbra.core.dex.v1alpha1.BatchSwapOutputData - 11, // 8: penumbra.core.dex.v1alpha1.SwapBody.trading_pair:type_name -> penumbra.core.dex.v1alpha1.TradingPair - 37, // 9: penumbra.core.dex.v1alpha1.SwapBody.delta_1_i:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 10: penumbra.core.dex.v1alpha1.SwapBody.delta_2_i:type_name -> penumbra.core.crypto.v1alpha1.Amount - 38, // 11: penumbra.core.dex.v1alpha1.SwapBody.fee_commitment:type_name -> penumbra.core.crypto.v1alpha1.BalanceCommitment - 5, // 12: penumbra.core.dex.v1alpha1.SwapBody.payload:type_name -> penumbra.core.dex.v1alpha1.SwapPayload - 36, // 13: penumbra.core.dex.v1alpha1.SwapPayload.commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 11, // 14: penumbra.core.dex.v1alpha1.SwapPlaintext.trading_pair:type_name -> penumbra.core.dex.v1alpha1.TradingPair - 37, // 15: penumbra.core.dex.v1alpha1.SwapPlaintext.delta_1_i:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 16: penumbra.core.dex.v1alpha1.SwapPlaintext.delta_2_i:type_name -> penumbra.core.crypto.v1alpha1.Amount - 35, // 17: penumbra.core.dex.v1alpha1.SwapPlaintext.claim_fee:type_name -> penumbra.core.crypto.v1alpha1.Fee - 39, // 18: penumbra.core.dex.v1alpha1.SwapPlaintext.claim_address:type_name -> penumbra.core.crypto.v1alpha1.Address - 6, // 19: penumbra.core.dex.v1alpha1.SwapPlan.swap_plaintext:type_name -> penumbra.core.dex.v1alpha1.SwapPlaintext - 6, // 20: penumbra.core.dex.v1alpha1.SwapClaimPlan.swap_plaintext:type_name -> penumbra.core.dex.v1alpha1.SwapPlaintext - 13, // 21: penumbra.core.dex.v1alpha1.SwapClaimPlan.output_data:type_name -> penumbra.core.dex.v1alpha1.BatchSwapOutputData - 28, // 22: penumbra.core.dex.v1alpha1.SwapView.visible:type_name -> penumbra.core.dex.v1alpha1.SwapView.Visible - 29, // 23: penumbra.core.dex.v1alpha1.SwapView.opaque:type_name -> penumbra.core.dex.v1alpha1.SwapView.Opaque - 30, // 24: penumbra.core.dex.v1alpha1.SwapClaimView.visible:type_name -> penumbra.core.dex.v1alpha1.SwapClaimView.Visible - 31, // 25: penumbra.core.dex.v1alpha1.SwapClaimView.opaque:type_name -> penumbra.core.dex.v1alpha1.SwapClaimView.Opaque - 40, // 26: penumbra.core.dex.v1alpha1.TradingPair.asset_1:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 40, // 27: penumbra.core.dex.v1alpha1.TradingPair.asset_2:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 40, // 28: penumbra.core.dex.v1alpha1.DirectedTradingPair.start:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 40, // 29: penumbra.core.dex.v1alpha1.DirectedTradingPair.end:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 37, // 30: penumbra.core.dex.v1alpha1.BatchSwapOutputData.delta_1:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 31: penumbra.core.dex.v1alpha1.BatchSwapOutputData.delta_2:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 32: penumbra.core.dex.v1alpha1.BatchSwapOutputData.lambda_1:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 33: penumbra.core.dex.v1alpha1.BatchSwapOutputData.lambda_2:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 34: penumbra.core.dex.v1alpha1.BatchSwapOutputData.unfilled_1:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 35: penumbra.core.dex.v1alpha1.BatchSwapOutputData.unfilled_2:type_name -> penumbra.core.crypto.v1alpha1.Amount - 11, // 36: penumbra.core.dex.v1alpha1.BatchSwapOutputData.trading_pair:type_name -> penumbra.core.dex.v1alpha1.TradingPair - 15, // 37: penumbra.core.dex.v1alpha1.TradingFunction.component:type_name -> penumbra.core.dex.v1alpha1.BareTradingFunction - 11, // 38: penumbra.core.dex.v1alpha1.TradingFunction.pair:type_name -> penumbra.core.dex.v1alpha1.TradingPair - 37, // 39: penumbra.core.dex.v1alpha1.BareTradingFunction.p:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 40: penumbra.core.dex.v1alpha1.BareTradingFunction.q:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 41: penumbra.core.dex.v1alpha1.Reserves.r1:type_name -> penumbra.core.crypto.v1alpha1.Amount - 37, // 42: penumbra.core.dex.v1alpha1.Reserves.r2:type_name -> penumbra.core.crypto.v1alpha1.Amount - 14, // 43: penumbra.core.dex.v1alpha1.Position.phi:type_name -> penumbra.core.dex.v1alpha1.TradingFunction - 19, // 44: penumbra.core.dex.v1alpha1.Position.state:type_name -> penumbra.core.dex.v1alpha1.PositionState - 16, // 45: penumbra.core.dex.v1alpha1.Position.reserves:type_name -> penumbra.core.dex.v1alpha1.Reserves - 0, // 46: penumbra.core.dex.v1alpha1.PositionState.state:type_name -> penumbra.core.dex.v1alpha1.PositionState.PositionStateEnum - 18, // 47: penumbra.core.dex.v1alpha1.LpNft.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 19, // 48: penumbra.core.dex.v1alpha1.LpNft.state:type_name -> penumbra.core.dex.v1alpha1.PositionState - 17, // 49: penumbra.core.dex.v1alpha1.PositionOpen.position:type_name -> penumbra.core.dex.v1alpha1.Position - 18, // 50: penumbra.core.dex.v1alpha1.PositionClose.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 18, // 51: penumbra.core.dex.v1alpha1.PositionWithdraw.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 38, // 52: penumbra.core.dex.v1alpha1.PositionWithdraw.reserves_commitment:type_name -> penumbra.core.crypto.v1alpha1.BalanceCommitment - 18, // 53: penumbra.core.dex.v1alpha1.PositionRewardClaim.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 38, // 54: penumbra.core.dex.v1alpha1.PositionRewardClaim.rewards_commitment:type_name -> penumbra.core.crypto.v1alpha1.BalanceCommitment - 32, // 55: penumbra.core.dex.v1alpha1.SwapExecution.traces:type_name -> penumbra.core.dex.v1alpha1.SwapExecution.Trace - 41, // 56: penumbra.core.dex.v1alpha1.SwapExecution.input:type_name -> penumbra.core.crypto.v1alpha1.Value - 41, // 57: penumbra.core.dex.v1alpha1.SwapExecution.output:type_name -> penumbra.core.crypto.v1alpha1.Value - 16, // 58: penumbra.core.dex.v1alpha1.PositionWithdrawPlan.reserves:type_name -> penumbra.core.dex.v1alpha1.Reserves - 18, // 59: penumbra.core.dex.v1alpha1.PositionWithdrawPlan.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 11, // 60: penumbra.core.dex.v1alpha1.PositionWithdrawPlan.pair:type_name -> penumbra.core.dex.v1alpha1.TradingPair - 16, // 61: penumbra.core.dex.v1alpha1.PositionRewardClaimPlan.reserves:type_name -> penumbra.core.dex.v1alpha1.Reserves - 1, // 62: penumbra.core.dex.v1alpha1.SwapView.Visible.swap:type_name -> penumbra.core.dex.v1alpha1.Swap - 6, // 63: penumbra.core.dex.v1alpha1.SwapView.Visible.swap_plaintext:type_name -> penumbra.core.dex.v1alpha1.SwapPlaintext - 1, // 64: penumbra.core.dex.v1alpha1.SwapView.Opaque.swap:type_name -> penumbra.core.dex.v1alpha1.Swap - 2, // 65: penumbra.core.dex.v1alpha1.SwapClaimView.Visible.swap_claim:type_name -> penumbra.core.dex.v1alpha1.SwapClaim - 42, // 66: penumbra.core.dex.v1alpha1.SwapClaimView.Visible.output_1:type_name -> penumbra.core.crypto.v1alpha1.NoteView - 42, // 67: penumbra.core.dex.v1alpha1.SwapClaimView.Visible.output_2:type_name -> penumbra.core.crypto.v1alpha1.NoteView - 2, // 68: penumbra.core.dex.v1alpha1.SwapClaimView.Opaque.swap_claim:type_name -> penumbra.core.dex.v1alpha1.SwapClaim - 41, // 69: penumbra.core.dex.v1alpha1.SwapExecution.Trace.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 70, // [70:70] is the sub-list for method output_type - 70, // [70:70] is the sub-list for method input_type - 70, // [70:70] is the sub-list for extension type_name - 70, // [70:70] is the sub-list for extension extendee - 0, // [0:70] is the sub-list for field type_name -} - -func init() { file_penumbra_core_dex_v1alpha1_dex_proto_init() } -func file_penumbra_core_dex_v1alpha1_dex_proto_init() { - if File_penumbra_core_dex_v1alpha1_dex_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Swap); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapClaim); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapClaimBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapPayload); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapPlaintext); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapPlan); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapClaimPlan); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapClaimView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradingPair); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DirectedTradingPair); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchSwapOutputData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradingFunction); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BareTradingFunction); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Reserves); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Position); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionId); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LpNft); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionOpen); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionClose); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionWithdraw); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionRewardClaim); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapExecution); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionWithdrawPlan); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionRewardClaimPlan); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapView_Visible); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapView_Opaque); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapClaimView_Visible); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapClaimView_Opaque); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapExecution_Trace); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[8].OneofWrappers = []interface{}{ - (*SwapView_Visible_)(nil), - (*SwapView_Opaque_)(nil), - } - file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes[9].OneofWrappers = []interface{}{ - (*SwapClaimView_Visible_)(nil), - (*SwapClaimView_Opaque_)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_penumbra_core_dex_v1alpha1_dex_proto_rawDesc, - NumEnums: 1, - NumMessages: 32, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_penumbra_core_dex_v1alpha1_dex_proto_goTypes, - DependencyIndexes: file_penumbra_core_dex_v1alpha1_dex_proto_depIdxs, - EnumInfos: file_penumbra_core_dex_v1alpha1_dex_proto_enumTypes, - MessageInfos: file_penumbra_core_dex_v1alpha1_dex_proto_msgTypes, - }.Build() - File_penumbra_core_dex_v1alpha1_dex_proto = out.File - file_penumbra_core_dex_v1alpha1_dex_proto_rawDesc = nil - file_penumbra_core_dex_v1alpha1_dex_proto_goTypes = nil - file_penumbra_core_dex_v1alpha1_dex_proto_depIdxs = nil -} diff --git a/proto/go/gen/penumbra/core/governance/v1alpha1/governance.pb.go b/proto/go/gen/penumbra/core/governance/v1alpha1/governance.pb.go deleted file mode 100644 index 6a1360ef5e..0000000000 --- a/proto/go/gen/penumbra/core/governance/v1alpha1/governance.pb.go +++ /dev/null @@ -1,2715 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.31.0 -// protoc (unknown) -// source: penumbra/core/governance/v1alpha1/governance.proto - -package governancev1alpha1 - -import ( - v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/chain/v1alpha1" - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - anypb "google.golang.org/protobuf/types/known/anypb" - 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) -) - -// A vote. -type Vote_Vote int32 - -const ( - Vote_VOTE_UNSPECIFIED Vote_Vote = 0 - Vote_VOTE_ABSTAIN Vote_Vote = 1 - Vote_VOTE_YES Vote_Vote = 2 - Vote_VOTE_NO Vote_Vote = 3 -) - -// Enum value maps for Vote_Vote. -var ( - Vote_Vote_name = map[int32]string{ - 0: "VOTE_UNSPECIFIED", - 1: "VOTE_ABSTAIN", - 2: "VOTE_YES", - 3: "VOTE_NO", - } - Vote_Vote_value = map[string]int32{ - "VOTE_UNSPECIFIED": 0, - "VOTE_ABSTAIN": 1, - "VOTE_YES": 2, - "VOTE_NO": 3, - } -) - -func (x Vote_Vote) Enum() *Vote_Vote { - p := new(Vote_Vote) - *p = x - return p -} - -func (x Vote_Vote) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (Vote_Vote) Descriptor() protoreflect.EnumDescriptor { - return file_penumbra_core_governance_v1alpha1_governance_proto_enumTypes[0].Descriptor() -} - -func (Vote_Vote) Type() protoreflect.EnumType { - return &file_penumbra_core_governance_v1alpha1_governance_proto_enumTypes[0] -} - -func (x Vote_Vote) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use Vote_Vote.Descriptor instead. -func (Vote_Vote) EnumDescriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{11, 0} -} - -type ProposalSubmit struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The proposal to be submitted. - Proposal *Proposal `protobuf:"bytes,1,opt,name=proposal,proto3" json:"proposal,omitempty"` - // The amount of the proposal deposit. - DepositAmount *v1alpha1.Amount `protobuf:"bytes,3,opt,name=deposit_amount,json=depositAmount,proto3" json:"deposit_amount,omitempty"` -} - -func (x *ProposalSubmit) Reset() { - *x = ProposalSubmit{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalSubmit) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalSubmit) ProtoMessage() {} - -func (x *ProposalSubmit) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_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 ProposalSubmit.ProtoReflect.Descriptor instead. -func (*ProposalSubmit) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{0} -} - -func (x *ProposalSubmit) GetProposal() *Proposal { - if x != nil { - return x.Proposal - } - return nil -} - -func (x *ProposalSubmit) GetDepositAmount() *v1alpha1.Amount { - if x != nil { - return x.DepositAmount - } - return nil -} - -type ProposalWithdraw struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The proposal to be withdrawn. - Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` - // The reason for the proposal being withdrawn. - Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` -} - -func (x *ProposalWithdraw) Reset() { - *x = ProposalWithdraw{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalWithdraw) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalWithdraw) ProtoMessage() {} - -func (x *ProposalWithdraw) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_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 ProposalWithdraw.ProtoReflect.Descriptor instead. -func (*ProposalWithdraw) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{1} -} - -func (x *ProposalWithdraw) GetProposal() uint64 { - if x != nil { - return x.Proposal - } - return 0 -} - -func (x *ProposalWithdraw) GetReason() string { - if x != nil { - return x.Reason - } - return "" -} - -type ProposalDepositClaim struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The proposal to claim the deposit for. - Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` - // The expected deposit amount. - DepositAmount *v1alpha1.Amount `protobuf:"bytes,2,opt,name=deposit_amount,json=depositAmount,proto3" json:"deposit_amount,omitempty"` - // The outcome of the proposal. - Outcome *ProposalOutcome `protobuf:"bytes,3,opt,name=outcome,proto3" json:"outcome,omitempty"` -} - -func (x *ProposalDepositClaim) Reset() { - *x = ProposalDepositClaim{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalDepositClaim) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalDepositClaim) ProtoMessage() {} - -func (x *ProposalDepositClaim) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_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 ProposalDepositClaim.ProtoReflect.Descriptor instead. -func (*ProposalDepositClaim) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{2} -} - -func (x *ProposalDepositClaim) GetProposal() uint64 { - if x != nil { - return x.Proposal - } - return 0 -} - -func (x *ProposalDepositClaim) GetDepositAmount() *v1alpha1.Amount { - if x != nil { - return x.DepositAmount - } - return nil -} - -func (x *ProposalDepositClaim) GetOutcome() *ProposalOutcome { - if x != nil { - return x.Outcome - } - return nil -} - -type ValidatorVote struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The effecting data for the vote. - Body *ValidatorVoteBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` - // The vote authorization signature is authorizing data. - AuthSig *v1alpha1.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` -} - -func (x *ValidatorVote) Reset() { - *x = ValidatorVote{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ValidatorVote) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ValidatorVote) ProtoMessage() {} - -func (x *ValidatorVote) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_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 ValidatorVote.ProtoReflect.Descriptor instead. -func (*ValidatorVote) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{3} -} - -func (x *ValidatorVote) GetBody() *ValidatorVoteBody { - if x != nil { - return x.Body - } - return nil -} - -func (x *ValidatorVote) GetAuthSig() *v1alpha1.SpendAuthSignature { - if x != nil { - return x.AuthSig - } - return nil -} - -type ValidatorVoteBody struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The proposal being voted on. - Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` - // The vote. - Vote *Vote `protobuf:"bytes,2,opt,name=vote,proto3" json:"vote,omitempty"` - // The validator identity. - IdentityKey *v1alpha1.IdentityKey `protobuf:"bytes,3,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` - // The validator governance key. - GovernanceKey *v1alpha1.GovernanceKey `protobuf:"bytes,4,opt,name=governance_key,json=governanceKey,proto3" json:"governance_key,omitempty"` -} - -func (x *ValidatorVoteBody) Reset() { - *x = ValidatorVoteBody{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ValidatorVoteBody) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ValidatorVoteBody) ProtoMessage() {} - -func (x *ValidatorVoteBody) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ValidatorVoteBody.ProtoReflect.Descriptor instead. -func (*ValidatorVoteBody) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{4} -} - -func (x *ValidatorVoteBody) GetProposal() uint64 { - if x != nil { - return x.Proposal - } - return 0 -} - -func (x *ValidatorVoteBody) GetVote() *Vote { - if x != nil { - return x.Vote - } - return nil -} - -func (x *ValidatorVoteBody) GetIdentityKey() *v1alpha1.IdentityKey { - if x != nil { - return x.IdentityKey - } - return nil -} - -func (x *ValidatorVoteBody) GetGovernanceKey() *v1alpha1.GovernanceKey { - if x != nil { - return x.GovernanceKey - } - return nil -} - -type DelegatorVote struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The effecting data for the vote. - Body *DelegatorVoteBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` - // The vote authorization signature is authorizing data. - AuthSig *v1alpha1.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` - // The vote proof is authorizing data. - Proof *v1alpha1.ZKDelegatorVoteProof `protobuf:"bytes,3,opt,name=proof,proto3" json:"proof,omitempty"` -} - -func (x *DelegatorVote) Reset() { - *x = DelegatorVote{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DelegatorVote) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DelegatorVote) ProtoMessage() {} - -func (x *DelegatorVote) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DelegatorVote.ProtoReflect.Descriptor instead. -func (*DelegatorVote) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{5} -} - -func (x *DelegatorVote) GetBody() *DelegatorVoteBody { - if x != nil { - return x.Body - } - return nil -} - -func (x *DelegatorVote) GetAuthSig() *v1alpha1.SpendAuthSignature { - if x != nil { - return x.AuthSig - } - return nil -} - -func (x *DelegatorVote) GetProof() *v1alpha1.ZKDelegatorVoteProof { - if x != nil { - return x.Proof - } - return nil -} - -type DelegatorVoteBody struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The proposal being voted on. - Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` - // The start position of the proposal in the TCT. - StartPosition uint64 `protobuf:"varint,2,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` - // The vote. - Vote *Vote `protobuf:"bytes,3,opt,name=vote,proto3" json:"vote,omitempty"` - // The value of the delegation note. - Value *v1alpha1.Value `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` - // The amount of the delegation note, in unbonded penumbra. - UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,5,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` - // The nullifier of the input note. - Nullifier []byte `protobuf:"bytes,6,opt,name=nullifier,proto3" json:"nullifier,omitempty"` - // The randomized validating key for the spend authorization signature. - Rk []byte `protobuf:"bytes,7,opt,name=rk,proto3" json:"rk,omitempty"` -} - -func (x *DelegatorVoteBody) Reset() { - *x = DelegatorVoteBody{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DelegatorVoteBody) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DelegatorVoteBody) ProtoMessage() {} - -func (x *DelegatorVoteBody) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DelegatorVoteBody.ProtoReflect.Descriptor instead. -func (*DelegatorVoteBody) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{6} -} - -func (x *DelegatorVoteBody) GetProposal() uint64 { - if x != nil { - return x.Proposal - } - return 0 -} - -func (x *DelegatorVoteBody) GetStartPosition() uint64 { - if x != nil { - return x.StartPosition - } - return 0 -} - -func (x *DelegatorVoteBody) GetVote() *Vote { - if x != nil { - return x.Vote - } - return nil -} - -func (x *DelegatorVoteBody) GetValue() *v1alpha1.Value { - if x != nil { - return x.Value - } - return nil -} - -func (x *DelegatorVoteBody) GetUnbondedAmount() *v1alpha1.Amount { - if x != nil { - return x.UnbondedAmount - } - return nil -} - -func (x *DelegatorVoteBody) GetNullifier() []byte { - if x != nil { - return x.Nullifier - } - return nil -} - -func (x *DelegatorVoteBody) GetRk() []byte { - if x != nil { - return x.Rk - } - return nil -} - -type DelegatorVotePlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The proposal to vote on. - Proposal uint64 `protobuf:"varint,1,opt,name=proposal,proto3" json:"proposal,omitempty"` - // The start position of the proposal in the TCT. - StartPosition uint64 `protobuf:"varint,2,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` - // The vote to cast. - Vote *Vote `protobuf:"bytes,3,opt,name=vote,proto3" json:"vote,omitempty"` - // The delegation note to prove that we can vote. - StakedNote *v1alpha1.Note `protobuf:"bytes,4,opt,name=staked_note,json=stakedNote,proto3" json:"staked_note,omitempty"` - // The position of that delegation note. - StakedNotePosition uint64 `protobuf:"varint,5,opt,name=staked_note_position,json=stakedNotePosition,proto3" json:"staked_note_position,omitempty"` - // The unbonded amount equivalent to the delegation note. - UnbondedAmount *v1alpha1.Amount `protobuf:"bytes,6,opt,name=unbonded_amount,json=unbondedAmount,proto3" json:"unbonded_amount,omitempty"` - // The randomizer to use for the proof of spend capability. - Randomizer []byte `protobuf:"bytes,7,opt,name=randomizer,proto3" json:"randomizer,omitempty"` - // The first blinding factor to use for the ZK delegator vote proof. - ProofBlindingR []byte `protobuf:"bytes,8,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` - // The second blinding factor to use for the ZK delegator vote proof. - ProofBlindingS []byte `protobuf:"bytes,9,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` -} - -func (x *DelegatorVotePlan) Reset() { - *x = DelegatorVotePlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DelegatorVotePlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DelegatorVotePlan) ProtoMessage() {} - -func (x *DelegatorVotePlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DelegatorVotePlan.ProtoReflect.Descriptor instead. -func (*DelegatorVotePlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{7} -} - -func (x *DelegatorVotePlan) GetProposal() uint64 { - if x != nil { - return x.Proposal - } - return 0 -} - -func (x *DelegatorVotePlan) GetStartPosition() uint64 { - if x != nil { - return x.StartPosition - } - return 0 -} - -func (x *DelegatorVotePlan) GetVote() *Vote { - if x != nil { - return x.Vote - } - return nil -} - -func (x *DelegatorVotePlan) GetStakedNote() *v1alpha1.Note { - if x != nil { - return x.StakedNote - } - return nil -} - -func (x *DelegatorVotePlan) GetStakedNotePosition() uint64 { - if x != nil { - return x.StakedNotePosition - } - return 0 -} - -func (x *DelegatorVotePlan) GetUnbondedAmount() *v1alpha1.Amount { - if x != nil { - return x.UnbondedAmount - } - return nil -} - -func (x *DelegatorVotePlan) GetRandomizer() []byte { - if x != nil { - return x.Randomizer - } - return nil -} - -func (x *DelegatorVotePlan) GetProofBlindingR() []byte { - if x != nil { - return x.ProofBlindingR - } - return nil -} - -func (x *DelegatorVotePlan) GetProofBlindingS() []byte { - if x != nil { - return x.ProofBlindingS - } - return nil -} - -type DaoDeposit struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The value to deposit into the DAO. - Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *DaoDeposit) Reset() { - *x = DaoDeposit{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DaoDeposit) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DaoDeposit) ProtoMessage() {} - -func (x *DaoDeposit) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DaoDeposit.ProtoReflect.Descriptor instead. -func (*DaoDeposit) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{8} -} - -func (x *DaoDeposit) GetValue() *v1alpha1.Value { - if x != nil { - return x.Value - } - return nil -} - -type DaoSpend struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The value to spend from the DAO. - Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *DaoSpend) Reset() { - *x = DaoSpend{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DaoSpend) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DaoSpend) ProtoMessage() {} - -func (x *DaoSpend) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DaoSpend.ProtoReflect.Descriptor instead. -func (*DaoSpend) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{9} -} - -func (x *DaoSpend) GetValue() *v1alpha1.Value { - if x != nil { - return x.Value - } - return nil -} - -type DaoOutput struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The value to output from the DAO. - Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` - // The address to send the output to. - Address *v1alpha1.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` -} - -func (x *DaoOutput) Reset() { - *x = DaoOutput{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DaoOutput) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DaoOutput) ProtoMessage() {} - -func (x *DaoOutput) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DaoOutput.ProtoReflect.Descriptor instead. -func (*DaoOutput) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{10} -} - -func (x *DaoOutput) GetValue() *v1alpha1.Value { - if x != nil { - return x.Value - } - return nil -} - -func (x *DaoOutput) GetAddress() *v1alpha1.Address { - if x != nil { - return x.Address - } - return nil -} - -// A vote on a proposal. -type Vote struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The vote. - Vote Vote_Vote `protobuf:"varint,1,opt,name=vote,proto3,enum=penumbra.core.governance.v1alpha1.Vote_Vote" json:"vote,omitempty"` -} - -func (x *Vote) Reset() { - *x = Vote{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Vote) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Vote) ProtoMessage() {} - -func (x *Vote) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Vote.ProtoReflect.Descriptor instead. -func (*Vote) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{11} -} - -func (x *Vote) GetVote() Vote_Vote { - if x != nil { - return x.Vote - } - return Vote_VOTE_UNSPECIFIED -} - -// The current state of a proposal. -type ProposalState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The state of the proposal. - // - // Types that are assignable to State: - // - // *ProposalState_Voting_ - // *ProposalState_Withdrawn_ - // *ProposalState_Finished_ - // *ProposalState_Claimed_ - State isProposalState_State `protobuf_oneof:"state"` -} - -func (x *ProposalState) Reset() { - *x = ProposalState{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalState) ProtoMessage() {} - -func (x *ProposalState) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ProposalState.ProtoReflect.Descriptor instead. -func (*ProposalState) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{12} -} - -func (m *ProposalState) GetState() isProposalState_State { - if m != nil { - return m.State - } - return nil -} - -func (x *ProposalState) GetVoting() *ProposalState_Voting { - if x, ok := x.GetState().(*ProposalState_Voting_); ok { - return x.Voting - } - return nil -} - -func (x *ProposalState) GetWithdrawn() *ProposalState_Withdrawn { - if x, ok := x.GetState().(*ProposalState_Withdrawn_); ok { - return x.Withdrawn - } - return nil -} - -func (x *ProposalState) GetFinished() *ProposalState_Finished { - if x, ok := x.GetState().(*ProposalState_Finished_); ok { - return x.Finished - } - return nil -} - -func (x *ProposalState) GetClaimed() *ProposalState_Claimed { - if x, ok := x.GetState().(*ProposalState_Claimed_); ok { - return x.Claimed - } - return nil -} - -type isProposalState_State interface { - isProposalState_State() -} - -type ProposalState_Voting_ struct { - Voting *ProposalState_Voting `protobuf:"bytes,2,opt,name=voting,proto3,oneof"` -} - -type ProposalState_Withdrawn_ struct { - Withdrawn *ProposalState_Withdrawn `protobuf:"bytes,3,opt,name=withdrawn,proto3,oneof"` -} - -type ProposalState_Finished_ struct { - Finished *ProposalState_Finished `protobuf:"bytes,4,opt,name=finished,proto3,oneof"` -} - -type ProposalState_Claimed_ struct { - Claimed *ProposalState_Claimed `protobuf:"bytes,5,opt,name=claimed,proto3,oneof"` -} - -func (*ProposalState_Voting_) isProposalState_State() {} - -func (*ProposalState_Withdrawn_) isProposalState_State() {} - -func (*ProposalState_Finished_) isProposalState_State() {} - -func (*ProposalState_Claimed_) isProposalState_State() {} - -// The outcome of a concluded proposal. -type ProposalOutcome struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Outcome: - // - // *ProposalOutcome_Passed_ - // *ProposalOutcome_Failed_ - // *ProposalOutcome_Slashed_ - Outcome isProposalOutcome_Outcome `protobuf_oneof:"outcome"` -} - -func (x *ProposalOutcome) Reset() { - *x = ProposalOutcome{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalOutcome) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalOutcome) ProtoMessage() {} - -func (x *ProposalOutcome) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ProposalOutcome.ProtoReflect.Descriptor instead. -func (*ProposalOutcome) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{13} -} - -func (m *ProposalOutcome) GetOutcome() isProposalOutcome_Outcome { - if m != nil { - return m.Outcome - } - return nil -} - -func (x *ProposalOutcome) GetPassed() *ProposalOutcome_Passed { - if x, ok := x.GetOutcome().(*ProposalOutcome_Passed_); ok { - return x.Passed - } - return nil -} - -func (x *ProposalOutcome) GetFailed() *ProposalOutcome_Failed { - if x, ok := x.GetOutcome().(*ProposalOutcome_Failed_); ok { - return x.Failed - } - return nil -} - -func (x *ProposalOutcome) GetSlashed() *ProposalOutcome_Slashed { - if x, ok := x.GetOutcome().(*ProposalOutcome_Slashed_); ok { - return x.Slashed - } - return nil -} - -type isProposalOutcome_Outcome interface { - isProposalOutcome_Outcome() -} - -type ProposalOutcome_Passed_ struct { - Passed *ProposalOutcome_Passed `protobuf:"bytes,1,opt,name=passed,proto3,oneof"` -} - -type ProposalOutcome_Failed_ struct { - Failed *ProposalOutcome_Failed `protobuf:"bytes,2,opt,name=failed,proto3,oneof"` -} - -type ProposalOutcome_Slashed_ struct { - Slashed *ProposalOutcome_Slashed `protobuf:"bytes,3,opt,name=slashed,proto3,oneof"` -} - -func (*ProposalOutcome_Passed_) isProposalOutcome_Outcome() {} - -func (*ProposalOutcome_Failed_) isProposalOutcome_Outcome() {} - -func (*ProposalOutcome_Slashed_) isProposalOutcome_Outcome() {} - -// A tally of votes on a proposal. -type Tally struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The number of votes in favor of the proposal. - Yes uint64 `protobuf:"varint,1,opt,name=yes,proto3" json:"yes,omitempty"` - // The number of votes against the proposal. - No uint64 `protobuf:"varint,2,opt,name=no,proto3" json:"no,omitempty"` - // The number of abstentions. - Abstain uint64 `protobuf:"varint,3,opt,name=abstain,proto3" json:"abstain,omitempty"` -} - -func (x *Tally) Reset() { - *x = Tally{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Tally) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Tally) ProtoMessage() {} - -func (x *Tally) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[14] - 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 Tally.ProtoReflect.Descriptor instead. -func (*Tally) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{14} -} - -func (x *Tally) GetYes() uint64 { - if x != nil { - return x.Yes - } - return 0 -} - -func (x *Tally) GetNo() uint64 { - if x != nil { - return x.No - } - return 0 -} - -func (x *Tally) GetAbstain() uint64 { - if x != nil { - return x.Abstain - } - return 0 -} - -// A proposal to be voted upon. -type Proposal struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The unique identifier of the proposal. - Id uint64 `protobuf:"varint,4,opt,name=id,proto3" json:"id,omitempty"` - // A short title for the proposal. - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - // 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"` -} - -func (x *Proposal) Reset() { - *x = Proposal{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Proposal) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Proposal) ProtoMessage() {} - -func (x *Proposal) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[15] - 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 Proposal.ProtoReflect.Descriptor instead. -func (*Proposal) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15} -} - -func (x *Proposal) GetId() uint64 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *Proposal) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *Proposal) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *Proposal) GetSignaling() *Proposal_Signaling { - if x != nil { - return x.Signaling - } - return nil -} - -func (x *Proposal) GetEmergency() *Proposal_Emergency { - if x != nil { - return x.Emergency - } - return nil -} - -func (x *Proposal) GetParameterChange() *Proposal_ParameterChange { - if x != nil { - return x.ParameterChange - } - return nil -} - -func (x *Proposal) GetDaoSpend() *Proposal_DaoSpend { - if x != nil { - return x.DaoSpend - } - return nil -} - -func (x *Proposal) GetUpgradePlan() *Proposal_UpgradePlan { - if x != nil { - return x.UpgradePlan - } - return nil -} - -// Voting is in progress and the proposal has not yet concluded voting or been withdrawn. -type ProposalState_Voting struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ProposalState_Voting) Reset() { - *x = ProposalState_Voting{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalState_Voting) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalState_Voting) ProtoMessage() {} - -func (x *ProposalState_Voting) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[16] - 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 ProposalState_Voting.ProtoReflect.Descriptor instead. -func (*ProposalState_Voting) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{12, 0} -} - -// The proposal has been withdrawn but the voting period is not yet concluded. -type ProposalState_Withdrawn struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The reason for the withdrawal. - Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` -} - -func (x *ProposalState_Withdrawn) Reset() { - *x = ProposalState_Withdrawn{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalState_Withdrawn) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalState_Withdrawn) ProtoMessage() {} - -func (x *ProposalState_Withdrawn) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[17] - 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 ProposalState_Withdrawn.ProtoReflect.Descriptor instead. -func (*ProposalState_Withdrawn) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{12, 1} -} - -func (x *ProposalState_Withdrawn) GetReason() string { - if x != nil { - return x.Reason - } - return "" -} - -// The voting period has ended, and the proposal has been assigned an outcome. -type ProposalState_Finished struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Outcome *ProposalOutcome `protobuf:"bytes,1,opt,name=outcome,proto3" json:"outcome,omitempty"` -} - -func (x *ProposalState_Finished) Reset() { - *x = ProposalState_Finished{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalState_Finished) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalState_Finished) ProtoMessage() {} - -func (x *ProposalState_Finished) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[18] - 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 ProposalState_Finished.ProtoReflect.Descriptor instead. -func (*ProposalState_Finished) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{12, 2} -} - -func (x *ProposalState_Finished) GetOutcome() *ProposalOutcome { - if x != nil { - return x.Outcome - } - return nil -} - -// The voting period has ended, and the original proposer has claimed their deposit. -type ProposalState_Claimed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Outcome *ProposalOutcome `protobuf:"bytes,1,opt,name=outcome,proto3" json:"outcome,omitempty"` -} - -func (x *ProposalState_Claimed) Reset() { - *x = ProposalState_Claimed{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalState_Claimed) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalState_Claimed) ProtoMessage() {} - -func (x *ProposalState_Claimed) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[19] - 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 ProposalState_Claimed.ProtoReflect.Descriptor instead. -func (*ProposalState_Claimed) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{12, 3} -} - -func (x *ProposalState_Claimed) GetOutcome() *ProposalOutcome { - if x != nil { - return x.Outcome - } - return nil -} - -// Whether or not the proposal was withdrawn. -type ProposalOutcome_Withdrawn struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The reason for withdrawing the proposal during the voting period. - Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"` -} - -func (x *ProposalOutcome_Withdrawn) Reset() { - *x = ProposalOutcome_Withdrawn{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalOutcome_Withdrawn) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalOutcome_Withdrawn) ProtoMessage() {} - -func (x *ProposalOutcome_Withdrawn) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[20] - 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 ProposalOutcome_Withdrawn.ProtoReflect.Descriptor instead. -func (*ProposalOutcome_Withdrawn) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{13, 0} -} - -func (x *ProposalOutcome_Withdrawn) GetReason() string { - if x != nil { - return x.Reason - } - return "" -} - -// The proposal was passed. -type ProposalOutcome_Passed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ProposalOutcome_Passed) Reset() { - *x = ProposalOutcome_Passed{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalOutcome_Passed) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalOutcome_Passed) ProtoMessage() {} - -func (x *ProposalOutcome_Passed) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[21] - 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 ProposalOutcome_Passed.ProtoReflect.Descriptor instead. -func (*ProposalOutcome_Passed) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{13, 1} -} - -// The proposal did not pass. -type ProposalOutcome_Failed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Present if the proposal was withdrawn during the voting period. - Withdrawn *ProposalOutcome_Withdrawn `protobuf:"bytes,1,opt,name=withdrawn,proto3" json:"withdrawn,omitempty"` -} - -func (x *ProposalOutcome_Failed) Reset() { - *x = ProposalOutcome_Failed{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalOutcome_Failed) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalOutcome_Failed) ProtoMessage() {} - -func (x *ProposalOutcome_Failed) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[22] - 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 ProposalOutcome_Failed.ProtoReflect.Descriptor instead. -func (*ProposalOutcome_Failed) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{13, 2} -} - -func (x *ProposalOutcome_Failed) GetWithdrawn() *ProposalOutcome_Withdrawn { - if x != nil { - return x.Withdrawn - } - return nil -} - -// The proposal did not pass, and was slashed. -type ProposalOutcome_Slashed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Present if the proposal was withdrawn during the voting period. - Withdrawn *ProposalOutcome_Withdrawn `protobuf:"bytes,1,opt,name=withdrawn,proto3" json:"withdrawn,omitempty"` -} - -func (x *ProposalOutcome_Slashed) Reset() { - *x = ProposalOutcome_Slashed{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ProposalOutcome_Slashed) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ProposalOutcome_Slashed) ProtoMessage() {} - -func (x *ProposalOutcome_Slashed) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[23] - 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 ProposalOutcome_Slashed.ProtoReflect.Descriptor instead. -func (*ProposalOutcome_Slashed) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{13, 3} -} - -func (x *ProposalOutcome_Slashed) GetWithdrawn() *ProposalOutcome_Withdrawn { - if x != nil { - return x.Withdrawn - } - return nil -} - -// A signaling proposal is meant to register a vote on-chain, but does not have an automatic -// effect when passed. -// -// It optionally contains a reference to a commit which contains code to upgrade the chain. -type Proposal_Signaling struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The commit to be voted upon, if any is relevant. - Commit string `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"` -} - -func (x *Proposal_Signaling) Reset() { - *x = Proposal_Signaling{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Proposal_Signaling) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Proposal_Signaling) ProtoMessage() {} - -func (x *Proposal_Signaling) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[24] - 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 Proposal_Signaling.ProtoReflect.Descriptor instead. -func (*Proposal_Signaling) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15, 0} -} - -func (x *Proposal_Signaling) GetCommit() string { - if x != nil { - return x.Commit - } - return "" -} - -// An emergency proposal can be passed instantaneously by a 2/3 majority of validators, without -// waiting for the voting period to expire. -// -// If the boolean `halt_chain` is set to `true`, then the chain will halt immediately when the -// proposal is passed. -type Proposal_Emergency struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // If `true`, the chain will halt immediately when the proposal is passed. - HaltChain bool `protobuf:"varint,1,opt,name=halt_chain,json=haltChain,proto3" json:"halt_chain,omitempty"` -} - -func (x *Proposal_Emergency) Reset() { - *x = Proposal_Emergency{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Proposal_Emergency) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Proposal_Emergency) ProtoMessage() {} - -func (x *Proposal_Emergency) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[25] - 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 Proposal_Emergency.ProtoReflect.Descriptor instead. -func (*Proposal_Emergency) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15, 1} -} - -func (x *Proposal_Emergency) GetHaltChain() bool { - if x != nil { - return x.HaltChain - } - return false -} - -// A parameter change proposal describes a replacement of the chain parameters, which should take -// effect when the proposal is passed. -type Proposal_ParameterChange struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The old chain parameters to be replaced: even if the proposal passes, the update will not be - // applied if the chain parameters have changed *at all* from these chain parameters. Usually, - // this should be set to the current chain parameters at time of proposal. - OldParameters *v1alpha11.ChainParameters `protobuf:"bytes,1,opt,name=old_parameters,json=oldParameters,proto3" json:"old_parameters,omitempty"` - // The new chain parameters to be set: the *entire* chain parameters will be replaced with these - // at the time the proposal is passed. - NewParameters *v1alpha11.ChainParameters `protobuf:"bytes,2,opt,name=new_parameters,json=newParameters,proto3" json:"new_parameters,omitempty"` -} - -func (x *Proposal_ParameterChange) Reset() { - *x = Proposal_ParameterChange{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Proposal_ParameterChange) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Proposal_ParameterChange) ProtoMessage() {} - -func (x *Proposal_ParameterChange) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[26] - 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 Proposal_ParameterChange.ProtoReflect.Descriptor instead. -func (*Proposal_ParameterChange) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15, 2} -} - -func (x *Proposal_ParameterChange) GetOldParameters() *v1alpha11.ChainParameters { - if x != nil { - return x.OldParameters - } - return nil -} - -func (x *Proposal_ParameterChange) GetNewParameters() *v1alpha11.ChainParameters { - if x != nil { - return x.NewParameters - } - return nil -} - -// A DAO spend proposal describes zero or more transactions to execute on behalf of the DAO, with -// access to its funds, and zero or more scheduled transactions from previous passed proposals to -// cancel. -type Proposal_DaoSpend 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. - 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{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Proposal_DaoSpend) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Proposal_DaoSpend) ProtoMessage() {} - -func (x *Proposal_DaoSpend) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[27] - 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 Proposal_DaoSpend.ProtoReflect.Descriptor instead. -func (*Proposal_DaoSpend) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15, 3} -} - -func (x *Proposal_DaoSpend) GetTransactionPlan() *anypb.Any { - if x != nil { - return x.TransactionPlan - } - return nil -} - -// An upgrade plan describes a candidate upgrade to be executed at a certain height. If passed, the chain -// will halt at the specified height. -type Proposal_UpgradePlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` -} - -func (x *Proposal_UpgradePlan) Reset() { - *x = Proposal_UpgradePlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Proposal_UpgradePlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Proposal_UpgradePlan) ProtoMessage() {} - -func (x *Proposal_UpgradePlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[28] - 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 Proposal_UpgradePlan.ProtoReflect.Descriptor instead. -func (*Proposal_UpgradePlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP(), []int{15, 4} -} - -func (x *Proposal_UpgradePlan) GetHeight() uint64 { - if x != nil { - return x.Height - } - return 0 -} - -var File_penumbra_core_governance_v1alpha1_governance_proto protoreflect.FileDescriptor - -var file_penumbra_core_governance_v1alpha1_governance_proto_rawDesc = []byte{ - 0x0a, 0x32, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 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, 0x12, 0x21, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, - 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 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, 0x22, 0xa7, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x47, 0x0a, 0x08, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4c, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 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, 0xce, 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, - 0x4c, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x4c, 0x0a, - 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0xa7, 0x01, 0x0a, 0x0d, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x48, 0x0a, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4c, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 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, 0x90, 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, 0x3b, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4d, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 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, 0x53, 0x0a, 0x0e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, - 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 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, 0x22, 0xf2, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4c, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x69, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x49, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0xcd, 0x02, - 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, 0x3b, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 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, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x4e, 0x0a, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, - 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x0e, 0x0a, - 0x02, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x72, 0x6b, 0x22, 0xcf, 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, 0x3b, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 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, 0x44, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x6e, 0x6f, - 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x4e, 0x0a, 0x0f, 0x75, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 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, - 0x48, 0x0a, 0x0a, 0x44, 0x61, 0x6f, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x3a, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x46, 0x0a, 0x08, 0x44, 0x61, 0x6f, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x89, 0x01, 0x0a, 0x09, 0x44, 0x61, 0x6f, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, - 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 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, 0x93, 0x01, - 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 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, 0xd8, 0x04, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x5a, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x57, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x54, 0x0a, - 0x07, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x58, 0x0a, 0x08, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x4c, - 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x57, 0x0a, 0x07, - 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x63, 0x6f, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x9a, - 0x04, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x63, 0x6f, - 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 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, 0x53, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x56, 0x0a, 0x07, - 0x73, 0x6c, 0x61, 0x73, 0x68, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x64, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x5a, 0x0a, - 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 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, 0x65, 0x0a, 0x07, 0x53, 0x6c, 0x61, - 0x73, 0x68, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x09, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x98, 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, 0x53, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x69, - 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x53, 0x0a, 0x09, 0x65, 0x6d, - 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, - 0x66, 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, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x51, 0x0a, 0x09, 0x64, 0x61, 0x6f, 0x5f, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x5a, 0x0a, 0x0c, 0x75, 0x70, - 0x67, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 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, 0xbd, 0x01, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x6f, - 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x0d, 0x6f, 0x6c, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 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, 0x42, 0xc4, 0x02, 0x0a, 0x25, - 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 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, 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, 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, 0x03, - 0x50, 0x43, 0x47, 0xaa, 0x02, 0x21, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, - 0x6f, 0x72, 0x65, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x56, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x21, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2d, 0x50, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 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, 0x24, 0x50, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 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 ( - file_penumbra_core_governance_v1alpha1_governance_proto_rawDescOnce sync.Once - file_penumbra_core_governance_v1alpha1_governance_proto_rawDescData = file_penumbra_core_governance_v1alpha1_governance_proto_rawDesc -) - -func file_penumbra_core_governance_v1alpha1_governance_proto_rawDescGZIP() []byte { - file_penumbra_core_governance_v1alpha1_governance_proto_rawDescOnce.Do(func() { - file_penumbra_core_governance_v1alpha1_governance_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_governance_v1alpha1_governance_proto_rawDescData) - }) - return file_penumbra_core_governance_v1alpha1_governance_proto_rawDescData -} - -var file_penumbra_core_governance_v1alpha1_governance_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes = make([]protoimpl.MessageInfo, 29) -var file_penumbra_core_governance_v1alpha1_governance_proto_goTypes = []interface{}{ - (Vote_Vote)(0), // 0: penumbra.core.governance.v1alpha1.Vote.Vote - (*ProposalSubmit)(nil), // 1: penumbra.core.governance.v1alpha1.ProposalSubmit - (*ProposalWithdraw)(nil), // 2: penumbra.core.governance.v1alpha1.ProposalWithdraw - (*ProposalDepositClaim)(nil), // 3: penumbra.core.governance.v1alpha1.ProposalDepositClaim - (*ValidatorVote)(nil), // 4: penumbra.core.governance.v1alpha1.ValidatorVote - (*ValidatorVoteBody)(nil), // 5: penumbra.core.governance.v1alpha1.ValidatorVoteBody - (*DelegatorVote)(nil), // 6: penumbra.core.governance.v1alpha1.DelegatorVote - (*DelegatorVoteBody)(nil), // 7: penumbra.core.governance.v1alpha1.DelegatorVoteBody - (*DelegatorVotePlan)(nil), // 8: penumbra.core.governance.v1alpha1.DelegatorVotePlan - (*DaoDeposit)(nil), // 9: penumbra.core.governance.v1alpha1.DaoDeposit - (*DaoSpend)(nil), // 10: penumbra.core.governance.v1alpha1.DaoSpend - (*DaoOutput)(nil), // 11: penumbra.core.governance.v1alpha1.DaoOutput - (*Vote)(nil), // 12: penumbra.core.governance.v1alpha1.Vote - (*ProposalState)(nil), // 13: penumbra.core.governance.v1alpha1.ProposalState - (*ProposalOutcome)(nil), // 14: penumbra.core.governance.v1alpha1.ProposalOutcome - (*Tally)(nil), // 15: penumbra.core.governance.v1alpha1.Tally - (*Proposal)(nil), // 16: penumbra.core.governance.v1alpha1.Proposal - (*ProposalState_Voting)(nil), // 17: penumbra.core.governance.v1alpha1.ProposalState.Voting - (*ProposalState_Withdrawn)(nil), // 18: penumbra.core.governance.v1alpha1.ProposalState.Withdrawn - (*ProposalState_Finished)(nil), // 19: penumbra.core.governance.v1alpha1.ProposalState.Finished - (*ProposalState_Claimed)(nil), // 20: penumbra.core.governance.v1alpha1.ProposalState.Claimed - (*ProposalOutcome_Withdrawn)(nil), // 21: penumbra.core.governance.v1alpha1.ProposalOutcome.Withdrawn - (*ProposalOutcome_Passed)(nil), // 22: penumbra.core.governance.v1alpha1.ProposalOutcome.Passed - (*ProposalOutcome_Failed)(nil), // 23: penumbra.core.governance.v1alpha1.ProposalOutcome.Failed - (*ProposalOutcome_Slashed)(nil), // 24: penumbra.core.governance.v1alpha1.ProposalOutcome.Slashed - (*Proposal_Signaling)(nil), // 25: penumbra.core.governance.v1alpha1.Proposal.Signaling - (*Proposal_Emergency)(nil), // 26: penumbra.core.governance.v1alpha1.Proposal.Emergency - (*Proposal_ParameterChange)(nil), // 27: penumbra.core.governance.v1alpha1.Proposal.ParameterChange - (*Proposal_DaoSpend)(nil), // 28: penumbra.core.governance.v1alpha1.Proposal.DaoSpend - (*Proposal_UpgradePlan)(nil), // 29: penumbra.core.governance.v1alpha1.Proposal.UpgradePlan - (*v1alpha1.Amount)(nil), // 30: penumbra.core.crypto.v1alpha1.Amount - (*v1alpha1.SpendAuthSignature)(nil), // 31: penumbra.core.crypto.v1alpha1.SpendAuthSignature - (*v1alpha1.IdentityKey)(nil), // 32: penumbra.core.crypto.v1alpha1.IdentityKey - (*v1alpha1.GovernanceKey)(nil), // 33: penumbra.core.crypto.v1alpha1.GovernanceKey - (*v1alpha1.ZKDelegatorVoteProof)(nil), // 34: penumbra.core.crypto.v1alpha1.ZKDelegatorVoteProof - (*v1alpha1.Value)(nil), // 35: penumbra.core.crypto.v1alpha1.Value - (*v1alpha1.Note)(nil), // 36: penumbra.core.crypto.v1alpha1.Note - (*v1alpha1.Address)(nil), // 37: penumbra.core.crypto.v1alpha1.Address - (*v1alpha11.ChainParameters)(nil), // 38: penumbra.core.chain.v1alpha1.ChainParameters - (*anypb.Any)(nil), // 39: google.protobuf.Any -} -var file_penumbra_core_governance_v1alpha1_governance_proto_depIdxs = []int32{ - 16, // 0: penumbra.core.governance.v1alpha1.ProposalSubmit.proposal:type_name -> penumbra.core.governance.v1alpha1.Proposal - 30, // 1: penumbra.core.governance.v1alpha1.ProposalSubmit.deposit_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 30, // 2: penumbra.core.governance.v1alpha1.ProposalDepositClaim.deposit_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 14, // 3: penumbra.core.governance.v1alpha1.ProposalDepositClaim.outcome:type_name -> penumbra.core.governance.v1alpha1.ProposalOutcome - 5, // 4: penumbra.core.governance.v1alpha1.ValidatorVote.body:type_name -> penumbra.core.governance.v1alpha1.ValidatorVoteBody - 31, // 5: penumbra.core.governance.v1alpha1.ValidatorVote.auth_sig:type_name -> penumbra.core.crypto.v1alpha1.SpendAuthSignature - 12, // 6: penumbra.core.governance.v1alpha1.ValidatorVoteBody.vote:type_name -> penumbra.core.governance.v1alpha1.Vote - 32, // 7: penumbra.core.governance.v1alpha1.ValidatorVoteBody.identity_key:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 33, // 8: penumbra.core.governance.v1alpha1.ValidatorVoteBody.governance_key:type_name -> penumbra.core.crypto.v1alpha1.GovernanceKey - 7, // 9: penumbra.core.governance.v1alpha1.DelegatorVote.body:type_name -> penumbra.core.governance.v1alpha1.DelegatorVoteBody - 31, // 10: penumbra.core.governance.v1alpha1.DelegatorVote.auth_sig:type_name -> penumbra.core.crypto.v1alpha1.SpendAuthSignature - 34, // 11: penumbra.core.governance.v1alpha1.DelegatorVote.proof:type_name -> penumbra.core.crypto.v1alpha1.ZKDelegatorVoteProof - 12, // 12: penumbra.core.governance.v1alpha1.DelegatorVoteBody.vote:type_name -> penumbra.core.governance.v1alpha1.Vote - 35, // 13: penumbra.core.governance.v1alpha1.DelegatorVoteBody.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 30, // 14: penumbra.core.governance.v1alpha1.DelegatorVoteBody.unbonded_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 12, // 15: penumbra.core.governance.v1alpha1.DelegatorVotePlan.vote:type_name -> penumbra.core.governance.v1alpha1.Vote - 36, // 16: penumbra.core.governance.v1alpha1.DelegatorVotePlan.staked_note:type_name -> penumbra.core.crypto.v1alpha1.Note - 30, // 17: penumbra.core.governance.v1alpha1.DelegatorVotePlan.unbonded_amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 35, // 18: penumbra.core.governance.v1alpha1.DaoDeposit.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 35, // 19: penumbra.core.governance.v1alpha1.DaoSpend.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 35, // 20: penumbra.core.governance.v1alpha1.DaoOutput.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 37, // 21: penumbra.core.governance.v1alpha1.DaoOutput.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 0, // 22: penumbra.core.governance.v1alpha1.Vote.vote:type_name -> penumbra.core.governance.v1alpha1.Vote.Vote - 17, // 23: penumbra.core.governance.v1alpha1.ProposalState.voting:type_name -> penumbra.core.governance.v1alpha1.ProposalState.Voting - 18, // 24: penumbra.core.governance.v1alpha1.ProposalState.withdrawn:type_name -> penumbra.core.governance.v1alpha1.ProposalState.Withdrawn - 19, // 25: penumbra.core.governance.v1alpha1.ProposalState.finished:type_name -> penumbra.core.governance.v1alpha1.ProposalState.Finished - 20, // 26: penumbra.core.governance.v1alpha1.ProposalState.claimed:type_name -> penumbra.core.governance.v1alpha1.ProposalState.Claimed - 22, // 27: penumbra.core.governance.v1alpha1.ProposalOutcome.passed:type_name -> penumbra.core.governance.v1alpha1.ProposalOutcome.Passed - 23, // 28: penumbra.core.governance.v1alpha1.ProposalOutcome.failed:type_name -> penumbra.core.governance.v1alpha1.ProposalOutcome.Failed - 24, // 29: penumbra.core.governance.v1alpha1.ProposalOutcome.slashed:type_name -> penumbra.core.governance.v1alpha1.ProposalOutcome.Slashed - 25, // 30: penumbra.core.governance.v1alpha1.Proposal.signaling:type_name -> penumbra.core.governance.v1alpha1.Proposal.Signaling - 26, // 31: penumbra.core.governance.v1alpha1.Proposal.emergency:type_name -> penumbra.core.governance.v1alpha1.Proposal.Emergency - 27, // 32: penumbra.core.governance.v1alpha1.Proposal.parameter_change:type_name -> penumbra.core.governance.v1alpha1.Proposal.ParameterChange - 28, // 33: penumbra.core.governance.v1alpha1.Proposal.dao_spend:type_name -> penumbra.core.governance.v1alpha1.Proposal.DaoSpend - 29, // 34: penumbra.core.governance.v1alpha1.Proposal.upgrade_plan:type_name -> penumbra.core.governance.v1alpha1.Proposal.UpgradePlan - 14, // 35: penumbra.core.governance.v1alpha1.ProposalState.Finished.outcome:type_name -> penumbra.core.governance.v1alpha1.ProposalOutcome - 14, // 36: penumbra.core.governance.v1alpha1.ProposalState.Claimed.outcome:type_name -> penumbra.core.governance.v1alpha1.ProposalOutcome - 21, // 37: penumbra.core.governance.v1alpha1.ProposalOutcome.Failed.withdrawn:type_name -> penumbra.core.governance.v1alpha1.ProposalOutcome.Withdrawn - 21, // 38: penumbra.core.governance.v1alpha1.ProposalOutcome.Slashed.withdrawn:type_name -> penumbra.core.governance.v1alpha1.ProposalOutcome.Withdrawn - 38, // 39: penumbra.core.governance.v1alpha1.Proposal.ParameterChange.old_parameters:type_name -> penumbra.core.chain.v1alpha1.ChainParameters - 38, // 40: penumbra.core.governance.v1alpha1.Proposal.ParameterChange.new_parameters:type_name -> penumbra.core.chain.v1alpha1.ChainParameters - 39, // 41: penumbra.core.governance.v1alpha1.Proposal.DaoSpend.transaction_plan:type_name -> google.protobuf.Any - 42, // [42:42] is the sub-list for method output_type - 42, // [42:42] is the sub-list for method input_type - 42, // [42:42] is the sub-list for extension type_name - 42, // [42:42] is the sub-list for extension extendee - 0, // [0:42] is the sub-list for field type_name -} - -func init() { file_penumbra_core_governance_v1alpha1_governance_proto_init() } -func file_penumbra_core_governance_v1alpha1_governance_proto_init() { - if File_penumbra_core_governance_v1alpha1_governance_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalSubmit); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalWithdraw); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalDepositClaim); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidatorVote); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValidatorVoteBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegatorVote); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegatorVoteBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegatorVotePlan); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DaoDeposit); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DaoSpend); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DaoOutput); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Vote); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalOutcome); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Tally); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Proposal); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalState_Voting); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalState_Withdrawn); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalState_Finished); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalState_Claimed); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalOutcome_Withdrawn); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalOutcome_Passed); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalOutcome_Failed); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProposalOutcome_Slashed); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Proposal_Signaling); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Proposal_Emergency); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Proposal_ParameterChange); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Proposal_DaoSpend); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Proposal_UpgradePlan); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[12].OneofWrappers = []interface{}{ - (*ProposalState_Voting_)(nil), - (*ProposalState_Withdrawn_)(nil), - (*ProposalState_Finished_)(nil), - (*ProposalState_Claimed_)(nil), - } - file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes[13].OneofWrappers = []interface{}{ - (*ProposalOutcome_Passed_)(nil), - (*ProposalOutcome_Failed_)(nil), - (*ProposalOutcome_Slashed_)(nil), - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_penumbra_core_governance_v1alpha1_governance_proto_rawDesc, - NumEnums: 1, - NumMessages: 29, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_penumbra_core_governance_v1alpha1_governance_proto_goTypes, - DependencyIndexes: file_penumbra_core_governance_v1alpha1_governance_proto_depIdxs, - EnumInfos: file_penumbra_core_governance_v1alpha1_governance_proto_enumTypes, - MessageInfos: file_penumbra_core_governance_v1alpha1_governance_proto_msgTypes, - }.Build() - File_penumbra_core_governance_v1alpha1_governance_proto = out.File - file_penumbra_core_governance_v1alpha1_governance_proto_rawDesc = nil - file_penumbra_core_governance_v1alpha1_governance_proto_goTypes = nil - file_penumbra_core_governance_v1alpha1_governance_proto_depIdxs = nil -} diff --git a/proto/go/gen/penumbra/core/keys/v1alpha1/keys.pb.go b/proto/go/gen/penumbra/core/keys/v1alpha1/keys.pb.go new file mode 100644 index 0000000000..5dddd7c0d5 --- /dev/null +++ b/proto/go/gen/penumbra/core/keys/v1alpha1/keys.pb.go @@ -0,0 +1,1088 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/keys/v1alpha1/keys.proto + +package keysv1alpha1 + +import ( + 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) +) + +// A Penumbra address. An address in Penumbra is a Bech32m-encoded +// string, with the human-readable prefix (HRP) `penumbrav2t`. +type Address struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The bytes of the address. Must be represented as a series of + // `uint8` (i.e. values 0 through 255), with a length of 80 elements. + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. + AltBech32M string `protobuf:"bytes,2,opt,name=alt_bech32m,json=altBech32m,proto3" json:"alt_bech32m,omitempty"` +} + +func (x *Address) Reset() { + *x = Address{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Address) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Address) ProtoMessage() {} + +func (x *Address) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Address.ProtoReflect.Descriptor instead. +func (*Address) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{0} +} + +func (x *Address) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +func (x *Address) GetAltBech32M() string { + if x != nil { + return x.AltBech32M + } + return "" +} + +type AddressView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to AddressView: + // + // *AddressView_Visible_ + // *AddressView_Opaque_ + AddressView isAddressView_AddressView `protobuf_oneof:"address_view"` +} + +func (x *AddressView) Reset() { + *x = AddressView{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressView) ProtoMessage() {} + +func (x *AddressView) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressView.ProtoReflect.Descriptor instead. +func (*AddressView) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{1} +} + +func (m *AddressView) GetAddressView() isAddressView_AddressView { + if m != nil { + return m.AddressView + } + return nil +} + +func (x *AddressView) GetVisible() *AddressView_Visible { + if x, ok := x.GetAddressView().(*AddressView_Visible_); ok { + return x.Visible + } + return nil +} + +func (x *AddressView) GetOpaque() *AddressView_Opaque { + if x, ok := x.GetAddressView().(*AddressView_Opaque_); ok { + return x.Opaque + } + return nil +} + +type isAddressView_AddressView interface { + isAddressView_AddressView() +} + +type AddressView_Visible_ struct { + Visible *AddressView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` +} + +type AddressView_Opaque_ struct { + Opaque *AddressView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` +} + +func (*AddressView_Visible_) isAddressView_AddressView() {} + +func (*AddressView_Opaque_) isAddressView_AddressView() {} + +type PayloadKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *PayloadKey) Reset() { + *x = PayloadKey{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadKey) ProtoMessage() {} + +func (x *PayloadKey) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_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 PayloadKey.ProtoReflect.Descriptor instead. +func (*PayloadKey) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{2} +} + +func (x *PayloadKey) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type SpendKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *SpendKey) Reset() { + *x = SpendKey{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpendKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpendKey) ProtoMessage() {} + +func (x *SpendKey) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_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 SpendKey.ProtoReflect.Descriptor instead. +func (*SpendKey) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{3} +} + +func (x *SpendKey) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type SpendVerificationKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *SpendVerificationKey) Reset() { + *x = SpendVerificationKey{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpendVerificationKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpendVerificationKey) ProtoMessage() {} + +func (x *SpendVerificationKey) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SpendVerificationKey.ProtoReflect.Descriptor instead. +func (*SpendVerificationKey) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{4} +} + +func (x *SpendVerificationKey) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type FullViewingKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *FullViewingKey) Reset() { + *x = FullViewingKey{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FullViewingKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FullViewingKey) ProtoMessage() {} + +func (x *FullViewingKey) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FullViewingKey.ProtoReflect.Descriptor instead. +func (*FullViewingKey) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{5} +} + +func (x *FullViewingKey) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type AccountGroupId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *AccountGroupId) Reset() { + *x = AccountGroupId{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountGroupId) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountGroupId) ProtoMessage() {} + +func (x *AccountGroupId) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AccountGroupId.ProtoReflect.Descriptor instead. +func (*AccountGroupId) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{6} +} + +func (x *AccountGroupId) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type Diversifier struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *Diversifier) Reset() { + *x = Diversifier{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Diversifier) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Diversifier) ProtoMessage() {} + +func (x *Diversifier) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Diversifier.ProtoReflect.Descriptor instead. +func (*Diversifier) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{7} +} + +func (x *Diversifier) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type AddressIndex struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account uint32 `protobuf:"varint,2,opt,name=account,proto3" json:"account,omitempty"` + Randomizer []byte `protobuf:"bytes,3,opt,name=randomizer,proto3" json:"randomizer,omitempty"` +} + +func (x *AddressIndex) Reset() { + *x = AddressIndex{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressIndex) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressIndex) ProtoMessage() {} + +func (x *AddressIndex) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressIndex.ProtoReflect.Descriptor instead. +func (*AddressIndex) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{8} +} + +func (x *AddressIndex) GetAccount() uint32 { + if x != nil { + return x.Account + } + return 0 +} + +func (x *AddressIndex) GetRandomizer() []byte { + if x != nil { + return x.Randomizer + } + return nil +} + +// A validator's identity key (decaf377-rdsa spendauth verification key). +type IdentityKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ik []byte `protobuf:"bytes,1,opt,name=ik,proto3" json:"ik,omitempty"` +} + +func (x *IdentityKey) Reset() { + *x = IdentityKey{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdentityKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdentityKey) ProtoMessage() {} + +func (x *IdentityKey) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdentityKey.ProtoReflect.Descriptor instead. +func (*IdentityKey) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{9} +} + +func (x *IdentityKey) GetIk() []byte { + if x != nil { + return x.Ik + } + return nil +} + +// A validator's governance key (decaf377-rdsa spendauth verification key). +type GovernanceKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Gk []byte `protobuf:"bytes,1,opt,name=gk,proto3" json:"gk,omitempty"` +} + +func (x *GovernanceKey) Reset() { + *x = GovernanceKey{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GovernanceKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GovernanceKey) ProtoMessage() {} + +func (x *GovernanceKey) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GovernanceKey.ProtoReflect.Descriptor instead. +func (*GovernanceKey) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{10} +} + +func (x *GovernanceKey) GetGk() []byte { + if x != nil { + return x.Gk + } + return nil +} + +type ConsensusKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *ConsensusKey) Reset() { + *x = ConsensusKey{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConsensusKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConsensusKey) ProtoMessage() {} + +func (x *ConsensusKey) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConsensusKey.ProtoReflect.Descriptor instead. +func (*ConsensusKey) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{11} +} + +func (x *ConsensusKey) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type AddressView_Visible struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Index *AddressIndex `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` + AccountGroupId *AccountGroupId `protobuf:"bytes,3,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` +} + +func (x *AddressView_Visible) Reset() { + *x = AddressView_Visible{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressView_Visible) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressView_Visible) ProtoMessage() {} + +func (x *AddressView_Visible) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressView_Visible.ProtoReflect.Descriptor instead. +func (*AddressView_Visible) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *AddressView_Visible) GetAddress() *Address { + if x != nil { + return x.Address + } + return nil +} + +func (x *AddressView_Visible) GetIndex() *AddressIndex { + if x != nil { + return x.Index + } + return nil +} + +func (x *AddressView_Visible) GetAccountGroupId() *AccountGroupId { + if x != nil { + return x.AccountGroupId + } + return nil +} + +type AddressView_Opaque struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *AddressView_Opaque) Reset() { + *x = AddressView_Opaque{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddressView_Opaque) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddressView_Opaque) ProtoMessage() {} + +func (x *AddressView_Opaque) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddressView_Opaque.ProtoReflect.Descriptor instead. +func (*AddressView_Opaque) Descriptor() ([]byte, []int) { + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP(), []int{1, 1} +} + +func (x *AddressView_Opaque) GetAddress() *Address { + if x != nil { + return x.Address + } + return nil +} + +var File_penumbra_core_keys_v1alpha1_keys_proto protoreflect.FileDescriptor + +var file_penumbra_core_keys_v1alpha1_keys_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x1b, 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, 0x22, 0x40, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x74, 0x5f, 0x62, 0x65, + 0x63, 0x68, 0x33, 0x32, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x74, + 0x42, 0x65, 0x63, 0x68, 0x33, 0x32, 0x6d, 0x22, 0xe4, 0x03, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x56, 0x69, 0x65, 0x77, 0x12, 0x4c, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 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, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 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, 0x2e, + 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, + 0x1a, 0xe1, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 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, 0x3f, 0x0a, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 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, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x55, 0x0a, + 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 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, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x1a, 0x48, 0x0a, 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 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, 0x42, 0x0e, + 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x22, + 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x22, 0x20, 0x0a, 0x08, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x2c, 0x0a, 0x14, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x22, 0x26, 0x0a, 0x0e, 0x46, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, + 0x67, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x26, 0x0a, 0x0e, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x22, 0x23, 0x0a, 0x0b, 0x44, 0x69, 0x76, 0x65, 0x72, 0x73, 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, 0x48, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, + 0x72, 0x22, 0x1d, 0x0a, 0x0b, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x6b, + 0x22, 0x1f, 0x0a, 0x0d, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4b, 0x65, + 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x67, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x67, + 0x6b, 0x22, 0x24, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x4b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x42, 0x94, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 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, 0x42, 0x09, 0x4b, 0x65, 0x79, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x57, 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, 0x6b, 0x65, 0x79, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6b, 0x65, 0x79, 0x73, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x4b, 0xaa, 0x02, 0x1b, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x4b, 0x65, 0x79, 0x73, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0xe2, 0x02, 0x27, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, + 0x6f, 0x72, 0x65, 0x5c, 0x4b, 0x65, 0x79, 0x73, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1e, + 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, + 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_core_keys_v1alpha1_keys_proto_rawDescOnce sync.Once + file_penumbra_core_keys_v1alpha1_keys_proto_rawDescData = file_penumbra_core_keys_v1alpha1_keys_proto_rawDesc +) + +func file_penumbra_core_keys_v1alpha1_keys_proto_rawDescGZIP() []byte { + file_penumbra_core_keys_v1alpha1_keys_proto_rawDescOnce.Do(func() { + file_penumbra_core_keys_v1alpha1_keys_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_keys_v1alpha1_keys_proto_rawDescData) + }) + return file_penumbra_core_keys_v1alpha1_keys_proto_rawDescData +} + +var file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_penumbra_core_keys_v1alpha1_keys_proto_goTypes = []interface{}{ + (*Address)(nil), // 0: penumbra.core.keys.v1alpha1.Address + (*AddressView)(nil), // 1: penumbra.core.keys.v1alpha1.AddressView + (*PayloadKey)(nil), // 2: penumbra.core.keys.v1alpha1.PayloadKey + (*SpendKey)(nil), // 3: penumbra.core.keys.v1alpha1.SpendKey + (*SpendVerificationKey)(nil), // 4: penumbra.core.keys.v1alpha1.SpendVerificationKey + (*FullViewingKey)(nil), // 5: penumbra.core.keys.v1alpha1.FullViewingKey + (*AccountGroupId)(nil), // 6: penumbra.core.keys.v1alpha1.AccountGroupId + (*Diversifier)(nil), // 7: penumbra.core.keys.v1alpha1.Diversifier + (*AddressIndex)(nil), // 8: penumbra.core.keys.v1alpha1.AddressIndex + (*IdentityKey)(nil), // 9: penumbra.core.keys.v1alpha1.IdentityKey + (*GovernanceKey)(nil), // 10: penumbra.core.keys.v1alpha1.GovernanceKey + (*ConsensusKey)(nil), // 11: penumbra.core.keys.v1alpha1.ConsensusKey + (*AddressView_Visible)(nil), // 12: penumbra.core.keys.v1alpha1.AddressView.Visible + (*AddressView_Opaque)(nil), // 13: penumbra.core.keys.v1alpha1.AddressView.Opaque +} +var file_penumbra_core_keys_v1alpha1_keys_proto_depIdxs = []int32{ + 12, // 0: penumbra.core.keys.v1alpha1.AddressView.visible:type_name -> penumbra.core.keys.v1alpha1.AddressView.Visible + 13, // 1: penumbra.core.keys.v1alpha1.AddressView.opaque:type_name -> penumbra.core.keys.v1alpha1.AddressView.Opaque + 0, // 2: penumbra.core.keys.v1alpha1.AddressView.Visible.address:type_name -> penumbra.core.keys.v1alpha1.Address + 8, // 3: penumbra.core.keys.v1alpha1.AddressView.Visible.index:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 6, // 4: penumbra.core.keys.v1alpha1.AddressView.Visible.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId + 0, // 5: penumbra.core.keys.v1alpha1.AddressView.Opaque.address:type_name -> penumbra.core.keys.v1alpha1.Address + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_penumbra_core_keys_v1alpha1_keys_proto_init() } +func file_penumbra_core_keys_v1alpha1_keys_proto_init() { + if File_penumbra_core_keys_v1alpha1_keys_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Address); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddressView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PayloadKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpendKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpendVerificationKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FullViewingKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountGroupId); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Diversifier); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddressIndex); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdentityKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GovernanceKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConsensusKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddressView_Visible); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddressView_Opaque); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*AddressView_Visible_)(nil), + (*AddressView_Opaque_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_penumbra_core_keys_v1alpha1_keys_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_keys_v1alpha1_keys_proto_goTypes, + DependencyIndexes: file_penumbra_core_keys_v1alpha1_keys_proto_depIdxs, + MessageInfos: file_penumbra_core_keys_v1alpha1_keys_proto_msgTypes, + }.Build() + File_penumbra_core_keys_v1alpha1_keys_proto = out.File + file_penumbra_core_keys_v1alpha1_keys_proto_rawDesc = nil + file_penumbra_core_keys_v1alpha1_keys_proto_goTypes = nil + file_penumbra_core_keys_v1alpha1_keys_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/core/num/v1alpha1/num.pb.go b/proto/go/gen/penumbra/core/num/v1alpha1/num.pb.go new file mode 100644 index 0000000000..216c2ebd29 --- /dev/null +++ b/proto/go/gen/penumbra/core/num/v1alpha1/num.pb.go @@ -0,0 +1,174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/core/num/v1alpha1/num.proto + +package numv1alpha1 + +import ( + 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) +) + +// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, +// split over two fields, `lo` and `hi`, representing the low- and high-order bytes +// of the 128-bit value, respectively. Clients must assemble these bits in their +// implementation into a `uint128` or comparable data structure, in order to model +// the Amount accurately. +type Amount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Lo uint64 `protobuf:"varint,1,opt,name=lo,proto3" json:"lo,omitempty"` + Hi uint64 `protobuf:"varint,2,opt,name=hi,proto3" json:"hi,omitempty"` +} + +func (x *Amount) Reset() { + *x = Amount{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_core_num_v1alpha1_num_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Amount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Amount) ProtoMessage() {} + +func (x *Amount) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_num_v1alpha1_num_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 Amount.ProtoReflect.Descriptor instead. +func (*Amount) Descriptor() ([]byte, []int) { + return file_penumbra_core_num_v1alpha1_num_proto_rawDescGZIP(), []int{0} +} + +func (x *Amount) GetLo() uint64 { + if x != nil { + return x.Lo + } + return 0 +} + +func (x *Amount) GetHi() uint64 { + if x != nil { + return x.Hi + } + return 0 +} + +var File_penumbra_core_num_v1alpha1_num_proto protoreflect.FileDescriptor + +var file_penumbra_core_num_v1alpha1_num_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x1a, 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, 0x22, 0x28, 0x0a, 0x06, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x6c, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x6c, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x68, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x68, 0x69, 0x42, 0x8c, 0x02, 0x0a, + 0x1e, 0x63, 0x6f, 0x6d, 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, 0x42, + 0x08, 0x4e, 0x75, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x55, 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, 0x6e, 0x75, 0x6d, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x6e, 0x75, 0x6d, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x4e, 0xaa, 0x02, 0x1a, 0x50, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x4e, 0x75, 0x6d, 0x2e, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1a, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x4e, 0x75, 0x6d, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0xe2, 0x02, 0x26, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, + 0x72, 0x65, 0x5c, 0x4e, 0x75, 0x6d, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x50, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x4e, 0x75, + 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_core_num_v1alpha1_num_proto_rawDescOnce sync.Once + file_penumbra_core_num_v1alpha1_num_proto_rawDescData = file_penumbra_core_num_v1alpha1_num_proto_rawDesc +) + +func file_penumbra_core_num_v1alpha1_num_proto_rawDescGZIP() []byte { + file_penumbra_core_num_v1alpha1_num_proto_rawDescOnce.Do(func() { + file_penumbra_core_num_v1alpha1_num_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_num_v1alpha1_num_proto_rawDescData) + }) + return file_penumbra_core_num_v1alpha1_num_proto_rawDescData +} + +var file_penumbra_core_num_v1alpha1_num_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_penumbra_core_num_v1alpha1_num_proto_goTypes = []interface{}{ + (*Amount)(nil), // 0: penumbra.core.num.v1alpha1.Amount +} +var file_penumbra_core_num_v1alpha1_num_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_penumbra_core_num_v1alpha1_num_proto_init() } +func file_penumbra_core_num_v1alpha1_num_proto_init() { + if File_penumbra_core_num_v1alpha1_num_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_core_num_v1alpha1_num_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Amount); 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_num_v1alpha1_num_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_core_num_v1alpha1_num_proto_goTypes, + DependencyIndexes: file_penumbra_core_num_v1alpha1_num_proto_depIdxs, + MessageInfos: file_penumbra_core_num_v1alpha1_num_proto_msgTypes, + }.Build() + File_penumbra_core_num_v1alpha1_num_proto = out.File + file_penumbra_core_num_v1alpha1_num_proto_rawDesc = nil + file_penumbra_core_num_v1alpha1_num_proto_goTypes = nil + file_penumbra_core_num_v1alpha1_num_proto_depIdxs = nil +} 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 681f992c9b..5084177ecc 100644 --- a/proto/go/gen/penumbra/core/transaction/v1alpha1/transaction.pb.go +++ b/proto/go/gen/penumbra/core/transaction/v1alpha1/transaction.pb.go @@ -7,11 +7,19 @@ package transactionv1alpha1 import ( - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" - v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/dex/v1alpha1" - v1alpha14 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/governance/v1alpha1" - v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/ibc/v1alpha1" - v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/stake/v1alpha1" + v1alpha19 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/asset/v1alpha1" + v1alpha111 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/chain/v1alpha1" + v1alpha14 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/dex/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/fee/v1alpha1" + v1alpha17 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/governance/v1alpha1" + v1alpha16 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/ibc/v1alpha1" + v1alpha110 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/sct/v1alpha1" + v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/shielded_pool/v1alpha1" + v1alpha15 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/stake/v1alpha1" + v1alpha18 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/decaf377_fmd/v1alpha1" + v1alpha112 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/decaf377_rdsa/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/tct/v1alpha1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -140,53 +148,6 @@ func (x *Id) GetHash() []byte { return nil } -type EffectHash struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *EffectHash) Reset() { - *x = EffectHash{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *EffectHash) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*EffectHash) ProtoMessage() {} - -func (x *EffectHash) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_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 EffectHash.ProtoReflect.Descriptor instead. -func (*EffectHash) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{2} -} - -func (x *EffectHash) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - // The body of a transaction. type TransactionBody struct { state protoimpl.MessageState @@ -198,7 +159,7 @@ type TransactionBody struct { // Parameters determining if a transaction should be accepted by this chain. TransactionParameters *TransactionParameters `protobuf:"bytes,2,opt,name=transaction_parameters,json=transactionParameters,proto3" json:"transaction_parameters,omitempty"` // The transaction fee. - Fee *v1alpha1.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` + Fee *v1alpha11.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` // Detection data for use with Fuzzy Message Detection DetectionData *DetectionData `protobuf:"bytes,4,opt,name=detection_data,json=detectionData,proto3" json:"detection_data,omitempty"` // Sub-message containing memo ciphertext if a memo was added to the transaction. @@ -208,7 +169,7 @@ type TransactionBody struct { func (x *TransactionBody) Reset() { *x = TransactionBody{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[3] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -221,7 +182,7 @@ func (x *TransactionBody) String() string { func (*TransactionBody) ProtoMessage() {} func (x *TransactionBody) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[3] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -234,7 +195,7 @@ func (x *TransactionBody) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionBody.ProtoReflect.Descriptor instead. func (*TransactionBody) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{3} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{2} } func (x *TransactionBody) GetActions() []*Action { @@ -251,7 +212,7 @@ func (x *TransactionBody) GetTransactionParameters() *TransactionParameters { return nil } -func (x *TransactionBody) GetFee() *v1alpha1.Fee { +func (x *TransactionBody) GetFee() *v1alpha11.Fee { if x != nil { return x.Fee } @@ -286,7 +247,7 @@ type MemoData struct { func (x *MemoData) Reset() { *x = MemoData{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[4] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -299,7 +260,7 @@ func (x *MemoData) String() string { func (*MemoData) ProtoMessage() {} func (x *MemoData) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[4] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -312,7 +273,7 @@ func (x *MemoData) ProtoReflect() protoreflect.Message { // Deprecated: Use MemoData.ProtoReflect.Descriptor instead. func (*MemoData) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{4} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{3} } func (x *MemoData) GetEncryptedMemo() []byte { @@ -340,7 +301,7 @@ type TransactionParameters struct { func (x *TransactionParameters) Reset() { *x = TransactionParameters{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[5] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -353,7 +314,7 @@ func (x *TransactionParameters) String() string { func (*TransactionParameters) ProtoMessage() {} func (x *TransactionParameters) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[5] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -366,7 +327,7 @@ func (x *TransactionParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionParameters.ProtoReflect.Descriptor instead. func (*TransactionParameters) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{5} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{4} } func (x *TransactionParameters) GetExpiryHeight() uint64 { @@ -390,13 +351,13 @@ type DetectionData struct { unknownFields protoimpl.UnknownFields // A list of clues for use with Fuzzy Message Detection. - FmdClues []*v1alpha1.Clue `protobuf:"bytes,4,rep,name=fmd_clues,json=fmdClues,proto3" json:"fmd_clues,omitempty"` + FmdClues []*v1alpha12.Clue `protobuf:"bytes,4,rep,name=fmd_clues,json=fmdClues,proto3" json:"fmd_clues,omitempty"` } func (x *DetectionData) Reset() { *x = DetectionData{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[6] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -409,7 +370,7 @@ func (x *DetectionData) String() string { func (*DetectionData) ProtoMessage() {} func (x *DetectionData) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[6] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -422,10 +383,10 @@ func (x *DetectionData) ProtoReflect() protoreflect.Message { // Deprecated: Use DetectionData.ProtoReflect.Descriptor instead. func (*DetectionData) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{6} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{5} } -func (x *DetectionData) GetFmdClues() []*v1alpha1.Clue { +func (x *DetectionData) GetFmdClues() []*v1alpha12.Clue { if x != nil { return x.FmdClues } @@ -468,7 +429,7 @@ type Action struct { func (x *Action) Reset() { *x = Action{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[7] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -481,7 +442,7 @@ func (x *Action) String() string { func (*Action) ProtoMessage() {} func (x *Action) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[7] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -494,7 +455,7 @@ func (x *Action) ProtoReflect() protoreflect.Message { // Deprecated: Use Action.ProtoReflect.Descriptor instead. func (*Action) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{7} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{6} } func (m *Action) GetAction() isAction_Action { @@ -504,154 +465,154 @@ func (m *Action) GetAction() isAction_Action { return nil } -func (x *Action) GetSpend() *Spend { +func (x *Action) GetSpend() *v1alpha13.Spend { if x, ok := x.GetAction().(*Action_Spend); ok { return x.Spend } return nil } -func (x *Action) GetOutput() *Output { +func (x *Action) GetOutput() *v1alpha13.Output { if x, ok := x.GetAction().(*Action_Output); ok { return x.Output } return nil } -func (x *Action) GetSwap() *v1alpha11.Swap { +func (x *Action) GetSwap() *v1alpha14.Swap { if x, ok := x.GetAction().(*Action_Swap); ok { return x.Swap } return nil } -func (x *Action) GetSwapClaim() *v1alpha11.SwapClaim { +func (x *Action) GetSwapClaim() *v1alpha14.SwapClaim { if x, ok := x.GetAction().(*Action_SwapClaim); ok { return x.SwapClaim } return nil } -func (x *Action) GetValidatorDefinition() *v1alpha12.ValidatorDefinition { +func (x *Action) GetValidatorDefinition() *v1alpha15.ValidatorDefinition { if x, ok := x.GetAction().(*Action_ValidatorDefinition); ok { return x.ValidatorDefinition } return nil } -func (x *Action) GetIbcAction() *v1alpha13.IbcAction { +func (x *Action) GetIbcAction() *v1alpha16.IbcAction { if x, ok := x.GetAction().(*Action_IbcAction); ok { return x.IbcAction } return nil } -func (x *Action) GetProposalSubmit() *v1alpha14.ProposalSubmit { +func (x *Action) GetProposalSubmit() *v1alpha17.ProposalSubmit { if x, ok := x.GetAction().(*Action_ProposalSubmit); ok { return x.ProposalSubmit } return nil } -func (x *Action) GetProposalWithdraw() *v1alpha14.ProposalWithdraw { +func (x *Action) GetProposalWithdraw() *v1alpha17.ProposalWithdraw { if x, ok := x.GetAction().(*Action_ProposalWithdraw); ok { return x.ProposalWithdraw } return nil } -func (x *Action) GetValidatorVote() *v1alpha14.ValidatorVote { +func (x *Action) GetValidatorVote() *v1alpha17.ValidatorVote { if x, ok := x.GetAction().(*Action_ValidatorVote); ok { return x.ValidatorVote } return nil } -func (x *Action) GetDelegatorVote() *v1alpha14.DelegatorVote { +func (x *Action) GetDelegatorVote() *v1alpha17.DelegatorVote { if x, ok := x.GetAction().(*Action_DelegatorVote); ok { return x.DelegatorVote } return nil } -func (x *Action) GetProposalDepositClaim() *v1alpha14.ProposalDepositClaim { +func (x *Action) GetProposalDepositClaim() *v1alpha17.ProposalDepositClaim { if x, ok := x.GetAction().(*Action_ProposalDepositClaim); ok { return x.ProposalDepositClaim } return nil } -func (x *Action) GetPositionOpen() *v1alpha11.PositionOpen { +func (x *Action) GetPositionOpen() *v1alpha14.PositionOpen { if x, ok := x.GetAction().(*Action_PositionOpen); ok { return x.PositionOpen } return nil } -func (x *Action) GetPositionClose() *v1alpha11.PositionClose { +func (x *Action) GetPositionClose() *v1alpha14.PositionClose { if x, ok := x.GetAction().(*Action_PositionClose); ok { return x.PositionClose } return nil } -func (x *Action) GetPositionWithdraw() *v1alpha11.PositionWithdraw { +func (x *Action) GetPositionWithdraw() *v1alpha14.PositionWithdraw { if x, ok := x.GetAction().(*Action_PositionWithdraw); ok { return x.PositionWithdraw } return nil } -func (x *Action) GetPositionRewardClaim() *v1alpha11.PositionRewardClaim { +func (x *Action) GetPositionRewardClaim() *v1alpha14.PositionRewardClaim { if x, ok := x.GetAction().(*Action_PositionRewardClaim); ok { return x.PositionRewardClaim } return nil } -func (x *Action) GetDelegate() *v1alpha12.Delegate { +func (x *Action) GetDelegate() *v1alpha15.Delegate { if x, ok := x.GetAction().(*Action_Delegate); ok { return x.Delegate } return nil } -func (x *Action) GetUndelegate() *v1alpha12.Undelegate { +func (x *Action) GetUndelegate() *v1alpha15.Undelegate { if x, ok := x.GetAction().(*Action_Undelegate); ok { return x.Undelegate } return nil } -func (x *Action) GetUndelegateClaim() *v1alpha12.UndelegateClaim { +func (x *Action) GetUndelegateClaim() *v1alpha15.UndelegateClaim { if x, ok := x.GetAction().(*Action_UndelegateClaim); ok { return x.UndelegateClaim } return nil } -func (x *Action) GetDaoSpend() *v1alpha14.DaoSpend { +func (x *Action) GetDaoSpend() *v1alpha17.DaoSpend { if x, ok := x.GetAction().(*Action_DaoSpend); ok { return x.DaoSpend } return nil } -func (x *Action) GetDaoOutput() *v1alpha14.DaoOutput { +func (x *Action) GetDaoOutput() *v1alpha17.DaoOutput { if x, ok := x.GetAction().(*Action_DaoOutput); ok { return x.DaoOutput } return nil } -func (x *Action) GetDaoDeposit() *v1alpha14.DaoDeposit { +func (x *Action) GetDaoDeposit() *v1alpha17.DaoDeposit { if x, ok := x.GetAction().(*Action_DaoDeposit); ok { return x.DaoDeposit } return nil } -func (x *Action) GetIcs20Withdrawal() *v1alpha13.Ics20Withdrawal { +func (x *Action) GetIcs20Withdrawal() *v1alpha16.Ics20Withdrawal { if x, ok := x.GetAction().(*Action_Ics20Withdrawal); ok { return x.Ics20Withdrawal } @@ -663,95 +624,96 @@ type isAction_Action interface { } type Action_Spend struct { - Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3,oneof"` + // Common actions have numbers < 15, to save space. + Spend *v1alpha13.Spend `protobuf:"bytes,1,opt,name=spend,proto3,oneof"` } type Action_Output struct { - Output *Output `protobuf:"bytes,2,opt,name=output,proto3,oneof"` + Output *v1alpha13.Output `protobuf:"bytes,2,opt,name=output,proto3,oneof"` } type Action_Swap struct { - Swap *v1alpha11.Swap `protobuf:"bytes,3,opt,name=swap,proto3,oneof"` + Swap *v1alpha14.Swap `protobuf:"bytes,3,opt,name=swap,proto3,oneof"` } type Action_SwapClaim struct { - SwapClaim *v1alpha11.SwapClaim `protobuf:"bytes,4,opt,name=swap_claim,json=swapClaim,proto3,oneof"` + SwapClaim *v1alpha14.SwapClaim `protobuf:"bytes,4,opt,name=swap_claim,json=swapClaim,proto3,oneof"` } type Action_ValidatorDefinition struct { - ValidatorDefinition *v1alpha12.ValidatorDefinition `protobuf:"bytes,16,opt,name=validator_definition,json=validatorDefinition,proto3,oneof"` + ValidatorDefinition *v1alpha15.ValidatorDefinition `protobuf:"bytes,16,opt,name=validator_definition,json=validatorDefinition,proto3,oneof"` } type Action_IbcAction struct { - IbcAction *v1alpha13.IbcAction `protobuf:"bytes,17,opt,name=ibc_action,json=ibcAction,proto3,oneof"` + IbcAction *v1alpha16.IbcAction `protobuf:"bytes,17,opt,name=ibc_action,json=ibcAction,proto3,oneof"` } type Action_ProposalSubmit struct { // Governance: - ProposalSubmit *v1alpha14.ProposalSubmit `protobuf:"bytes,18,opt,name=proposal_submit,json=proposalSubmit,proto3,oneof"` + ProposalSubmit *v1alpha17.ProposalSubmit `protobuf:"bytes,18,opt,name=proposal_submit,json=proposalSubmit,proto3,oneof"` } type Action_ProposalWithdraw struct { - ProposalWithdraw *v1alpha14.ProposalWithdraw `protobuf:"bytes,19,opt,name=proposal_withdraw,json=proposalWithdraw,proto3,oneof"` + ProposalWithdraw *v1alpha17.ProposalWithdraw `protobuf:"bytes,19,opt,name=proposal_withdraw,json=proposalWithdraw,proto3,oneof"` } type Action_ValidatorVote struct { - ValidatorVote *v1alpha14.ValidatorVote `protobuf:"bytes,20,opt,name=validator_vote,json=validatorVote,proto3,oneof"` + ValidatorVote *v1alpha17.ValidatorVote `protobuf:"bytes,20,opt,name=validator_vote,json=validatorVote,proto3,oneof"` } type Action_DelegatorVote struct { - DelegatorVote *v1alpha14.DelegatorVote `protobuf:"bytes,21,opt,name=delegator_vote,json=delegatorVote,proto3,oneof"` + DelegatorVote *v1alpha17.DelegatorVote `protobuf:"bytes,21,opt,name=delegator_vote,json=delegatorVote,proto3,oneof"` } type Action_ProposalDepositClaim struct { - ProposalDepositClaim *v1alpha14.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof"` + ProposalDepositClaim *v1alpha17.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof"` } type Action_PositionOpen struct { // Positions - PositionOpen *v1alpha11.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof"` + PositionOpen *v1alpha14.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof"` } type Action_PositionClose struct { - PositionClose *v1alpha11.PositionClose `protobuf:"bytes,31,opt,name=position_close,json=positionClose,proto3,oneof"` + PositionClose *v1alpha14.PositionClose `protobuf:"bytes,31,opt,name=position_close,json=positionClose,proto3,oneof"` } type Action_PositionWithdraw struct { - PositionWithdraw *v1alpha11.PositionWithdraw `protobuf:"bytes,32,opt,name=position_withdraw,json=positionWithdraw,proto3,oneof"` + PositionWithdraw *v1alpha14.PositionWithdraw `protobuf:"bytes,32,opt,name=position_withdraw,json=positionWithdraw,proto3,oneof"` } type Action_PositionRewardClaim struct { - PositionRewardClaim *v1alpha11.PositionRewardClaim `protobuf:"bytes,34,opt,name=position_reward_claim,json=positionRewardClaim,proto3,oneof"` + PositionRewardClaim *v1alpha14.PositionRewardClaim `protobuf:"bytes,34,opt,name=position_reward_claim,json=positionRewardClaim,proto3,oneof"` } type Action_Delegate struct { // (un)delegation - Delegate *v1alpha12.Delegate `protobuf:"bytes,40,opt,name=delegate,proto3,oneof"` + Delegate *v1alpha15.Delegate `protobuf:"bytes,40,opt,name=delegate,proto3,oneof"` } type Action_Undelegate struct { - Undelegate *v1alpha12.Undelegate `protobuf:"bytes,41,opt,name=undelegate,proto3,oneof"` + Undelegate *v1alpha15.Undelegate `protobuf:"bytes,41,opt,name=undelegate,proto3,oneof"` } type Action_UndelegateClaim struct { - UndelegateClaim *v1alpha12.UndelegateClaim `protobuf:"bytes,42,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof"` + UndelegateClaim *v1alpha15.UndelegateClaim `protobuf:"bytes,42,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof"` } type Action_DaoSpend struct { // DAO - DaoSpend *v1alpha14.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof"` + DaoSpend *v1alpha17.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof"` } type Action_DaoOutput struct { - DaoOutput *v1alpha14.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof"` + DaoOutput *v1alpha17.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof"` } type Action_DaoDeposit struct { - DaoDeposit *v1alpha14.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof"` + DaoDeposit *v1alpha17.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof"` } type Action_Ics20Withdrawal struct { - Ics20Withdrawal *v1alpha13.Ics20Withdrawal `protobuf:"bytes,200,opt,name=ics20_withdrawal,json=ics20Withdrawal,proto3,oneof"` + Ics20Withdrawal *v1alpha16.Ics20Withdrawal `protobuf:"bytes,200,opt,name=ics20_withdrawal,json=ics20Withdrawal,proto3,oneof"` } func (*Action_Spend) isAction_Action() {} @@ -809,11 +771,11 @@ type TransactionPerspective struct { SpendNullifiers []*NullifierWithNote `protobuf:"bytes,2,rep,name=spend_nullifiers,json=spendNullifiers,proto3" json:"spend_nullifiers,omitempty"` // The openings of note commitments referred to in the transaction // but not included in the transaction. - AdviceNotes []*v1alpha1.Note `protobuf:"bytes,3,rep,name=advice_notes,json=adviceNotes,proto3" json:"advice_notes,omitempty"` + AdviceNotes []*v1alpha13.Note `protobuf:"bytes,3,rep,name=advice_notes,json=adviceNotes,proto3" json:"advice_notes,omitempty"` // Any relevant address views. - AddressViews []*v1alpha1.AddressView `protobuf:"bytes,4,rep,name=address_views,json=addressViews,proto3" json:"address_views,omitempty"` + AddressViews []*v1alpha18.AddressView `protobuf:"bytes,4,rep,name=address_views,json=addressViews,proto3" json:"address_views,omitempty"` // Any relevant denoms for viewed assets. - Denoms []*v1alpha1.DenomMetadata `protobuf:"bytes,5,rep,name=denoms,proto3" json:"denoms,omitempty"` + Denoms []*v1alpha19.DenomMetadata `protobuf:"bytes,5,rep,name=denoms,proto3" json:"denoms,omitempty"` // The transaction ID associated with this TransactionPerspective TransactionId *Id `protobuf:"bytes,6,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` } @@ -821,7 +783,7 @@ type TransactionPerspective struct { func (x *TransactionPerspective) Reset() { *x = TransactionPerspective{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[8] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -834,7 +796,7 @@ func (x *TransactionPerspective) String() string { func (*TransactionPerspective) ProtoMessage() {} func (x *TransactionPerspective) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[8] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -847,7 +809,7 @@ func (x *TransactionPerspective) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionPerspective.ProtoReflect.Descriptor instead. func (*TransactionPerspective) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{8} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{7} } func (x *TransactionPerspective) GetPayloadKeys() []*PayloadKeyWithCommitment { @@ -864,21 +826,21 @@ func (x *TransactionPerspective) GetSpendNullifiers() []*NullifierWithNote { return nil } -func (x *TransactionPerspective) GetAdviceNotes() []*v1alpha1.Note { +func (x *TransactionPerspective) GetAdviceNotes() []*v1alpha13.Note { if x != nil { return x.AdviceNotes } return nil } -func (x *TransactionPerspective) GetAddressViews() []*v1alpha1.AddressView { +func (x *TransactionPerspective) GetAddressViews() []*v1alpha18.AddressView { if x != nil { return x.AddressViews } return nil } -func (x *TransactionPerspective) GetDenoms() []*v1alpha1.DenomMetadata { +func (x *TransactionPerspective) GetDenoms() []*v1alpha19.DenomMetadata { if x != nil { return x.Denoms } @@ -892,66 +854,19 @@ func (x *TransactionPerspective) GetTransactionId() *Id { return nil } -type PayloadKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *PayloadKey) Reset() { - *x = PayloadKey{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PayloadKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PayloadKey) ProtoMessage() {} - -func (x *PayloadKey) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PayloadKey.ProtoReflect.Descriptor instead. -func (*PayloadKey) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{9} -} - -func (x *PayloadKey) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - type PayloadKeyWithCommitment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PayloadKey *PayloadKey `protobuf:"bytes,1,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` + PayloadKey *v1alpha18.PayloadKey `protobuf:"bytes,1,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` Commitment *v1alpha1.StateCommitment `protobuf:"bytes,2,opt,name=commitment,proto3" json:"commitment,omitempty"` } func (x *PayloadKeyWithCommitment) Reset() { *x = PayloadKeyWithCommitment{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[10] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -964,7 +879,7 @@ func (x *PayloadKeyWithCommitment) String() string { func (*PayloadKeyWithCommitment) ProtoMessage() {} func (x *PayloadKeyWithCommitment) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[10] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -977,10 +892,10 @@ func (x *PayloadKeyWithCommitment) ProtoReflect() protoreflect.Message { // Deprecated: Use PayloadKeyWithCommitment.ProtoReflect.Descriptor instead. func (*PayloadKeyWithCommitment) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{10} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{8} } -func (x *PayloadKeyWithCommitment) GetPayloadKey() *PayloadKey { +func (x *PayloadKeyWithCommitment) GetPayloadKey() *v1alpha18.PayloadKey { if x != nil { return x.PayloadKey } @@ -999,14 +914,14 @@ type NullifierWithNote struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Nullifier *v1alpha1.Nullifier `protobuf:"bytes,1,opt,name=nullifier,proto3" json:"nullifier,omitempty"` - Note *v1alpha1.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + Nullifier *v1alpha110.Nullifier `protobuf:"bytes,1,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + Note *v1alpha13.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` } func (x *NullifierWithNote) Reset() { *x = NullifierWithNote{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[11] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1019,7 +934,7 @@ func (x *NullifierWithNote) String() string { func (*NullifierWithNote) ProtoMessage() {} func (x *NullifierWithNote) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[11] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1032,17 +947,17 @@ func (x *NullifierWithNote) ProtoReflect() protoreflect.Message { // Deprecated: Use NullifierWithNote.ProtoReflect.Descriptor instead. func (*NullifierWithNote) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{11} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{9} } -func (x *NullifierWithNote) GetNullifier() *v1alpha1.Nullifier { +func (x *NullifierWithNote) GetNullifier() *v1alpha110.Nullifier { if x != nil { return x.Nullifier } return nil } -func (x *NullifierWithNote) GetNote() *v1alpha1.Note { +func (x *NullifierWithNote) GetNote() *v1alpha13.Note { if x != nil { return x.Note } @@ -1067,7 +982,7 @@ type TransactionView struct { func (x *TransactionView) Reset() { *x = TransactionView{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[12] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1080,7 +995,7 @@ func (x *TransactionView) String() string { func (*TransactionView) ProtoMessage() {} func (x *TransactionView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[12] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1093,7 +1008,7 @@ func (x *TransactionView) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionView.ProtoReflect.Descriptor instead. func (*TransactionView) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{12} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{10} } func (x *TransactionView) GetBodyView() *TransactionBodyView { @@ -1127,7 +1042,7 @@ type TransactionBodyView struct { // Transaction parameters. TransactionParameters *TransactionParameters `protobuf:"bytes,2,opt,name=transaction_parameters,json=transactionParameters,proto3" json:"transaction_parameters,omitempty"` // The transaction fee. - Fee *v1alpha1.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` + Fee *v1alpha11.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` // The detection data in this transaction, only populated if // there are outputs in the actions of this transaction. DetectionData *DetectionData `protobuf:"bytes,4,opt,name=detection_data,json=detectionData,proto3" json:"detection_data,omitempty"` @@ -1139,7 +1054,7 @@ type TransactionBodyView struct { func (x *TransactionBodyView) Reset() { *x = TransactionBodyView{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[13] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1152,7 +1067,7 @@ func (x *TransactionBodyView) String() string { func (*TransactionBodyView) ProtoMessage() {} func (x *TransactionBodyView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[13] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1165,7 +1080,7 @@ func (x *TransactionBodyView) ProtoReflect() protoreflect.Message { // Deprecated: Use TransactionBodyView.ProtoReflect.Descriptor instead. func (*TransactionBodyView) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{13} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{11} } func (x *TransactionBodyView) GetActionViews() []*ActionView { @@ -1182,7 +1097,7 @@ func (x *TransactionBodyView) GetTransactionParameters() *TransactionParameters return nil } -func (x *TransactionBodyView) GetFee() *v1alpha1.Fee { +func (x *TransactionBodyView) GetFee() *v1alpha11.Fee { if x != nil { return x.Fee } @@ -1239,7 +1154,7 @@ type ActionView struct { func (x *ActionView) Reset() { *x = ActionView{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[14] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1252,7 +1167,7 @@ func (x *ActionView) String() string { func (*ActionView) ProtoMessage() {} func (x *ActionView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[14] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1265,7 +1180,7 @@ func (x *ActionView) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionView.ProtoReflect.Descriptor instead. func (*ActionView) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{14} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{12} } func (m *ActionView) GetActionView() isActionView_ActionView { @@ -1275,154 +1190,154 @@ func (m *ActionView) GetActionView() isActionView_ActionView { return nil } -func (x *ActionView) GetSpend() *SpendView { +func (x *ActionView) GetSpend() *v1alpha13.SpendView { if x, ok := x.GetActionView().(*ActionView_Spend); ok { return x.Spend } return nil } -func (x *ActionView) GetOutput() *OutputView { +func (x *ActionView) GetOutput() *v1alpha13.OutputView { if x, ok := x.GetActionView().(*ActionView_Output); ok { return x.Output } return nil } -func (x *ActionView) GetSwap() *v1alpha11.SwapView { +func (x *ActionView) GetSwap() *v1alpha14.SwapView { if x, ok := x.GetActionView().(*ActionView_Swap); ok { return x.Swap } return nil } -func (x *ActionView) GetSwapClaim() *v1alpha11.SwapClaimView { +func (x *ActionView) GetSwapClaim() *v1alpha14.SwapClaimView { if x, ok := x.GetActionView().(*ActionView_SwapClaim); ok { return x.SwapClaim } return nil } -func (x *ActionView) GetValidatorDefinition() *v1alpha12.ValidatorDefinition { +func (x *ActionView) GetValidatorDefinition() *v1alpha15.ValidatorDefinition { if x, ok := x.GetActionView().(*ActionView_ValidatorDefinition); ok { return x.ValidatorDefinition } return nil } -func (x *ActionView) GetIbcAction() *v1alpha13.IbcAction { +func (x *ActionView) GetIbcAction() *v1alpha16.IbcAction { if x, ok := x.GetActionView().(*ActionView_IbcAction); ok { return x.IbcAction } return nil } -func (x *ActionView) GetProposalSubmit() *v1alpha14.ProposalSubmit { +func (x *ActionView) GetProposalSubmit() *v1alpha17.ProposalSubmit { if x, ok := x.GetActionView().(*ActionView_ProposalSubmit); ok { return x.ProposalSubmit } return nil } -func (x *ActionView) GetProposalWithdraw() *v1alpha14.ProposalWithdraw { +func (x *ActionView) GetProposalWithdraw() *v1alpha17.ProposalWithdraw { if x, ok := x.GetActionView().(*ActionView_ProposalWithdraw); ok { return x.ProposalWithdraw } return nil } -func (x *ActionView) GetValidatorVote() *v1alpha14.ValidatorVote { +func (x *ActionView) GetValidatorVote() *v1alpha17.ValidatorVote { if x, ok := x.GetActionView().(*ActionView_ValidatorVote); ok { return x.ValidatorVote } return nil } -func (x *ActionView) GetDelegatorVote() *DelegatorVoteView { +func (x *ActionView) GetDelegatorVote() *v1alpha17.DelegatorVoteView { if x, ok := x.GetActionView().(*ActionView_DelegatorVote); ok { return x.DelegatorVote } return nil } -func (x *ActionView) GetProposalDepositClaim() *v1alpha14.ProposalDepositClaim { +func (x *ActionView) GetProposalDepositClaim() *v1alpha17.ProposalDepositClaim { if x, ok := x.GetActionView().(*ActionView_ProposalDepositClaim); ok { return x.ProposalDepositClaim } return nil } -func (x *ActionView) GetPositionOpen() *v1alpha11.PositionOpen { +func (x *ActionView) GetPositionOpen() *v1alpha14.PositionOpen { if x, ok := x.GetActionView().(*ActionView_PositionOpen); ok { return x.PositionOpen } return nil } -func (x *ActionView) GetPositionClose() *v1alpha11.PositionClose { +func (x *ActionView) GetPositionClose() *v1alpha14.PositionClose { if x, ok := x.GetActionView().(*ActionView_PositionClose); ok { return x.PositionClose } return nil } -func (x *ActionView) GetPositionWithdraw() *v1alpha11.PositionWithdraw { +func (x *ActionView) GetPositionWithdraw() *v1alpha14.PositionWithdraw { if x, ok := x.GetActionView().(*ActionView_PositionWithdraw); ok { return x.PositionWithdraw } return nil } -func (x *ActionView) GetPositionRewardClaim() *v1alpha11.PositionRewardClaim { +func (x *ActionView) GetPositionRewardClaim() *v1alpha14.PositionRewardClaim { if x, ok := x.GetActionView().(*ActionView_PositionRewardClaim); ok { return x.PositionRewardClaim } return nil } -func (x *ActionView) GetDelegate() *v1alpha12.Delegate { +func (x *ActionView) GetDelegate() *v1alpha15.Delegate { if x, ok := x.GetActionView().(*ActionView_Delegate); ok { return x.Delegate } return nil } -func (x *ActionView) GetUndelegate() *v1alpha12.Undelegate { +func (x *ActionView) GetUndelegate() *v1alpha15.Undelegate { if x, ok := x.GetActionView().(*ActionView_Undelegate); ok { return x.Undelegate } return nil } -func (x *ActionView) GetDaoSpend() *v1alpha14.DaoSpend { +func (x *ActionView) GetDaoSpend() *v1alpha17.DaoSpend { if x, ok := x.GetActionView().(*ActionView_DaoSpend); ok { return x.DaoSpend } return nil } -func (x *ActionView) GetDaoOutput() *v1alpha14.DaoOutput { +func (x *ActionView) GetDaoOutput() *v1alpha17.DaoOutput { if x, ok := x.GetActionView().(*ActionView_DaoOutput); ok { return x.DaoOutput } return nil } -func (x *ActionView) GetDaoDeposit() *v1alpha14.DaoDeposit { +func (x *ActionView) GetDaoDeposit() *v1alpha17.DaoDeposit { if x, ok := x.GetActionView().(*ActionView_DaoDeposit); ok { return x.DaoDeposit } return nil } -func (x *ActionView) GetUndelegateClaim() *v1alpha12.UndelegateClaim { +func (x *ActionView) GetUndelegateClaim() *v1alpha15.UndelegateClaim { if x, ok := x.GetActionView().(*ActionView_UndelegateClaim); ok { return x.UndelegateClaim } return nil } -func (x *ActionView) GetIcs20Withdrawal() *v1alpha13.Ics20Withdrawal { +func (x *ActionView) GetIcs20Withdrawal() *v1alpha16.Ics20Withdrawal { if x, ok := x.GetActionView().(*ActionView_Ics20Withdrawal); ok { return x.Ics20Withdrawal } @@ -1435,97 +1350,97 @@ type isActionView_ActionView interface { type ActionView_Spend struct { // Action types with visible/opaque variants - Spend *SpendView `protobuf:"bytes,1,opt,name=spend,proto3,oneof"` + Spend *v1alpha13.SpendView `protobuf:"bytes,1,opt,name=spend,proto3,oneof"` } type ActionView_Output struct { - Output *OutputView `protobuf:"bytes,2,opt,name=output,proto3,oneof"` + Output *v1alpha13.OutputView `protobuf:"bytes,2,opt,name=output,proto3,oneof"` } type ActionView_Swap struct { - Swap *v1alpha11.SwapView `protobuf:"bytes,3,opt,name=swap,proto3,oneof"` + Swap *v1alpha14.SwapView `protobuf:"bytes,3,opt,name=swap,proto3,oneof"` } type ActionView_SwapClaim struct { - SwapClaim *v1alpha11.SwapClaimView `protobuf:"bytes,4,opt,name=swap_claim,json=swapClaim,proto3,oneof"` + SwapClaim *v1alpha14.SwapClaimView `protobuf:"bytes,4,opt,name=swap_claim,json=swapClaim,proto3,oneof"` } type ActionView_ValidatorDefinition struct { // Action types without visible/opaque variants - ValidatorDefinition *v1alpha12.ValidatorDefinition `protobuf:"bytes,16,opt,name=validator_definition,json=validatorDefinition,proto3,oneof"` + ValidatorDefinition *v1alpha15.ValidatorDefinition `protobuf:"bytes,16,opt,name=validator_definition,json=validatorDefinition,proto3,oneof"` } type ActionView_IbcAction struct { - IbcAction *v1alpha13.IbcAction `protobuf:"bytes,17,opt,name=ibc_action,json=ibcAction,proto3,oneof"` + IbcAction *v1alpha16.IbcAction `protobuf:"bytes,17,opt,name=ibc_action,json=ibcAction,proto3,oneof"` } type ActionView_ProposalSubmit struct { // Governance: - ProposalSubmit *v1alpha14.ProposalSubmit `protobuf:"bytes,18,opt,name=proposal_submit,json=proposalSubmit,proto3,oneof"` + ProposalSubmit *v1alpha17.ProposalSubmit `protobuf:"bytes,18,opt,name=proposal_submit,json=proposalSubmit,proto3,oneof"` } type ActionView_ProposalWithdraw struct { - ProposalWithdraw *v1alpha14.ProposalWithdraw `protobuf:"bytes,19,opt,name=proposal_withdraw,json=proposalWithdraw,proto3,oneof"` + ProposalWithdraw *v1alpha17.ProposalWithdraw `protobuf:"bytes,19,opt,name=proposal_withdraw,json=proposalWithdraw,proto3,oneof"` } type ActionView_ValidatorVote struct { - ValidatorVote *v1alpha14.ValidatorVote `protobuf:"bytes,20,opt,name=validator_vote,json=validatorVote,proto3,oneof"` + ValidatorVote *v1alpha17.ValidatorVote `protobuf:"bytes,20,opt,name=validator_vote,json=validatorVote,proto3,oneof"` } type ActionView_DelegatorVote struct { - DelegatorVote *DelegatorVoteView `protobuf:"bytes,21,opt,name=delegator_vote,json=delegatorVote,proto3,oneof"` + DelegatorVote *v1alpha17.DelegatorVoteView `protobuf:"bytes,21,opt,name=delegator_vote,json=delegatorVote,proto3,oneof"` } type ActionView_ProposalDepositClaim struct { - ProposalDepositClaim *v1alpha14.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof"` + ProposalDepositClaim *v1alpha17.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof"` } type ActionView_PositionOpen struct { - PositionOpen *v1alpha11.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof"` + PositionOpen *v1alpha14.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof"` } type ActionView_PositionClose struct { - PositionClose *v1alpha11.PositionClose `protobuf:"bytes,31,opt,name=position_close,json=positionClose,proto3,oneof"` + PositionClose *v1alpha14.PositionClose `protobuf:"bytes,31,opt,name=position_close,json=positionClose,proto3,oneof"` } type ActionView_PositionWithdraw struct { - PositionWithdraw *v1alpha11.PositionWithdraw `protobuf:"bytes,32,opt,name=position_withdraw,json=positionWithdraw,proto3,oneof"` + PositionWithdraw *v1alpha14.PositionWithdraw `protobuf:"bytes,32,opt,name=position_withdraw,json=positionWithdraw,proto3,oneof"` } type ActionView_PositionRewardClaim struct { - PositionRewardClaim *v1alpha11.PositionRewardClaim `protobuf:"bytes,34,opt,name=position_reward_claim,json=positionRewardClaim,proto3,oneof"` + PositionRewardClaim *v1alpha14.PositionRewardClaim `protobuf:"bytes,34,opt,name=position_reward_claim,json=positionRewardClaim,proto3,oneof"` } type ActionView_Delegate struct { - Delegate *v1alpha12.Delegate `protobuf:"bytes,41,opt,name=delegate,proto3,oneof"` + Delegate *v1alpha15.Delegate `protobuf:"bytes,41,opt,name=delegate,proto3,oneof"` } type ActionView_Undelegate struct { - Undelegate *v1alpha12.Undelegate `protobuf:"bytes,42,opt,name=undelegate,proto3,oneof"` + Undelegate *v1alpha15.Undelegate `protobuf:"bytes,42,opt,name=undelegate,proto3,oneof"` } type ActionView_DaoSpend struct { // DAO - DaoSpend *v1alpha14.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof"` + DaoSpend *v1alpha17.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof"` } type ActionView_DaoOutput struct { - DaoOutput *v1alpha14.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof"` + DaoOutput *v1alpha17.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof"` } type ActionView_DaoDeposit struct { - DaoDeposit *v1alpha14.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof"` + DaoDeposit *v1alpha17.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof"` } type ActionView_UndelegateClaim struct { // 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? - UndelegateClaim *v1alpha12.UndelegateClaim `protobuf:"bytes,43,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof"` + UndelegateClaim *v1alpha15.UndelegateClaim `protobuf:"bytes,43,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof"` } type ActionView_Ics20Withdrawal struct { - Ics20Withdrawal *v1alpha13.Ics20Withdrawal `protobuf:"bytes,200,opt,name=ics20_withdrawal,json=ics20Withdrawal,proto3,oneof"` + Ics20Withdrawal *v1alpha16.Ics20Withdrawal `protobuf:"bytes,200,opt,name=ics20_withdrawal,json=ics20Withdrawal,proto3,oneof"` } func (*ActionView_Spend) isActionView_ActionView() {} @@ -1572,35 +1487,39 @@ func (*ActionView_UndelegateClaim) isActionView_ActionView() {} func (*ActionView_Ics20Withdrawal) isActionView_ActionView() {} -type SpendView struct { +// The data required to authorize a transaction plan. +type AuthorizationData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to SpendView: - // - // *SpendView_Visible_ - // *SpendView_Opaque_ - SpendView isSpendView_SpendView `protobuf_oneof:"spend_view"` + // The computed auth hash for the approved transaction plan. + EffectHash *v1alpha111.EffectHash `protobuf:"bytes,1,opt,name=effect_hash,json=effectHash,proto3" json:"effect_hash,omitempty"` + // The required spend authorizations, returned in the same order as the + // Spend actions in the original request. + SpendAuths []*v1alpha112.SpendAuthSignature `protobuf:"bytes,2,rep,name=spend_auths,json=spendAuths,proto3" json:"spend_auths,omitempty"` + // The required delegator vote authorizations, returned in the same order as the + // DelegatorVote actions in the original request. + DelegatorVoteAuths []*v1alpha112.SpendAuthSignature `protobuf:"bytes,3,rep,name=delegator_vote_auths,json=delegatorVoteAuths,proto3" json:"delegator_vote_auths,omitempty"` } -func (x *SpendView) Reset() { - *x = SpendView{} +func (x *AuthorizationData) Reset() { + *x = AuthorizationData{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[15] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SpendView) String() string { +func (x *AuthorizationData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SpendView) ProtoMessage() {} +func (*AuthorizationData) ProtoMessage() {} -func (x *SpendView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[15] +func (x *AuthorizationData) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1611,77 +1530,62 @@ func (x *SpendView) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SpendView.ProtoReflect.Descriptor instead. -func (*SpendView) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{15} +// Deprecated: Use AuthorizationData.ProtoReflect.Descriptor instead. +func (*AuthorizationData) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{13} } -func (m *SpendView) GetSpendView() isSpendView_SpendView { - if m != nil { - return m.SpendView +func (x *AuthorizationData) GetEffectHash() *v1alpha111.EffectHash { + if x != nil { + return x.EffectHash } return nil } -func (x *SpendView) GetVisible() *SpendView_Visible { - if x, ok := x.GetSpendView().(*SpendView_Visible_); ok { - return x.Visible +func (x *AuthorizationData) GetSpendAuths() []*v1alpha112.SpendAuthSignature { + if x != nil { + return x.SpendAuths } return nil } -func (x *SpendView) GetOpaque() *SpendView_Opaque { - if x, ok := x.GetSpendView().(*SpendView_Opaque_); ok { - return x.Opaque +func (x *AuthorizationData) GetDelegatorVoteAuths() []*v1alpha112.SpendAuthSignature { + if x != nil { + return x.DelegatorVoteAuths } return nil } -type isSpendView_SpendView interface { - isSpendView_SpendView() -} - -type SpendView_Visible_ struct { - Visible *SpendView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` -} - -type SpendView_Opaque_ struct { - Opaque *SpendView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` -} - -func (*SpendView_Visible_) isSpendView_SpendView() {} - -func (*SpendView_Opaque_) isSpendView_SpendView() {} - -type DelegatorVoteView struct { +// The data required for proving when building a transaction from a plan. +type WitnessData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to DelegatorVote: - // - // *DelegatorVoteView_Visible_ - // *DelegatorVoteView_Opaque_ - DelegatorVote isDelegatorVoteView_DelegatorVote `protobuf_oneof:"delegator_vote"` + // The anchor for the state transition proofs. + Anchor *v1alpha1.MerkleRoot `protobuf:"bytes,1,opt,name=anchor,proto3" json:"anchor,omitempty"` + // The auth paths for the notes the transaction spends, in the + // same order as the spends in the transaction plan. + StateCommitmentProofs []*v1alpha1.StateCommitmentProof `protobuf:"bytes,2,rep,name=state_commitment_proofs,json=stateCommitmentProofs,proto3" json:"state_commitment_proofs,omitempty"` } -func (x *DelegatorVoteView) Reset() { - *x = DelegatorVoteView{} +func (x *WitnessData) Reset() { + *x = WitnessData{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[16] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DelegatorVoteView) String() string { +func (x *WitnessData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DelegatorVoteView) ProtoMessage() {} +func (*WitnessData) ProtoMessage() {} -func (x *DelegatorVoteView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[16] +func (x *WitnessData) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1692,77 +1596,62 @@ func (x *DelegatorVoteView) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DelegatorVoteView.ProtoReflect.Descriptor instead. -func (*DelegatorVoteView) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{16} -} - -func (m *DelegatorVoteView) GetDelegatorVote() isDelegatorVoteView_DelegatorVote { - if m != nil { - return m.DelegatorVote - } - return nil +// Deprecated: Use WitnessData.ProtoReflect.Descriptor instead. +func (*WitnessData) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{14} } -func (x *DelegatorVoteView) GetVisible() *DelegatorVoteView_Visible { - if x, ok := x.GetDelegatorVote().(*DelegatorVoteView_Visible_); ok { - return x.Visible +func (x *WitnessData) GetAnchor() *v1alpha1.MerkleRoot { + if x != nil { + return x.Anchor } return nil } -func (x *DelegatorVoteView) GetOpaque() *DelegatorVoteView_Opaque { - if x, ok := x.GetDelegatorVote().(*DelegatorVoteView_Opaque_); ok { - return x.Opaque +func (x *WitnessData) GetStateCommitmentProofs() []*v1alpha1.StateCommitmentProof { + if x != nil { + return x.StateCommitmentProofs } return nil } -type isDelegatorVoteView_DelegatorVote interface { - isDelegatorVoteView_DelegatorVote() -} - -type DelegatorVoteView_Visible_ struct { - Visible *DelegatorVoteView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` -} - -type DelegatorVoteView_Opaque_ struct { - Opaque *DelegatorVoteView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` -} - -func (*DelegatorVoteView_Visible_) isDelegatorVoteView_DelegatorVote() {} - -func (*DelegatorVoteView_Opaque_) isDelegatorVoteView_DelegatorVote() {} - -type OutputView struct { +// Describes a planned transaction. Permits clients to prepare a transaction +// prior submission, so that a user can review it prior to authorizing its execution. +type TransactionPlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to OutputView: - // - // *OutputView_Visible_ - // *OutputView_Opaque_ - OutputView isOutputView_OutputView `protobuf_oneof:"output_view"` + // The planner interface(s) for Actions to be performed, such as a Spend, Swap, + // or Delegation. See the ActionPlan docs for a full list of options. + Actions []*ActionPlan `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"` + // Time, as block height, after which TransactionPlan should be considered invalid. + ExpiryHeight uint64 `protobuf:"varint,2,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` + // The name of the network for which this TransactionPlan was built. + ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + Fee *v1alpha11.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` + CluePlans []*CluePlan `protobuf:"bytes,5,rep,name=clue_plans,json=cluePlans,proto3" json:"clue_plans,omitempty"` + // Planning interface for constructing an optional Memo for the Transaction. + MemoPlan *MemoPlan `protobuf:"bytes,6,opt,name=memo_plan,json=memoPlan,proto3" json:"memo_plan,omitempty"` } -func (x *OutputView) Reset() { - *x = OutputView{} +func (x *TransactionPlan) Reset() { + *x = TransactionPlan{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[17] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OutputView) String() string { +func (x *TransactionPlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OutputView) ProtoMessage() {} +func (*TransactionPlan) ProtoMessage() {} -func (x *OutputView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[17] +func (x *TransactionPlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1773,79 +1662,106 @@ func (x *OutputView) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OutputView.ProtoReflect.Descriptor instead. -func (*OutputView) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{17} +// Deprecated: Use TransactionPlan.ProtoReflect.Descriptor instead. +func (*TransactionPlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{15} } -func (m *OutputView) GetOutputView() isOutputView_OutputView { - if m != nil { - return m.OutputView +func (x *TransactionPlan) GetActions() []*ActionPlan { + if x != nil { + return x.Actions } return nil } -func (x *OutputView) GetVisible() *OutputView_Visible { - if x, ok := x.GetOutputView().(*OutputView_Visible_); ok { - return x.Visible +func (x *TransactionPlan) GetExpiryHeight() uint64 { + if x != nil { + return x.ExpiryHeight } - return nil + return 0 } -func (x *OutputView) GetOpaque() *OutputView_Opaque { - if x, ok := x.GetOutputView().(*OutputView_Opaque_); ok { - return x.Opaque +func (x *TransactionPlan) GetChainId() string { + if x != nil { + return x.ChainId } - return nil + return "" } -type isOutputView_OutputView interface { - isOutputView_OutputView() +func (x *TransactionPlan) GetFee() *v1alpha11.Fee { + if x != nil { + return x.Fee + } + return nil } -type OutputView_Visible_ struct { - Visible *OutputView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` +func (x *TransactionPlan) GetCluePlans() []*CluePlan { + if x != nil { + return x.CluePlans + } + return nil } -type OutputView_Opaque_ struct { - Opaque *OutputView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` +func (x *TransactionPlan) GetMemoPlan() *MemoPlan { + if x != nil { + return x.MemoPlan + } + return nil } -func (*OutputView_Visible_) isOutputView_OutputView() {} - -func (*OutputView_Opaque_) isOutputView_OutputView() {} - -// Spends a shielded note. -type Spend struct { +// Describes a planned transaction action. +// +// Some transaction Actions don't have any private data and are treated as being plans +// themselves. +type ActionPlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The effecting data of the spend. - Body *SpendBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` - // The authorizing signature for the spend. - AuthSig *v1alpha1.SpendAuthSignature `protobuf:"bytes,2,opt,name=auth_sig,json=authSig,proto3" json:"auth_sig,omitempty"` - // The proof that the spend is well-formed is authorizing data. - Proof *v1alpha1.ZKSpendProof `protobuf:"bytes,3,opt,name=proof,proto3" json:"proof,omitempty"` + // Types that are assignable to Action: + // + // *ActionPlan_Spend + // *ActionPlan_Output + // *ActionPlan_Swap + // *ActionPlan_SwapClaim + // *ActionPlan_ValidatorDefinition + // *ActionPlan_IbcAction + // *ActionPlan_ProposalSubmit + // *ActionPlan_ProposalWithdraw + // *ActionPlan_ValidatorVote + // *ActionPlan_DelegatorVote + // *ActionPlan_ProposalDepositClaim + // *ActionPlan_Withdrawal + // *ActionPlan_PositionOpen + // *ActionPlan_PositionClose + // *ActionPlan_PositionWithdraw + // *ActionPlan_PositionRewardClaim + // *ActionPlan_Delegate + // *ActionPlan_Undelegate + // *ActionPlan_UndelegateClaim + // *ActionPlan_DaoSpend + // *ActionPlan_DaoOutput + // *ActionPlan_DaoDeposit + Action isActionPlan_Action `protobuf_oneof:"action"` } -func (x *Spend) Reset() { - *x = Spend{} +func (x *ActionPlan) Reset() { + *x = ActionPlan{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[18] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Spend) String() string { +func (x *ActionPlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Spend) ProtoMessage() {} +func (*ActionPlan) ProtoMessage() {} -func (x *Spend) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[18] +func (x *ActionPlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1856,1429 +1772,348 @@ func (x *Spend) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Spend.ProtoReflect.Descriptor instead. -func (*Spend) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{18} +// Deprecated: Use ActionPlan.ProtoReflect.Descriptor instead. +func (*ActionPlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{16} } -func (x *Spend) GetBody() *SpendBody { - if x != nil { - return x.Body +func (m *ActionPlan) GetAction() isActionPlan_Action { + if m != nil { + return m.Action } return nil } -func (x *Spend) GetAuthSig() *v1alpha1.SpendAuthSignature { - if x != nil { - return x.AuthSig +func (x *ActionPlan) GetSpend() *v1alpha13.SpendPlan { + if x, ok := x.GetAction().(*ActionPlan_Spend); ok { + return x.Spend } return nil } -func (x *Spend) GetProof() *v1alpha1.ZKSpendProof { - if x != nil { - return x.Proof +func (x *ActionPlan) GetOutput() *v1alpha13.OutputPlan { + if x, ok := x.GetAction().(*ActionPlan_Output); ok { + return x.Output } return nil } -// The body of a spend description, containing only the effecting data -// describing changes to the ledger, and not the authorizing data that allows -// those changes to be performed. -type SpendBody struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // A commitment to the value of the input note. - BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,1,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` - // The nullifier of the input note. - Nullifier []byte `protobuf:"bytes,3,opt,name=nullifier,proto3" json:"nullifier,omitempty"` - // The randomized validating key for the spend authorization signature. - Rk []byte `protobuf:"bytes,4,opt,name=rk,proto3" json:"rk,omitempty"` -} - -func (x *SpendBody) Reset() { - *x = SpendBody{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ActionPlan) GetSwap() *v1alpha14.SwapPlan { + if x, ok := x.GetAction().(*ActionPlan_Swap); ok { + return x.Swap } + return nil } -func (x *SpendBody) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SpendBody) ProtoMessage() {} - -func (x *SpendBody) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ActionPlan) GetSwapClaim() *v1alpha14.SwapClaimPlan { + if x, ok := x.GetAction().(*ActionPlan_SwapClaim); ok { + return x.SwapClaim } - return mi.MessageOf(x) -} - -// Deprecated: Use SpendBody.ProtoReflect.Descriptor instead. -func (*SpendBody) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{19} + return nil } -func (x *SpendBody) GetBalanceCommitment() *v1alpha1.BalanceCommitment { - if x != nil { - return x.BalanceCommitment +func (x *ActionPlan) GetValidatorDefinition() *v1alpha15.ValidatorDefinition { + if x, ok := x.GetAction().(*ActionPlan_ValidatorDefinition); ok { + return x.ValidatorDefinition } return nil } -func (x *SpendBody) GetNullifier() []byte { - if x != nil { - return x.Nullifier +func (x *ActionPlan) GetIbcAction() *v1alpha16.IbcAction { + if x, ok := x.GetAction().(*ActionPlan_IbcAction); ok { + return x.IbcAction } return nil } -func (x *SpendBody) GetRk() []byte { - if x != nil { - return x.Rk +func (x *ActionPlan) GetProposalSubmit() *v1alpha17.ProposalSubmit { + if x, ok := x.GetAction().(*ActionPlan_ProposalSubmit); ok { + return x.ProposalSubmit } return nil } -// Creates a new shielded note. -type Output struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The effecting data for the output. - Body *OutputBody `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` - // The output proof is authorizing data. - Proof *v1alpha1.ZKOutputProof `protobuf:"bytes,2,opt,name=proof,proto3" json:"proof,omitempty"` -} - -func (x *Output) Reset() { - *x = Output{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ActionPlan) GetProposalWithdraw() *v1alpha17.ProposalWithdraw { + if x, ok := x.GetAction().(*ActionPlan_ProposalWithdraw); ok { + return x.ProposalWithdraw } + return nil } -func (x *Output) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ActionPlan) GetValidatorVote() *v1alpha17.ValidatorVote { + if x, ok := x.GetAction().(*ActionPlan_ValidatorVote); ok { + return x.ValidatorVote + } + return nil } -func (*Output) ProtoMessage() {} - -func (x *Output) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ActionPlan) GetDelegatorVote() *v1alpha17.DelegatorVotePlan { + if x, ok := x.GetAction().(*ActionPlan_DelegatorVote); ok { + return x.DelegatorVote } - return mi.MessageOf(x) + return nil } -// Deprecated: Use Output.ProtoReflect.Descriptor instead. -func (*Output) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{20} +func (x *ActionPlan) GetProposalDepositClaim() *v1alpha17.ProposalDepositClaim { + if x, ok := x.GetAction().(*ActionPlan_ProposalDepositClaim); ok { + return x.ProposalDepositClaim + } + return nil } -func (x *Output) GetBody() *OutputBody { - if x != nil { - return x.Body +func (x *ActionPlan) GetWithdrawal() *v1alpha16.Ics20Withdrawal { + if x, ok := x.GetAction().(*ActionPlan_Withdrawal); ok { + return x.Withdrawal } return nil } -func (x *Output) GetProof() *v1alpha1.ZKOutputProof { - if x != nil { - return x.Proof +func (x *ActionPlan) GetPositionOpen() *v1alpha14.PositionOpen { + if x, ok := x.GetAction().(*ActionPlan_PositionOpen); ok { + return x.PositionOpen } return nil } -// The body of an output description, containing only the effecting data -// describing changes to the ledger, and not the authorizing data that allows -// those changes to be performed. -type OutputBody struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The minimal data required to scan and process the new output note. - NotePayload *v1alpha1.NotePayload `protobuf:"bytes,1,opt,name=note_payload,json=notePayload,proto3" json:"note_payload,omitempty"` - // A commitment to the value of the output note. 32 bytes. - BalanceCommitment *v1alpha1.BalanceCommitment `protobuf:"bytes,2,opt,name=balance_commitment,json=balanceCommitment,proto3" json:"balance_commitment,omitempty"` - // An encrypted key for decrypting the memo. - WrappedMemoKey []byte `protobuf:"bytes,3,opt,name=wrapped_memo_key,json=wrappedMemoKey,proto3" json:"wrapped_memo_key,omitempty"` - // The key material used for note encryption, wrapped in encryption to the - // sender's outgoing viewing key. 80 bytes. - OvkWrappedKey []byte `protobuf:"bytes,4,opt,name=ovk_wrapped_key,json=ovkWrappedKey,proto3" json:"ovk_wrapped_key,omitempty"` +func (x *ActionPlan) GetPositionClose() *v1alpha14.PositionClose { + if x, ok := x.GetAction().(*ActionPlan_PositionClose); ok { + return x.PositionClose + } + return nil } -func (x *OutputBody) Reset() { - *x = OutputBody{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ActionPlan) GetPositionWithdraw() *v1alpha14.PositionWithdrawPlan { + if x, ok := x.GetAction().(*ActionPlan_PositionWithdraw); ok { + return x.PositionWithdraw } + return nil } -func (x *OutputBody) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ActionPlan) GetPositionRewardClaim() *v1alpha14.PositionRewardClaimPlan { + if x, ok := x.GetAction().(*ActionPlan_PositionRewardClaim); ok { + return x.PositionRewardClaim + } + return nil } -func (*OutputBody) ProtoMessage() {} - -func (x *OutputBody) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ActionPlan) GetDelegate() *v1alpha15.Delegate { + if x, ok := x.GetAction().(*ActionPlan_Delegate); ok { + return x.Delegate } - return mi.MessageOf(x) + return nil } -// Deprecated: Use OutputBody.ProtoReflect.Descriptor instead. -func (*OutputBody) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{21} +func (x *ActionPlan) GetUndelegate() *v1alpha15.Undelegate { + if x, ok := x.GetAction().(*ActionPlan_Undelegate); ok { + return x.Undelegate + } + return nil } -func (x *OutputBody) GetNotePayload() *v1alpha1.NotePayload { - if x != nil { - return x.NotePayload +func (x *ActionPlan) GetUndelegateClaim() *v1alpha15.UndelegateClaimPlan { + if x, ok := x.GetAction().(*ActionPlan_UndelegateClaim); ok { + return x.UndelegateClaim } return nil } -func (x *OutputBody) GetBalanceCommitment() *v1alpha1.BalanceCommitment { - if x != nil { - return x.BalanceCommitment +func (x *ActionPlan) GetDaoSpend() *v1alpha17.DaoSpend { + if x, ok := x.GetAction().(*ActionPlan_DaoSpend); ok { + return x.DaoSpend } return nil } -func (x *OutputBody) GetWrappedMemoKey() []byte { - if x != nil { - return x.WrappedMemoKey +func (x *ActionPlan) GetDaoOutput() *v1alpha17.DaoOutput { + if x, ok := x.GetAction().(*ActionPlan_DaoOutput); ok { + return x.DaoOutput } return nil } -func (x *OutputBody) GetOvkWrappedKey() []byte { - if x != nil { - return x.OvkWrappedKey +func (x *ActionPlan) GetDaoDeposit() *v1alpha17.DaoDeposit { + if x, ok := x.GetAction().(*ActionPlan_DaoDeposit); ok { + return x.DaoDeposit } return nil } -// The data required to authorize a transaction plan. -type AuthorizationData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The computed auth hash for the approved transaction plan. - EffectHash *v1alpha1.EffectHash `protobuf:"bytes,1,opt,name=effect_hash,json=effectHash,proto3" json:"effect_hash,omitempty"` - // The required spend authorizations, returned in the same order as the - // Spend actions in the original request. - SpendAuths []*v1alpha1.SpendAuthSignature `protobuf:"bytes,2,rep,name=spend_auths,json=spendAuths,proto3" json:"spend_auths,omitempty"` - // The required delegator vote authorizations, returned in the same order as the - // DelegatorVote actions in the original request. - DelegatorVoteAuths []*v1alpha1.SpendAuthSignature `protobuf:"bytes,3,rep,name=delegator_vote_auths,json=delegatorVoteAuths,proto3" json:"delegator_vote_auths,omitempty"` +type isActionPlan_Action interface { + isActionPlan_Action() } -func (x *AuthorizationData) Reset() { - *x = AuthorizationData{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +type ActionPlan_Spend struct { + Spend *v1alpha13.SpendPlan `protobuf:"bytes,1,opt,name=spend,proto3,oneof"` } -func (x *AuthorizationData) String() string { - return protoimpl.X.MessageStringOf(x) +type ActionPlan_Output struct { + Output *v1alpha13.OutputPlan `protobuf:"bytes,2,opt,name=output,proto3,oneof"` } -func (*AuthorizationData) ProtoMessage() {} - -func (x *AuthorizationData) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[22] - 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) +type ActionPlan_Swap struct { + Swap *v1alpha14.SwapPlan `protobuf:"bytes,3,opt,name=swap,proto3,oneof"` } -// Deprecated: Use AuthorizationData.ProtoReflect.Descriptor instead. -func (*AuthorizationData) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{22} +type ActionPlan_SwapClaim struct { + SwapClaim *v1alpha14.SwapClaimPlan `protobuf:"bytes,4,opt,name=swap_claim,json=swapClaim,proto3,oneof"` } -func (x *AuthorizationData) GetEffectHash() *v1alpha1.EffectHash { - if x != nil { - return x.EffectHash - } - return nil +type ActionPlan_ValidatorDefinition struct { + // This is just a message relayed to the chain. + ValidatorDefinition *v1alpha15.ValidatorDefinition `protobuf:"bytes,16,opt,name=validator_definition,json=validatorDefinition,proto3,oneof"` } -func (x *AuthorizationData) GetSpendAuths() []*v1alpha1.SpendAuthSignature { - if x != nil { - return x.SpendAuths - } - return nil -} - -func (x *AuthorizationData) GetDelegatorVoteAuths() []*v1alpha1.SpendAuthSignature { - if x != nil { - return x.DelegatorVoteAuths - } - return nil -} - -// The data required for proving when building a transaction from a plan. -type WitnessData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The anchor for the state transition proofs. - Anchor *v1alpha1.MerkleRoot `protobuf:"bytes,1,opt,name=anchor,proto3" json:"anchor,omitempty"` - // The auth paths for the notes the transaction spends, in the - // same order as the spends in the transaction plan. - StateCommitmentProofs []*v1alpha1.StateCommitmentProof `protobuf:"bytes,2,rep,name=state_commitment_proofs,json=stateCommitmentProofs,proto3" json:"state_commitment_proofs,omitempty"` -} - -func (x *WitnessData) Reset() { - *x = WitnessData{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WitnessData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WitnessData) ProtoMessage() {} - -func (x *WitnessData) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[23] - 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 WitnessData.ProtoReflect.Descriptor instead. -func (*WitnessData) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{23} -} - -func (x *WitnessData) GetAnchor() *v1alpha1.MerkleRoot { - if x != nil { - return x.Anchor - } - return nil -} - -func (x *WitnessData) GetStateCommitmentProofs() []*v1alpha1.StateCommitmentProof { - if x != nil { - return x.StateCommitmentProofs - } - return nil -} - -// Describes a planned transaction. Permits clients to prepare a transaction -// prior submission, so that a user can review it prior to authorizing its execution. -type TransactionPlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The planner interface(s) for Actions to be performed, such as a Spend, Swap, - // or Delegation. See the ActionPlan docs for a full list of options. - Actions []*ActionPlan `protobuf:"bytes,1,rep,name=actions,proto3" json:"actions,omitempty"` - // Time, as block height, after which TransactionPlan should be considered invalid. - ExpiryHeight uint64 `protobuf:"varint,2,opt,name=expiry_height,json=expiryHeight,proto3" json:"expiry_height,omitempty"` - // The name of the network for which this TransactionPlan was built. - ChainId string `protobuf:"bytes,3,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - Fee *v1alpha1.Fee `protobuf:"bytes,4,opt,name=fee,proto3" json:"fee,omitempty"` - CluePlans []*CluePlan `protobuf:"bytes,5,rep,name=clue_plans,json=cluePlans,proto3" json:"clue_plans,omitempty"` - // Planning interface for constructing an optional Memo for the Transaction. - MemoPlan *MemoPlan `protobuf:"bytes,6,opt,name=memo_plan,json=memoPlan,proto3" json:"memo_plan,omitempty"` -} - -func (x *TransactionPlan) Reset() { - *x = TransactionPlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TransactionPlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TransactionPlan) ProtoMessage() {} - -func (x *TransactionPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[24] - 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 TransactionPlan.ProtoReflect.Descriptor instead. -func (*TransactionPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{24} -} - -func (x *TransactionPlan) GetActions() []*ActionPlan { - if x != nil { - return x.Actions - } - return nil -} - -func (x *TransactionPlan) GetExpiryHeight() uint64 { - if x != nil { - return x.ExpiryHeight - } - return 0 -} - -func (x *TransactionPlan) GetChainId() string { - if x != nil { - return x.ChainId - } - return "" -} - -func (x *TransactionPlan) GetFee() *v1alpha1.Fee { - if x != nil { - return x.Fee - } - return nil -} - -func (x *TransactionPlan) GetCluePlans() []*CluePlan { - if x != nil { - return x.CluePlans - } - return nil -} - -func (x *TransactionPlan) GetMemoPlan() *MemoPlan { - if x != nil { - return x.MemoPlan - } - return nil -} - -// Describes a planned transaction action. -// -// Some transaction Actions don't have any private data and are treated as being plans -// themselves. -type ActionPlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Action: - // - // *ActionPlan_Spend - // *ActionPlan_Output - // *ActionPlan_Swap - // *ActionPlan_SwapClaim - // *ActionPlan_ValidatorDefinition - // *ActionPlan_IbcAction - // *ActionPlan_ProposalSubmit - // *ActionPlan_ProposalWithdraw - // *ActionPlan_ValidatorVote - // *ActionPlan_DelegatorVote - // *ActionPlan_ProposalDepositClaim - // *ActionPlan_Withdrawal - // *ActionPlan_PositionOpen - // *ActionPlan_PositionClose - // *ActionPlan_PositionWithdraw - // *ActionPlan_PositionRewardClaim - // *ActionPlan_Delegate - // *ActionPlan_Undelegate - // *ActionPlan_UndelegateClaim - // *ActionPlan_DaoSpend - // *ActionPlan_DaoOutput - // *ActionPlan_DaoDeposit - Action isActionPlan_Action `protobuf_oneof:"action"` -} - -func (x *ActionPlan) Reset() { - *x = ActionPlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ActionPlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ActionPlan) ProtoMessage() {} - -func (x *ActionPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[25] - 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 ActionPlan.ProtoReflect.Descriptor instead. -func (*ActionPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{25} -} - -func (m *ActionPlan) GetAction() isActionPlan_Action { - if m != nil { - return m.Action - } - return nil -} - -func (x *ActionPlan) GetSpend() *SpendPlan { - if x, ok := x.GetAction().(*ActionPlan_Spend); ok { - return x.Spend - } - return nil -} - -func (x *ActionPlan) GetOutput() *OutputPlan { - if x, ok := x.GetAction().(*ActionPlan_Output); ok { - return x.Output - } - return nil -} - -func (x *ActionPlan) GetSwap() *v1alpha11.SwapPlan { - if x, ok := x.GetAction().(*ActionPlan_Swap); ok { - return x.Swap - } - return nil -} - -func (x *ActionPlan) GetSwapClaim() *v1alpha11.SwapClaimPlan { - if x, ok := x.GetAction().(*ActionPlan_SwapClaim); ok { - return x.SwapClaim - } - return nil -} - -func (x *ActionPlan) GetValidatorDefinition() *v1alpha12.ValidatorDefinition { - if x, ok := x.GetAction().(*ActionPlan_ValidatorDefinition); ok { - return x.ValidatorDefinition - } - return nil -} - -func (x *ActionPlan) GetIbcAction() *v1alpha13.IbcAction { - if x, ok := x.GetAction().(*ActionPlan_IbcAction); ok { - return x.IbcAction - } - return nil -} - -func (x *ActionPlan) GetProposalSubmit() *v1alpha14.ProposalSubmit { - if x, ok := x.GetAction().(*ActionPlan_ProposalSubmit); ok { - return x.ProposalSubmit - } - return nil -} - -func (x *ActionPlan) GetProposalWithdraw() *v1alpha14.ProposalWithdraw { - if x, ok := x.GetAction().(*ActionPlan_ProposalWithdraw); ok { - return x.ProposalWithdraw - } - return nil -} - -func (x *ActionPlan) GetValidatorVote() *v1alpha14.ValidatorVote { - if x, ok := x.GetAction().(*ActionPlan_ValidatorVote); ok { - return x.ValidatorVote - } - return nil -} - -func (x *ActionPlan) GetDelegatorVote() *v1alpha14.DelegatorVotePlan { - if x, ok := x.GetAction().(*ActionPlan_DelegatorVote); ok { - return x.DelegatorVote - } - return nil -} - -func (x *ActionPlan) GetProposalDepositClaim() *v1alpha14.ProposalDepositClaim { - if x, ok := x.GetAction().(*ActionPlan_ProposalDepositClaim); ok { - return x.ProposalDepositClaim - } - return nil -} - -func (x *ActionPlan) GetWithdrawal() *v1alpha13.Ics20Withdrawal { - if x, ok := x.GetAction().(*ActionPlan_Withdrawal); ok { - return x.Withdrawal - } - return nil -} - -func (x *ActionPlan) GetPositionOpen() *v1alpha11.PositionOpen { - if x, ok := x.GetAction().(*ActionPlan_PositionOpen); ok { - return x.PositionOpen - } - return nil -} - -func (x *ActionPlan) GetPositionClose() *v1alpha11.PositionClose { - if x, ok := x.GetAction().(*ActionPlan_PositionClose); ok { - return x.PositionClose - } - return nil -} - -func (x *ActionPlan) GetPositionWithdraw() *v1alpha11.PositionWithdrawPlan { - if x, ok := x.GetAction().(*ActionPlan_PositionWithdraw); ok { - return x.PositionWithdraw - } - return nil -} - -func (x *ActionPlan) GetPositionRewardClaim() *v1alpha11.PositionRewardClaimPlan { - if x, ok := x.GetAction().(*ActionPlan_PositionRewardClaim); ok { - return x.PositionRewardClaim - } - return nil -} - -func (x *ActionPlan) GetDelegate() *v1alpha12.Delegate { - if x, ok := x.GetAction().(*ActionPlan_Delegate); ok { - return x.Delegate - } - return nil -} - -func (x *ActionPlan) GetUndelegate() *v1alpha12.Undelegate { - if x, ok := x.GetAction().(*ActionPlan_Undelegate); ok { - return x.Undelegate - } - return nil -} - -func (x *ActionPlan) GetUndelegateClaim() *v1alpha12.UndelegateClaimPlan { - if x, ok := x.GetAction().(*ActionPlan_UndelegateClaim); ok { - return x.UndelegateClaim - } - return nil -} - -func (x *ActionPlan) GetDaoSpend() *v1alpha14.DaoSpend { - if x, ok := x.GetAction().(*ActionPlan_DaoSpend); ok { - return x.DaoSpend - } - return nil -} - -func (x *ActionPlan) GetDaoOutput() *v1alpha14.DaoOutput { - if x, ok := x.GetAction().(*ActionPlan_DaoOutput); ok { - return x.DaoOutput - } - return nil -} - -func (x *ActionPlan) GetDaoDeposit() *v1alpha14.DaoDeposit { - if x, ok := x.GetAction().(*ActionPlan_DaoDeposit); ok { - return x.DaoDeposit - } - return nil -} - -type isActionPlan_Action interface { - isActionPlan_Action() -} - -type ActionPlan_Spend struct { - Spend *SpendPlan `protobuf:"bytes,1,opt,name=spend,proto3,oneof"` -} - -type ActionPlan_Output struct { - Output *OutputPlan `protobuf:"bytes,2,opt,name=output,proto3,oneof"` -} - -type ActionPlan_Swap struct { - Swap *v1alpha11.SwapPlan `protobuf:"bytes,3,opt,name=swap,proto3,oneof"` -} - -type ActionPlan_SwapClaim struct { - SwapClaim *v1alpha11.SwapClaimPlan `protobuf:"bytes,4,opt,name=swap_claim,json=swapClaim,proto3,oneof"` -} - -type ActionPlan_ValidatorDefinition struct { - // This is just a message relayed to the chain. - ValidatorDefinition *v1alpha12.ValidatorDefinition `protobuf:"bytes,16,opt,name=validator_definition,json=validatorDefinition,proto3,oneof"` -} - -type ActionPlan_IbcAction struct { - // This is just a message relayed to the chain. - IbcAction *v1alpha13.IbcAction `protobuf:"bytes,17,opt,name=ibc_action,json=ibcAction,proto3,oneof"` -} - -type ActionPlan_ProposalSubmit struct { - // Governance: - ProposalSubmit *v1alpha14.ProposalSubmit `protobuf:"bytes,18,opt,name=proposal_submit,json=proposalSubmit,proto3,oneof"` -} - -type ActionPlan_ProposalWithdraw struct { - ProposalWithdraw *v1alpha14.ProposalWithdraw `protobuf:"bytes,19,opt,name=proposal_withdraw,json=proposalWithdraw,proto3,oneof"` -} - -type ActionPlan_ValidatorVote struct { - ValidatorVote *v1alpha14.ValidatorVote `protobuf:"bytes,20,opt,name=validator_vote,json=validatorVote,proto3,oneof"` -} - -type ActionPlan_DelegatorVote struct { - DelegatorVote *v1alpha14.DelegatorVotePlan `protobuf:"bytes,21,opt,name=delegator_vote,json=delegatorVote,proto3,oneof"` -} - -type ActionPlan_ProposalDepositClaim struct { - ProposalDepositClaim *v1alpha14.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof"` -} - -type ActionPlan_Withdrawal struct { - Withdrawal *v1alpha13.Ics20Withdrawal `protobuf:"bytes,23,opt,name=withdrawal,proto3,oneof"` -} - -type ActionPlan_PositionOpen struct { - PositionOpen *v1alpha11.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof"` -} - -type ActionPlan_PositionClose struct { - PositionClose *v1alpha11.PositionClose `protobuf:"bytes,31,opt,name=position_close,json=positionClose,proto3,oneof"` -} - -type ActionPlan_PositionWithdraw struct { - // The position withdraw/reward claim actions require balance information so they have Plan types. - PositionWithdraw *v1alpha11.PositionWithdrawPlan `protobuf:"bytes,32,opt,name=position_withdraw,json=positionWithdraw,proto3,oneof"` -} - -type ActionPlan_PositionRewardClaim struct { - PositionRewardClaim *v1alpha11.PositionRewardClaimPlan `protobuf:"bytes,34,opt,name=position_reward_claim,json=positionRewardClaim,proto3,oneof"` -} - -type ActionPlan_Delegate struct { - // We don't need any extra information (yet) to understand delegations, - // because we don't yet use flow encryption. - Delegate *v1alpha12.Delegate `protobuf:"bytes,40,opt,name=delegate,proto3,oneof"` -} - -type ActionPlan_Undelegate struct { - // We don't need any extra information (yet) to understand undelegations, - // because we don't yet use flow encryption. - Undelegate *v1alpha12.Undelegate `protobuf:"bytes,41,opt,name=undelegate,proto3,oneof"` -} - -type ActionPlan_UndelegateClaim struct { - UndelegateClaim *v1alpha12.UndelegateClaimPlan `protobuf:"bytes,42,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof"` -} - -type ActionPlan_DaoSpend struct { - // DAO - DaoSpend *v1alpha14.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof"` -} - -type ActionPlan_DaoOutput struct { - DaoOutput *v1alpha14.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof"` -} - -type ActionPlan_DaoDeposit struct { - DaoDeposit *v1alpha14.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof"` -} - -func (*ActionPlan_Spend) isActionPlan_Action() {} - -func (*ActionPlan_Output) isActionPlan_Action() {} - -func (*ActionPlan_Swap) isActionPlan_Action() {} - -func (*ActionPlan_SwapClaim) isActionPlan_Action() {} - -func (*ActionPlan_ValidatorDefinition) isActionPlan_Action() {} - -func (*ActionPlan_IbcAction) isActionPlan_Action() {} - -func (*ActionPlan_ProposalSubmit) isActionPlan_Action() {} - -func (*ActionPlan_ProposalWithdraw) isActionPlan_Action() {} - -func (*ActionPlan_ValidatorVote) isActionPlan_Action() {} - -func (*ActionPlan_DelegatorVote) isActionPlan_Action() {} - -func (*ActionPlan_ProposalDepositClaim) isActionPlan_Action() {} - -func (*ActionPlan_Withdrawal) isActionPlan_Action() {} - -func (*ActionPlan_PositionOpen) isActionPlan_Action() {} - -func (*ActionPlan_PositionClose) isActionPlan_Action() {} - -func (*ActionPlan_PositionWithdraw) isActionPlan_Action() {} - -func (*ActionPlan_PositionRewardClaim) isActionPlan_Action() {} - -func (*ActionPlan_Delegate) isActionPlan_Action() {} - -func (*ActionPlan_Undelegate) isActionPlan_Action() {} - -func (*ActionPlan_UndelegateClaim) isActionPlan_Action() {} - -func (*ActionPlan_DaoSpend) isActionPlan_Action() {} - -func (*ActionPlan_DaoOutput) isActionPlan_Action() {} - -func (*ActionPlan_DaoDeposit) isActionPlan_Action() {} - -// Describes a plan for forming a `Clue`. -type CluePlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The address. - Address *v1alpha1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - // The random seed to use for the clue plan. - Rseed []byte `protobuf:"bytes,2,opt,name=rseed,proto3" json:"rseed,omitempty"` - // The bits of precision. - PrecisionBits uint64 `protobuf:"varint,3,opt,name=precision_bits,json=precisionBits,proto3" json:"precision_bits,omitempty"` -} - -func (x *CluePlan) Reset() { - *x = CluePlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CluePlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CluePlan) ProtoMessage() {} - -func (x *CluePlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[26] - 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 CluePlan.ProtoReflect.Descriptor instead. -func (*CluePlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{26} -} - -func (x *CluePlan) GetAddress() *v1alpha1.Address { - if x != nil { - return x.Address - } - return nil -} - -func (x *CluePlan) GetRseed() []byte { - if x != nil { - return x.Rseed - } - return nil -} - -func (x *CluePlan) GetPrecisionBits() uint64 { - if x != nil { - return x.PrecisionBits - } - return 0 -} - -// Describes a plan for forming a `Memo`. -type MemoPlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The plaintext. - Plaintext *MemoPlaintext `protobuf:"bytes,1,opt,name=plaintext,proto3" json:"plaintext,omitempty"` - // The key to use to encrypt the memo. - Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` -} - -func (x *MemoPlan) Reset() { - *x = MemoPlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemoPlan) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemoPlan) ProtoMessage() {} - -func (x *MemoPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[27] - 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 MemoPlan.ProtoReflect.Descriptor instead. -func (*MemoPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{27} -} - -func (x *MemoPlan) GetPlaintext() *MemoPlaintext { - if x != nil { - return x.Plaintext - } - return nil -} - -func (x *MemoPlan) GetKey() []byte { - if x != nil { - return x.Key - } - return nil -} - -type MemoCiphertext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` -} - -func (x *MemoCiphertext) Reset() { - *x = MemoCiphertext{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemoCiphertext) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemoCiphertext) ProtoMessage() {} - -func (x *MemoCiphertext) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[28] - 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 MemoCiphertext.ProtoReflect.Descriptor instead. -func (*MemoCiphertext) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{28} -} - -func (x *MemoCiphertext) GetInner() []byte { - if x != nil { - return x.Inner - } - return nil -} - -type MemoPlaintext struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Sender *v1alpha1.Address `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` -} - -func (x *MemoPlaintext) Reset() { - *x = MemoPlaintext{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemoPlaintext) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemoPlaintext) ProtoMessage() {} - -func (x *MemoPlaintext) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[29] - 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 MemoPlaintext.ProtoReflect.Descriptor instead. -func (*MemoPlaintext) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{29} -} - -func (x *MemoPlaintext) GetSender() *v1alpha1.Address { - if x != nil { - return x.Sender - } - return nil -} - -func (x *MemoPlaintext) GetText() string { - if x != nil { - return x.Text - } - return "" -} - -type MemoView struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to MemoView: - // - // *MemoView_Visible_ - // *MemoView_Opaque_ - MemoView isMemoView_MemoView `protobuf_oneof:"memo_view"` -} - -func (x *MemoView) Reset() { - *x = MemoView{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MemoView) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MemoView) ProtoMessage() {} - -func (x *MemoView) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[30] - 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 MemoView.ProtoReflect.Descriptor instead. -func (*MemoView) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{30} +type ActionPlan_IbcAction struct { + // This is just a message relayed to the chain. + IbcAction *v1alpha16.IbcAction `protobuf:"bytes,17,opt,name=ibc_action,json=ibcAction,proto3,oneof"` } -func (m *MemoView) GetMemoView() isMemoView_MemoView { - if m != nil { - return m.MemoView - } - return nil +type ActionPlan_ProposalSubmit struct { + // Governance: + ProposalSubmit *v1alpha17.ProposalSubmit `protobuf:"bytes,18,opt,name=proposal_submit,json=proposalSubmit,proto3,oneof"` } -func (x *MemoView) GetVisible() *MemoView_Visible { - if x, ok := x.GetMemoView().(*MemoView_Visible_); ok { - return x.Visible - } - return nil +type ActionPlan_ProposalWithdraw struct { + ProposalWithdraw *v1alpha17.ProposalWithdraw `protobuf:"bytes,19,opt,name=proposal_withdraw,json=proposalWithdraw,proto3,oneof"` } -func (x *MemoView) GetOpaque() *MemoView_Opaque { - if x, ok := x.GetMemoView().(*MemoView_Opaque_); ok { - return x.Opaque - } - return nil +type ActionPlan_ValidatorVote struct { + ValidatorVote *v1alpha17.ValidatorVote `protobuf:"bytes,20,opt,name=validator_vote,json=validatorVote,proto3,oneof"` } -type isMemoView_MemoView interface { - isMemoView_MemoView() +type ActionPlan_DelegatorVote struct { + DelegatorVote *v1alpha17.DelegatorVotePlan `protobuf:"bytes,21,opt,name=delegator_vote,json=delegatorVote,proto3,oneof"` } -type MemoView_Visible_ struct { - Visible *MemoView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` +type ActionPlan_ProposalDepositClaim struct { + ProposalDepositClaim *v1alpha17.ProposalDepositClaim `protobuf:"bytes,22,opt,name=proposal_deposit_claim,json=proposalDepositClaim,proto3,oneof"` } -type MemoView_Opaque_ struct { - Opaque *MemoView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` +type ActionPlan_Withdrawal struct { + Withdrawal *v1alpha16.Ics20Withdrawal `protobuf:"bytes,23,opt,name=withdrawal,proto3,oneof"` } -func (*MemoView_Visible_) isMemoView_MemoView() {} - -func (*MemoView_Opaque_) isMemoView_MemoView() {} - -type SpendPlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The plaintext note we plan to spend. - Note *v1alpha1.Note `protobuf:"bytes,1,opt,name=note,proto3" json:"note,omitempty"` - // The position of the note we plan to spend. - Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` - // The randomizer to use for the spend. - Randomizer []byte `protobuf:"bytes,3,opt,name=randomizer,proto3" json:"randomizer,omitempty"` - // The blinding factor to use for the value commitment. - ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` - // The first blinding factor to use for the ZK spend proof. - ProofBlindingR []byte `protobuf:"bytes,5,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` - // The second blinding factor to use for the ZK spend proof. - ProofBlindingS []byte `protobuf:"bytes,6,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` -} - -func (x *SpendPlan) Reset() { - *x = SpendPlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +type ActionPlan_PositionOpen struct { + PositionOpen *v1alpha14.PositionOpen `protobuf:"bytes,30,opt,name=position_open,json=positionOpen,proto3,oneof"` } -func (x *SpendPlan) String() string { - return protoimpl.X.MessageStringOf(x) +type ActionPlan_PositionClose struct { + PositionClose *v1alpha14.PositionClose `protobuf:"bytes,31,opt,name=position_close,json=positionClose,proto3,oneof"` } -func (*SpendPlan) ProtoMessage() {} - -func (x *SpendPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[31] - 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) +type ActionPlan_PositionWithdraw struct { + // The position withdraw/reward claim actions require balance information so they have Plan types. + PositionWithdraw *v1alpha14.PositionWithdrawPlan `protobuf:"bytes,32,opt,name=position_withdraw,json=positionWithdraw,proto3,oneof"` } -// Deprecated: Use SpendPlan.ProtoReflect.Descriptor instead. -func (*SpendPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{31} +type ActionPlan_PositionRewardClaim struct { + PositionRewardClaim *v1alpha14.PositionRewardClaimPlan `protobuf:"bytes,34,opt,name=position_reward_claim,json=positionRewardClaim,proto3,oneof"` } -func (x *SpendPlan) GetNote() *v1alpha1.Note { - if x != nil { - return x.Note - } - return nil +type ActionPlan_Delegate struct { + // We don't need any extra information (yet) to understand delegations, + // because we don't yet use flow encryption. + Delegate *v1alpha15.Delegate `protobuf:"bytes,40,opt,name=delegate,proto3,oneof"` } -func (x *SpendPlan) GetPosition() uint64 { - if x != nil { - return x.Position - } - return 0 +type ActionPlan_Undelegate struct { + // We don't need any extra information (yet) to understand undelegations, + // because we don't yet use flow encryption. + Undelegate *v1alpha15.Undelegate `protobuf:"bytes,41,opt,name=undelegate,proto3,oneof"` } -func (x *SpendPlan) GetRandomizer() []byte { - if x != nil { - return x.Randomizer - } - return nil +type ActionPlan_UndelegateClaim struct { + UndelegateClaim *v1alpha15.UndelegateClaimPlan `protobuf:"bytes,42,opt,name=undelegate_claim,json=undelegateClaim,proto3,oneof"` } -func (x *SpendPlan) GetValueBlinding() []byte { - if x != nil { - return x.ValueBlinding - } - return nil +type ActionPlan_DaoSpend struct { + // DAO + DaoSpend *v1alpha17.DaoSpend `protobuf:"bytes,50,opt,name=dao_spend,json=daoSpend,proto3,oneof"` } -func (x *SpendPlan) GetProofBlindingR() []byte { - if x != nil { - return x.ProofBlindingR - } - return nil +type ActionPlan_DaoOutput struct { + DaoOutput *v1alpha17.DaoOutput `protobuf:"bytes,51,opt,name=dao_output,json=daoOutput,proto3,oneof"` } -func (x *SpendPlan) GetProofBlindingS() []byte { - if x != nil { - return x.ProofBlindingS - } - return nil +type ActionPlan_DaoDeposit struct { + DaoDeposit *v1alpha17.DaoDeposit `protobuf:"bytes,52,opt,name=dao_deposit,json=daoDeposit,proto3,oneof"` } -type OutputPlan struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The value to send to this output. - Value *v1alpha1.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` - // The destination address to send it to. - DestAddress *v1alpha1.Address `protobuf:"bytes,2,opt,name=dest_address,json=destAddress,proto3" json:"dest_address,omitempty"` - // The rseed to use for the new note. - Rseed []byte `protobuf:"bytes,3,opt,name=rseed,proto3" json:"rseed,omitempty"` - // The blinding factor to use for the value commitment. - ValueBlinding []byte `protobuf:"bytes,4,opt,name=value_blinding,json=valueBlinding,proto3" json:"value_blinding,omitempty"` - // The first blinding factor to use for the ZK output proof. - ProofBlindingR []byte `protobuf:"bytes,5,opt,name=proof_blinding_r,json=proofBlindingR,proto3" json:"proof_blinding_r,omitempty"` - // The second blinding factor to use for the ZK output proof. - ProofBlindingS []byte `protobuf:"bytes,6,opt,name=proof_blinding_s,json=proofBlindingS,proto3" json:"proof_blinding_s,omitempty"` -} - -func (x *OutputPlan) Reset() { - *x = OutputPlan{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} +func (*ActionPlan_Spend) isActionPlan_Action() {} -func (x *OutputPlan) String() string { - return protoimpl.X.MessageStringOf(x) -} +func (*ActionPlan_Output) isActionPlan_Action() {} -func (*OutputPlan) ProtoMessage() {} +func (*ActionPlan_Swap) isActionPlan_Action() {} -func (x *OutputPlan) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[32] - 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) -} +func (*ActionPlan_SwapClaim) isActionPlan_Action() {} -// Deprecated: Use OutputPlan.ProtoReflect.Descriptor instead. -func (*OutputPlan) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{32} -} +func (*ActionPlan_ValidatorDefinition) isActionPlan_Action() {} -func (x *OutputPlan) GetValue() *v1alpha1.Value { - if x != nil { - return x.Value - } - return nil -} +func (*ActionPlan_IbcAction) isActionPlan_Action() {} -func (x *OutputPlan) GetDestAddress() *v1alpha1.Address { - if x != nil { - return x.DestAddress - } - return nil -} +func (*ActionPlan_ProposalSubmit) isActionPlan_Action() {} -func (x *OutputPlan) GetRseed() []byte { - if x != nil { - return x.Rseed - } - return nil -} +func (*ActionPlan_ProposalWithdraw) isActionPlan_Action() {} -func (x *OutputPlan) GetValueBlinding() []byte { - if x != nil { - return x.ValueBlinding - } - return nil -} +func (*ActionPlan_ValidatorVote) isActionPlan_Action() {} -func (x *OutputPlan) GetProofBlindingR() []byte { - if x != nil { - return x.ProofBlindingR - } - return nil -} +func (*ActionPlan_DelegatorVote) isActionPlan_Action() {} -func (x *OutputPlan) GetProofBlindingS() []byte { - if x != nil { - return x.ProofBlindingS - } - return nil -} +func (*ActionPlan_ProposalDepositClaim) isActionPlan_Action() {} -type GasPrices struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (*ActionPlan_Withdrawal) isActionPlan_Action() {} - // The price per unit block space in terms of the staking token. - BlockSpacePrice uint64 `protobuf:"varint,1,opt,name=block_space_price,json=blockSpacePrice,proto3" json:"block_space_price,omitempty"` - // The price per unit compact block space in terms of the staking token. - CompactBlockSpacePrice uint64 `protobuf:"varint,2,opt,name=compact_block_space_price,json=compactBlockSpacePrice,proto3" json:"compact_block_space_price,omitempty"` - // The price per unit verification cost in terms of the staking token. - VerificationPrice uint64 `protobuf:"varint,3,opt,name=verification_price,json=verificationPrice,proto3" json:"verification_price,omitempty"` - // The price per unit execution cost in terms of the staking token. - ExecutionPrice uint64 `protobuf:"varint,4,opt,name=execution_price,json=executionPrice,proto3" json:"execution_price,omitempty"` -} +func (*ActionPlan_PositionOpen) isActionPlan_Action() {} -func (x *GasPrices) Reset() { - *x = GasPrices{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} +func (*ActionPlan_PositionClose) isActionPlan_Action() {} -func (x *GasPrices) String() string { - return protoimpl.X.MessageStringOf(x) -} +func (*ActionPlan_PositionWithdraw) isActionPlan_Action() {} -func (*GasPrices) ProtoMessage() {} +func (*ActionPlan_PositionRewardClaim) isActionPlan_Action() {} -func (x *GasPrices) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[33] - 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) -} +func (*ActionPlan_Delegate) isActionPlan_Action() {} -// Deprecated: Use GasPrices.ProtoReflect.Descriptor instead. -func (*GasPrices) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{33} -} +func (*ActionPlan_Undelegate) isActionPlan_Action() {} -func (x *GasPrices) GetBlockSpacePrice() uint64 { - if x != nil { - return x.BlockSpacePrice - } - return 0 -} +func (*ActionPlan_UndelegateClaim) isActionPlan_Action() {} -func (x *GasPrices) GetCompactBlockSpacePrice() uint64 { - if x != nil { - return x.CompactBlockSpacePrice - } - return 0 -} +func (*ActionPlan_DaoSpend) isActionPlan_Action() {} -func (x *GasPrices) GetVerificationPrice() uint64 { - if x != nil { - return x.VerificationPrice - } - return 0 -} +func (*ActionPlan_DaoOutput) isActionPlan_Action() {} -func (x *GasPrices) GetExecutionPrice() uint64 { - if x != nil { - return x.ExecutionPrice - } - return 0 -} +func (*ActionPlan_DaoDeposit) isActionPlan_Action() {} -type SpendView_Visible struct { +// Describes a plan for forming a `Clue`. +type CluePlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3" json:"spend,omitempty"` - Note *v1alpha1.NoteView `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + // The address. + Address *v1alpha18.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // The random seed to use for the clue plan. + Rseed []byte `protobuf:"bytes,2,opt,name=rseed,proto3" json:"rseed,omitempty"` + // The bits of precision. + PrecisionBits uint64 `protobuf:"varint,3,opt,name=precision_bits,json=precisionBits,proto3" json:"precision_bits,omitempty"` } -func (x *SpendView_Visible) Reset() { - *x = SpendView_Visible{} +func (x *CluePlan) Reset() { + *x = CluePlan{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[34] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SpendView_Visible) String() string { +func (x *CluePlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SpendView_Visible) ProtoMessage() {} +func (*CluePlan) ProtoMessage() {} -func (x *SpendView_Visible) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[34] +func (x *CluePlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3289,50 +2124,61 @@ func (x *SpendView_Visible) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SpendView_Visible.ProtoReflect.Descriptor instead. -func (*SpendView_Visible) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{15, 0} +// Deprecated: Use CluePlan.ProtoReflect.Descriptor instead. +func (*CluePlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{17} } -func (x *SpendView_Visible) GetSpend() *Spend { +func (x *CluePlan) GetAddress() *v1alpha18.Address { if x != nil { - return x.Spend + return x.Address } return nil } -func (x *SpendView_Visible) GetNote() *v1alpha1.NoteView { +func (x *CluePlan) GetRseed() []byte { if x != nil { - return x.Note + return x.Rseed } return nil } -type SpendView_Opaque struct { +func (x *CluePlan) GetPrecisionBits() uint64 { + if x != nil { + return x.PrecisionBits + } + return 0 +} + +// Describes a plan for forming a `Memo`. +type MemoPlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Spend *Spend `protobuf:"bytes,1,opt,name=spend,proto3" json:"spend,omitempty"` + // The plaintext. + Plaintext *MemoPlaintext `protobuf:"bytes,1,opt,name=plaintext,proto3" json:"plaintext,omitempty"` + // The key to use to encrypt the memo. + Key []byte `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` } -func (x *SpendView_Opaque) Reset() { - *x = SpendView_Opaque{} +func (x *MemoPlan) Reset() { + *x = MemoPlan{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[35] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SpendView_Opaque) String() string { +func (x *MemoPlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SpendView_Opaque) ProtoMessage() {} +func (*MemoPlan) ProtoMessage() {} -func (x *SpendView_Opaque) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[35] +func (x *MemoPlan) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3343,44 +2189,50 @@ func (x *SpendView_Opaque) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SpendView_Opaque.ProtoReflect.Descriptor instead. -func (*SpendView_Opaque) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{15, 1} +// Deprecated: Use MemoPlan.ProtoReflect.Descriptor instead. +func (*MemoPlan) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{18} } -func (x *SpendView_Opaque) GetSpend() *Spend { +func (x *MemoPlan) GetPlaintext() *MemoPlaintext { if x != nil { - return x.Spend + return x.Plaintext + } + return nil +} + +func (x *MemoPlan) GetKey() []byte { + if x != nil { + return x.Key } return nil } -type DelegatorVoteView_Visible struct { +type MemoCiphertext struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DelegatorVote *v1alpha14.DelegatorVote `protobuf:"bytes,1,opt,name=delegator_vote,json=delegatorVote,proto3" json:"delegator_vote,omitempty"` - Note *v1alpha1.NoteView `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` } -func (x *DelegatorVoteView_Visible) Reset() { - *x = DelegatorVoteView_Visible{} +func (x *MemoCiphertext) Reset() { + *x = MemoCiphertext{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[36] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DelegatorVoteView_Visible) String() string { +func (x *MemoCiphertext) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DelegatorVoteView_Visible) ProtoMessage() {} +func (*MemoCiphertext) ProtoMessage() {} -func (x *DelegatorVoteView_Visible) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[36] +func (x *MemoCiphertext) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3391,50 +2243,44 @@ func (x *DelegatorVoteView_Visible) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DelegatorVoteView_Visible.ProtoReflect.Descriptor instead. -func (*DelegatorVoteView_Visible) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{16, 0} -} - -func (x *DelegatorVoteView_Visible) GetDelegatorVote() *v1alpha14.DelegatorVote { - if x != nil { - return x.DelegatorVote - } - return nil +// Deprecated: Use MemoCiphertext.ProtoReflect.Descriptor instead. +func (*MemoCiphertext) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{19} } -func (x *DelegatorVoteView_Visible) GetNote() *v1alpha1.NoteView { +func (x *MemoCiphertext) GetInner() []byte { if x != nil { - return x.Note + return x.Inner } return nil } -type DelegatorVoteView_Opaque struct { +type MemoPlaintext struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DelegatorVote *v1alpha14.DelegatorVote `protobuf:"bytes,1,opt,name=delegator_vote,json=delegatorVote,proto3" json:"delegator_vote,omitempty"` + Sender *v1alpha18.Address `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` } -func (x *DelegatorVoteView_Opaque) Reset() { - *x = DelegatorVoteView_Opaque{} +func (x *MemoPlaintext) Reset() { + *x = MemoPlaintext{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[37] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DelegatorVoteView_Opaque) String() string { +func (x *MemoPlaintext) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DelegatorVoteView_Opaque) ProtoMessage() {} +func (*MemoPlaintext) ProtoMessage() {} -func (x *DelegatorVoteView_Opaque) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[37] +func (x *MemoPlaintext) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3445,45 +2291,54 @@ func (x *DelegatorVoteView_Opaque) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DelegatorVoteView_Opaque.ProtoReflect.Descriptor instead. -func (*DelegatorVoteView_Opaque) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{16, 1} +// Deprecated: Use MemoPlaintext.ProtoReflect.Descriptor instead. +func (*MemoPlaintext) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{20} } -func (x *DelegatorVoteView_Opaque) GetDelegatorVote() *v1alpha14.DelegatorVote { +func (x *MemoPlaintext) GetSender() *v1alpha18.Address { if x != nil { - return x.DelegatorVote + return x.Sender } return nil } -type OutputView_Visible struct { +func (x *MemoPlaintext) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type MemoView struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Output *Output `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` - Note *v1alpha1.NoteView `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` - PayloadKey *PayloadKey `protobuf:"bytes,3,opt,name=payload_key,json=payloadKey,proto3" json:"payload_key,omitempty"` + // Types that are assignable to MemoView: + // + // *MemoView_Visible_ + // *MemoView_Opaque_ + MemoView isMemoView_MemoView `protobuf_oneof:"memo_view"` } -func (x *OutputView_Visible) Reset() { - *x = OutputView_Visible{} +func (x *MemoView) Reset() { + *x = MemoView{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[38] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OutputView_Visible) String() string { +func (x *MemoView) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OutputView_Visible) ProtoMessage() {} +func (*MemoView) ProtoMessage() {} -func (x *OutputView_Visible) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[38] +func (x *MemoView) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3494,57 +2349,80 @@ func (x *OutputView_Visible) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OutputView_Visible.ProtoReflect.Descriptor instead. -func (*OutputView_Visible) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{17, 0} +// Deprecated: Use MemoView.ProtoReflect.Descriptor instead. +func (*MemoView) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{21} } -func (x *OutputView_Visible) GetOutput() *Output { - if x != nil { - return x.Output +func (m *MemoView) GetMemoView() isMemoView_MemoView { + if m != nil { + return m.MemoView } return nil } -func (x *OutputView_Visible) GetNote() *v1alpha1.NoteView { - if x != nil { - return x.Note +func (x *MemoView) GetVisible() *MemoView_Visible { + if x, ok := x.GetMemoView().(*MemoView_Visible_); ok { + return x.Visible } return nil } -func (x *OutputView_Visible) GetPayloadKey() *PayloadKey { - if x != nil { - return x.PayloadKey +func (x *MemoView) GetOpaque() *MemoView_Opaque { + if x, ok := x.GetMemoView().(*MemoView_Opaque_); ok { + return x.Opaque } return nil } -type OutputView_Opaque struct { +type isMemoView_MemoView interface { + isMemoView_MemoView() +} + +type MemoView_Visible_ struct { + Visible *MemoView_Visible `protobuf:"bytes,1,opt,name=visible,proto3,oneof"` +} + +type MemoView_Opaque_ struct { + Opaque *MemoView_Opaque `protobuf:"bytes,2,opt,name=opaque,proto3,oneof"` +} + +func (*MemoView_Visible_) isMemoView_MemoView() {} + +func (*MemoView_Opaque_) isMemoView_MemoView() {} + +type GasPrices struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Output *Output `protobuf:"bytes,1,opt,name=output,proto3" json:"output,omitempty"` + // The price per unit block space in terms of the staking token. + BlockSpacePrice uint64 `protobuf:"varint,1,opt,name=block_space_price,json=blockSpacePrice,proto3" json:"block_space_price,omitempty"` + // The price per unit compact block space in terms of the staking token. + CompactBlockSpacePrice uint64 `protobuf:"varint,2,opt,name=compact_block_space_price,json=compactBlockSpacePrice,proto3" json:"compact_block_space_price,omitempty"` + // The price per unit verification cost in terms of the staking token. + VerificationPrice uint64 `protobuf:"varint,3,opt,name=verification_price,json=verificationPrice,proto3" json:"verification_price,omitempty"` + // The price per unit execution cost in terms of the staking token. + ExecutionPrice uint64 `protobuf:"varint,4,opt,name=execution_price,json=executionPrice,proto3" json:"execution_price,omitempty"` } -func (x *OutputView_Opaque) Reset() { - *x = OutputView_Opaque{} +func (x *GasPrices) Reset() { + *x = GasPrices{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[39] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OutputView_Opaque) String() string { +func (x *GasPrices) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OutputView_Opaque) ProtoMessage() {} +func (*GasPrices) ProtoMessage() {} -func (x *OutputView_Opaque) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[39] +func (x *GasPrices) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3555,16 +2433,37 @@ func (x *OutputView_Opaque) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OutputView_Opaque.ProtoReflect.Descriptor instead. -func (*OutputView_Opaque) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{17, 1} +// Deprecated: Use GasPrices.ProtoReflect.Descriptor instead. +func (*GasPrices) Descriptor() ([]byte, []int) { + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{22} +} + +func (x *GasPrices) GetBlockSpacePrice() uint64 { + if x != nil { + return x.BlockSpacePrice + } + return 0 } -func (x *OutputView_Opaque) GetOutput() *Output { +func (x *GasPrices) GetCompactBlockSpacePrice() uint64 { if x != nil { - return x.Output + return x.CompactBlockSpacePrice } - return nil + return 0 +} + +func (x *GasPrices) GetVerificationPrice() uint64 { + if x != nil { + return x.VerificationPrice + } + return 0 +} + +func (x *GasPrices) GetExecutionPrice() uint64 { + if x != nil { + return x.ExecutionPrice + } + return 0 } type MemoView_Visible struct { @@ -3579,7 +2478,7 @@ type MemoView_Visible struct { func (x *MemoView_Visible) Reset() { *x = MemoView_Visible{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[40] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3592,7 +2491,7 @@ func (x *MemoView_Visible) String() string { func (*MemoView_Visible) ProtoMessage() {} func (x *MemoView_Visible) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[40] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3605,7 +2504,7 @@ func (x *MemoView_Visible) ProtoReflect() protoreflect.Message { // Deprecated: Use MemoView_Visible.ProtoReflect.Descriptor instead. func (*MemoView_Visible) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{30, 0} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{21, 0} } func (x *MemoView_Visible) GetCiphertext() *MemoCiphertext { @@ -3633,7 +2532,7 @@ type MemoView_Opaque struct { func (x *MemoView_Opaque) Reset() { *x = MemoView_Opaque{} if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[41] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3646,7 +2545,7 @@ func (x *MemoView_Opaque) String() string { func (*MemoView_Opaque) ProtoMessage() {} func (x *MemoView_Opaque) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[41] + mi := &file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3659,7 +2558,7 @@ func (x *MemoView_Opaque) ProtoReflect() protoreflect.Message { // Deprecated: Use MemoView_Opaque.ProtoReflect.Descriptor instead. func (*MemoView_Opaque) Descriptor() ([]byte, []int) { - return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{30, 1} + return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP(), []int{21, 1} } func (x *MemoView_Opaque) GetCiphertext() *MemoCiphertext { @@ -3677,839 +2576,739 @@ var file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDesc = []byte{ 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, 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, 0x1a, 0x2a, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2f, 0x63, 0x6f, 0x72, 0x65, 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, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, - 0x69, 0x62, 0x63, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x62, 0x63, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x64, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2f, 0x64, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 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, - 0x22, 0xba, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x47, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, - 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x06, 0x61, 0x6e, - 0x63, 0x68, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 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, 0x18, 0x0a, - 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x22, 0x0a, 0x0a, 0x45, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xa4, 0x03, 0x0a, 0x0f, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x12, - 0x44, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2a, 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, 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, 0x34, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 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, - 0x64, 0x61, 0x74, 0x61, 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, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x44, 0x61, - 0x74, 0x61, 0x22, 0x31, 0x0a, 0x08, 0x4d, 0x65, 0x6d, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, - 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, - 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x22, 0x57, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x23, - 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x51, - 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x40, 0x0a, 0x09, 0x66, 0x6d, 0x64, 0x5f, 0x63, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0xd3, 0x0e, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x05, - 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 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, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, - 0x44, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x6e, 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, 0x1a, 0x38, 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, 0x66, 0x6d, 0x64, + 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, + 0x37, 0x37, 0x5f, 0x66, 0x6d, 0x64, 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, 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, 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, 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, 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, 0x66, 0x65, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x66, 0x65, 0x65, 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, 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, 0x65, 0x78, 0x2f, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x78, 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, 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, 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, 0x22, 0xb9, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x1f, 0x0a, + 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 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, 0x18, 0x0a, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0xab, 0x03, 0x0a, 0x0f, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x44, + 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 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, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x53, 0x77, 0x61, 0x70, 0x48, 0x00, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x46, 0x0a, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 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, 0x3b, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 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, 0x52, 0x03, + 0x66, 0x65, 0x65, 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, 0x64, 0x61, 0x74, 0x61, 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, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x6d, 0x65, 0x6d, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x08, 0x4d, 0x65, 0x6d, 0x6f, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, + 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x22, 0x57, 0x0a, 0x15, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x0d, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x09, 0x66, 0x6d, 0x64, 0x5f, 0x63, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 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, 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, + 0xb3, 0x10, 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, 0x64, 0x5f, 0x70, 0x6f, 0x6f, + 0x6c, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x50, 0x0a, 0x06, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 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, 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, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x73, + 0x77, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 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, 0x48, 0x00, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x50, 0x0a, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, - 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x73, 0x77, 0x61, 0x70, - 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x66, 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, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x46, 0x0a, - 0x0a, 0x69, 0x62, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, - 0x62, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x69, 0x62, 0x63, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x62, 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, 0x33, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x59, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x59, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x76, 0x6f, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x48, 0x00, 0x52, 0x0d, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x6f, 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, 0x37, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, + 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, 0x64, 0x65, 0x78, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 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, 0x50, 0x0a, 0x0a, 0x69, 0x62, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x11, 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, + 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x62, 0x63, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x69, 0x62, 0x63, 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, 0x63, + 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, + 0x18, 0x15, 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, 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, 0x4f, + 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, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, - 0x52, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x73, - 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x5b, 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, 0x2c, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x65, 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, - 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 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, 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, 0x44, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4a, 0x0a, - 0x0a, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 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, 0x5a, 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, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x4a, 0x0a, 0x09, 0x64, 0x61, 0x6f, 0x5f, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 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, 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, 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, 0x64, 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, + 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, 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, 0x4d, 0x0a, 0x0a, 0x64, 0x61, 0x6f, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, - 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x50, 0x0a, 0x0b, 0x64, 0x61, 0x6f, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, - 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x59, 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, 0x2b, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x89, 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, 0x46, 0x0a, 0x0c, 0x61, 0x64, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 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, 0x4f, 0x0a, - 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x44, - 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x22, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0xbb, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x79, 0x6c, + 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, 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, 0x12, 0x4f, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 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, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x4b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, + 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, 0x94, 0x01, 0x0a, 0x11, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x6e, - 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 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, - 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x37, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0xcb, 0x01, 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, 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, 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, 0xca, 0x01, 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, 0x1f, + 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 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, 0xbc, 0x03, 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, 0x3b, + 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 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, 0x52, 0x03, 0x66, 0x65, 0x65, 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, 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, 0x1f, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0xb5, 0x03, 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, 0x34, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 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, 0xf1, 0x0e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, - 0x77, 0x12, 0x45, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 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, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x56, 0x69, 0x65, 0x77, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 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, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, + 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, 0xd0, 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, 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, 0x4a, + 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, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 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, 0x66, 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, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x46, 0x0a, 0x0a, 0x69, 0x62, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x49, 0x62, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x09, 0x69, 0x62, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x0f, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x62, 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, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x59, 0x0a, 0x0e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 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, 0x5e, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x15, 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, 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, 0x6f, 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, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4f, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x52, 0x0a, 0x0e, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 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, 0x5b, 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, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x65, 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, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, + 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, 0x50, 0x0a, 0x0a, 0x69, 0x62, 0x63, 0x5f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 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, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x49, 0x62, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x69, + 0x62, 0x63, 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, 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, 0x12, 0x44, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x4a, 0x0a, 0x0a, 0x75, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4a, 0x0a, 0x09, 0x64, 0x61, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, - 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, - 0x4d, 0x0a, 0x0a, 0x64, 0x61, 0x6f, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x33, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x50, - 0x0a, 0x0b, 0x64, 0x61, 0x6f, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x34, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x5a, 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, 0x2d, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x59, 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, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x91, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x56, 0x69, 0x65, 0x77, 0x12, 0x51, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, - 0x01, 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, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x56, 0x69, 0x65, 0x77, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, - 0x65, 0x18, 0x02, 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, 0x53, 0x70, 0x65, - 0x6e, 0x64, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x1a, 0x87, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, - 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, + 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, 0x2e, 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, 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, 0xb3, 0x02, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x53, 0x0a, 0x0b, 0x65, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 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, 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, 0x73, 0x22, 0xf0, 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, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x79, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 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, 0x52, 0x03, 0x66, + 0x65, 0x65, 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, 0x12, + 0x49, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x06, 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, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x05, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x49, 0x0a, 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 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, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x42, 0x0c, 0x0a, 0x0a, - 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0xdd, 0x03, 0x0a, 0x11, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x12, 0x59, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x6e, + 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x6e, 0x22, 0xcb, 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, 0x50, 0x0a, 0x0a, 0x69, 0x62, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, + 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, 0x69, + 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x62, 0x63, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x69, 0x62, 0x63, 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, 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, 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, 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, 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, 0x56, 0x0a, 0x06, 0x6f, - 0x70, 0x61, 0x71, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 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, 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, 0x9f, 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, - 0x57, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x3b, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x61, 0x0a, 0x06, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, - 0x57, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0xec, 0x03, 0x0a, 0x0a, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x52, 0x0a, 0x07, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 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, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x62, - 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x4f, 0x0a, - 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 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, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x4f, 0x70, - 0x61, 0x71, 0x75, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x1a, 0xdb, - 0x01, 0x0a, 0x07, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, + 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, 0x61, 0x0a, 0x0d, 0x4d, 0x65, 0x6d, + 0x6f, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 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, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0xc7, 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, - 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x3b, - 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x0b, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 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, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, - 0x52, 0x0a, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4b, 0x65, 0x79, 0x1a, 0x4c, 0x0a, 0x06, - 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0xdb, 0x01, 0x0a, 0x05, 0x53, 0x70, - 0x65, 0x6e, 0x64, 0x12, 0x41, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 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, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x42, 0x6f, 0x64, 0x79, - 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x4c, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, - 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x41, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x5a, 0x4b, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x53, 0x70, 0x65, 0x6e, - 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x5f, 0x0a, 0x12, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x02, 0x72, 0x6b, 0x22, 0x90, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, - 0x42, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 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, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, - 0x6f, 0x64, 0x79, 0x12, 0x42, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x5a, 0x4b, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x52, 0x05, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x8e, 0x02, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x4d, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x5f, 0x0a, 0x12, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, - 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0e, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x4b, 0x65, 0x79, - 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x76, 0x6b, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6f, 0x76, 0x6b, 0x57, 0x72, - 0x61, 0x70, 0x70, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x22, 0x98, 0x02, 0x0a, 0x11, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4a, - 0x0a, 0x0b, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x52, 0x0a, 0x0b, 0x73, 0x70, - 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 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, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x63, - 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, 0x31, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 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, 0xbd, 0x01, 0x0a, 0x0b, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x06, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x6b, 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, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x73, 0x22, 0xe9, 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, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, - 0x64, 0x12, 0x34, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, - 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 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, + 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, 0x43, 0x6c, 0x75, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x65, 0x50, - 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x70, 0x6c, 0x61, - 0x6e, 0x18, 0x06, 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, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x6e, 0x22, - 0xeb, 0x0e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x45, - 0x0a, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 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, 0xae, 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, 0x4f, 0x0a, 0x09, 0x70, 0x6c, + 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 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, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, - 0x02, 0x20, 0x01, 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, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, - 0x3a, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4a, 0x0a, 0x0a, 0x73, - 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x66, 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, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, - 0x46, 0x0a, 0x0a, 0x69, 0x62, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x49, 0x62, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x69, 0x62, - 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 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, 0x62, 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, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 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, 0x59, 0x0a, 0x0e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 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, 0x5d, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x76, 0x6f, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x6f, 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, 0x37, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x4d, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x61, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4f, 0x0a, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x52, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x5f, 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, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 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, 0x69, 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, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x44, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4a, 0x0a, 0x0a, 0x75, 0x6e, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x5e, 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, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 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, 0x4a, 0x0a, 0x09, 0x64, 0x61, 0x6f, 0x5f, 0x73, 0x70, - 0x65, 0x6e, 0x64, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x4d, 0x0a, 0x0a, 0x64, 0x61, 0x6f, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x50, 0x0a, 0x0b, 0x64, 0x61, 0x6f, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x89, 0x01, - 0x0a, 0x08, 0x43, 0x6c, 0x75, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 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, 0x63, 0x0a, 0x0d, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0xc7, 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, 0xae, 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, 0x4f, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x18, 0x02, 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, 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, 0x22, - 0xfb, 0x01, 0x0a, 0x09, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x37, 0x0a, - 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, - 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 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, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x69, 0x7a, - 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, - 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, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x22, 0xa4, 0x02, - 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x3a, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x72, 0x73, 0x65, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x5f, 0x62, 0x6c, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x75, 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, 0x05, 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, 0x06, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6c, 0x69, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x53, 0x22, 0xca, 0x01, 0x0a, 0x09, 0x47, 0x61, 0x73, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x39, - 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x76, 0x65, 0x72, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, - 0x65, 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, + 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, 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, 0x22, 0xca, 0x01, 0x0a, 0x09, 0x47, 0x61, 0x73, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x12, 0x39, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x16, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x53, 0x70, 0x61, 0x63, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x69, 0x63, 0x65, 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 ( @@ -4524,238 +3323,196 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescGZIP() []b return file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDescData } -var file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes = make([]protoimpl.MessageInfo, 42) +var file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_penumbra_core_transaction_v1alpha1_transaction_proto_goTypes = []interface{}{ (*Transaction)(nil), // 0: penumbra.core.transaction.v1alpha1.Transaction (*Id)(nil), // 1: penumbra.core.transaction.v1alpha1.Id - (*EffectHash)(nil), // 2: penumbra.core.transaction.v1alpha1.EffectHash - (*TransactionBody)(nil), // 3: penumbra.core.transaction.v1alpha1.TransactionBody - (*MemoData)(nil), // 4: penumbra.core.transaction.v1alpha1.MemoData - (*TransactionParameters)(nil), // 5: penumbra.core.transaction.v1alpha1.TransactionParameters - (*DetectionData)(nil), // 6: penumbra.core.transaction.v1alpha1.DetectionData - (*Action)(nil), // 7: penumbra.core.transaction.v1alpha1.Action - (*TransactionPerspective)(nil), // 8: penumbra.core.transaction.v1alpha1.TransactionPerspective - (*PayloadKey)(nil), // 9: penumbra.core.transaction.v1alpha1.PayloadKey - (*PayloadKeyWithCommitment)(nil), // 10: penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment - (*NullifierWithNote)(nil), // 11: penumbra.core.transaction.v1alpha1.NullifierWithNote - (*TransactionView)(nil), // 12: penumbra.core.transaction.v1alpha1.TransactionView - (*TransactionBodyView)(nil), // 13: penumbra.core.transaction.v1alpha1.TransactionBodyView - (*ActionView)(nil), // 14: penumbra.core.transaction.v1alpha1.ActionView - (*SpendView)(nil), // 15: penumbra.core.transaction.v1alpha1.SpendView - (*DelegatorVoteView)(nil), // 16: penumbra.core.transaction.v1alpha1.DelegatorVoteView - (*OutputView)(nil), // 17: penumbra.core.transaction.v1alpha1.OutputView - (*Spend)(nil), // 18: penumbra.core.transaction.v1alpha1.Spend - (*SpendBody)(nil), // 19: penumbra.core.transaction.v1alpha1.SpendBody - (*Output)(nil), // 20: penumbra.core.transaction.v1alpha1.Output - (*OutputBody)(nil), // 21: penumbra.core.transaction.v1alpha1.OutputBody - (*AuthorizationData)(nil), // 22: penumbra.core.transaction.v1alpha1.AuthorizationData - (*WitnessData)(nil), // 23: penumbra.core.transaction.v1alpha1.WitnessData - (*TransactionPlan)(nil), // 24: penumbra.core.transaction.v1alpha1.TransactionPlan - (*ActionPlan)(nil), // 25: penumbra.core.transaction.v1alpha1.ActionPlan - (*CluePlan)(nil), // 26: penumbra.core.transaction.v1alpha1.CluePlan - (*MemoPlan)(nil), // 27: penumbra.core.transaction.v1alpha1.MemoPlan - (*MemoCiphertext)(nil), // 28: penumbra.core.transaction.v1alpha1.MemoCiphertext - (*MemoPlaintext)(nil), // 29: penumbra.core.transaction.v1alpha1.MemoPlaintext - (*MemoView)(nil), // 30: penumbra.core.transaction.v1alpha1.MemoView - (*SpendPlan)(nil), // 31: penumbra.core.transaction.v1alpha1.SpendPlan - (*OutputPlan)(nil), // 32: penumbra.core.transaction.v1alpha1.OutputPlan - (*GasPrices)(nil), // 33: penumbra.core.transaction.v1alpha1.GasPrices - (*SpendView_Visible)(nil), // 34: penumbra.core.transaction.v1alpha1.SpendView.Visible - (*SpendView_Opaque)(nil), // 35: penumbra.core.transaction.v1alpha1.SpendView.Opaque - (*DelegatorVoteView_Visible)(nil), // 36: penumbra.core.transaction.v1alpha1.DelegatorVoteView.Visible - (*DelegatorVoteView_Opaque)(nil), // 37: penumbra.core.transaction.v1alpha1.DelegatorVoteView.Opaque - (*OutputView_Visible)(nil), // 38: penumbra.core.transaction.v1alpha1.OutputView.Visible - (*OutputView_Opaque)(nil), // 39: penumbra.core.transaction.v1alpha1.OutputView.Opaque - (*MemoView_Visible)(nil), // 40: penumbra.core.transaction.v1alpha1.MemoView.Visible - (*MemoView_Opaque)(nil), // 41: penumbra.core.transaction.v1alpha1.MemoView.Opaque - (*v1alpha1.MerkleRoot)(nil), // 42: penumbra.core.crypto.v1alpha1.MerkleRoot - (*v1alpha1.Fee)(nil), // 43: penumbra.core.crypto.v1alpha1.Fee - (*v1alpha1.Clue)(nil), // 44: penumbra.core.crypto.v1alpha1.Clue - (*v1alpha11.Swap)(nil), // 45: penumbra.core.dex.v1alpha1.Swap - (*v1alpha11.SwapClaim)(nil), // 46: penumbra.core.dex.v1alpha1.SwapClaim - (*v1alpha12.ValidatorDefinition)(nil), // 47: penumbra.core.stake.v1alpha1.ValidatorDefinition - (*v1alpha13.IbcAction)(nil), // 48: penumbra.core.ibc.v1alpha1.IbcAction - (*v1alpha14.ProposalSubmit)(nil), // 49: penumbra.core.governance.v1alpha1.ProposalSubmit - (*v1alpha14.ProposalWithdraw)(nil), // 50: penumbra.core.governance.v1alpha1.ProposalWithdraw - (*v1alpha14.ValidatorVote)(nil), // 51: penumbra.core.governance.v1alpha1.ValidatorVote - (*v1alpha14.DelegatorVote)(nil), // 52: penumbra.core.governance.v1alpha1.DelegatorVote - (*v1alpha14.ProposalDepositClaim)(nil), // 53: penumbra.core.governance.v1alpha1.ProposalDepositClaim - (*v1alpha11.PositionOpen)(nil), // 54: penumbra.core.dex.v1alpha1.PositionOpen - (*v1alpha11.PositionClose)(nil), // 55: penumbra.core.dex.v1alpha1.PositionClose - (*v1alpha11.PositionWithdraw)(nil), // 56: penumbra.core.dex.v1alpha1.PositionWithdraw - (*v1alpha11.PositionRewardClaim)(nil), // 57: penumbra.core.dex.v1alpha1.PositionRewardClaim - (*v1alpha12.Delegate)(nil), // 58: penumbra.core.stake.v1alpha1.Delegate - (*v1alpha12.Undelegate)(nil), // 59: penumbra.core.stake.v1alpha1.Undelegate - (*v1alpha12.UndelegateClaim)(nil), // 60: penumbra.core.stake.v1alpha1.UndelegateClaim - (*v1alpha14.DaoSpend)(nil), // 61: penumbra.core.governance.v1alpha1.DaoSpend - (*v1alpha14.DaoOutput)(nil), // 62: penumbra.core.governance.v1alpha1.DaoOutput - (*v1alpha14.DaoDeposit)(nil), // 63: penumbra.core.governance.v1alpha1.DaoDeposit - (*v1alpha13.Ics20Withdrawal)(nil), // 64: penumbra.core.ibc.v1alpha1.Ics20Withdrawal - (*v1alpha1.Note)(nil), // 65: penumbra.core.crypto.v1alpha1.Note - (*v1alpha1.AddressView)(nil), // 66: penumbra.core.crypto.v1alpha1.AddressView - (*v1alpha1.DenomMetadata)(nil), // 67: penumbra.core.crypto.v1alpha1.DenomMetadata - (*v1alpha1.StateCommitment)(nil), // 68: penumbra.core.crypto.v1alpha1.StateCommitment - (*v1alpha1.Nullifier)(nil), // 69: penumbra.core.crypto.v1alpha1.Nullifier - (*v1alpha11.SwapView)(nil), // 70: penumbra.core.dex.v1alpha1.SwapView - (*v1alpha11.SwapClaimView)(nil), // 71: penumbra.core.dex.v1alpha1.SwapClaimView - (*v1alpha1.SpendAuthSignature)(nil), // 72: penumbra.core.crypto.v1alpha1.SpendAuthSignature - (*v1alpha1.ZKSpendProof)(nil), // 73: penumbra.core.crypto.v1alpha1.ZKSpendProof - (*v1alpha1.BalanceCommitment)(nil), // 74: penumbra.core.crypto.v1alpha1.BalanceCommitment - (*v1alpha1.ZKOutputProof)(nil), // 75: penumbra.core.crypto.v1alpha1.ZKOutputProof - (*v1alpha1.NotePayload)(nil), // 76: penumbra.core.crypto.v1alpha1.NotePayload - (*v1alpha1.EffectHash)(nil), // 77: penumbra.core.crypto.v1alpha1.EffectHash - (*v1alpha1.StateCommitmentProof)(nil), // 78: penumbra.core.crypto.v1alpha1.StateCommitmentProof - (*v1alpha11.SwapPlan)(nil), // 79: penumbra.core.dex.v1alpha1.SwapPlan - (*v1alpha11.SwapClaimPlan)(nil), // 80: penumbra.core.dex.v1alpha1.SwapClaimPlan - (*v1alpha14.DelegatorVotePlan)(nil), // 81: penumbra.core.governance.v1alpha1.DelegatorVotePlan - (*v1alpha11.PositionWithdrawPlan)(nil), // 82: penumbra.core.dex.v1alpha1.PositionWithdrawPlan - (*v1alpha11.PositionRewardClaimPlan)(nil), // 83: penumbra.core.dex.v1alpha1.PositionRewardClaimPlan - (*v1alpha12.UndelegateClaimPlan)(nil), // 84: penumbra.core.stake.v1alpha1.UndelegateClaimPlan - (*v1alpha1.Address)(nil), // 85: penumbra.core.crypto.v1alpha1.Address - (*v1alpha1.Value)(nil), // 86: penumbra.core.crypto.v1alpha1.Value - (*v1alpha1.NoteView)(nil), // 87: penumbra.core.crypto.v1alpha1.NoteView + (*TransactionBody)(nil), // 2: penumbra.core.transaction.v1alpha1.TransactionBody + (*MemoData)(nil), // 3: penumbra.core.transaction.v1alpha1.MemoData + (*TransactionParameters)(nil), // 4: penumbra.core.transaction.v1alpha1.TransactionParameters + (*DetectionData)(nil), // 5: penumbra.core.transaction.v1alpha1.DetectionData + (*Action)(nil), // 6: penumbra.core.transaction.v1alpha1.Action + (*TransactionPerspective)(nil), // 7: penumbra.core.transaction.v1alpha1.TransactionPerspective + (*PayloadKeyWithCommitment)(nil), // 8: penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment + (*NullifierWithNote)(nil), // 9: penumbra.core.transaction.v1alpha1.NullifierWithNote + (*TransactionView)(nil), // 10: penumbra.core.transaction.v1alpha1.TransactionView + (*TransactionBodyView)(nil), // 11: penumbra.core.transaction.v1alpha1.TransactionBodyView + (*ActionView)(nil), // 12: penumbra.core.transaction.v1alpha1.ActionView + (*AuthorizationData)(nil), // 13: penumbra.core.transaction.v1alpha1.AuthorizationData + (*WitnessData)(nil), // 14: penumbra.core.transaction.v1alpha1.WitnessData + (*TransactionPlan)(nil), // 15: penumbra.core.transaction.v1alpha1.TransactionPlan + (*ActionPlan)(nil), // 16: penumbra.core.transaction.v1alpha1.ActionPlan + (*CluePlan)(nil), // 17: penumbra.core.transaction.v1alpha1.CluePlan + (*MemoPlan)(nil), // 18: penumbra.core.transaction.v1alpha1.MemoPlan + (*MemoCiphertext)(nil), // 19: penumbra.core.transaction.v1alpha1.MemoCiphertext + (*MemoPlaintext)(nil), // 20: penumbra.core.transaction.v1alpha1.MemoPlaintext + (*MemoView)(nil), // 21: penumbra.core.transaction.v1alpha1.MemoView + (*GasPrices)(nil), // 22: penumbra.core.transaction.v1alpha1.GasPrices + (*MemoView_Visible)(nil), // 23: penumbra.core.transaction.v1alpha1.MemoView.Visible + (*MemoView_Opaque)(nil), // 24: penumbra.core.transaction.v1alpha1.MemoView.Opaque + (*v1alpha1.MerkleRoot)(nil), // 25: penumbra.crypto.tct.v1alpha1.MerkleRoot + (*v1alpha11.Fee)(nil), // 26: penumbra.core.component.fee.v1alpha1.Fee + (*v1alpha12.Clue)(nil), // 27: penumbra.crypto.decaf377_fmd.v1alpha1.Clue + (*v1alpha13.Spend)(nil), // 28: penumbra.core.component.shielded_pool.v1alpha1.Spend + (*v1alpha13.Output)(nil), // 29: penumbra.core.component.shielded_pool.v1alpha1.Output + (*v1alpha14.Swap)(nil), // 30: penumbra.core.component.dex.v1alpha1.Swap + (*v1alpha14.SwapClaim)(nil), // 31: penumbra.core.component.dex.v1alpha1.SwapClaim + (*v1alpha15.ValidatorDefinition)(nil), // 32: penumbra.core.component.stake.v1alpha1.ValidatorDefinition + (*v1alpha16.IbcAction)(nil), // 33: penumbra.core.component.ibc.v1alpha1.IbcAction + (*v1alpha17.ProposalSubmit)(nil), // 34: penumbra.core.component.governance.v1alpha1.ProposalSubmit + (*v1alpha17.ProposalWithdraw)(nil), // 35: penumbra.core.component.governance.v1alpha1.ProposalWithdraw + (*v1alpha17.ValidatorVote)(nil), // 36: penumbra.core.component.governance.v1alpha1.ValidatorVote + (*v1alpha17.DelegatorVote)(nil), // 37: penumbra.core.component.governance.v1alpha1.DelegatorVote + (*v1alpha17.ProposalDepositClaim)(nil), // 38: penumbra.core.component.governance.v1alpha1.ProposalDepositClaim + (*v1alpha14.PositionOpen)(nil), // 39: penumbra.core.component.dex.v1alpha1.PositionOpen + (*v1alpha14.PositionClose)(nil), // 40: penumbra.core.component.dex.v1alpha1.PositionClose + (*v1alpha14.PositionWithdraw)(nil), // 41: penumbra.core.component.dex.v1alpha1.PositionWithdraw + (*v1alpha14.PositionRewardClaim)(nil), // 42: penumbra.core.component.dex.v1alpha1.PositionRewardClaim + (*v1alpha15.Delegate)(nil), // 43: penumbra.core.component.stake.v1alpha1.Delegate + (*v1alpha15.Undelegate)(nil), // 44: penumbra.core.component.stake.v1alpha1.Undelegate + (*v1alpha15.UndelegateClaim)(nil), // 45: penumbra.core.component.stake.v1alpha1.UndelegateClaim + (*v1alpha17.DaoSpend)(nil), // 46: penumbra.core.component.governance.v1alpha1.DaoSpend + (*v1alpha17.DaoOutput)(nil), // 47: penumbra.core.component.governance.v1alpha1.DaoOutput + (*v1alpha17.DaoDeposit)(nil), // 48: penumbra.core.component.governance.v1alpha1.DaoDeposit + (*v1alpha16.Ics20Withdrawal)(nil), // 49: penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal + (*v1alpha13.Note)(nil), // 50: penumbra.core.component.shielded_pool.v1alpha1.Note + (*v1alpha18.AddressView)(nil), // 51: penumbra.core.keys.v1alpha1.AddressView + (*v1alpha19.DenomMetadata)(nil), // 52: penumbra.core.asset.v1alpha1.DenomMetadata + (*v1alpha18.PayloadKey)(nil), // 53: penumbra.core.keys.v1alpha1.PayloadKey + (*v1alpha1.StateCommitment)(nil), // 54: penumbra.crypto.tct.v1alpha1.StateCommitment + (*v1alpha110.Nullifier)(nil), // 55: penumbra.core.component.sct.v1alpha1.Nullifier + (*v1alpha13.SpendView)(nil), // 56: penumbra.core.component.shielded_pool.v1alpha1.SpendView + (*v1alpha13.OutputView)(nil), // 57: penumbra.core.component.shielded_pool.v1alpha1.OutputView + (*v1alpha14.SwapView)(nil), // 58: penumbra.core.component.dex.v1alpha1.SwapView + (*v1alpha14.SwapClaimView)(nil), // 59: penumbra.core.component.dex.v1alpha1.SwapClaimView + (*v1alpha17.DelegatorVoteView)(nil), // 60: penumbra.core.component.governance.v1alpha1.DelegatorVoteView + (*v1alpha111.EffectHash)(nil), // 61: penumbra.core.component.chain.v1alpha1.EffectHash + (*v1alpha112.SpendAuthSignature)(nil), // 62: penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature + (*v1alpha1.StateCommitmentProof)(nil), // 63: penumbra.crypto.tct.v1alpha1.StateCommitmentProof + (*v1alpha13.SpendPlan)(nil), // 64: penumbra.core.component.shielded_pool.v1alpha1.SpendPlan + (*v1alpha13.OutputPlan)(nil), // 65: penumbra.core.component.shielded_pool.v1alpha1.OutputPlan + (*v1alpha14.SwapPlan)(nil), // 66: penumbra.core.component.dex.v1alpha1.SwapPlan + (*v1alpha14.SwapClaimPlan)(nil), // 67: penumbra.core.component.dex.v1alpha1.SwapClaimPlan + (*v1alpha17.DelegatorVotePlan)(nil), // 68: penumbra.core.component.governance.v1alpha1.DelegatorVotePlan + (*v1alpha14.PositionWithdrawPlan)(nil), // 69: penumbra.core.component.dex.v1alpha1.PositionWithdrawPlan + (*v1alpha14.PositionRewardClaimPlan)(nil), // 70: penumbra.core.component.dex.v1alpha1.PositionRewardClaimPlan + (*v1alpha15.UndelegateClaimPlan)(nil), // 71: penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan + (*v1alpha18.Address)(nil), // 72: penumbra.core.keys.v1alpha1.Address } var file_penumbra_core_transaction_v1alpha1_transaction_proto_depIdxs = []int32{ - 3, // 0: penumbra.core.transaction.v1alpha1.Transaction.body:type_name -> penumbra.core.transaction.v1alpha1.TransactionBody - 42, // 1: penumbra.core.transaction.v1alpha1.Transaction.anchor:type_name -> penumbra.core.crypto.v1alpha1.MerkleRoot - 7, // 2: penumbra.core.transaction.v1alpha1.TransactionBody.actions:type_name -> penumbra.core.transaction.v1alpha1.Action - 5, // 3: penumbra.core.transaction.v1alpha1.TransactionBody.transaction_parameters:type_name -> penumbra.core.transaction.v1alpha1.TransactionParameters - 43, // 4: penumbra.core.transaction.v1alpha1.TransactionBody.fee:type_name -> penumbra.core.crypto.v1alpha1.Fee - 6, // 5: penumbra.core.transaction.v1alpha1.TransactionBody.detection_data:type_name -> penumbra.core.transaction.v1alpha1.DetectionData - 4, // 6: penumbra.core.transaction.v1alpha1.TransactionBody.memo_data:type_name -> penumbra.core.transaction.v1alpha1.MemoData - 44, // 7: penumbra.core.transaction.v1alpha1.DetectionData.fmd_clues:type_name -> penumbra.core.crypto.v1alpha1.Clue - 18, // 8: penumbra.core.transaction.v1alpha1.Action.spend:type_name -> penumbra.core.transaction.v1alpha1.Spend - 20, // 9: penumbra.core.transaction.v1alpha1.Action.output:type_name -> penumbra.core.transaction.v1alpha1.Output - 45, // 10: penumbra.core.transaction.v1alpha1.Action.swap:type_name -> penumbra.core.dex.v1alpha1.Swap - 46, // 11: penumbra.core.transaction.v1alpha1.Action.swap_claim:type_name -> penumbra.core.dex.v1alpha1.SwapClaim - 47, // 12: penumbra.core.transaction.v1alpha1.Action.validator_definition:type_name -> penumbra.core.stake.v1alpha1.ValidatorDefinition - 48, // 13: penumbra.core.transaction.v1alpha1.Action.ibc_action:type_name -> penumbra.core.ibc.v1alpha1.IbcAction - 49, // 14: penumbra.core.transaction.v1alpha1.Action.proposal_submit:type_name -> penumbra.core.governance.v1alpha1.ProposalSubmit - 50, // 15: penumbra.core.transaction.v1alpha1.Action.proposal_withdraw:type_name -> penumbra.core.governance.v1alpha1.ProposalWithdraw - 51, // 16: penumbra.core.transaction.v1alpha1.Action.validator_vote:type_name -> penumbra.core.governance.v1alpha1.ValidatorVote - 52, // 17: penumbra.core.transaction.v1alpha1.Action.delegator_vote:type_name -> penumbra.core.governance.v1alpha1.DelegatorVote - 53, // 18: penumbra.core.transaction.v1alpha1.Action.proposal_deposit_claim:type_name -> penumbra.core.governance.v1alpha1.ProposalDepositClaim - 54, // 19: penumbra.core.transaction.v1alpha1.Action.position_open:type_name -> penumbra.core.dex.v1alpha1.PositionOpen - 55, // 20: penumbra.core.transaction.v1alpha1.Action.position_close:type_name -> penumbra.core.dex.v1alpha1.PositionClose - 56, // 21: penumbra.core.transaction.v1alpha1.Action.position_withdraw:type_name -> penumbra.core.dex.v1alpha1.PositionWithdraw - 57, // 22: penumbra.core.transaction.v1alpha1.Action.position_reward_claim:type_name -> penumbra.core.dex.v1alpha1.PositionRewardClaim - 58, // 23: penumbra.core.transaction.v1alpha1.Action.delegate:type_name -> penumbra.core.stake.v1alpha1.Delegate - 59, // 24: penumbra.core.transaction.v1alpha1.Action.undelegate:type_name -> penumbra.core.stake.v1alpha1.Undelegate - 60, // 25: penumbra.core.transaction.v1alpha1.Action.undelegate_claim:type_name -> penumbra.core.stake.v1alpha1.UndelegateClaim - 61, // 26: penumbra.core.transaction.v1alpha1.Action.dao_spend:type_name -> penumbra.core.governance.v1alpha1.DaoSpend - 62, // 27: penumbra.core.transaction.v1alpha1.Action.dao_output:type_name -> penumbra.core.governance.v1alpha1.DaoOutput - 63, // 28: penumbra.core.transaction.v1alpha1.Action.dao_deposit:type_name -> penumbra.core.governance.v1alpha1.DaoDeposit - 64, // 29: penumbra.core.transaction.v1alpha1.Action.ics20_withdrawal:type_name -> penumbra.core.ibc.v1alpha1.Ics20Withdrawal - 10, // 30: penumbra.core.transaction.v1alpha1.TransactionPerspective.payload_keys:type_name -> penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment - 11, // 31: penumbra.core.transaction.v1alpha1.TransactionPerspective.spend_nullifiers:type_name -> penumbra.core.transaction.v1alpha1.NullifierWithNote - 65, // 32: penumbra.core.transaction.v1alpha1.TransactionPerspective.advice_notes:type_name -> penumbra.core.crypto.v1alpha1.Note - 66, // 33: penumbra.core.transaction.v1alpha1.TransactionPerspective.address_views:type_name -> penumbra.core.crypto.v1alpha1.AddressView - 67, // 34: penumbra.core.transaction.v1alpha1.TransactionPerspective.denoms:type_name -> penumbra.core.crypto.v1alpha1.DenomMetadata + 2, // 0: penumbra.core.transaction.v1alpha1.Transaction.body:type_name -> penumbra.core.transaction.v1alpha1.TransactionBody + 25, // 1: penumbra.core.transaction.v1alpha1.Transaction.anchor:type_name -> penumbra.crypto.tct.v1alpha1.MerkleRoot + 6, // 2: penumbra.core.transaction.v1alpha1.TransactionBody.actions:type_name -> penumbra.core.transaction.v1alpha1.Action + 4, // 3: penumbra.core.transaction.v1alpha1.TransactionBody.transaction_parameters:type_name -> penumbra.core.transaction.v1alpha1.TransactionParameters + 26, // 4: penumbra.core.transaction.v1alpha1.TransactionBody.fee:type_name -> penumbra.core.component.fee.v1alpha1.Fee + 5, // 5: penumbra.core.transaction.v1alpha1.TransactionBody.detection_data:type_name -> penumbra.core.transaction.v1alpha1.DetectionData + 3, // 6: penumbra.core.transaction.v1alpha1.TransactionBody.memo_data:type_name -> penumbra.core.transaction.v1alpha1.MemoData + 27, // 7: penumbra.core.transaction.v1alpha1.DetectionData.fmd_clues:type_name -> penumbra.crypto.decaf377_fmd.v1alpha1.Clue + 28, // 8: penumbra.core.transaction.v1alpha1.Action.spend:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Spend + 29, // 9: penumbra.core.transaction.v1alpha1.Action.output:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Output + 30, // 10: penumbra.core.transaction.v1alpha1.Action.swap:type_name -> penumbra.core.component.dex.v1alpha1.Swap + 31, // 11: penumbra.core.transaction.v1alpha1.Action.swap_claim:type_name -> penumbra.core.component.dex.v1alpha1.SwapClaim + 32, // 12: penumbra.core.transaction.v1alpha1.Action.validator_definition:type_name -> penumbra.core.component.stake.v1alpha1.ValidatorDefinition + 33, // 13: penumbra.core.transaction.v1alpha1.Action.ibc_action:type_name -> penumbra.core.component.ibc.v1alpha1.IbcAction + 34, // 14: penumbra.core.transaction.v1alpha1.Action.proposal_submit:type_name -> penumbra.core.component.governance.v1alpha1.ProposalSubmit + 35, // 15: penumbra.core.transaction.v1alpha1.Action.proposal_withdraw:type_name -> penumbra.core.component.governance.v1alpha1.ProposalWithdraw + 36, // 16: penumbra.core.transaction.v1alpha1.Action.validator_vote:type_name -> penumbra.core.component.governance.v1alpha1.ValidatorVote + 37, // 17: penumbra.core.transaction.v1alpha1.Action.delegator_vote:type_name -> penumbra.core.component.governance.v1alpha1.DelegatorVote + 38, // 18: penumbra.core.transaction.v1alpha1.Action.proposal_deposit_claim:type_name -> penumbra.core.component.governance.v1alpha1.ProposalDepositClaim + 39, // 19: penumbra.core.transaction.v1alpha1.Action.position_open:type_name -> penumbra.core.component.dex.v1alpha1.PositionOpen + 40, // 20: penumbra.core.transaction.v1alpha1.Action.position_close:type_name -> penumbra.core.component.dex.v1alpha1.PositionClose + 41, // 21: penumbra.core.transaction.v1alpha1.Action.position_withdraw:type_name -> penumbra.core.component.dex.v1alpha1.PositionWithdraw + 42, // 22: penumbra.core.transaction.v1alpha1.Action.position_reward_claim:type_name -> penumbra.core.component.dex.v1alpha1.PositionRewardClaim + 43, // 23: penumbra.core.transaction.v1alpha1.Action.delegate:type_name -> penumbra.core.component.stake.v1alpha1.Delegate + 44, // 24: penumbra.core.transaction.v1alpha1.Action.undelegate:type_name -> penumbra.core.component.stake.v1alpha1.Undelegate + 45, // 25: penumbra.core.transaction.v1alpha1.Action.undelegate_claim:type_name -> penumbra.core.component.stake.v1alpha1.UndelegateClaim + 46, // 26: penumbra.core.transaction.v1alpha1.Action.dao_spend:type_name -> penumbra.core.component.governance.v1alpha1.DaoSpend + 47, // 27: penumbra.core.transaction.v1alpha1.Action.dao_output:type_name -> penumbra.core.component.governance.v1alpha1.DaoOutput + 48, // 28: penumbra.core.transaction.v1alpha1.Action.dao_deposit:type_name -> penumbra.core.component.governance.v1alpha1.DaoDeposit + 49, // 29: penumbra.core.transaction.v1alpha1.Action.ics20_withdrawal:type_name -> penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal + 8, // 30: penumbra.core.transaction.v1alpha1.TransactionPerspective.payload_keys:type_name -> penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment + 9, // 31: penumbra.core.transaction.v1alpha1.TransactionPerspective.spend_nullifiers:type_name -> penumbra.core.transaction.v1alpha1.NullifierWithNote + 50, // 32: penumbra.core.transaction.v1alpha1.TransactionPerspective.advice_notes:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Note + 51, // 33: penumbra.core.transaction.v1alpha1.TransactionPerspective.address_views:type_name -> penumbra.core.keys.v1alpha1.AddressView + 52, // 34: penumbra.core.transaction.v1alpha1.TransactionPerspective.denoms:type_name -> penumbra.core.asset.v1alpha1.DenomMetadata 1, // 35: penumbra.core.transaction.v1alpha1.TransactionPerspective.transaction_id:type_name -> penumbra.core.transaction.v1alpha1.Id - 9, // 36: penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment.payload_key:type_name -> penumbra.core.transaction.v1alpha1.PayloadKey - 68, // 37: penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment.commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 69, // 38: penumbra.core.transaction.v1alpha1.NullifierWithNote.nullifier:type_name -> penumbra.core.crypto.v1alpha1.Nullifier - 65, // 39: penumbra.core.transaction.v1alpha1.NullifierWithNote.note:type_name -> penumbra.core.crypto.v1alpha1.Note - 13, // 40: penumbra.core.transaction.v1alpha1.TransactionView.body_view:type_name -> penumbra.core.transaction.v1alpha1.TransactionBodyView - 42, // 41: penumbra.core.transaction.v1alpha1.TransactionView.anchor:type_name -> penumbra.core.crypto.v1alpha1.MerkleRoot - 14, // 42: penumbra.core.transaction.v1alpha1.TransactionBodyView.action_views:type_name -> penumbra.core.transaction.v1alpha1.ActionView - 5, // 43: penumbra.core.transaction.v1alpha1.TransactionBodyView.transaction_parameters:type_name -> penumbra.core.transaction.v1alpha1.TransactionParameters - 43, // 44: penumbra.core.transaction.v1alpha1.TransactionBodyView.fee:type_name -> penumbra.core.crypto.v1alpha1.Fee - 6, // 45: penumbra.core.transaction.v1alpha1.TransactionBodyView.detection_data:type_name -> penumbra.core.transaction.v1alpha1.DetectionData - 30, // 46: penumbra.core.transaction.v1alpha1.TransactionBodyView.memo_view:type_name -> penumbra.core.transaction.v1alpha1.MemoView - 15, // 47: penumbra.core.transaction.v1alpha1.ActionView.spend:type_name -> penumbra.core.transaction.v1alpha1.SpendView - 17, // 48: penumbra.core.transaction.v1alpha1.ActionView.output:type_name -> penumbra.core.transaction.v1alpha1.OutputView - 70, // 49: penumbra.core.transaction.v1alpha1.ActionView.swap:type_name -> penumbra.core.dex.v1alpha1.SwapView - 71, // 50: penumbra.core.transaction.v1alpha1.ActionView.swap_claim:type_name -> penumbra.core.dex.v1alpha1.SwapClaimView - 47, // 51: penumbra.core.transaction.v1alpha1.ActionView.validator_definition:type_name -> penumbra.core.stake.v1alpha1.ValidatorDefinition - 48, // 52: penumbra.core.transaction.v1alpha1.ActionView.ibc_action:type_name -> penumbra.core.ibc.v1alpha1.IbcAction - 49, // 53: penumbra.core.transaction.v1alpha1.ActionView.proposal_submit:type_name -> penumbra.core.governance.v1alpha1.ProposalSubmit - 50, // 54: penumbra.core.transaction.v1alpha1.ActionView.proposal_withdraw:type_name -> penumbra.core.governance.v1alpha1.ProposalWithdraw - 51, // 55: penumbra.core.transaction.v1alpha1.ActionView.validator_vote:type_name -> penumbra.core.governance.v1alpha1.ValidatorVote - 16, // 56: penumbra.core.transaction.v1alpha1.ActionView.delegator_vote:type_name -> penumbra.core.transaction.v1alpha1.DelegatorVoteView - 53, // 57: penumbra.core.transaction.v1alpha1.ActionView.proposal_deposit_claim:type_name -> penumbra.core.governance.v1alpha1.ProposalDepositClaim - 54, // 58: penumbra.core.transaction.v1alpha1.ActionView.position_open:type_name -> penumbra.core.dex.v1alpha1.PositionOpen - 55, // 59: penumbra.core.transaction.v1alpha1.ActionView.position_close:type_name -> penumbra.core.dex.v1alpha1.PositionClose - 56, // 60: penumbra.core.transaction.v1alpha1.ActionView.position_withdraw:type_name -> penumbra.core.dex.v1alpha1.PositionWithdraw - 57, // 61: penumbra.core.transaction.v1alpha1.ActionView.position_reward_claim:type_name -> penumbra.core.dex.v1alpha1.PositionRewardClaim - 58, // 62: penumbra.core.transaction.v1alpha1.ActionView.delegate:type_name -> penumbra.core.stake.v1alpha1.Delegate - 59, // 63: penumbra.core.transaction.v1alpha1.ActionView.undelegate:type_name -> penumbra.core.stake.v1alpha1.Undelegate - 61, // 64: penumbra.core.transaction.v1alpha1.ActionView.dao_spend:type_name -> penumbra.core.governance.v1alpha1.DaoSpend - 62, // 65: penumbra.core.transaction.v1alpha1.ActionView.dao_output:type_name -> penumbra.core.governance.v1alpha1.DaoOutput - 63, // 66: penumbra.core.transaction.v1alpha1.ActionView.dao_deposit:type_name -> penumbra.core.governance.v1alpha1.DaoDeposit - 60, // 67: penumbra.core.transaction.v1alpha1.ActionView.undelegate_claim:type_name -> penumbra.core.stake.v1alpha1.UndelegateClaim - 64, // 68: penumbra.core.transaction.v1alpha1.ActionView.ics20_withdrawal:type_name -> penumbra.core.ibc.v1alpha1.Ics20Withdrawal - 34, // 69: penumbra.core.transaction.v1alpha1.SpendView.visible:type_name -> penumbra.core.transaction.v1alpha1.SpendView.Visible - 35, // 70: penumbra.core.transaction.v1alpha1.SpendView.opaque:type_name -> penumbra.core.transaction.v1alpha1.SpendView.Opaque - 36, // 71: penumbra.core.transaction.v1alpha1.DelegatorVoteView.visible:type_name -> penumbra.core.transaction.v1alpha1.DelegatorVoteView.Visible - 37, // 72: penumbra.core.transaction.v1alpha1.DelegatorVoteView.opaque:type_name -> penumbra.core.transaction.v1alpha1.DelegatorVoteView.Opaque - 38, // 73: penumbra.core.transaction.v1alpha1.OutputView.visible:type_name -> penumbra.core.transaction.v1alpha1.OutputView.Visible - 39, // 74: penumbra.core.transaction.v1alpha1.OutputView.opaque:type_name -> penumbra.core.transaction.v1alpha1.OutputView.Opaque - 19, // 75: penumbra.core.transaction.v1alpha1.Spend.body:type_name -> penumbra.core.transaction.v1alpha1.SpendBody - 72, // 76: penumbra.core.transaction.v1alpha1.Spend.auth_sig:type_name -> penumbra.core.crypto.v1alpha1.SpendAuthSignature - 73, // 77: penumbra.core.transaction.v1alpha1.Spend.proof:type_name -> penumbra.core.crypto.v1alpha1.ZKSpendProof - 74, // 78: penumbra.core.transaction.v1alpha1.SpendBody.balance_commitment:type_name -> penumbra.core.crypto.v1alpha1.BalanceCommitment - 21, // 79: penumbra.core.transaction.v1alpha1.Output.body:type_name -> penumbra.core.transaction.v1alpha1.OutputBody - 75, // 80: penumbra.core.transaction.v1alpha1.Output.proof:type_name -> penumbra.core.crypto.v1alpha1.ZKOutputProof - 76, // 81: penumbra.core.transaction.v1alpha1.OutputBody.note_payload:type_name -> penumbra.core.crypto.v1alpha1.NotePayload - 74, // 82: penumbra.core.transaction.v1alpha1.OutputBody.balance_commitment:type_name -> penumbra.core.crypto.v1alpha1.BalanceCommitment - 77, // 83: penumbra.core.transaction.v1alpha1.AuthorizationData.effect_hash:type_name -> penumbra.core.crypto.v1alpha1.EffectHash - 72, // 84: penumbra.core.transaction.v1alpha1.AuthorizationData.spend_auths:type_name -> penumbra.core.crypto.v1alpha1.SpendAuthSignature - 72, // 85: penumbra.core.transaction.v1alpha1.AuthorizationData.delegator_vote_auths:type_name -> penumbra.core.crypto.v1alpha1.SpendAuthSignature - 42, // 86: penumbra.core.transaction.v1alpha1.WitnessData.anchor:type_name -> penumbra.core.crypto.v1alpha1.MerkleRoot - 78, // 87: penumbra.core.transaction.v1alpha1.WitnessData.state_commitment_proofs:type_name -> penumbra.core.crypto.v1alpha1.StateCommitmentProof - 25, // 88: penumbra.core.transaction.v1alpha1.TransactionPlan.actions:type_name -> penumbra.core.transaction.v1alpha1.ActionPlan - 43, // 89: penumbra.core.transaction.v1alpha1.TransactionPlan.fee:type_name -> penumbra.core.crypto.v1alpha1.Fee - 26, // 90: penumbra.core.transaction.v1alpha1.TransactionPlan.clue_plans:type_name -> penumbra.core.transaction.v1alpha1.CluePlan - 27, // 91: penumbra.core.transaction.v1alpha1.TransactionPlan.memo_plan:type_name -> penumbra.core.transaction.v1alpha1.MemoPlan - 31, // 92: penumbra.core.transaction.v1alpha1.ActionPlan.spend:type_name -> penumbra.core.transaction.v1alpha1.SpendPlan - 32, // 93: penumbra.core.transaction.v1alpha1.ActionPlan.output:type_name -> penumbra.core.transaction.v1alpha1.OutputPlan - 79, // 94: penumbra.core.transaction.v1alpha1.ActionPlan.swap:type_name -> penumbra.core.dex.v1alpha1.SwapPlan - 80, // 95: penumbra.core.transaction.v1alpha1.ActionPlan.swap_claim:type_name -> penumbra.core.dex.v1alpha1.SwapClaimPlan - 47, // 96: penumbra.core.transaction.v1alpha1.ActionPlan.validator_definition:type_name -> penumbra.core.stake.v1alpha1.ValidatorDefinition - 48, // 97: penumbra.core.transaction.v1alpha1.ActionPlan.ibc_action:type_name -> penumbra.core.ibc.v1alpha1.IbcAction - 49, // 98: penumbra.core.transaction.v1alpha1.ActionPlan.proposal_submit:type_name -> penumbra.core.governance.v1alpha1.ProposalSubmit - 50, // 99: penumbra.core.transaction.v1alpha1.ActionPlan.proposal_withdraw:type_name -> penumbra.core.governance.v1alpha1.ProposalWithdraw - 51, // 100: penumbra.core.transaction.v1alpha1.ActionPlan.validator_vote:type_name -> penumbra.core.governance.v1alpha1.ValidatorVote - 81, // 101: penumbra.core.transaction.v1alpha1.ActionPlan.delegator_vote:type_name -> penumbra.core.governance.v1alpha1.DelegatorVotePlan - 53, // 102: penumbra.core.transaction.v1alpha1.ActionPlan.proposal_deposit_claim:type_name -> penumbra.core.governance.v1alpha1.ProposalDepositClaim - 64, // 103: penumbra.core.transaction.v1alpha1.ActionPlan.withdrawal:type_name -> penumbra.core.ibc.v1alpha1.Ics20Withdrawal - 54, // 104: penumbra.core.transaction.v1alpha1.ActionPlan.position_open:type_name -> penumbra.core.dex.v1alpha1.PositionOpen - 55, // 105: penumbra.core.transaction.v1alpha1.ActionPlan.position_close:type_name -> penumbra.core.dex.v1alpha1.PositionClose - 82, // 106: penumbra.core.transaction.v1alpha1.ActionPlan.position_withdraw:type_name -> penumbra.core.dex.v1alpha1.PositionWithdrawPlan - 83, // 107: penumbra.core.transaction.v1alpha1.ActionPlan.position_reward_claim:type_name -> penumbra.core.dex.v1alpha1.PositionRewardClaimPlan - 58, // 108: penumbra.core.transaction.v1alpha1.ActionPlan.delegate:type_name -> penumbra.core.stake.v1alpha1.Delegate - 59, // 109: penumbra.core.transaction.v1alpha1.ActionPlan.undelegate:type_name -> penumbra.core.stake.v1alpha1.Undelegate - 84, // 110: penumbra.core.transaction.v1alpha1.ActionPlan.undelegate_claim:type_name -> penumbra.core.stake.v1alpha1.UndelegateClaimPlan - 61, // 111: penumbra.core.transaction.v1alpha1.ActionPlan.dao_spend:type_name -> penumbra.core.governance.v1alpha1.DaoSpend - 62, // 112: penumbra.core.transaction.v1alpha1.ActionPlan.dao_output:type_name -> penumbra.core.governance.v1alpha1.DaoOutput - 63, // 113: penumbra.core.transaction.v1alpha1.ActionPlan.dao_deposit:type_name -> penumbra.core.governance.v1alpha1.DaoDeposit - 85, // 114: penumbra.core.transaction.v1alpha1.CluePlan.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 29, // 115: penumbra.core.transaction.v1alpha1.MemoPlan.plaintext:type_name -> penumbra.core.transaction.v1alpha1.MemoPlaintext - 85, // 116: penumbra.core.transaction.v1alpha1.MemoPlaintext.sender:type_name -> penumbra.core.crypto.v1alpha1.Address - 40, // 117: penumbra.core.transaction.v1alpha1.MemoView.visible:type_name -> penumbra.core.transaction.v1alpha1.MemoView.Visible - 41, // 118: penumbra.core.transaction.v1alpha1.MemoView.opaque:type_name -> penumbra.core.transaction.v1alpha1.MemoView.Opaque - 65, // 119: penumbra.core.transaction.v1alpha1.SpendPlan.note:type_name -> penumbra.core.crypto.v1alpha1.Note - 86, // 120: penumbra.core.transaction.v1alpha1.OutputPlan.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 85, // 121: penumbra.core.transaction.v1alpha1.OutputPlan.dest_address:type_name -> penumbra.core.crypto.v1alpha1.Address - 18, // 122: penumbra.core.transaction.v1alpha1.SpendView.Visible.spend:type_name -> penumbra.core.transaction.v1alpha1.Spend - 87, // 123: penumbra.core.transaction.v1alpha1.SpendView.Visible.note:type_name -> penumbra.core.crypto.v1alpha1.NoteView - 18, // 124: penumbra.core.transaction.v1alpha1.SpendView.Opaque.spend:type_name -> penumbra.core.transaction.v1alpha1.Spend - 52, // 125: penumbra.core.transaction.v1alpha1.DelegatorVoteView.Visible.delegator_vote:type_name -> penumbra.core.governance.v1alpha1.DelegatorVote - 87, // 126: penumbra.core.transaction.v1alpha1.DelegatorVoteView.Visible.note:type_name -> penumbra.core.crypto.v1alpha1.NoteView - 52, // 127: penumbra.core.transaction.v1alpha1.DelegatorVoteView.Opaque.delegator_vote:type_name -> penumbra.core.governance.v1alpha1.DelegatorVote - 20, // 128: penumbra.core.transaction.v1alpha1.OutputView.Visible.output:type_name -> penumbra.core.transaction.v1alpha1.Output - 87, // 129: penumbra.core.transaction.v1alpha1.OutputView.Visible.note:type_name -> penumbra.core.crypto.v1alpha1.NoteView - 9, // 130: penumbra.core.transaction.v1alpha1.OutputView.Visible.payload_key:type_name -> penumbra.core.transaction.v1alpha1.PayloadKey - 20, // 131: penumbra.core.transaction.v1alpha1.OutputView.Opaque.output:type_name -> penumbra.core.transaction.v1alpha1.Output - 28, // 132: penumbra.core.transaction.v1alpha1.MemoView.Visible.ciphertext:type_name -> penumbra.core.transaction.v1alpha1.MemoCiphertext - 29, // 133: penumbra.core.transaction.v1alpha1.MemoView.Visible.plaintext:type_name -> penumbra.core.transaction.v1alpha1.MemoPlaintext - 28, // 134: penumbra.core.transaction.v1alpha1.MemoView.Opaque.ciphertext:type_name -> penumbra.core.transaction.v1alpha1.MemoCiphertext - 135, // [135:135] is the sub-list for method output_type - 135, // [135:135] is the sub-list for method input_type - 135, // [135:135] is the sub-list for extension type_name - 135, // [135:135] is the sub-list for extension extendee - 0, // [0:135] is the sub-list for field type_name + 53, // 36: penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment.payload_key:type_name -> penumbra.core.keys.v1alpha1.PayloadKey + 54, // 37: penumbra.core.transaction.v1alpha1.PayloadKeyWithCommitment.commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 55, // 38: penumbra.core.transaction.v1alpha1.NullifierWithNote.nullifier:type_name -> penumbra.core.component.sct.v1alpha1.Nullifier + 50, // 39: penumbra.core.transaction.v1alpha1.NullifierWithNote.note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Note + 11, // 40: penumbra.core.transaction.v1alpha1.TransactionView.body_view:type_name -> penumbra.core.transaction.v1alpha1.TransactionBodyView + 25, // 41: penumbra.core.transaction.v1alpha1.TransactionView.anchor:type_name -> penumbra.crypto.tct.v1alpha1.MerkleRoot + 12, // 42: penumbra.core.transaction.v1alpha1.TransactionBodyView.action_views:type_name -> penumbra.core.transaction.v1alpha1.ActionView + 4, // 43: penumbra.core.transaction.v1alpha1.TransactionBodyView.transaction_parameters:type_name -> penumbra.core.transaction.v1alpha1.TransactionParameters + 26, // 44: penumbra.core.transaction.v1alpha1.TransactionBodyView.fee:type_name -> penumbra.core.component.fee.v1alpha1.Fee + 5, // 45: penumbra.core.transaction.v1alpha1.TransactionBodyView.detection_data:type_name -> penumbra.core.transaction.v1alpha1.DetectionData + 21, // 46: penumbra.core.transaction.v1alpha1.TransactionBodyView.memo_view:type_name -> penumbra.core.transaction.v1alpha1.MemoView + 56, // 47: penumbra.core.transaction.v1alpha1.ActionView.spend:type_name -> penumbra.core.component.shielded_pool.v1alpha1.SpendView + 57, // 48: penumbra.core.transaction.v1alpha1.ActionView.output:type_name -> penumbra.core.component.shielded_pool.v1alpha1.OutputView + 58, // 49: penumbra.core.transaction.v1alpha1.ActionView.swap:type_name -> penumbra.core.component.dex.v1alpha1.SwapView + 59, // 50: penumbra.core.transaction.v1alpha1.ActionView.swap_claim:type_name -> penumbra.core.component.dex.v1alpha1.SwapClaimView + 32, // 51: penumbra.core.transaction.v1alpha1.ActionView.validator_definition:type_name -> penumbra.core.component.stake.v1alpha1.ValidatorDefinition + 33, // 52: penumbra.core.transaction.v1alpha1.ActionView.ibc_action:type_name -> penumbra.core.component.ibc.v1alpha1.IbcAction + 34, // 53: penumbra.core.transaction.v1alpha1.ActionView.proposal_submit:type_name -> penumbra.core.component.governance.v1alpha1.ProposalSubmit + 35, // 54: penumbra.core.transaction.v1alpha1.ActionView.proposal_withdraw:type_name -> penumbra.core.component.governance.v1alpha1.ProposalWithdraw + 36, // 55: penumbra.core.transaction.v1alpha1.ActionView.validator_vote:type_name -> penumbra.core.component.governance.v1alpha1.ValidatorVote + 60, // 56: penumbra.core.transaction.v1alpha1.ActionView.delegator_vote:type_name -> penumbra.core.component.governance.v1alpha1.DelegatorVoteView + 38, // 57: penumbra.core.transaction.v1alpha1.ActionView.proposal_deposit_claim:type_name -> penumbra.core.component.governance.v1alpha1.ProposalDepositClaim + 39, // 58: penumbra.core.transaction.v1alpha1.ActionView.position_open:type_name -> penumbra.core.component.dex.v1alpha1.PositionOpen + 40, // 59: penumbra.core.transaction.v1alpha1.ActionView.position_close:type_name -> penumbra.core.component.dex.v1alpha1.PositionClose + 41, // 60: penumbra.core.transaction.v1alpha1.ActionView.position_withdraw:type_name -> penumbra.core.component.dex.v1alpha1.PositionWithdraw + 42, // 61: penumbra.core.transaction.v1alpha1.ActionView.position_reward_claim:type_name -> penumbra.core.component.dex.v1alpha1.PositionRewardClaim + 43, // 62: penumbra.core.transaction.v1alpha1.ActionView.delegate:type_name -> penumbra.core.component.stake.v1alpha1.Delegate + 44, // 63: penumbra.core.transaction.v1alpha1.ActionView.undelegate:type_name -> penumbra.core.component.stake.v1alpha1.Undelegate + 46, // 64: penumbra.core.transaction.v1alpha1.ActionView.dao_spend:type_name -> penumbra.core.component.governance.v1alpha1.DaoSpend + 47, // 65: penumbra.core.transaction.v1alpha1.ActionView.dao_output:type_name -> penumbra.core.component.governance.v1alpha1.DaoOutput + 48, // 66: penumbra.core.transaction.v1alpha1.ActionView.dao_deposit:type_name -> penumbra.core.component.governance.v1alpha1.DaoDeposit + 45, // 67: penumbra.core.transaction.v1alpha1.ActionView.undelegate_claim:type_name -> penumbra.core.component.stake.v1alpha1.UndelegateClaim + 49, // 68: penumbra.core.transaction.v1alpha1.ActionView.ics20_withdrawal:type_name -> penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal + 61, // 69: penumbra.core.transaction.v1alpha1.AuthorizationData.effect_hash:type_name -> penumbra.core.component.chain.v1alpha1.EffectHash + 62, // 70: penumbra.core.transaction.v1alpha1.AuthorizationData.spend_auths:type_name -> penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature + 62, // 71: penumbra.core.transaction.v1alpha1.AuthorizationData.delegator_vote_auths:type_name -> penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature + 25, // 72: penumbra.core.transaction.v1alpha1.WitnessData.anchor:type_name -> penumbra.crypto.tct.v1alpha1.MerkleRoot + 63, // 73: penumbra.core.transaction.v1alpha1.WitnessData.state_commitment_proofs:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitmentProof + 16, // 74: penumbra.core.transaction.v1alpha1.TransactionPlan.actions:type_name -> penumbra.core.transaction.v1alpha1.ActionPlan + 26, // 75: penumbra.core.transaction.v1alpha1.TransactionPlan.fee:type_name -> penumbra.core.component.fee.v1alpha1.Fee + 17, // 76: penumbra.core.transaction.v1alpha1.TransactionPlan.clue_plans:type_name -> penumbra.core.transaction.v1alpha1.CluePlan + 18, // 77: penumbra.core.transaction.v1alpha1.TransactionPlan.memo_plan:type_name -> penumbra.core.transaction.v1alpha1.MemoPlan + 64, // 78: penumbra.core.transaction.v1alpha1.ActionPlan.spend:type_name -> penumbra.core.component.shielded_pool.v1alpha1.SpendPlan + 65, // 79: penumbra.core.transaction.v1alpha1.ActionPlan.output:type_name -> penumbra.core.component.shielded_pool.v1alpha1.OutputPlan + 66, // 80: penumbra.core.transaction.v1alpha1.ActionPlan.swap:type_name -> penumbra.core.component.dex.v1alpha1.SwapPlan + 67, // 81: penumbra.core.transaction.v1alpha1.ActionPlan.swap_claim:type_name -> penumbra.core.component.dex.v1alpha1.SwapClaimPlan + 32, // 82: penumbra.core.transaction.v1alpha1.ActionPlan.validator_definition:type_name -> penumbra.core.component.stake.v1alpha1.ValidatorDefinition + 33, // 83: penumbra.core.transaction.v1alpha1.ActionPlan.ibc_action:type_name -> penumbra.core.component.ibc.v1alpha1.IbcAction + 34, // 84: penumbra.core.transaction.v1alpha1.ActionPlan.proposal_submit:type_name -> penumbra.core.component.governance.v1alpha1.ProposalSubmit + 35, // 85: penumbra.core.transaction.v1alpha1.ActionPlan.proposal_withdraw:type_name -> penumbra.core.component.governance.v1alpha1.ProposalWithdraw + 36, // 86: penumbra.core.transaction.v1alpha1.ActionPlan.validator_vote:type_name -> penumbra.core.component.governance.v1alpha1.ValidatorVote + 68, // 87: penumbra.core.transaction.v1alpha1.ActionPlan.delegator_vote:type_name -> penumbra.core.component.governance.v1alpha1.DelegatorVotePlan + 38, // 88: penumbra.core.transaction.v1alpha1.ActionPlan.proposal_deposit_claim:type_name -> penumbra.core.component.governance.v1alpha1.ProposalDepositClaim + 49, // 89: penumbra.core.transaction.v1alpha1.ActionPlan.withdrawal:type_name -> penumbra.core.component.ibc.v1alpha1.Ics20Withdrawal + 39, // 90: penumbra.core.transaction.v1alpha1.ActionPlan.position_open:type_name -> penumbra.core.component.dex.v1alpha1.PositionOpen + 40, // 91: penumbra.core.transaction.v1alpha1.ActionPlan.position_close:type_name -> penumbra.core.component.dex.v1alpha1.PositionClose + 69, // 92: penumbra.core.transaction.v1alpha1.ActionPlan.position_withdraw:type_name -> penumbra.core.component.dex.v1alpha1.PositionWithdrawPlan + 70, // 93: penumbra.core.transaction.v1alpha1.ActionPlan.position_reward_claim:type_name -> penumbra.core.component.dex.v1alpha1.PositionRewardClaimPlan + 43, // 94: penumbra.core.transaction.v1alpha1.ActionPlan.delegate:type_name -> penumbra.core.component.stake.v1alpha1.Delegate + 44, // 95: penumbra.core.transaction.v1alpha1.ActionPlan.undelegate:type_name -> penumbra.core.component.stake.v1alpha1.Undelegate + 71, // 96: penumbra.core.transaction.v1alpha1.ActionPlan.undelegate_claim:type_name -> penumbra.core.component.stake.v1alpha1.UndelegateClaimPlan + 46, // 97: penumbra.core.transaction.v1alpha1.ActionPlan.dao_spend:type_name -> penumbra.core.component.governance.v1alpha1.DaoSpend + 47, // 98: penumbra.core.transaction.v1alpha1.ActionPlan.dao_output:type_name -> penumbra.core.component.governance.v1alpha1.DaoOutput + 48, // 99: penumbra.core.transaction.v1alpha1.ActionPlan.dao_deposit:type_name -> penumbra.core.component.governance.v1alpha1.DaoDeposit + 72, // 100: penumbra.core.transaction.v1alpha1.CluePlan.address:type_name -> penumbra.core.keys.v1alpha1.Address + 20, // 101: penumbra.core.transaction.v1alpha1.MemoPlan.plaintext:type_name -> penumbra.core.transaction.v1alpha1.MemoPlaintext + 72, // 102: penumbra.core.transaction.v1alpha1.MemoPlaintext.sender:type_name -> penumbra.core.keys.v1alpha1.Address + 23, // 103: penumbra.core.transaction.v1alpha1.MemoView.visible:type_name -> penumbra.core.transaction.v1alpha1.MemoView.Visible + 24, // 104: penumbra.core.transaction.v1alpha1.MemoView.opaque:type_name -> penumbra.core.transaction.v1alpha1.MemoView.Opaque + 19, // 105: penumbra.core.transaction.v1alpha1.MemoView.Visible.ciphertext:type_name -> penumbra.core.transaction.v1alpha1.MemoCiphertext + 20, // 106: penumbra.core.transaction.v1alpha1.MemoView.Visible.plaintext:type_name -> penumbra.core.transaction.v1alpha1.MemoPlaintext + 19, // 107: penumbra.core.transaction.v1alpha1.MemoView.Opaque.ciphertext:type_name -> penumbra.core.transaction.v1alpha1.MemoCiphertext + 108, // [108:108] is the sub-list for method output_type + 108, // [108:108] is the sub-list for method input_type + 108, // [108:108] is the sub-list for extension type_name + 108, // [108:108] is the sub-list for extension extendee + 0, // [0:108] is the sub-list for field type_name } func init() { file_penumbra_core_transaction_v1alpha1_transaction_proto_init() } @@ -4789,18 +3546,6 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { } } file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EffectHash); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionBody); i { case 0: return &v.state @@ -4812,7 +3557,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoData); i { case 0: return &v.state @@ -4824,7 +3569,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionParameters); i { case 0: return &v.state @@ -4836,7 +3581,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DetectionData); i { case 0: return &v.state @@ -4848,7 +3593,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Action); i { case 0: return &v.state @@ -4860,7 +3605,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionPerspective); i { case 0: return &v.state @@ -4872,19 +3617,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PayloadKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PayloadKeyWithCommitment); i { case 0: return &v.state @@ -4896,7 +3629,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NullifierWithNote); i { case 0: return &v.state @@ -4908,7 +3641,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionView); i { case 0: return &v.state @@ -4920,7 +3653,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionBodyView); i { case 0: return &v.state @@ -4932,7 +3665,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionView); i { case 0: return &v.state @@ -4944,91 +3677,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpendView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegatorVoteView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OutputView); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Spend); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpendBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Output); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OutputBody); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuthorizationData); i { case 0: return &v.state @@ -5040,7 +3689,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WitnessData); i { case 0: return &v.state @@ -5052,7 +3701,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransactionPlan); i { case 0: return &v.state @@ -5064,7 +3713,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionPlan); i { case 0: return &v.state @@ -5076,7 +3725,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CluePlan); i { case 0: return &v.state @@ -5088,7 +3737,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoPlan); i { case 0: return &v.state @@ -5100,7 +3749,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoCiphertext); i { case 0: return &v.state @@ -5112,7 +3761,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoPlaintext); i { case 0: return &v.state @@ -5124,7 +3773,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoView); i { case 0: return &v.state @@ -5136,31 +3785,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpendPlan); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OutputPlan); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GasPrices); i { case 0: return &v.state @@ -5172,79 +3797,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpendView_Visible); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpendView_Opaque); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegatorVoteView_Visible); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegatorVoteView_Opaque); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OutputView_Visible); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OutputView_Opaque); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoView_Visible); i { case 0: return &v.state @@ -5256,7 +3809,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { return nil } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MemoView_Opaque); i { case 0: return &v.state @@ -5269,7 +3822,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { } } } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[7].OneofWrappers = []interface{}{ + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[6].OneofWrappers = []interface{}{ (*Action_Spend)(nil), (*Action_Output)(nil), (*Action_Swap)(nil), @@ -5293,7 +3846,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { (*Action_DaoDeposit)(nil), (*Action_Ics20Withdrawal)(nil), } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[14].OneofWrappers = []interface{}{ + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[12].OneofWrappers = []interface{}{ (*ActionView_Spend)(nil), (*ActionView_Output)(nil), (*ActionView_Swap)(nil), @@ -5317,19 +3870,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { (*ActionView_UndelegateClaim)(nil), (*ActionView_Ics20Withdrawal)(nil), } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[15].OneofWrappers = []interface{}{ - (*SpendView_Visible_)(nil), - (*SpendView_Opaque_)(nil), - } file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[16].OneofWrappers = []interface{}{ - (*DelegatorVoteView_Visible_)(nil), - (*DelegatorVoteView_Opaque_)(nil), - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[17].OneofWrappers = []interface{}{ - (*OutputView_Visible_)(nil), - (*OutputView_Opaque_)(nil), - } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[25].OneofWrappers = []interface{}{ (*ActionPlan_Spend)(nil), (*ActionPlan_Output)(nil), (*ActionPlan_Swap)(nil), @@ -5353,7 +3894,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { (*ActionPlan_DaoOutput)(nil), (*ActionPlan_DaoDeposit)(nil), } - file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[30].OneofWrappers = []interface{}{ + file_penumbra_core_transaction_v1alpha1_transaction_proto_msgTypes[21].OneofWrappers = []interface{}{ (*MemoView_Visible_)(nil), (*MemoView_Opaque_)(nil), } @@ -5363,7 +3904,7 @@ func file_penumbra_core_transaction_v1alpha1_transaction_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_penumbra_core_transaction_v1alpha1_transaction_proto_rawDesc, NumEnums: 0, - NumMessages: 42, + NumMessages: 25, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/go/gen/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go b/proto/go/gen/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go deleted file mode 100644 index d4ba5debf6..0000000000 --- a/proto/go/gen/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.pb.go +++ /dev/null @@ -1,244 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.31.0 -// protoc (unknown) -// source: penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.proto - -package transparent_proofsv1alpha1 - -import ( - v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/dex/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) -) - -// A Penumbra transparent SwapClaimProof. -type SwapClaimProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The swap being claimed - SwapPlaintext *v1alpha1.SwapPlaintext `protobuf:"bytes,1,opt,name=swap_plaintext,json=swapPlaintext,proto3" json:"swap_plaintext,omitempty"` - // Inclusion proof for the swap commitment - SwapCommitmentProof *v1alpha11.StateCommitmentProof `protobuf:"bytes,4,opt,name=swap_commitment_proof,json=swapCommitmentProof,proto3" json:"swap_commitment_proof,omitempty"` - // The nullifier key used to derive the swap nullifier - Nk []byte `protobuf:"bytes,6,opt,name=nk,proto3" json:"nk,omitempty"` - // * - // @exclude - // Describes output amounts - Lambda_1I *v1alpha11.Amount `protobuf:"bytes,20,opt,name=lambda_1_i,json=lambda1I,proto3" json:"lambda_1_i,omitempty"` - Lambda_2I *v1alpha11.Amount `protobuf:"bytes,21,opt,name=lambda_2_i,json=lambda2I,proto3" json:"lambda_2_i,omitempty"` -} - -func (x *SwapClaimProof) Reset() { - *x = SwapClaimProof{} - if protoimpl.UnsafeEnabled { - mi := &file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SwapClaimProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SwapClaimProof) ProtoMessage() {} - -func (x *SwapClaimProof) ProtoReflect() protoreflect.Message { - mi := &file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_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 SwapClaimProof.ProtoReflect.Descriptor instead. -func (*SwapClaimProof) Descriptor() ([]byte, []int) { - return file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDescGZIP(), []int{0} -} - -func (x *SwapClaimProof) GetSwapPlaintext() *v1alpha1.SwapPlaintext { - if x != nil { - return x.SwapPlaintext - } - return nil -} - -func (x *SwapClaimProof) GetSwapCommitmentProof() *v1alpha11.StateCommitmentProof { - if x != nil { - return x.SwapCommitmentProof - } - return nil -} - -func (x *SwapClaimProof) GetNk() []byte { - if x != nil { - return x.Nk - } - return nil -} - -func (x *SwapClaimProof) GetLambda_1I() *v1alpha11.Amount { - if x != nil { - return x.Lambda_1I - } - return nil -} - -func (x *SwapClaimProof) GetLambda_2I() *v1alpha11.Amount { - if x != nil { - return x.Lambda_2I - } - return nil -} - -var File_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto protoreflect.FileDescriptor - -var file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDesc = []byte{ - 0x0a, 0x42, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, - 0x66, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, - 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x64, 0x65, 0x78, 0x2f, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0xe5, 0x02, 0x0a, 0x0e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x70, 0x6c, 0x61, - 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, - 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x73, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, - 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x67, 0x0a, 0x15, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x13, 0x73, 0x77, 0x61, 0x70, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, - 0x0e, 0x0a, 0x02, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x6e, 0x6b, 0x12, - 0x43, 0x0a, 0x0a, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x5f, 0x31, 0x5f, 0x69, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x08, 0x6c, 0x61, 0x6d, 0x62, - 0x64, 0x61, 0x31, 0x49, 0x12, 0x43, 0x0a, 0x0a, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x5f, 0x32, - 0x5f, 0x69, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x08, 0x6c, 0x61, 0x6d, 0x62, 0x64, 0x61, 0x32, 0x49, 0x42, 0xff, 0x02, 0x0a, 0x2d, 0x63, 0x6f, - 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, - 0x66, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x16, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x73, 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, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, - 0x66, 0x73, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x54, - 0xaa, 0x02, 0x28, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x6f, 0x72, 0x65, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x73, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x28, 0x50, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x5c, 0x56, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x34, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x5c, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x2b, - 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} - -var ( - file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDescOnce sync.Once - file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDescData = file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDesc -) - -func file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDescGZIP() []byte { - file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDescOnce.Do(func() { - file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDescData) - }) - return file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDescData -} - -var file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_goTypes = []interface{}{ - (*SwapClaimProof)(nil), // 0: penumbra.core.transparent_proofs.v1alpha1.SwapClaimProof - (*v1alpha1.SwapPlaintext)(nil), // 1: penumbra.core.dex.v1alpha1.SwapPlaintext - (*v1alpha11.StateCommitmentProof)(nil), // 2: penumbra.core.crypto.v1alpha1.StateCommitmentProof - (*v1alpha11.Amount)(nil), // 3: penumbra.core.crypto.v1alpha1.Amount -} -var file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_depIdxs = []int32{ - 1, // 0: penumbra.core.transparent_proofs.v1alpha1.SwapClaimProof.swap_plaintext:type_name -> penumbra.core.dex.v1alpha1.SwapPlaintext - 2, // 1: penumbra.core.transparent_proofs.v1alpha1.SwapClaimProof.swap_commitment_proof:type_name -> penumbra.core.crypto.v1alpha1.StateCommitmentProof - 3, // 2: penumbra.core.transparent_proofs.v1alpha1.SwapClaimProof.lambda_1_i:type_name -> penumbra.core.crypto.v1alpha1.Amount - 3, // 3: penumbra.core.transparent_proofs.v1alpha1.SwapClaimProof.lambda_2_i:type_name -> penumbra.core.crypto.v1alpha1.Amount - 4, // [4:4] is the sub-list for method output_type - 4, // [4:4] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name -} - -func init() { file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_init() } -func file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_init() { - if File_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SwapClaimProof); 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_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_goTypes, - DependencyIndexes: file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_depIdxs, - MessageInfos: file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_msgTypes, - }.Build() - File_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto = out.File - file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_rawDesc = nil - file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_goTypes = nil - file_penumbra_core_transparent_proofs_v1alpha1_transparent_proofs_proto_depIdxs = nil -} diff --git a/proto/go/gen/penumbra/crypto/decaf377_fmd/v1alpha1/decaf377_fmd.pb.go b/proto/go/gen/penumbra/crypto/decaf377_fmd/v1alpha1/decaf377_fmd.pb.go new file mode 100644 index 0000000000..38531f67f7 --- /dev/null +++ b/proto/go/gen/penumbra/crypto/decaf377_fmd/v1alpha1/decaf377_fmd.pb.go @@ -0,0 +1,168 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/crypto/decaf377_fmd/v1alpha1/decaf377_fmd.proto + +package decaf377_fmdv1alpha1 + +import ( + 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) +) + +// A clue for use with Fuzzy Message Detection. +type Clue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *Clue) Reset() { + *x = Clue{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Clue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Clue) ProtoMessage() {} + +func (x *Clue) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_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 Clue.ProtoReflect.Descriptor instead. +func (*Clue) Descriptor() ([]byte, []int) { + return file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDescGZIP(), []int{0} +} + +func (x *Clue) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +var File_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto protoreflect.FileDescriptor + +var file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDesc = []byte{ + 0x0a, 0x38, 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, 0x66, 0x6d, 0x64, 0x2f, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, + 0x5f, 0x66, 0x6d, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 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, 0x22, 0x1c, 0x0a, 0x04, 0x43, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x42, + 0xdb, 0x02, 0x0a, 0x29, 0x63, 0x6f, 0x6d, 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, 0x66, 0x6d, 0x64, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x10, 0x44, + 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x46, 0x6d, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x69, 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, 0x72, 0x79, 0x70, 0x74, + 0x6f, 0x2f, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x66, 0x6d, 0x64, 0x2f, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, + 0x5f, 0x66, 0x6d, 0x64, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, + 0x43, 0x44, 0xaa, 0x02, 0x24, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x72, + 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x46, 0x6d, 0x64, + 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x24, 0x50, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5c, 0x44, 0x65, 0x63, 0x61, + 0x66, 0x33, 0x37, 0x37, 0x46, 0x6d, 0x64, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xe2, 0x02, 0x30, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x72, 0x79, 0x70, + 0x74, 0x6f, 0x5c, 0x44, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x46, 0x6d, 0x64, 0x5c, 0x56, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x27, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, + 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x3a, 0x3a, 0x44, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, + 0x46, 0x6d, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDescOnce sync.Once + file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDescData = file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDesc +) + +func file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDescGZIP() []byte { + file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDescOnce.Do(func() { + file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDescData) + }) + return file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDescData +} + +var file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_goTypes = []interface{}{ + (*Clue)(nil), // 0: penumbra.crypto.decaf377_fmd.v1alpha1.Clue +} +var file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_init() } +func file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_init() { + if File_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Clue); 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_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_goTypes, + DependencyIndexes: file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_depIdxs, + MessageInfos: file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_msgTypes, + }.Build() + File_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto = out.File + file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_rawDesc = nil + file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_goTypes = nil + file_penumbra_crypto_decaf377_fmd_v1alpha1_decaf377_fmd_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.pb.go b/proto/go/gen/penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.pb.go new file mode 100644 index 0000000000..c4bb76d1f1 --- /dev/null +++ b/proto/go/gen/penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.pb.go @@ -0,0 +1,231 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.proto + +package decaf377_rdsav1alpha1 + +import ( + 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) +) + +type SpendAuthSignature struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *SpendAuthSignature) Reset() { + *x = SpendAuthSignature{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpendAuthSignature) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpendAuthSignature) ProtoMessage() {} + +func (x *SpendAuthSignature) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_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 SpendAuthSignature.ProtoReflect.Descriptor instead. +func (*SpendAuthSignature) Descriptor() ([]byte, []int) { + return file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDescGZIP(), []int{0} +} + +func (x *SpendAuthSignature) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type BindingSignature struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *BindingSignature) Reset() { + *x = BindingSignature{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BindingSignature) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BindingSignature) ProtoMessage() {} + +func (x *BindingSignature) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_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 BindingSignature.ProtoReflect.Descriptor instead. +func (*BindingSignature) Descriptor() ([]byte, []int) { + return file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDescGZIP(), []int{1} +} + +func (x *BindingSignature) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +var File_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto protoreflect.FileDescriptor + +var file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x26, 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, 0x22, 0x2a, 0x0a, 0x12, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, + 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, + 0x22, 0x28, 0x0a, 0x10, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x42, 0xe3, 0x02, 0x0a, 0x2a, 0x63, + 0x6f, 0x6d, 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, 0x42, 0x11, 0x44, 0x65, 0x63, 0x61, 0x66, + 0x33, 0x37, 0x37, 0x52, 0x64, 0x73, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x6b, + 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, 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, 0x3b, 0x64, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x5f, 0x72, + 0x64, 0x73, 0x61, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, + 0x44, 0xaa, 0x02, 0x25, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x72, 0x79, + 0x70, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x52, 0x64, 0x73, 0x61, + 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x25, 0x50, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5c, 0x44, 0x65, 0x63, 0x61, + 0x66, 0x33, 0x37, 0x37, 0x52, 0x64, 0x73, 0x61, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0xe2, 0x02, 0x31, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x72, 0x79, + 0x70, 0x74, 0x6f, 0x5c, 0x44, 0x65, 0x63, 0x61, 0x66, 0x33, 0x37, 0x37, 0x52, 0x64, 0x73, 0x61, + 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, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x3a, 0x3a, 0x44, 0x65, 0x63, 0x61, 0x66, 0x33, + 0x37, 0x37, 0x52, 0x64, 0x73, 0x61, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDescOnce sync.Once + file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDescData = file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDesc +) + +func file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDescGZIP() []byte { + file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDescOnce.Do(func() { + file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDescData) + }) + return file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDescData +} + +var file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_goTypes = []interface{}{ + (*SpendAuthSignature)(nil), // 0: penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature + (*BindingSignature)(nil), // 1: penumbra.crypto.decaf377_rdsa.v1alpha1.BindingSignature +} +var file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_init() } +func file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_init() { + if File_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpendAuthSignature); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BindingSignature); 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_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_goTypes, + DependencyIndexes: file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_depIdxs, + MessageInfos: file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_msgTypes, + }.Build() + File_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto = out.File + file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_rawDesc = nil + file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_goTypes = nil + file_penumbra_crypto_decaf377_rdsa_v1alpha1_decaf377_rdsa_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/crypto/tct/v1alpha1/tct.pb.go b/proto/go/gen/penumbra/crypto/tct/v1alpha1/tct.pb.go new file mode 100644 index 0000000000..6f9654a172 --- /dev/null +++ b/proto/go/gen/penumbra/crypto/tct/v1alpha1/tct.pb.go @@ -0,0 +1,400 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc (unknown) +// source: penumbra/crypto/tct/v1alpha1/tct.proto + +package tctv1alpha1 + +import ( + 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) +) + +type StateCommitment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *StateCommitment) Reset() { + *x = StateCommitment{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StateCommitment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateCommitment) ProtoMessage() {} + +func (x *StateCommitment) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_crypto_tct_v1alpha1_tct_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 StateCommitment.ProtoReflect.Descriptor instead. +func (*StateCommitment) Descriptor() ([]byte, []int) { + return file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescGZIP(), []int{0} +} + +func (x *StateCommitment) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +type MerkleRoot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Inner []byte `protobuf:"bytes,1,opt,name=inner,proto3" json:"inner,omitempty"` +} + +func (x *MerkleRoot) Reset() { + *x = MerkleRoot{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MerkleRoot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MerkleRoot) ProtoMessage() {} + +func (x *MerkleRoot) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_crypto_tct_v1alpha1_tct_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 MerkleRoot.ProtoReflect.Descriptor instead. +func (*MerkleRoot) Descriptor() ([]byte, []int) { + return file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescGZIP(), []int{1} +} + +func (x *MerkleRoot) GetInner() []byte { + if x != nil { + return x.Inner + } + return nil +} + +// An authentication path from a state commitment to the root of the state commitment tree. +type StateCommitmentProof struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NoteCommitment *StateCommitment `protobuf:"bytes,1,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` + Position uint64 `protobuf:"varint,2,opt,name=position,proto3" json:"position,omitempty"` + AuthPath []*MerklePathChunk `protobuf:"bytes,3,rep,name=auth_path,json=authPath,proto3" json:"auth_path,omitempty"` // always length 24 +} + +func (x *StateCommitmentProof) Reset() { + *x = StateCommitmentProof{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StateCommitmentProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateCommitmentProof) ProtoMessage() {} + +func (x *StateCommitmentProof) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_crypto_tct_v1alpha1_tct_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 StateCommitmentProof.ProtoReflect.Descriptor instead. +func (*StateCommitmentProof) Descriptor() ([]byte, []int) { + return file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescGZIP(), []int{2} +} + +func (x *StateCommitmentProof) GetNoteCommitment() *StateCommitment { + if x != nil { + return x.NoteCommitment + } + return nil +} + +func (x *StateCommitmentProof) GetPosition() uint64 { + if x != nil { + return x.Position + } + return 0 +} + +func (x *StateCommitmentProof) GetAuthPath() []*MerklePathChunk { + if x != nil { + return x.AuthPath + } + return nil +} + +// A set of 3 sibling hashes in the auth path for some note commitment. +type MerklePathChunk struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sibling_1 []byte `protobuf:"bytes,1,opt,name=sibling_1,json=sibling1,proto3" json:"sibling_1,omitempty"` + Sibling_2 []byte `protobuf:"bytes,2,opt,name=sibling_2,json=sibling2,proto3" json:"sibling_2,omitempty"` + Sibling_3 []byte `protobuf:"bytes,3,opt,name=sibling_3,json=sibling3,proto3" json:"sibling_3,omitempty"` +} + +func (x *MerklePathChunk) Reset() { + *x = MerklePathChunk{} + if protoimpl.UnsafeEnabled { + mi := &file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MerklePathChunk) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MerklePathChunk) ProtoMessage() {} + +func (x *MerklePathChunk) ProtoReflect() protoreflect.Message { + mi := &file_penumbra_crypto_tct_v1alpha1_tct_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 MerklePathChunk.ProtoReflect.Descriptor instead. +func (*MerklePathChunk) Descriptor() ([]byte, []int) { + return file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescGZIP(), []int{3} +} + +func (x *MerklePathChunk) GetSibling_1() []byte { + if x != nil { + return x.Sibling_1 + } + return nil +} + +func (x *MerklePathChunk) GetSibling_2() []byte { + if x != nil { + return x.Sibling_2 + } + return nil +} + +func (x *MerklePathChunk) GetSibling_3() []byte { + if x != nil { + return x.Sibling_3 + } + return nil +} + +var File_penumbra_crypto_tct_v1alpha1_tct_proto protoreflect.FileDescriptor + +var file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDesc = []byte{ + 0x0a, 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, 0x12, 0x1c, 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, 0x22, 0x27, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, + 0x22, 0x0a, 0x0a, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x22, 0xd6, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x56, 0x0a, 0x0f, + 0x6e, 0x6f, 0x74, 0x65, 0x5f, 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, 0x0e, 0x6e, 0x6f, 0x74, 0x65, 0x43, 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, 0x4a, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x03, 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, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x43, 0x68, 0x75, + 0x6e, 0x6b, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x50, 0x61, 0x74, 0x68, 0x22, 0x68, 0x0a, 0x0f, + 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, + 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x31, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x31, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x62, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x69, + 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x33, 0x42, 0x98, 0x02, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 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, 0x42, 0x08, 0x54, 0x63, 0x74, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x57, 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, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x74, 0x63, 0x74, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x3b, 0x74, 0x63, 0x74, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0xa2, 0x02, 0x03, 0x50, 0x43, 0x54, 0xaa, 0x02, 0x1c, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x54, 0x63, 0x74, 0x2e, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x1c, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x5c, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5c, 0x54, 0x63, 0x74, 0x5c, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x28, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, + 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5c, 0x54, 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, 0x1f, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x72, 0x79, 0x70, + 0x74, 0x6f, 0x3a, 0x3a, 0x54, 0x63, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescOnce sync.Once + file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescData = file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDesc +) + +func file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescGZIP() []byte { + file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescOnce.Do(func() { + file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescData = protoimpl.X.CompressGZIP(file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescData) + }) + return file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDescData +} + +var file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_penumbra_crypto_tct_v1alpha1_tct_proto_goTypes = []interface{}{ + (*StateCommitment)(nil), // 0: penumbra.crypto.tct.v1alpha1.StateCommitment + (*MerkleRoot)(nil), // 1: penumbra.crypto.tct.v1alpha1.MerkleRoot + (*StateCommitmentProof)(nil), // 2: penumbra.crypto.tct.v1alpha1.StateCommitmentProof + (*MerklePathChunk)(nil), // 3: penumbra.crypto.tct.v1alpha1.MerklePathChunk +} +var file_penumbra_crypto_tct_v1alpha1_tct_proto_depIdxs = []int32{ + 0, // 0: penumbra.crypto.tct.v1alpha1.StateCommitmentProof.note_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 3, // 1: penumbra.crypto.tct.v1alpha1.StateCommitmentProof.auth_path:type_name -> penumbra.crypto.tct.v1alpha1.MerklePathChunk + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_penumbra_crypto_tct_v1alpha1_tct_proto_init() } +func file_penumbra_crypto_tct_v1alpha1_tct_proto_init() { + if File_penumbra_crypto_tct_v1alpha1_tct_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateCommitment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MerkleRoot); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateCommitmentProof); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MerklePathChunk); 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_crypto_tct_v1alpha1_tct_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_penumbra_crypto_tct_v1alpha1_tct_proto_goTypes, + DependencyIndexes: file_penumbra_crypto_tct_v1alpha1_tct_proto_depIdxs, + MessageInfos: file_penumbra_crypto_tct_v1alpha1_tct_proto_msgTypes, + }.Build() + File_penumbra_crypto_tct_v1alpha1_tct_proto = out.File + file_penumbra_crypto_tct_v1alpha1_tct_proto_rawDesc = nil + file_penumbra_crypto_tct_v1alpha1_tct_proto_goTypes = nil + file_penumbra_crypto_tct_v1alpha1_tct_proto_depIdxs = nil +} diff --git a/proto/go/gen/penumbra/custody/v1alpha1/custody.pb.go b/proto/go/gen/penumbra/custody/v1alpha1/custody.pb.go index 4f034ed932..b2c60d821f 100644 --- a/proto/go/gen/penumbra/custody/v1alpha1/custody.pb.go +++ b/proto/go/gen/penumbra/custody/v1alpha1/custody.pb.go @@ -7,7 +7,7 @@ package custodyv1alpha1 import ( - v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/transaction/v1alpha1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -275,72 +275,72 @@ var file_penumbra_custody_v1alpha1_custody_proto_rawDesc = []byte{ 0x64, 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x1a, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, - 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x90, 0x02, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x70, - 0x6c, 0x61, 0x6e, 0x18, 0x01, 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, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, - 0x70, 0x6c, 0x61, 0x6e, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x5a, 0x0a, - 0x12, 0x70, 0x72, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x70, 0x68, 0x61, 0x31, 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, 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, 0x8e, 0x02, 0x0a, 0x10, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, + 0x01, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, + 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 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, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x5f, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x11, 0x70, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x5e, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 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, 0x41, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0xa5, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x07, 0x65, 0x64, 0x32, 0x35, + 0x35, 0x31, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x70, 0x72, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x5e, 0x0a, 0x11, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 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, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa5, 0x01, 0x0a, 0x10, 0x50, 0x72, - 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, - 0x0a, 0x07, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x64, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x41, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x64, 0x32, - 0x35, 0x35, 0x31, 0x39, 0x48, 0x00, 0x52, 0x07, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x1a, - 0x2b, 0x0a, 0x07, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x12, 0x0e, 0x0a, 0x02, 0x76, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x76, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x42, 0x13, 0x0a, 0x11, - 0x70, 0x72, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x32, 0x80, 0x01, 0x0a, 0x16, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x8d, 0x02, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x58, 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, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x3b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0xa2, 0x02, 0x03, 0x50, 0x43, 0x58, 0xaa, 0x02, 0x19, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0xca, 0x02, 0x19, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x64, 0x79, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, - 0x25, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, - 0x79, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1b, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x3a, 0x3a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x48, 0x00, + 0x52, 0x07, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x1a, 0x2b, 0x0a, 0x07, 0x45, 0x64, 0x32, + 0x35, 0x35, 0x31, 0x39, 0x12, 0x0e, 0x0a, 0x02, 0x76, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x02, 0x76, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x42, 0x13, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x80, 0x01, 0x0a, 0x16, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x64, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x8d, + 0x02, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x42, 0x0c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x58, 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, 0x75, 0x73, 0x74, 0x6f, 0x64, + 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x64, 0x79, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x43, 0x58, + 0xaa, 0x02, 0x19, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x64, 0x79, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x19, 0x50, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x5c, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x25, 0x50, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x5c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x5c, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x1b, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x64, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -362,12 +362,12 @@ var file_penumbra_custody_v1alpha1_custody_proto_goTypes = []interface{}{ (*PreAuthorization)(nil), // 2: penumbra.custody.v1alpha1.PreAuthorization (*PreAuthorization_Ed25519)(nil), // 3: penumbra.custody.v1alpha1.PreAuthorization.Ed25519 (*v1alpha1.TransactionPlan)(nil), // 4: penumbra.core.transaction.v1alpha1.TransactionPlan - (*v1alpha11.AccountGroupId)(nil), // 5: penumbra.core.crypto.v1alpha1.AccountGroupId + (*v1alpha11.AccountGroupId)(nil), // 5: penumbra.core.keys.v1alpha1.AccountGroupId (*v1alpha1.AuthorizationData)(nil), // 6: penumbra.core.transaction.v1alpha1.AuthorizationData } var file_penumbra_custody_v1alpha1_custody_proto_depIdxs = []int32{ 4, // 0: penumbra.custody.v1alpha1.AuthorizeRequest.plan:type_name -> penumbra.core.transaction.v1alpha1.TransactionPlan - 5, // 1: penumbra.custody.v1alpha1.AuthorizeRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId + 5, // 1: penumbra.custody.v1alpha1.AuthorizeRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId 2, // 2: penumbra.custody.v1alpha1.AuthorizeRequest.pre_authorizations:type_name -> penumbra.custody.v1alpha1.PreAuthorization 6, // 3: penumbra.custody.v1alpha1.AuthorizeResponse.data:type_name -> penumbra.core.transaction.v1alpha1.AuthorizationData 3, // 4: penumbra.custody.v1alpha1.PreAuthorization.ed25519:type_name -> penumbra.custody.v1alpha1.PreAuthorization.Ed25519 diff --git a/proto/go/gen/penumbra/narsil/ledger/v1alpha1/ledger.pb.go b/proto/go/gen/penumbra/narsil/ledger/v1alpha1/ledger.pb.go index 803458dbbb..639247ec7c 100644 --- a/proto/go/gen/penumbra/narsil/ledger/v1alpha1/ledger.pb.go +++ b/proto/go/gen/penumbra/narsil/ledger/v1alpha1/ledger.pb.go @@ -7,8 +7,9 @@ package ledgerv1alpha1 import ( - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" - v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/transaction/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/chain/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/transaction/v1alpha1" v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/custody/v1alpha1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -2068,7 +2069,7 @@ type CeremonyState_Finished struct { // A list of authorization share messages received in round 2. Shares []*AuthorizeShare `protobuf:"bytes,3,rep,name=shares,proto3" json:"shares,omitempty"` // The authorization data resulting from the ceremony. - AuthData *v1alpha11.AuthorizationData `protobuf:"bytes,4,opt,name=auth_data,json=authData,proto3" json:"auth_data,omitempty"` + AuthData *v1alpha13.AuthorizationData `protobuf:"bytes,4,opt,name=auth_data,json=authData,proto3" json:"auth_data,omitempty"` } func (x *CeremonyState_Finished) Reset() { @@ -2124,7 +2125,7 @@ func (x *CeremonyState_Finished) GetShares() []*AuthorizeShare { return nil } -func (x *CeremonyState_Finished) GetAuthData() *v1alpha11.AuthorizationData { +func (x *CeremonyState_Finished) GetAuthData() *v1alpha13.AuthorizationData { if x != nil { return x.AuthData } @@ -2503,12 +2504,15 @@ var file_penumbra_narsil_ledger_v1alpha1_ledger_proto_rawDesc = []byte{ 0x31, 0x2f, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x6e, 0x61, 0x72, 0x73, 0x69, 0x6c, 0x2e, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, - 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 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, + 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, 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, 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, 0x27, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x0b, 0x49, @@ -2578,37 +2582,37 @@ var file_penumbra_narsil_ledger_v1alpha1_ledger_proto_rawDesc = []byte{ 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xbb, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xb9, 0x01, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x57, 0x0a, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x69, - 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6c, - 0x6c, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x75, 0x6c, - 0x6c, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x0c, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x6e, 0x61, 0x72, - 0x73, 0x69, 0x6c, 0x2e, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x09, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x69, 0x0a, 0x16, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x14, 0x73, 0x68, 0x61, 0x72, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x0c, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x6e, 0x61, 0x72, 0x73, - 0x69, 0x6c, 0x2e, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 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, 0x5f, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x4f, 0x0a, 0x0b, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, - 0x01, 0x20, 0x01, 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, + 0x66, 0x6f, 0x12, 0x55, 0x0a, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x69, + 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 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, 0x46, 0x75, 0x6c, 0x6c, 0x56, + 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x75, 0x6c, 0x6c, 0x56, + 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x6e, 0x61, 0x72, 0x73, 0x69, + 0x6c, 0x2e, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x09, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x67, 0x0a, + 0x16, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 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, 0x53, 0x70, 0x65, 0x6e, + 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, + 0x52, 0x14, 0x73, 0x68, 0x61, 0x72, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x6e, 0x61, 0x72, 0x73, 0x69, 0x6c, 0x2e, 0x6c, + 0x65, 0x64, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, + 0x68, 0x61, 0x72, 0x64, 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, 0x63, 0x0a, 0x0c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x53, 0x0a, 0x0b, + 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 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, 0x22, 0x8a, 0x01, 0x0a, 0x0d, 0x43, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x6e, 0x79, 0x49, 0x6e, @@ -2993,11 +2997,11 @@ var file_penumbra_narsil_ledger_v1alpha1_ledger_proto_goTypes = []interface{}{ (*DkgState_StartedRound1)(nil), // 36: penumbra.narsil.ledger.v1alpha1.DkgState.StartedRound1 (*DkgState_StartedRound2)(nil), // 37: penumbra.narsil.ledger.v1alpha1.DkgState.StartedRound2 (*DkgState_Finished)(nil), // 38: penumbra.narsil.ledger.v1alpha1.DkgState.Finished - (*v1alpha1.FullViewingKey)(nil), // 39: penumbra.core.crypto.v1alpha1.FullViewingKey - (*v1alpha1.SpendVerificationKey)(nil), // 40: penumbra.core.crypto.v1alpha1.SpendVerificationKey - (*v1alpha11.EffectHash)(nil), // 41: penumbra.core.transaction.v1alpha1.EffectHash + (*v1alpha1.FullViewingKey)(nil), // 39: penumbra.core.keys.v1alpha1.FullViewingKey + (*v1alpha1.SpendVerificationKey)(nil), // 40: penumbra.core.keys.v1alpha1.SpendVerificationKey + (*v1alpha11.EffectHash)(nil), // 41: penumbra.core.component.chain.v1alpha1.EffectHash (*v1alpha12.AuthorizeRequest)(nil), // 42: penumbra.custody.v1alpha1.AuthorizeRequest - (*v1alpha11.AuthorizationData)(nil), // 43: penumbra.core.transaction.v1alpha1.AuthorizationData + (*v1alpha13.AuthorizationData)(nil), // 43: penumbra.core.transaction.v1alpha1.AuthorizationData } var file_penumbra_narsil_ledger_v1alpha1_ledger_proto_depIdxs = []int32{ 2, // 0: penumbra.narsil.ledger.v1alpha1.ShardDescription.identity_key:type_name -> penumbra.narsil.ledger.v1alpha1.ShardIdentityKey @@ -3005,11 +3009,11 @@ var file_penumbra_narsil_ledger_v1alpha1_ledger_proto_depIdxs = []int32{ 3, // 2: penumbra.narsil.ledger.v1alpha1.ShardDescription.consensus_key:type_name -> penumbra.narsil.ledger.v1alpha1.ConsensusKey 7, // 3: penumbra.narsil.ledger.v1alpha1.ShardOperator.description:type_name -> penumbra.narsil.ledger.v1alpha1.ShardDescription 8, // 4: penumbra.narsil.ledger.v1alpha1.GenesisData.operators:type_name -> penumbra.narsil.ledger.v1alpha1.ShardOperator - 39, // 5: penumbra.narsil.ledger.v1alpha1.AccountGroupInfo.full_viewing_key:type_name -> penumbra.core.crypto.v1alpha1.FullViewingKey + 39, // 5: penumbra.narsil.ledger.v1alpha1.AccountGroupInfo.full_viewing_key:type_name -> penumbra.core.keys.v1alpha1.FullViewingKey 11, // 6: penumbra.narsil.ledger.v1alpha1.AccountGroupInfo.participants:type_name -> penumbra.narsil.ledger.v1alpha1.ShardInfo - 40, // 7: penumbra.narsil.ledger.v1alpha1.ShardInfo.shard_verification_key:type_name -> penumbra.core.crypto.v1alpha1.SpendVerificationKey + 40, // 7: penumbra.narsil.ledger.v1alpha1.ShardInfo.shard_verification_key:type_name -> penumbra.core.keys.v1alpha1.SpendVerificationKey 2, // 8: penumbra.narsil.ledger.v1alpha1.ShardInfo.identity_key:type_name -> penumbra.narsil.ledger.v1alpha1.ShardIdentityKey - 41, // 9: penumbra.narsil.ledger.v1alpha1.RequestIndex.effect_hash:type_name -> penumbra.core.transaction.v1alpha1.EffectHash + 41, // 9: penumbra.narsil.ledger.v1alpha1.RequestIndex.effect_hash:type_name -> penumbra.core.component.chain.v1alpha1.EffectHash 12, // 10: penumbra.narsil.ledger.v1alpha1.CeremonyIndex.request_index:type_name -> penumbra.narsil.ledger.v1alpha1.RequestIndex 13, // 11: penumbra.narsil.ledger.v1alpha1.Committee.ceremony:type_name -> penumbra.narsil.ledger.v1alpha1.CeremonyIndex 11, // 12: penumbra.narsil.ledger.v1alpha1.Committee.participants:type_name -> penumbra.narsil.ledger.v1alpha1.ShardInfo diff --git a/proto/go/gen/penumbra/tools/summoning/v1alpha1/summoning.pb.go b/proto/go/gen/penumbra/tools/summoning/v1alpha1/summoning.pb.go index 8d69ee7dc2..772d59b70d 100644 --- a/proto/go/gen/penumbra/tools/summoning/v1alpha1/summoning.pb.go +++ b/proto/go/gen/penumbra/tools/summoning/v1alpha1/summoning.pb.go @@ -7,7 +7,8 @@ package summoningv1alpha1 import ( - v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" + v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/num/v1alpha1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -407,9 +408,9 @@ type ParticipateResponse_Position struct { // The total number of participants in the queue. ConnectedParticipants uint32 `protobuf:"varint,2,opt,name=connected_participants,json=connectedParticipants,proto3" json:"connected_participants,omitempty"` // The bid for the most recently executed contribution slot. - LastSlotBid *v1alpha1.Amount `protobuf:"bytes,3,opt,name=last_slot_bid,json=lastSlotBid,proto3" json:"last_slot_bid,omitempty"` + LastSlotBid *v1alpha11.Amount `protobuf:"bytes,3,opt,name=last_slot_bid,json=lastSlotBid,proto3" json:"last_slot_bid,omitempty"` // The participant's current bid. - YourBid *v1alpha1.Amount `protobuf:"bytes,4,opt,name=your_bid,json=yourBid,proto3" json:"your_bid,omitempty"` + YourBid *v1alpha11.Amount `protobuf:"bytes,4,opt,name=your_bid,json=yourBid,proto3" json:"your_bid,omitempty"` } func (x *ParticipateResponse_Position) Reset() { @@ -458,14 +459,14 @@ func (x *ParticipateResponse_Position) GetConnectedParticipants() uint32 { return 0 } -func (x *ParticipateResponse_Position) GetLastSlotBid() *v1alpha1.Amount { +func (x *ParticipateResponse_Position) GetLastSlotBid() *v1alpha11.Amount { if x != nil { return x.LastSlotBid } return nil } -func (x *ParticipateResponse_Position) GetYourBid() *v1alpha1.Amount { +func (x *ParticipateResponse_Position) GetYourBid() *v1alpha11.Amount { if x != nil { return x.YourBid } @@ -577,27 +578,29 @@ var file_penumbra_tools_summoning_v1alpha1_summoning_proto_rawDesc = []byte{ 0x68, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xae, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5c, 0x0a, 0x08, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, 0x6d, - 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x48, 0x00, 0x52, 0x08, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x12, 0x68, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 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, 0x22, 0xac, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5c, 0x0a, 0x08, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x1a, 0x4c, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x12, 0x40, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x48, 0x00, 0x52, + 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 0x12, 0x68, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x42, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, + 0x2e, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0x4a, 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x79, 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, 0x1a, 0x7b, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, @@ -622,7 +625,7 @@ var file_penumbra_tools_summoning_v1alpha1_summoning_proto_rawDesc = []byte{ 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x36, 0x0a, 0x17, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x73, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x65, - 0x72, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x73, 0x22, 0xab, + 0x72, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x72, 0x73, 0x22, 0xa5, 0x05, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, @@ -643,60 +646,60 @@ var file_penumbra_tools_summoning_v1alpha1_summoning_proto_rawDesc = []byte{ 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, - 0x1a, 0xea, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, + 0x1a, 0xe4, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x16, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, - 0x12, 0x49, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x62, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0b, - 0x6c, 0x61, 0x73, 0x74, 0x53, 0x6c, 0x6f, 0x74, 0x42, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x08, 0x79, - 0x6f, 0x75, 0x72, 0x5f, 0x62, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x07, 0x79, 0x6f, 0x75, 0x72, 0x42, 0x69, 0x64, 0x1a, 0x57, 0x0a, - 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x46, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x12, 0x46, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x62, 0x69, + 0x64, 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, 0x0b, 0x6c, 0x61, 0x73, + 0x74, 0x53, 0x6c, 0x6f, 0x74, 0x42, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x08, 0x79, 0x6f, 0x75, 0x72, + 0x5f, 0x62, 0x69, 0x64, 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, 0x07, + 0x79, 0x6f, 0x75, 0x72, 0x42, 0x69, 0x64, 0x1a, 0x57, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, + 0x65, 0x6d, 0x6f, 0x6e, 0x79, 0x43, 0x72, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x1a, 0x1d, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x42, + 0x05, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x32, 0x9f, 0x01, 0x0a, 0x1a, 0x43, 0x65, 0x72, 0x65, 0x6d, + 0x6f, 0x6e, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, + 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0xc2, 0x02, 0x0a, 0x25, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x6e, 0x79, 0x43, 0x72, 0x73, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x1a, 0x1d, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x42, 0x05, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x32, 0x9f, 0x01, 0x0a, - 0x1a, 0x43, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x6e, 0x79, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0b, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x12, 0x35, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, 0x6d, - 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x74, 0x6f, - 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x30, 0x01, 0x42, 0xc2, - 0x02, 0x0a, 0x25, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0e, 0x53, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, - 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x62, 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, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, - 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x75, 0x6d, - 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, - 0x03, 0x50, 0x54, 0x53, 0xaa, 0x02, 0x21, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, - 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x21, 0x50, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x5c, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x5c, 0x53, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, - 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2d, 0x50, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x5c, 0x53, 0x75, - 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x24, 0x50, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x3a, 0x3a, - 0x53, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x31, 0x42, 0x0e, 0x53, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x62, 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, 0x74, 0x6f, + 0x6f, 0x6c, 0x73, 0x2f, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x54, 0x53, 0xaa, 0x02, + 0x21, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, + 0x53, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0xca, 0x02, 0x21, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x54, 0x6f, + 0x6f, 0x6c, 0x73, 0x5c, 0x53, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2d, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x5c, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x5c, 0x53, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, 0x69, 0x6e, + 0x67, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x24, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x3a, 0x3a, 0x54, 0x6f, 0x6f, 0x6c, 0x73, 0x3a, 0x3a, 0x53, 0x75, 0x6d, 0x6d, 0x6f, 0x6e, + 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -721,8 +724,8 @@ var file_penumbra_tools_summoning_v1alpha1_summoning_proto_goTypes = []interface (*ParticipateResponse_Position)(nil), // 5: penumbra.tools.summoning.v1alpha1.ParticipateResponse.Position (*ParticipateResponse_ContributeNow)(nil), // 6: penumbra.tools.summoning.v1alpha1.ParticipateResponse.ContributeNow (*ParticipateResponse_Confirm)(nil), // 7: penumbra.tools.summoning.v1alpha1.ParticipateResponse.Confirm - (*v1alpha1.Address)(nil), // 8: penumbra.core.crypto.v1alpha1.Address - (*v1alpha1.Amount)(nil), // 9: penumbra.core.crypto.v1alpha1.Amount + (*v1alpha1.Address)(nil), // 8: penumbra.core.keys.v1alpha1.Address + (*v1alpha11.Amount)(nil), // 9: penumbra.core.num.v1alpha1.Amount } var file_penumbra_tools_summoning_v1alpha1_summoning_proto_depIdxs = []int32{ 3, // 0: penumbra.tools.summoning.v1alpha1.ParticipateRequest.identify:type_name -> penumbra.tools.summoning.v1alpha1.ParticipateRequest.Identify @@ -730,10 +733,10 @@ var file_penumbra_tools_summoning_v1alpha1_summoning_proto_depIdxs = []int32{ 5, // 2: penumbra.tools.summoning.v1alpha1.ParticipateResponse.position:type_name -> penumbra.tools.summoning.v1alpha1.ParticipateResponse.Position 6, // 3: penumbra.tools.summoning.v1alpha1.ParticipateResponse.contribute_now:type_name -> penumbra.tools.summoning.v1alpha1.ParticipateResponse.ContributeNow 7, // 4: penumbra.tools.summoning.v1alpha1.ParticipateResponse.confirm:type_name -> penumbra.tools.summoning.v1alpha1.ParticipateResponse.Confirm - 8, // 5: penumbra.tools.summoning.v1alpha1.ParticipateRequest.Identify.address:type_name -> penumbra.core.crypto.v1alpha1.Address + 8, // 5: penumbra.tools.summoning.v1alpha1.ParticipateRequest.Identify.address:type_name -> penumbra.core.keys.v1alpha1.Address 1, // 6: penumbra.tools.summoning.v1alpha1.ParticipateRequest.Contribution.updated:type_name -> penumbra.tools.summoning.v1alpha1.CeremonyCrs - 9, // 7: penumbra.tools.summoning.v1alpha1.ParticipateResponse.Position.last_slot_bid:type_name -> penumbra.core.crypto.v1alpha1.Amount - 9, // 8: penumbra.tools.summoning.v1alpha1.ParticipateResponse.Position.your_bid:type_name -> penumbra.core.crypto.v1alpha1.Amount + 9, // 7: penumbra.tools.summoning.v1alpha1.ParticipateResponse.Position.last_slot_bid:type_name -> penumbra.core.num.v1alpha1.Amount + 9, // 8: penumbra.tools.summoning.v1alpha1.ParticipateResponse.Position.your_bid:type_name -> penumbra.core.num.v1alpha1.Amount 1, // 9: penumbra.tools.summoning.v1alpha1.ParticipateResponse.ContributeNow.parent:type_name -> penumbra.tools.summoning.v1alpha1.CeremonyCrs 0, // 10: penumbra.tools.summoning.v1alpha1.CeremonyCoordinatorService.Participate:input_type -> penumbra.tools.summoning.v1alpha1.ParticipateRequest 2, // 11: penumbra.tools.summoning.v1alpha1.CeremonyCoordinatorService.Participate:output_type -> penumbra.tools.summoning.v1alpha1.ParticipateResponse diff --git a/proto/go/gen/penumbra/view/v1alpha1/view.pb.go b/proto/go/gen/penumbra/view/v1alpha1/view.pb.go index 2d6a10ffa5..9a5a0a5aaf 100644 --- a/proto/go/gen/penumbra/view/v1alpha1/view.pb.go +++ b/proto/go/gen/penumbra/view/v1alpha1/view.pb.go @@ -7,12 +7,18 @@ package viewv1alpha1 import ( - v1alpha13 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/chain/v1alpha1" - v1alpha11 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/crypto/v1alpha1" - v1alpha14 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/dex/v1alpha1" - v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/ibc/v1alpha1" - v1alpha15 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/stake/v1alpha1" + v1alpha14 "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" + v1alpha110 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/dex/v1alpha1" + v1alpha11 "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/ibc/v1alpha1" + v1alpha18 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/sct/v1alpha1" + v1alpha19 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/shielded_pool/v1alpha1" + v1alpha111 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/component/stake/v1alpha1" + v1alpha12 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/keys/v1alpha1" + v1alpha15 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/num/v1alpha1" v1alpha1 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/core/transaction/v1alpha1" + v1alpha16 "github.com/penumbra-zone/penumbra/proto/go/gen/penumbra/crypto/tct/v1alpha1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" @@ -259,16 +265,16 @@ type TransactionPlannerRequest struct { // The memo must be unspecified unless `outputs` is nonempty. Memo *v1alpha1.MemoPlaintext `protobuf:"bytes,3,opt,name=memo,proto3" json:"memo,omitempty"` // If present, only spends funds from the given account. - Source *v1alpha11.AddressIndex `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"` + Source *v1alpha12.AddressIndex `protobuf:"bytes,4,opt,name=source,proto3" json:"source,omitempty"` // Optionally identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` // Request contents Outputs []*TransactionPlannerRequest_Output `protobuf:"bytes,20,rep,name=outputs,proto3" json:"outputs,omitempty"` Swaps []*TransactionPlannerRequest_Swap `protobuf:"bytes,30,rep,name=swaps,proto3" json:"swaps,omitempty"` SwapClaims []*TransactionPlannerRequest_SwapClaim `protobuf:"bytes,31,rep,name=swap_claims,json=swapClaims,proto3" json:"swap_claims,omitempty"` Delegations []*TransactionPlannerRequest_Delegate `protobuf:"bytes,40,rep,name=delegations,proto3" json:"delegations,omitempty"` Undelegations []*TransactionPlannerRequest_Undelegate `protobuf:"bytes,50,rep,name=undelegations,proto3" json:"undelegations,omitempty"` - IbcActions []*v1alpha12.IbcAction `protobuf:"bytes,60,rep,name=ibc_actions,json=ibcActions,proto3" json:"ibc_actions,omitempty"` + IbcActions []*v1alpha13.IbcAction `protobuf:"bytes,60,rep,name=ibc_actions,json=ibcActions,proto3" json:"ibc_actions,omitempty"` PositionOpens []*TransactionPlannerRequest_PositionOpen `protobuf:"bytes,70,rep,name=position_opens,json=positionOpens,proto3" json:"position_opens,omitempty"` PositionCloses []*TransactionPlannerRequest_PositionClose `protobuf:"bytes,71,rep,name=position_closes,json=positionCloses,proto3" json:"position_closes,omitempty"` PositionWithdraws []*TransactionPlannerRequest_PositionWithdraw `protobuf:"bytes,72,rep,name=position_withdraws,json=positionWithdraws,proto3" json:"position_withdraws,omitempty"` @@ -327,14 +333,14 @@ func (x *TransactionPlannerRequest) GetMemo() *v1alpha1.MemoPlaintext { return nil } -func (x *TransactionPlannerRequest) GetSource() *v1alpha11.AddressIndex { +func (x *TransactionPlannerRequest) GetSource() *v1alpha12.AddressIndex { if x != nil { return x.Source } return nil } -func (x *TransactionPlannerRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *TransactionPlannerRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -376,7 +382,7 @@ func (x *TransactionPlannerRequest) GetUndelegations() []*TransactionPlannerRequ return nil } -func (x *TransactionPlannerRequest) GetIbcActions() []*v1alpha12.IbcAction { +func (x *TransactionPlannerRequest) GetIbcActions() []*v1alpha13.IbcAction { if x != nil { return x.IbcActions } @@ -456,7 +462,7 @@ type AddressByIndexRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + AddressIndex *v1alpha12.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` DisplayConfirm bool `protobuf:"varint,2,opt,name=display_confirm,json=displayConfirm,proto3" json:"display_confirm,omitempty"` } @@ -492,7 +498,7 @@ func (*AddressByIndexRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{6} } -func (x *AddressByIndexRequest) GetAddressIndex() *v1alpha11.AddressIndex { +func (x *AddressByIndexRequest) GetAddressIndex() *v1alpha12.AddressIndex { if x != nil { return x.AddressIndex } @@ -511,7 +517,7 @@ type AddressByIndexResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Address *v1alpha12.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` } func (x *AddressByIndexResponse) Reset() { @@ -546,7 +552,7 @@ func (*AddressByIndexResponse) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{7} } -func (x *AddressByIndexResponse) GetAddress() *v1alpha11.Address { +func (x *AddressByIndexResponse) GetAddress() *v1alpha12.Address { if x != nil { return x.Address } @@ -558,7 +564,7 @@ type IndexByAddressRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Address *v1alpha12.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` } func (x *IndexByAddressRequest) Reset() { @@ -593,7 +599,7 @@ func (*IndexByAddressRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{8} } -func (x *IndexByAddressRequest) GetAddress() *v1alpha11.Address { +func (x *IndexByAddressRequest) GetAddress() *v1alpha12.Address { if x != nil { return x.Address } @@ -606,7 +612,7 @@ type IndexByAddressResponse struct { unknownFields protoimpl.UnknownFields // Will be absent if given an address not viewable by this viewing service - AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + AddressIndex *v1alpha12.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` } func (x *IndexByAddressResponse) Reset() { @@ -641,7 +647,7 @@ func (*IndexByAddressResponse) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{9} } -func (x *IndexByAddressResponse) GetAddressIndex() *v1alpha11.AddressIndex { +func (x *IndexByAddressResponse) GetAddressIndex() *v1alpha12.AddressIndex { if x != nil { return x.AddressIndex } @@ -653,7 +659,7 @@ type EphemeralAddressRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + AddressIndex *v1alpha12.AddressIndex `protobuf:"bytes,1,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` DisplayConfirm bool `protobuf:"varint,2,opt,name=display_confirm,json=displayConfirm,proto3" json:"display_confirm,omitempty"` } @@ -689,7 +695,7 @@ func (*EphemeralAddressRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{10} } -func (x *EphemeralAddressRequest) GetAddressIndex() *v1alpha11.AddressIndex { +func (x *EphemeralAddressRequest) GetAddressIndex() *v1alpha12.AddressIndex { if x != nil { return x.AddressIndex } @@ -708,7 +714,7 @@ type EphemeralAddressResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Address *v1alpha11.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Address *v1alpha12.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` } func (x *EphemeralAddressResponse) Reset() { @@ -743,7 +749,7 @@ func (*EphemeralAddressResponse) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{11} } -func (x *EphemeralAddressResponse) GetAddress() *v1alpha11.Address { +func (x *EphemeralAddressResponse) GetAddress() *v1alpha12.Address { if x != nil { return x.Address } @@ -756,9 +762,9 @@ type BalancesRequest struct { unknownFields protoimpl.UnknownFields // If present, filter balances to only include the account specified by the `AddressIndex`. - AccountFilter *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=account_filter,json=accountFilter,proto3" json:"account_filter,omitempty"` + AccountFilter *v1alpha12.AddressIndex `protobuf:"bytes,1,opt,name=account_filter,json=accountFilter,proto3" json:"account_filter,omitempty"` // If present, filter balances to only include the specified asset ID. - AssetIdFilter *v1alpha11.AssetId `protobuf:"bytes,2,opt,name=asset_id_filter,json=assetIdFilter,proto3" json:"asset_id_filter,omitempty"` + AssetIdFilter *v1alpha14.AssetId `protobuf:"bytes,2,opt,name=asset_id_filter,json=assetIdFilter,proto3" json:"asset_id_filter,omitempty"` } func (x *BalancesRequest) Reset() { @@ -793,14 +799,14 @@ func (*BalancesRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{12} } -func (x *BalancesRequest) GetAccountFilter() *v1alpha11.AddressIndex { +func (x *BalancesRequest) GetAccountFilter() *v1alpha12.AddressIndex { if x != nil { return x.AccountFilter } return nil } -func (x *BalancesRequest) GetAssetIdFilter() *v1alpha11.AssetId { +func (x *BalancesRequest) GetAssetIdFilter() *v1alpha14.AssetId { if x != nil { return x.AssetIdFilter } @@ -812,8 +818,8 @@ type BalancesResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Account *v1alpha11.AddressIndex `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Balance *v1alpha11.Value `protobuf:"bytes,2,opt,name=balance,proto3" json:"balance,omitempty"` + Account *v1alpha12.AddressIndex `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Balance *v1alpha14.Value `protobuf:"bytes,2,opt,name=balance,proto3" json:"balance,omitempty"` } func (x *BalancesResponse) Reset() { @@ -848,14 +854,14 @@ func (*BalancesResponse) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{13} } -func (x *BalancesResponse) GetAccount() *v1alpha11.AddressIndex { +func (x *BalancesResponse) GetAccount() *v1alpha12.AddressIndex { if x != nil { return x.Account } return nil } -func (x *BalancesResponse) GetBalance() *v1alpha11.Value { +func (x *BalancesResponse) GetBalance() *v1alpha14.Value { if x != nil { return x.Balance } @@ -915,7 +921,7 @@ type ViewAuthRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Fvk *v1alpha11.FullViewingKey `protobuf:"bytes,1,opt,name=fvk,proto3" json:"fvk,omitempty"` + Fvk *v1alpha12.FullViewingKey `protobuf:"bytes,1,opt,name=fvk,proto3" json:"fvk,omitempty"` } func (x *ViewAuthRequest) Reset() { @@ -950,7 +956,7 @@ func (*ViewAuthRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{15} } -func (x *ViewAuthRequest) GetFvk() *v1alpha11.FullViewingKey { +func (x *ViewAuthRequest) GetFvk() *v1alpha12.FullViewingKey { if x != nil { return x.Fvk } @@ -1011,7 +1017,7 @@ type StatusRequest struct { unknownFields protoimpl.UnknownFields // Identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` } func (x *StatusRequest) Reset() { @@ -1046,7 +1052,7 @@ func (*StatusRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{17} } -func (x *StatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *StatusRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -1118,7 +1124,7 @@ type StatusStreamRequest struct { unknownFields protoimpl.UnknownFields // Identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` } func (x *StatusStreamRequest) Reset() { @@ -1153,7 +1159,7 @@ func (*StatusStreamRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{19} } -func (x *StatusStreamRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *StatusStreamRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -1228,15 +1234,15 @@ type NotesRequest struct { // If set, return spent notes as well as unspent notes. IncludeSpent bool `protobuf:"varint,2,opt,name=include_spent,json=includeSpent,proto3" json:"include_spent,omitempty"` // If set, only return notes with the specified asset id. - AssetId *v1alpha11.AssetId `protobuf:"bytes,3,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` - // If set, only return notes with the specified address incore.dex.v1alpha1. - AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,4,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + AssetId *v1alpha14.AssetId `protobuf:"bytes,3,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + // If set, only return notes with the specified address incore.component.dex.v1alpha1. + AddressIndex *v1alpha12.AddressIndex `protobuf:"bytes,4,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` // If set, stop returning notes once the total exceeds this amount. // // Ignored if `asset_id` is unset or if `include_spent` is set. - AmountToSpend *v1alpha11.Amount `protobuf:"bytes,6,opt,name=amount_to_spend,json=amountToSpend,proto3" json:"amount_to_spend,omitempty"` + AmountToSpend *v1alpha15.Amount `protobuf:"bytes,6,opt,name=amount_to_spend,json=amountToSpend,proto3" json:"amount_to_spend,omitempty"` // Identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` } func (x *NotesRequest) Reset() { @@ -1278,28 +1284,28 @@ func (x *NotesRequest) GetIncludeSpent() bool { return false } -func (x *NotesRequest) GetAssetId() *v1alpha11.AssetId { +func (x *NotesRequest) GetAssetId() *v1alpha14.AssetId { if x != nil { return x.AssetId } return nil } -func (x *NotesRequest) GetAddressIndex() *v1alpha11.AddressIndex { +func (x *NotesRequest) GetAddressIndex() *v1alpha12.AddressIndex { if x != nil { return x.AddressIndex } return nil } -func (x *NotesRequest) GetAmountToSpend() *v1alpha11.Amount { +func (x *NotesRequest) GetAmountToSpend() *v1alpha15.Amount { if x != nil { return x.AmountToSpend } return nil } -func (x *NotesRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *NotesRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -1315,9 +1321,9 @@ type NotesForVotingRequest struct { // The starting height of the proposal. VotableAtHeight uint64 `protobuf:"varint,1,opt,name=votable_at_height,json=votableAtHeight,proto3" json:"votable_at_height,omitempty"` // If set, only return notes with the specified asset id. - AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,3,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + AddressIndex *v1alpha12.AddressIndex `protobuf:"bytes,3,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` // Identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` } func (x *NotesForVotingRequest) Reset() { @@ -1359,14 +1365,14 @@ func (x *NotesForVotingRequest) GetVotableAtHeight() uint64 { return 0 } -func (x *NotesForVotingRequest) GetAddressIndex() *v1alpha11.AddressIndex { +func (x *NotesForVotingRequest) GetAddressIndex() *v1alpha12.AddressIndex { if x != nil { return x.AddressIndex } return nil } -func (x *NotesForVotingRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *NotesForVotingRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -1379,11 +1385,11 @@ type WitnessRequest struct { unknownFields protoimpl.UnknownFields // The note commitments to obtain auth paths for. - NoteCommitments []*v1alpha11.StateCommitment `protobuf:"bytes,2,rep,name=note_commitments,json=noteCommitments,proto3" json:"note_commitments,omitempty"` + NoteCommitments []*v1alpha16.StateCommitment `protobuf:"bytes,2,rep,name=note_commitments,json=noteCommitments,proto3" json:"note_commitments,omitempty"` // The transaction plan to witness TransactionPlan *v1alpha1.TransactionPlan `protobuf:"bytes,3,opt,name=transaction_plan,json=transactionPlan,proto3" json:"transaction_plan,omitempty"` // Identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` } func (x *WitnessRequest) Reset() { @@ -1418,7 +1424,7 @@ func (*WitnessRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{23} } -func (x *WitnessRequest) GetNoteCommitments() []*v1alpha11.StateCommitment { +func (x *WitnessRequest) GetNoteCommitments() []*v1alpha16.StateCommitment { if x != nil { return x.NoteCommitments } @@ -1432,7 +1438,7 @@ func (x *WitnessRequest) GetTransactionPlan() *v1alpha1.TransactionPlan { return nil } -func (x *WitnessRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *WitnessRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -1598,7 +1604,7 @@ type AssetsRequest struct { // the request indicate a filter. Filtered bool `protobuf:"varint,1,opt,name=filtered,proto3" json:"filtered,omitempty"` // Include these specific denominations in the response. - IncludeSpecificDenominations []*v1alpha11.Denom `protobuf:"bytes,2,rep,name=include_specific_denominations,json=includeSpecificDenominations,proto3" json:"include_specific_denominations,omitempty"` + IncludeSpecificDenominations []*v1alpha14.Denom `protobuf:"bytes,2,rep,name=include_specific_denominations,json=includeSpecificDenominations,proto3" json:"include_specific_denominations,omitempty"` // Include all delegation tokens, to any validator, in the response. IncludeDelegationTokens bool `protobuf:"varint,3,opt,name=include_delegation_tokens,json=includeDelegationTokens,proto3" json:"include_delegation_tokens,omitempty"` // Include all unbonding tokens, from any validator, in the response. @@ -1650,7 +1656,7 @@ func (x *AssetsRequest) GetFiltered() bool { return false } -func (x *AssetsRequest) GetIncludeSpecificDenominations() []*v1alpha11.Denom { +func (x *AssetsRequest) GetIncludeSpecificDenominations() []*v1alpha14.Denom { if x != nil { return x.IncludeSpecificDenominations } @@ -1698,7 +1704,7 @@ type AssetsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DenomMetadata *v1alpha11.DenomMetadata `protobuf:"bytes,2,opt,name=denom_metadata,json=denomMetadata,proto3" json:"denom_metadata,omitempty"` + DenomMetadata *v1alpha14.DenomMetadata `protobuf:"bytes,2,opt,name=denom_metadata,json=denomMetadata,proto3" json:"denom_metadata,omitempty"` } func (x *AssetsResponse) Reset() { @@ -1733,7 +1739,7 @@ func (*AssetsResponse) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{28} } -func (x *AssetsResponse) GetDenomMetadata() *v1alpha11.DenomMetadata { +func (x *AssetsResponse) GetDenomMetadata() *v1alpha14.DenomMetadata { if x != nil { return x.DenomMetadata } @@ -1784,7 +1790,7 @@ type ChainParametersResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Parameters *v1alpha13.ChainParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` + Parameters *v1alpha17.ChainParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` } func (x *ChainParametersResponse) Reset() { @@ -1819,7 +1825,7 @@ func (*ChainParametersResponse) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{30} } -func (x *ChainParametersResponse) GetParameters() *v1alpha13.ChainParameters { +func (x *ChainParametersResponse) GetParameters() *v1alpha17.ChainParameters { if x != nil { return x.Parameters } @@ -1870,7 +1876,7 @@ type FMDParametersResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Parameters *v1alpha13.FmdParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` + Parameters *v1alpha17.FmdParameters `protobuf:"bytes,1,opt,name=parameters,proto3" json:"parameters,omitempty"` } func (x *FMDParametersResponse) Reset() { @@ -1905,7 +1911,7 @@ func (*FMDParametersResponse) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{32} } -func (x *FMDParametersResponse) GetParameters() *v1alpha13.FmdParameters { +func (x *FMDParametersResponse) GetParameters() *v1alpha17.FmdParameters { if x != nil { return x.Parameters } @@ -1917,11 +1923,11 @@ type NoteByCommitmentRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NoteCommitment *v1alpha11.StateCommitment `protobuf:"bytes,2,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` + NoteCommitment *v1alpha16.StateCommitment `protobuf:"bytes,2,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` // If set to true, waits to return until the requested note is detected. AwaitDetection bool `protobuf:"varint,3,opt,name=await_detection,json=awaitDetection,proto3" json:"await_detection,omitempty"` // Identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` } func (x *NoteByCommitmentRequest) Reset() { @@ -1956,7 +1962,7 @@ func (*NoteByCommitmentRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{33} } -func (x *NoteByCommitmentRequest) GetNoteCommitment() *v1alpha11.StateCommitment { +func (x *NoteByCommitmentRequest) GetNoteCommitment() *v1alpha16.StateCommitment { if x != nil { return x.NoteCommitment } @@ -1970,7 +1976,7 @@ func (x *NoteByCommitmentRequest) GetAwaitDetection() bool { return false } -func (x *NoteByCommitmentRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *NoteByCommitmentRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -2029,11 +2035,11 @@ type SwapByCommitmentRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SwapCommitment *v1alpha11.StateCommitment `protobuf:"bytes,2,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` + SwapCommitment *v1alpha16.StateCommitment `protobuf:"bytes,2,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` // If set to true, waits to return until the requested swap is detected. AwaitDetection bool `protobuf:"varint,3,opt,name=await_detection,json=awaitDetection,proto3" json:"await_detection,omitempty"` // Identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` } func (x *SwapByCommitmentRequest) Reset() { @@ -2068,7 +2074,7 @@ func (*SwapByCommitmentRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{35} } -func (x *SwapByCommitmentRequest) GetSwapCommitment() *v1alpha11.StateCommitment { +func (x *SwapByCommitmentRequest) GetSwapCommitment() *v1alpha16.StateCommitment { if x != nil { return x.SwapCommitment } @@ -2082,7 +2088,7 @@ func (x *SwapByCommitmentRequest) GetAwaitDetection() bool { return false } -func (x *SwapByCommitmentRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *SwapByCommitmentRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -2142,7 +2148,7 @@ type UnclaimedSwapsRequest struct { unknownFields protoimpl.UnknownFields // Identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,1,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,1,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` } func (x *UnclaimedSwapsRequest) Reset() { @@ -2177,7 +2183,7 @@ func (*UnclaimedSwapsRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{37} } -func (x *UnclaimedSwapsRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *UnclaimedSwapsRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -2236,10 +2242,10 @@ type NullifierStatusRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Nullifier *v1alpha11.Nullifier `protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + Nullifier *v1alpha18.Nullifier `protobuf:"bytes,2,opt,name=nullifier,proto3" json:"nullifier,omitempty"` AwaitDetection bool `protobuf:"varint,3,opt,name=await_detection,json=awaitDetection,proto3" json:"await_detection,omitempty"` // Identifies the account group to query. - AccountGroupId *v1alpha11.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` + AccountGroupId *v1alpha12.AccountGroupId `protobuf:"bytes,14,opt,name=account_group_id,json=accountGroupId,proto3" json:"account_group_id,omitempty"` } func (x *NullifierStatusRequest) Reset() { @@ -2274,7 +2280,7 @@ func (*NullifierStatusRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{39} } -func (x *NullifierStatusRequest) GetNullifier() *v1alpha11.Nullifier { +func (x *NullifierStatusRequest) GetNullifier() *v1alpha18.Nullifier { if x != nil { return x.Nullifier } @@ -2288,7 +2294,7 @@ func (x *NullifierStatusRequest) GetAwaitDetection() bool { return false } -func (x *NullifierStatusRequest) GetAccountGroupId() *v1alpha11.AccountGroupId { +func (x *NullifierStatusRequest) GetAccountGroupId() *v1alpha12.AccountGroupId { if x != nil { return x.AccountGroupId } @@ -2678,7 +2684,7 @@ type NotesForVotingResponse struct { unknownFields protoimpl.UnknownFields NoteRecord *SpendableNoteRecord `protobuf:"bytes,1,opt,name=note_record,json=noteRecord,proto3" json:"note_record,omitempty"` - IdentityKey *v1alpha11.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` + IdentityKey *v1alpha12.IdentityKey `protobuf:"bytes,2,opt,name=identity_key,json=identityKey,proto3" json:"identity_key,omitempty"` } func (x *NotesForVotingResponse) Reset() { @@ -2720,7 +2726,7 @@ func (x *NotesForVotingResponse) GetNoteRecord() *SpendableNoteRecord { return nil } -func (x *NotesForVotingResponse) GetIdentityKey() *v1alpha11.IdentityKey { +func (x *NotesForVotingResponse) GetIdentityKey() *v1alpha12.IdentityKey { if x != nil { return x.IdentityKey } @@ -2734,13 +2740,13 @@ type SpendableNoteRecord struct { unknownFields protoimpl.UnknownFields // The note commitment, identifying the note. - NoteCommitment *v1alpha11.StateCommitment `protobuf:"bytes,1,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` + NoteCommitment *v1alpha16.StateCommitment `protobuf:"bytes,1,opt,name=note_commitment,json=noteCommitment,proto3" json:"note_commitment,omitempty"` // The note plaintext itself. - Note *v1alpha11.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` - // A precomputed decryption of the note's address incore.dex.v1alpha1. - AddressIndex *v1alpha11.AddressIndex `protobuf:"bytes,3,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` + Note *v1alpha19.Note `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + // A precomputed decryption of the note's address incore.component.dex.v1alpha1. + AddressIndex *v1alpha12.AddressIndex `protobuf:"bytes,3,opt,name=address_index,json=addressIndex,proto3" json:"address_index,omitempty"` // The note's nullifier. - Nullifier *v1alpha11.Nullifier `protobuf:"bytes,4,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + Nullifier *v1alpha18.Nullifier `protobuf:"bytes,4,opt,name=nullifier,proto3" json:"nullifier,omitempty"` // The height at which the note was created. HeightCreated uint64 `protobuf:"varint,5,opt,name=height_created,json=heightCreated,proto3" json:"height_created,omitempty"` // Records whether the note was spent (and if so, at what height). @@ -2748,7 +2754,7 @@ type SpendableNoteRecord struct { // The note position. Position uint64 `protobuf:"varint,7,opt,name=position,proto3" json:"position,omitempty"` // The source of the note (a tx hash or otherwise) - Source *v1alpha13.NoteSource `protobuf:"bytes,8,opt,name=source,proto3" json:"source,omitempty"` + Source *v1alpha17.NoteSource `protobuf:"bytes,8,opt,name=source,proto3" json:"source,omitempty"` } func (x *SpendableNoteRecord) Reset() { @@ -2783,28 +2789,28 @@ func (*SpendableNoteRecord) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{48} } -func (x *SpendableNoteRecord) GetNoteCommitment() *v1alpha11.StateCommitment { +func (x *SpendableNoteRecord) GetNoteCommitment() *v1alpha16.StateCommitment { if x != nil { return x.NoteCommitment } return nil } -func (x *SpendableNoteRecord) GetNote() *v1alpha11.Note { +func (x *SpendableNoteRecord) GetNote() *v1alpha19.Note { if x != nil { return x.Note } return nil } -func (x *SpendableNoteRecord) GetAddressIndex() *v1alpha11.AddressIndex { +func (x *SpendableNoteRecord) GetAddressIndex() *v1alpha12.AddressIndex { if x != nil { return x.AddressIndex } return nil } -func (x *SpendableNoteRecord) GetNullifier() *v1alpha11.Nullifier { +func (x *SpendableNoteRecord) GetNullifier() *v1alpha18.Nullifier { if x != nil { return x.Nullifier } @@ -2832,7 +2838,7 @@ func (x *SpendableNoteRecord) GetPosition() uint64 { return 0 } -func (x *SpendableNoteRecord) GetSource() *v1alpha13.NoteSource { +func (x *SpendableNoteRecord) GetSource() *v1alpha17.NoteSource { if x != nil { return x.Source } @@ -2844,13 +2850,13 @@ type SwapRecord struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SwapCommitment *v1alpha11.StateCommitment `protobuf:"bytes,1,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` - Swap *v1alpha14.SwapPlaintext `protobuf:"bytes,2,opt,name=swap,proto3" json:"swap,omitempty"` - Position uint64 `protobuf:"varint,3,opt,name=position,proto3" json:"position,omitempty"` - Nullifier *v1alpha11.Nullifier `protobuf:"bytes,4,opt,name=nullifier,proto3" json:"nullifier,omitempty"` - OutputData *v1alpha14.BatchSwapOutputData `protobuf:"bytes,5,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` - HeightClaimed uint64 `protobuf:"varint,6,opt,name=height_claimed,json=heightClaimed,proto3" json:"height_claimed,omitempty"` - Source *v1alpha13.NoteSource `protobuf:"bytes,7,opt,name=source,proto3" json:"source,omitempty"` + SwapCommitment *v1alpha16.StateCommitment `protobuf:"bytes,1,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` + Swap *v1alpha110.SwapPlaintext `protobuf:"bytes,2,opt,name=swap,proto3" json:"swap,omitempty"` + Position uint64 `protobuf:"varint,3,opt,name=position,proto3" json:"position,omitempty"` + Nullifier *v1alpha18.Nullifier `protobuf:"bytes,4,opt,name=nullifier,proto3" json:"nullifier,omitempty"` + OutputData *v1alpha110.BatchSwapOutputData `protobuf:"bytes,5,opt,name=output_data,json=outputData,proto3" json:"output_data,omitempty"` + HeightClaimed uint64 `protobuf:"varint,6,opt,name=height_claimed,json=heightClaimed,proto3" json:"height_claimed,omitempty"` + Source *v1alpha17.NoteSource `protobuf:"bytes,7,opt,name=source,proto3" json:"source,omitempty"` } func (x *SwapRecord) Reset() { @@ -2885,14 +2891,14 @@ func (*SwapRecord) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{49} } -func (x *SwapRecord) GetSwapCommitment() *v1alpha11.StateCommitment { +func (x *SwapRecord) GetSwapCommitment() *v1alpha16.StateCommitment { if x != nil { return x.SwapCommitment } return nil } -func (x *SwapRecord) GetSwap() *v1alpha14.SwapPlaintext { +func (x *SwapRecord) GetSwap() *v1alpha110.SwapPlaintext { if x != nil { return x.Swap } @@ -2906,14 +2912,14 @@ func (x *SwapRecord) GetPosition() uint64 { return 0 } -func (x *SwapRecord) GetNullifier() *v1alpha11.Nullifier { +func (x *SwapRecord) GetNullifier() *v1alpha18.Nullifier { if x != nil { return x.Nullifier } return nil } -func (x *SwapRecord) GetOutputData() *v1alpha14.BatchSwapOutputData { +func (x *SwapRecord) GetOutputData() *v1alpha110.BatchSwapOutputData { if x != nil { return x.OutputData } @@ -2927,7 +2933,7 @@ func (x *SwapRecord) GetHeightClaimed() uint64 { return 0 } -func (x *SwapRecord) GetSource() *v1alpha13.NoteSource { +func (x *SwapRecord) GetSource() *v1alpha17.NoteSource { if x != nil { return x.Source } @@ -2940,9 +2946,9 @@ type OwnedPositionIdsRequest struct { unknownFields protoimpl.UnknownFields // If present, return only positions with this position state. - PositionState *v1alpha14.PositionState `protobuf:"bytes,1,opt,name=position_state,json=positionState,proto3" json:"position_state,omitempty"` + PositionState *v1alpha110.PositionState `protobuf:"bytes,1,opt,name=position_state,json=positionState,proto3" json:"position_state,omitempty"` // If present, return only positions for this trading pair. - TradingPair *v1alpha14.TradingPair `protobuf:"bytes,2,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + TradingPair *v1alpha110.TradingPair `protobuf:"bytes,2,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` } func (x *OwnedPositionIdsRequest) Reset() { @@ -2977,14 +2983,14 @@ func (*OwnedPositionIdsRequest) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{50} } -func (x *OwnedPositionIdsRequest) GetPositionState() *v1alpha14.PositionState { +func (x *OwnedPositionIdsRequest) GetPositionState() *v1alpha110.PositionState { if x != nil { return x.PositionState } return nil } -func (x *OwnedPositionIdsRequest) GetTradingPair() *v1alpha14.TradingPair { +func (x *OwnedPositionIdsRequest) GetTradingPair() *v1alpha110.TradingPair { if x != nil { return x.TradingPair } @@ -2996,7 +3002,7 @@ type OwnedPositionIdsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PositionId *v1alpha14.PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + PositionId *v1alpha110.PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` } func (x *OwnedPositionIdsResponse) Reset() { @@ -3031,7 +3037,7 @@ func (*OwnedPositionIdsResponse) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{51} } -func (x *OwnedPositionIdsResponse) GetPositionId() *v1alpha14.PositionId { +func (x *OwnedPositionIdsResponse) GetPositionId() *v1alpha110.PositionId { if x != nil { return x.PositionId } @@ -3045,9 +3051,9 @@ type TransactionPlannerRequest_Output struct { unknownFields protoimpl.UnknownFields // The amount and denomination in which the Output is issued. - Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Value *v1alpha14.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // The address to which Output will be sent. - Address *v1alpha11.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + Address *v1alpha12.Address `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` } func (x *TransactionPlannerRequest_Output) Reset() { @@ -3082,14 +3088,14 @@ func (*TransactionPlannerRequest_Output) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{4, 0} } -func (x *TransactionPlannerRequest_Output) GetValue() *v1alpha11.Value { +func (x *TransactionPlannerRequest_Output) GetValue() *v1alpha14.Value { if x != nil { return x.Value } return nil } -func (x *TransactionPlannerRequest_Output) GetAddress() *v1alpha11.Address { +func (x *TransactionPlannerRequest_Output) GetAddress() *v1alpha12.Address { if x != nil { return x.Address } @@ -3102,13 +3108,13 @@ type TransactionPlannerRequest_Swap struct { unknownFields protoimpl.UnknownFields // The input amount and denomination to be traded in the Swap. - Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Value *v1alpha14.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` // The denomination to be received as a Output of the Swap. - TargetAsset *v1alpha11.AssetId `protobuf:"bytes,2,opt,name=target_asset,json=targetAsset,proto3" json:"target_asset,omitempty"` + TargetAsset *v1alpha14.AssetId `protobuf:"bytes,2,opt,name=target_asset,json=targetAsset,proto3" json:"target_asset,omitempty"` // The pre-paid fee to be paid for claiming the Swap outputs. Fee *v1alpha11.Fee `protobuf:"bytes,3,opt,name=fee,proto3" json:"fee,omitempty"` // The address to which swap claim output will be sent. - ClaimAddress *v1alpha11.Address `protobuf:"bytes,4,opt,name=claim_address,json=claimAddress,proto3" json:"claim_address,omitempty"` + ClaimAddress *v1alpha12.Address `protobuf:"bytes,4,opt,name=claim_address,json=claimAddress,proto3" json:"claim_address,omitempty"` } func (x *TransactionPlannerRequest_Swap) Reset() { @@ -3143,14 +3149,14 @@ func (*TransactionPlannerRequest_Swap) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{4, 1} } -func (x *TransactionPlannerRequest_Swap) GetValue() *v1alpha11.Value { +func (x *TransactionPlannerRequest_Swap) GetValue() *v1alpha14.Value { if x != nil { return x.Value } return nil } -func (x *TransactionPlannerRequest_Swap) GetTargetAsset() *v1alpha11.AssetId { +func (x *TransactionPlannerRequest_Swap) GetTargetAsset() *v1alpha14.AssetId { if x != nil { return x.TargetAsset } @@ -3164,7 +3170,7 @@ func (x *TransactionPlannerRequest_Swap) GetFee() *v1alpha11.Fee { return nil } -func (x *TransactionPlannerRequest_Swap) GetClaimAddress() *v1alpha11.Address { +func (x *TransactionPlannerRequest_Swap) GetClaimAddress() *v1alpha12.Address { if x != nil { return x.ClaimAddress } @@ -3178,8 +3184,8 @@ type TransactionPlannerRequest_SwapClaim struct { // SwapCommitment to identify the Swap to be claimed. // Use the commitment from the Swap message: - // penumbra.core.dex.v1alpha1.Swap.body.payload.commitment. - SwapCommitment *v1alpha11.StateCommitment `protobuf:"bytes,1,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` + // penumbra.core.component.dex.v1alpha1.Swap.body.payload.commitment. + SwapCommitment *v1alpha16.StateCommitment `protobuf:"bytes,1,opt,name=swap_commitment,json=swapCommitment,proto3" json:"swap_commitment,omitempty"` } func (x *TransactionPlannerRequest_SwapClaim) Reset() { @@ -3214,7 +3220,7 @@ func (*TransactionPlannerRequest_SwapClaim) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{4, 2} } -func (x *TransactionPlannerRequest_SwapClaim) GetSwapCommitment() *v1alpha11.StateCommitment { +func (x *TransactionPlannerRequest_SwapClaim) GetSwapCommitment() *v1alpha16.StateCommitment { if x != nil { return x.SwapCommitment } @@ -3226,8 +3232,8 @@ type TransactionPlannerRequest_Delegate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Amount *v1alpha11.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` - RateData *v1alpha15.RateData `protobuf:"bytes,3,opt,name=rate_data,json=rateData,proto3" json:"rate_data,omitempty"` + Amount *v1alpha15.Amount `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + RateData *v1alpha111.RateData `protobuf:"bytes,3,opt,name=rate_data,json=rateData,proto3" json:"rate_data,omitempty"` } func (x *TransactionPlannerRequest_Delegate) Reset() { @@ -3262,14 +3268,14 @@ func (*TransactionPlannerRequest_Delegate) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{4, 3} } -func (x *TransactionPlannerRequest_Delegate) GetAmount() *v1alpha11.Amount { +func (x *TransactionPlannerRequest_Delegate) GetAmount() *v1alpha15.Amount { if x != nil { return x.Amount } return nil } -func (x *TransactionPlannerRequest_Delegate) GetRateData() *v1alpha15.RateData { +func (x *TransactionPlannerRequest_Delegate) GetRateData() *v1alpha111.RateData { if x != nil { return x.RateData } @@ -3281,8 +3287,8 @@ type TransactionPlannerRequest_Undelegate struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Value *v1alpha11.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` - RateData *v1alpha15.RateData `protobuf:"bytes,2,opt,name=rate_data,json=rateData,proto3" json:"rate_data,omitempty"` + Value *v1alpha14.Value `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + RateData *v1alpha111.RateData `protobuf:"bytes,2,opt,name=rate_data,json=rateData,proto3" json:"rate_data,omitempty"` } func (x *TransactionPlannerRequest_Undelegate) Reset() { @@ -3317,14 +3323,14 @@ func (*TransactionPlannerRequest_Undelegate) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{4, 4} } -func (x *TransactionPlannerRequest_Undelegate) GetValue() *v1alpha11.Value { +func (x *TransactionPlannerRequest_Undelegate) GetValue() *v1alpha14.Value { if x != nil { return x.Value } return nil } -func (x *TransactionPlannerRequest_Undelegate) GetRateData() *v1alpha15.RateData { +func (x *TransactionPlannerRequest_Undelegate) GetRateData() *v1alpha111.RateData { if x != nil { return x.RateData } @@ -3340,7 +3346,7 @@ type TransactionPlannerRequest_PositionOpen struct { // // Positions are immutable, so the `PositionData` (and hence the `PositionId`) // are unchanged over the entire lifetime of the position. - Position *v1alpha14.Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` + Position *v1alpha110.Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` } func (x *TransactionPlannerRequest_PositionOpen) Reset() { @@ -3375,7 +3381,7 @@ func (*TransactionPlannerRequest_PositionOpen) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{4, 5} } -func (x *TransactionPlannerRequest_PositionOpen) GetPosition() *v1alpha14.Position { +func (x *TransactionPlannerRequest_PositionOpen) GetPosition() *v1alpha110.Position { if x != nil { return x.Position } @@ -3388,7 +3394,7 @@ type TransactionPlannerRequest_PositionClose struct { unknownFields protoimpl.UnknownFields // The position to close. - PositionId *v1alpha14.PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + PositionId *v1alpha110.PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` } func (x *TransactionPlannerRequest_PositionClose) Reset() { @@ -3423,7 +3429,7 @@ func (*TransactionPlannerRequest_PositionClose) Descriptor() ([]byte, []int) { return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{4, 6} } -func (x *TransactionPlannerRequest_PositionClose) GetPositionId() *v1alpha14.PositionId { +func (x *TransactionPlannerRequest_PositionClose) GetPositionId() *v1alpha110.PositionId { if x != nil { return x.PositionId } @@ -3436,11 +3442,11 @@ type TransactionPlannerRequest_PositionWithdraw struct { unknownFields protoimpl.UnknownFields // The position to withdraw. - PositionId *v1alpha14.PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` + PositionId *v1alpha110.PositionId `protobuf:"bytes,1,opt,name=position_id,json=positionId,proto3" json:"position_id,omitempty"` // The position's final reserves. - Reserves *v1alpha14.Reserves `protobuf:"bytes,2,opt,name=reserves,proto3" json:"reserves,omitempty"` + Reserves *v1alpha110.Reserves `protobuf:"bytes,2,opt,name=reserves,proto3" json:"reserves,omitempty"` // The trading pair of the position. - TradingPair *v1alpha14.TradingPair `protobuf:"bytes,3,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` + TradingPair *v1alpha110.TradingPair `protobuf:"bytes,3,opt,name=trading_pair,json=tradingPair,proto3" json:"trading_pair,omitempty"` } func (x *TransactionPlannerRequest_PositionWithdraw) Reset() { @@ -3475,21 +3481,21 @@ func (*TransactionPlannerRequest_PositionWithdraw) Descriptor() ([]byte, []int) return file_penumbra_view_v1alpha1_view_proto_rawDescGZIP(), []int{4, 7} } -func (x *TransactionPlannerRequest_PositionWithdraw) GetPositionId() *v1alpha14.PositionId { +func (x *TransactionPlannerRequest_PositionWithdraw) GetPositionId() *v1alpha110.PositionId { if x != nil { return x.PositionId } return nil } -func (x *TransactionPlannerRequest_PositionWithdraw) GetReserves() *v1alpha14.Reserves { +func (x *TransactionPlannerRequest_PositionWithdraw) GetReserves() *v1alpha110.Reserves { if x != nil { return x.Reserves } return nil } -func (x *TransactionPlannerRequest_PositionWithdraw) GetTradingPair() *v1alpha14.TradingPair { +func (x *TransactionPlannerRequest_PositionWithdraw) GetTradingPair() *v1alpha110.TradingPair { if x != nil { return x.TradingPair } @@ -3502,22 +3508,42 @@ var file_penumbra_view_v1alpha1_view_proto_rawDesc = []byte{ 0x0a, 0x21, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, - 0x65, 0x77, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x65, 0x77, 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, 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, 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, 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, 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, 0x2a, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, - 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x24, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, - 0x2f, 0x64, 0x65, 0x78, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, - 0x78, 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, 0x1a, 0x24, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x69, 0x62, 0x63, - 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x69, 0x62, 0x63, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2f, 0x63, 0x6f, - 0x72, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 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, + 0x65, 0x78, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x78, 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, 0x22, 0xe0, 0x01, 0x0a, 0x18, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5e, 0x0a, 0x10, 0x74, 0x72, @@ -3558,799 +3584,808 @@ var file_penumbra_view_v1alpha1_view_proto_rawDesc = []byte{ 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x22, 0xe4, 0x12, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xb2, 0x13, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x34, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x6d, 0x65, 0x6d, - 0x6f, 0x18, 0x03, 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, 0x04, 0x6d, 0x65, 0x6d, 0x6f, - 0x12, 0x43, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x52, - 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x38, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x05, 0x73, 0x77, 0x61, 0x70, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, - 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x52, 0x05, 0x73, 0x77, 0x61, 0x70, 0x73, - 0x12, 0x5c, 0x0a, 0x0b, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, - 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, - 0x69, 0x6d, 0x52, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x5c, - 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x28, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, - 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 0x0d, - 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x32, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, - 0x12, 0x46, 0x0a, 0x0b, 0x69, 0x62, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x3c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x49, 0x62, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x62, - 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x65, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x3e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, - 0x52, 0x0d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x73, 0x12, - 0x68, 0x0a, 0x0f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x73, - 0x65, 0x73, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x67, 0x68, 0x74, 0x12, 0x3b, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 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, 0x52, 0x03, 0x66, 0x65, 0x65, + 0x12, 0x45, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 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, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x04, 0x20, 0x01, 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, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 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, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x64, 0x12, 0x52, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, + 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x4c, 0x0a, 0x05, 0x73, 0x77, 0x61, 0x70, 0x73, 0x18, 0x1e, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x52, 0x05, 0x73, 0x77, + 0x61, 0x70, 0x73, 0x12, 0x5c, 0x0a, 0x0b, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, - 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x73, 0x12, 0x71, 0x0a, 0x12, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x18, - 0x48, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x77, 0x61, 0x70, + 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x0a, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, 0x69, 0x6d, + 0x73, 0x12, 0x5c, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x62, 0x0a, 0x0d, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x12, 0x50, 0x0a, 0x0b, 0x69, 0x62, 0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x3c, 0x20, 0x03, 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, 0x69, 0x62, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x49, 0x62, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x62, 0x63, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x65, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x18, 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x0d, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x73, 0x12, 0x68, 0x0a, 0x0f, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x73, 0x18, + 0x47, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x1a, 0x86, 0x01, 0x0a, - 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, + 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x73, 0x12, 0x71, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x18, 0x48, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, + 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x52, 0x11, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x1a, 0x83, 0x01, 0x0a, 0x06, 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, 0x1a, + 0x93, 0x02, 0x0a, 0x04, 0x53, 0x77, 0x61, 0x70, 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, 0x40, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x1a, 0x90, 0x02, 0x0a, 0x04, 0x53, 0x77, 0x61, 0x70, 0x12, 0x3a, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x4b, 0x0a, 0x0d, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0c, 0x63, 0x6c, 0x61, 0x69, - 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x64, 0x0a, 0x09, 0x53, 0x77, 0x61, 0x70, - 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x12, 0x57, 0x0a, 0x0f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x0e, - 0x73, 0x77, 0x61, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x8e, - 0x01, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x09, 0x72, 0x61, - 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x1a, - 0x8d, 0x01, 0x0a, 0x0a, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x3a, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x72, 0x61, - 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x1a, - 0x50, 0x0a, 0x0c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x12, - 0x40, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x6c, 0x75, 0x65, 0x12, 0x48, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 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, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x3b, 0x0a, + 0x03, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 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, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x1a, 0x58, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, - 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x65, 0x2e, 0x6b, 0x65, 0x79, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0c, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x63, 0x0a, 0x09, 0x53, 0x77, 0x61, 0x70, 0x43, 0x6c, 0x61, + 0x69, 0x6d, 0x12, 0x56, 0x0a, 0x0f, 0x73, 0x77, 0x61, 0x70, 0x5f, 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, 0x0e, 0x73, 0x77, 0x61, 0x70, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x95, 0x01, 0x0a, 0x08, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 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, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 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, 0x1a, 0x96, 0x01, 0x0a, 0x0a, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 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, 0x4d, 0x0a, 0x09, + 0x72, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 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, 0x1a, 0x5a, 0x0a, 0x0c, 0x50, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x4a, 0x0a, 0x08, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 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, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x62, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 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, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, - 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0xe9, 0x01, 0x0a, 0x10, + 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x1a, 0x87, 0x02, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x12, 0x47, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x08, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x73, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x74, - 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, - 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x22, 0x65, 0x0a, 0x1a, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x22, 0x92, - 0x01, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x72, 0x6d, 0x22, 0x5a, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, - 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 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, - 0x59, 0x0a, 0x15, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 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, 0x6a, 0x0a, 0x16, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x12, 0x51, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 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, + 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x18, + 0x02, 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, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x73, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x73, 0x12, + 0x54, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 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, + 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x50, 0x61, 0x69, 0x72, 0x22, 0x65, 0x0a, 0x1a, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x22, 0x90, 0x01, 0x0a, + 0x15, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 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, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x94, 0x01, 0x0a, 0x17, 0x45, 0x70, 0x68, 0x65, 0x6d, - 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x22, 0x5c, 0x0a, - 0x18, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 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, 0xb5, 0x01, 0x0a, 0x0f, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x52, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, + 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x22, + 0x58, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x22, 0x57, 0x0a, 0x15, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 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, 0x22, 0x68, 0x0a, 0x16, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0d, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, + 0x01, 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, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x92, 0x01, 0x0a, + 0x17, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 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, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x22, 0x5a, 0x0a, 0x18, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x22, 0xb2, 0x01, + 0x0a, 0x0f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 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, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x49, 0x64, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x22, 0x99, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, - 0x25, 0x0a, 0x0d, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x22, 0x52, 0x0a, 0x0f, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, - 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x03, 0x66, 0x76, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x69, - 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x66, 0x76, 0x6b, 0x22, 0x4f, 0x0a, 0x10, 0x56, 0x69, - 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, - 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x68, 0x0a, 0x0d, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x57, 0x0a, 0x10, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x79, - 0x6e, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, - 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x22, 0x6e, 0x0a, 0x13, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x72, 0x0a, 0x14, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x39, 0x0a, 0x19, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4b, 0x6e, 0x6f, 0x77, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xf0, 0x02, - 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x70, - 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x52, 0x07, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4d, 0x0a, 0x0f, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x74, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 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, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x22, 0x96, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 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, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x07, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 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, 0x22, 0x25, 0x0a, 0x0d, 0x56, + 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x22, 0x50, 0x0a, 0x0f, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x03, 0x66, 0x76, 0x6b, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 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, 0x46, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x52, + 0x03, 0x66, 0x76, 0x6b, 0x22, 0x4f, 0x0a, 0x10, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x66, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 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, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x52, 0x0a, + 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x55, + 0x70, 0x22, 0x6c, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 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, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, + 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, + 0x72, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x6c, 0x61, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x22, 0xe8, 0x02, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x08, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 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, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x0d, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, + 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, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4a, 0x0a, 0x0f, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 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, 0x0d, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x54, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x54, 0x6f, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, - 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, - 0x22, 0xee, 0x01, 0x0a, 0x15, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x56, 0x6f, 0x74, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x6f, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, + 0x0b, 0x32, 0x2b, 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, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0xea, + 0x01, 0x0a, 0x15, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x6f, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x4e, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 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, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 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, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0xa1, 0x02, 0x0a, 0x0e, + 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, + 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 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, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x5e, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x03, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x64, 0x22, 0xa4, 0x02, 0x0a, 0x0e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x59, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x0f, - 0x6e, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x5e, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x6c, 0x61, 0x6e, 0x18, 0x03, 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, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x0f, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, - 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, - 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x6e, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0c, 0x77, - 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 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, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x22, - 0xde, 0x01, 0x0a, 0x16, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5e, 0x0a, 0x10, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x28, 0x0b, 0x32, 0x2b, 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, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, + 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, + 0x65, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0c, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 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, 0x57, 0x69, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x22, 0xde, 0x01, 0x0a, 0x16, 0x57, 0x69, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x5e, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x01, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, + 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, + 0x6e, 0x12, 0x64, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 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, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 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, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x03, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x65, 0x64, 0x12, 0x69, 0x0a, 0x1e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 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, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x52, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, + 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x6c, 0x70, 0x5f, 0x6e, 0x66, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x70, 0x4e, 0x66, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x5f, 0x6e, 0x66, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4e, 0x66, 0x74, 0x73, + 0x12, 0x41, 0x0a, 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x76, 0x6f, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x22, 0x64, 0x0a, 0x0e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 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, 0x0d, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x18, 0x0a, 0x16, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x72, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, + 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 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, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x4d, 0x44, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x6e, 0x0a, 0x15, 0x46, 0x4d, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x6d, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, + 0xf1, 0x01, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x0f, 0x6e, + 0x6f, 0x74, 0x65, 0x5f, 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, 0x0e, 0x6e, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x77, + 0x61, 0x69, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x10, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 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, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x18, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x52, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, + 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0d, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x4e, + 0x6f, 0x74, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x17, 0x53, 0x77, 0x61, 0x70, 0x42, 0x79, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x56, 0x0a, 0x0f, 0x73, 0x77, 0x61, 0x70, 0x5f, 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, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x77, 0x61, 0x69, 0x74, + 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0e, 0x61, 0x77, 0x61, 0x69, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 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, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x18, 0x53, 0x77, 0x61, 0x70, 0x42, + 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, + 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x22, 0x6e, 0x0a, 0x15, 0x55, + 0x6e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 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, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x16, 0x55, + 0x6e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, + 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, + 0x70, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x22, 0xe7, 0x01, + 0x0a, 0x16, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 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, 0x27, 0x0a, 0x0f, 0x61, 0x77, 0x61, 0x69, 0x74, + 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0e, 0x61, 0x77, 0x61, 0x69, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x55, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 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, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x17, 0x4e, 0x75, 0x6c, 0x6c, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x22, 0x56, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x48, 0x61, 0x73, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, + 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x64, 0x0a, 0x12, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, - 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, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x22, 0x6c, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x75, - 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 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, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, - 0x03, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x6a, 0x0a, 0x1e, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x1c, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x26, - 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x70, 0x5f, 0x6e, 0x66, 0x74, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x4c, 0x70, 0x4e, 0x66, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x6e, 0x66, 0x74, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4e, 0x66, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x70, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x65, 0x0a, - 0x0e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x53, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x18, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x68, - 0x0a, 0x17, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 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, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x4d, 0x44, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x64, 0x0a, 0x15, 0x46, 0x4d, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x6d, 0x64, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xf4, 0x01, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x65, 0x42, - 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x57, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 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, 0x0e, 0x6e, 0x6f, 0x74, - 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, - 0x77, 0x61, 0x69, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x77, 0x61, 0x69, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x6e, 0x0a, - 0x18, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0e, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, - 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0d, - 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x22, 0xf4, 0x01, - 0x0a, 0x17, 0x53, 0x77, 0x61, 0x70, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x57, 0x0a, 0x0f, 0x73, 0x77, 0x61, - 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x77, 0x61, - 0x69, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x10, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x18, 0x53, 0x77, 0x61, 0x70, 0x42, 0x79, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x36, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x22, 0x70, 0x0a, 0x15, 0x55, 0x6e, 0x63, 0x6c, - 0x61, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x16, 0x55, 0x6e, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, - 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x22, 0xe2, 0x01, 0x0a, - 0x16, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 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, - 0x27, 0x0a, 0x0f, 0x61, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x77, 0x61, 0x69, 0x74, 0x44, - 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x64, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x64, 0x22, 0x2f, 0x0a, 0x17, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x70, 0x65, - 0x6e, 0x74, 0x22, 0x56, 0x0a, 0x1c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x36, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 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, 0x02, 0x69, 0x64, 0x22, 0x5a, 0x0a, 0x16, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x6e, 0x64, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xdb, 0x02, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x36, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 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, 0x02, 0x69, 0x64, 0x12, 0x51, 0x0a, 0x0b, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, + 0x22, 0x5a, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xdb, 0x02, 0x0a, + 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x36, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, + 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, 0x02, 0x69, 0x64, + 0x12, 0x51, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 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, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 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, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x12, 0x47, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x05, 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, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, - 0x0b, 0x70, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3a, 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, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x0b, - 0x70, 0x65, 0x72, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x76, - 0x69, 0x65, 0x77, 0x18, 0x05, 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, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, - 0x76, 0x69, 0x65, 0x77, 0x22, 0x5b, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x40, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x61, 0x0a, 0x1d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78, - 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x5d, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, - 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x22, 0xb5, 0x01, 0x0a, 0x16, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, - 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, - 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, - 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x4d, 0x0a, 0x0c, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 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, 0xe9, 0x03, 0x0a, 0x13, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x12, 0x57, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 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, 0x0e, 0x6e, 0x6f, - 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x04, - 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, - 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x46, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x6f, 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, - 0x25, 0x0a, 0x0e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x53, 0x70, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xc3, 0x03, 0x0a, 0x0a, 0x53, 0x77, 0x61, 0x70, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x57, 0x0a, 0x0f, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x76, 0x69, 0x65, 0x77, 0x22, 0x5b, 0x0a, 0x17, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x61, 0x0a, 0x1d, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x06, 0x74, 0x78, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x5d, 0x0a, 0x0d, 0x4e, 0x6f, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x6e, + 0x6f, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x6e, + 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0xb3, 0x01, 0x0a, 0x16, 0x4e, 0x6f, + 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x65, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, + 0x72, 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, + 0x88, 0x04, 0x0a, 0x13, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, + 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x56, 0x0a, 0x0f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, + 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, - 0x0e, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x3d, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, - 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, - 0x6c, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x09, 0x6e, 0x75, - 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 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, 0x50, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x06, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xb7, 0x01, - 0x0a, 0x17, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0c, 0x74, - 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, - 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x22, 0x63, 0x0a, 0x18, 0x4f, 0x77, 0x6e, 0x65, 0x64, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, - 0x62, 0x72, 0x61, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x32, 0xb3, 0x14, 0x0a, - 0x13, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, + 0x0e, 0x6e, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 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, 0x12, 0x4e, 0x0a, 0x0d, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 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, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0c, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4d, 0x0a, 0x09, 0x6e, 0x75, 0x6c, + 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 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, 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, 0x25, 0x0a, 0x0e, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x53, 0x70, 0x65, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xe7, 0x03, 0x0a, 0x0a, 0x53, + 0x77, 0x61, 0x70, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x56, 0x0a, 0x0f, 0x73, 0x77, 0x61, + 0x70, 0x5f, 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, 0x0e, 0x73, 0x77, 0x61, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x47, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x50, 0x6c, 0x61, 0x69, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x69, 0x66, + 0x69, 0x65, 0x72, 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, 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, 0x5a, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 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, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x77, 0x61, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x07, 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, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x5a, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 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, 0x65, 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x0c, + 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x69, 0x72, 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, 0x64, 0x65, 0x78, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, + 0x69, 0x72, 0x22, 0x6d, 0x0a, 0x18, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, + 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 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, 0x64, 0x65, + 0x78, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x32, 0xb3, 0x14, 0x0a, 0x13, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, + 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x12, 0x2b, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, + 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, + 0x56, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, - 0x0c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2b, 0x2e, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x71, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x65, 0x73, + 0x46, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x5a, 0x0a, 0x07, 0x57, 0x69, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, + 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x56, 0x0a, 0x05, 0x4e, 0x6f, - 0x74, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, + 0x73, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x71, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x56, 0x6f, - 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, - 0x74, 0x65, 0x73, 0x46, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x73, 0x46, 0x6f, 0x72, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x5a, 0x0a, 0x07, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, - 0x12, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x61, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x65, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x6e, 0x64, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x69, - 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x69, - 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, - 0x25, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, - 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, - 0x12, 0x72, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 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, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 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, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x46, 0x4d, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, - 0x4d, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x4d, 0x44, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, - 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, - 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 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, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x46, 0x4d, 0x44, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x46, 0x4d, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x31, 0x2e, 0x46, 0x4d, 0x44, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x08, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x75, 0x0a, 0x10, - 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, - 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x42, - 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x53, 0x77, 0x61, 0x70, 0x42, 0x79, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x53, 0x77, 0x61, 0x70, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x61, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0e, 0x55, 0x6e, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x77, 0x61, 0x70, 0x73, 0x12, 0x2d, 0x2e, 0x70, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, + 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x45, 0x70, 0x68, + 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2f, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, + 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5f, 0x0a, 0x08, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x53, - 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x77, - 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x72, 0x0a, - 0x0f, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, + 0x01, 0x12, 0x75, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, + 0x6f, 0x74, 0x65, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4e, 0x6f, 0x74, 0x65, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x53, 0x77, 0x61, 0x70, + 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x42, 0x79, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x77, 0x61, 0x70, 0x42, 0x79, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x71, 0x0a, 0x0e, 0x55, 0x6e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x53, 0x77, 0x61, 0x70, + 0x73, 0x12, 0x2d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, + 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x65, 0x64, 0x53, 0x77, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x30, 0x01, 0x12, 0x72, 0x0a, 0x0f, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, + 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, + 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, + 0x75, 0x6c, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, + 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, + 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x34, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x35, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, - 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x65, - 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7b, - 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, - 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, - 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, - 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x14, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x30, 0x01, 0x12, 0x7b, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6c, + 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x70, + 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x81, 0x01, 0x0a, 0x14, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x77, 0x0a, 0x10, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x73, 0x12, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, - 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x77, 0x6e, - 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, - 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x77, - 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x78, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x30, 0x2e, - 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, - 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x65, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x32, 0x70, 0x0a, 0x0f, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, - 0x68, 0x12, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, - 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x41, - 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xf5, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x42, 0x09, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x52, 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, 0x76, 0x69, 0x65, 0x77, 0x2f, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x76, 0x69, 0x65, 0x77, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x56, 0x58, 0xaa, 0x02, 0x16, 0x50, 0x65, 0x6e, - 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0xca, 0x02, 0x16, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x56, - 0x69, 0x65, 0x77, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x50, - 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x56, 0x69, 0x65, 0x77, 0x5c, 0x56, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x18, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x3a, 0x3a, 0x56, 0x69, - 0x65, 0x77, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x73, 0x12, 0x2f, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, + 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x78, 0x0a, + 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x12, 0x30, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, + 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, + 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x41, 0x6e, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x70, 0x0a, 0x0f, 0x56, 0x69, 0x65, 0x77, 0x41, + 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x56, 0x69, + 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x12, 0x27, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x28, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x41, 0x75, 0x74, + 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xf5, 0x01, 0x0a, 0x1a, 0x63, 0x6f, + 0x6d, 0x2e, 0x70, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x76, 0x69, 0x65, 0x77, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x09, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x52, 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, 0x76, + 0x69, 0x65, 0x77, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x76, 0x69, 0x65, + 0x77, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x50, 0x56, 0x58, 0xaa, + 0x02, 0x16, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x2e, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x16, 0x50, 0x65, 0x6e, 0x75, 0x6d, + 0x62, 0x72, 0x61, 0x5c, 0x56, 0x69, 0x65, 0x77, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0xe2, 0x02, 0x22, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x61, 0x5c, 0x56, 0x69, 0x65, + 0x77, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x50, 0x65, 0x6e, 0x75, 0x6d, 0x62, 0x72, + 0x61, 0x3a, 0x3a, 0x56, 0x69, 0x65, 0x77, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4431,36 +4466,36 @@ var file_penumbra_view_v1alpha1_view_proto_goTypes = []interface{}{ (*v1alpha1.AuthorizationData)(nil), // 61: penumbra.core.transaction.v1alpha1.AuthorizationData (*v1alpha1.Transaction)(nil), // 62: penumbra.core.transaction.v1alpha1.Transaction (*v1alpha1.Id)(nil), // 63: penumbra.core.transaction.v1alpha1.Id - (*v1alpha11.Fee)(nil), // 64: penumbra.core.crypto.v1alpha1.Fee + (*v1alpha11.Fee)(nil), // 64: penumbra.core.component.fee.v1alpha1.Fee (*v1alpha1.MemoPlaintext)(nil), // 65: penumbra.core.transaction.v1alpha1.MemoPlaintext - (*v1alpha11.AddressIndex)(nil), // 66: penumbra.core.crypto.v1alpha1.AddressIndex - (*v1alpha11.AccountGroupId)(nil), // 67: penumbra.core.crypto.v1alpha1.AccountGroupId - (*v1alpha12.IbcAction)(nil), // 68: penumbra.core.ibc.v1alpha1.IbcAction - (*v1alpha11.Address)(nil), // 69: penumbra.core.crypto.v1alpha1.Address - (*v1alpha11.AssetId)(nil), // 70: penumbra.core.crypto.v1alpha1.AssetId - (*v1alpha11.Value)(nil), // 71: penumbra.core.crypto.v1alpha1.Value - (*v1alpha11.FullViewingKey)(nil), // 72: penumbra.core.crypto.v1alpha1.FullViewingKey - (*v1alpha11.Amount)(nil), // 73: penumbra.core.crypto.v1alpha1.Amount - (*v1alpha11.StateCommitment)(nil), // 74: penumbra.core.crypto.v1alpha1.StateCommitment + (*v1alpha12.AddressIndex)(nil), // 66: penumbra.core.keys.v1alpha1.AddressIndex + (*v1alpha12.AccountGroupId)(nil), // 67: penumbra.core.keys.v1alpha1.AccountGroupId + (*v1alpha13.IbcAction)(nil), // 68: penumbra.core.component.ibc.v1alpha1.IbcAction + (*v1alpha12.Address)(nil), // 69: penumbra.core.keys.v1alpha1.Address + (*v1alpha14.AssetId)(nil), // 70: penumbra.core.asset.v1alpha1.AssetId + (*v1alpha14.Value)(nil), // 71: penumbra.core.asset.v1alpha1.Value + (*v1alpha12.FullViewingKey)(nil), // 72: penumbra.core.keys.v1alpha1.FullViewingKey + (*v1alpha15.Amount)(nil), // 73: penumbra.core.num.v1alpha1.Amount + (*v1alpha16.StateCommitment)(nil), // 74: penumbra.crypto.tct.v1alpha1.StateCommitment (*v1alpha1.WitnessData)(nil), // 75: penumbra.core.transaction.v1alpha1.WitnessData - (*v1alpha11.Denom)(nil), // 76: penumbra.core.crypto.v1alpha1.Denom - (*v1alpha11.DenomMetadata)(nil), // 77: penumbra.core.crypto.v1alpha1.DenomMetadata - (*v1alpha13.ChainParameters)(nil), // 78: penumbra.core.chain.v1alpha1.ChainParameters - (*v1alpha13.FmdParameters)(nil), // 79: penumbra.core.chain.v1alpha1.FmdParameters - (*v1alpha11.Nullifier)(nil), // 80: penumbra.core.crypto.v1alpha1.Nullifier + (*v1alpha14.Denom)(nil), // 76: penumbra.core.asset.v1alpha1.Denom + (*v1alpha14.DenomMetadata)(nil), // 77: penumbra.core.asset.v1alpha1.DenomMetadata + (*v1alpha17.ChainParameters)(nil), // 78: penumbra.core.component.chain.v1alpha1.ChainParameters + (*v1alpha17.FmdParameters)(nil), // 79: penumbra.core.component.chain.v1alpha1.FmdParameters + (*v1alpha18.Nullifier)(nil), // 80: penumbra.core.component.sct.v1alpha1.Nullifier (*v1alpha1.TransactionPerspective)(nil), // 81: penumbra.core.transaction.v1alpha1.TransactionPerspective (*v1alpha1.TransactionView)(nil), // 82: penumbra.core.transaction.v1alpha1.TransactionView - (*v1alpha11.IdentityKey)(nil), // 83: penumbra.core.crypto.v1alpha1.IdentityKey - (*v1alpha11.Note)(nil), // 84: penumbra.core.crypto.v1alpha1.Note - (*v1alpha13.NoteSource)(nil), // 85: penumbra.core.chain.v1alpha1.NoteSource - (*v1alpha14.SwapPlaintext)(nil), // 86: penumbra.core.dex.v1alpha1.SwapPlaintext - (*v1alpha14.BatchSwapOutputData)(nil), // 87: penumbra.core.dex.v1alpha1.BatchSwapOutputData - (*v1alpha14.PositionState)(nil), // 88: penumbra.core.dex.v1alpha1.PositionState - (*v1alpha14.TradingPair)(nil), // 89: penumbra.core.dex.v1alpha1.TradingPair - (*v1alpha14.PositionId)(nil), // 90: penumbra.core.dex.v1alpha1.PositionId - (*v1alpha15.RateData)(nil), // 91: penumbra.core.stake.v1alpha1.RateData - (*v1alpha14.Position)(nil), // 92: penumbra.core.dex.v1alpha1.Position - (*v1alpha14.Reserves)(nil), // 93: penumbra.core.dex.v1alpha1.Reserves + (*v1alpha12.IdentityKey)(nil), // 83: penumbra.core.keys.v1alpha1.IdentityKey + (*v1alpha19.Note)(nil), // 84: penumbra.core.component.shielded_pool.v1alpha1.Note + (*v1alpha17.NoteSource)(nil), // 85: penumbra.core.component.chain.v1alpha1.NoteSource + (*v1alpha110.SwapPlaintext)(nil), // 86: penumbra.core.component.dex.v1alpha1.SwapPlaintext + (*v1alpha110.BatchSwapOutputData)(nil), // 87: penumbra.core.component.dex.v1alpha1.BatchSwapOutputData + (*v1alpha110.PositionState)(nil), // 88: penumbra.core.component.dex.v1alpha1.PositionState + (*v1alpha110.TradingPair)(nil), // 89: penumbra.core.component.dex.v1alpha1.TradingPair + (*v1alpha110.PositionId)(nil), // 90: penumbra.core.component.dex.v1alpha1.PositionId + (*v1alpha111.RateData)(nil), // 91: penumbra.core.component.stake.v1alpha1.RateData + (*v1alpha110.Position)(nil), // 92: penumbra.core.component.dex.v1alpha1.Position + (*v1alpha110.Reserves)(nil), // 93: penumbra.core.component.dex.v1alpha1.Reserves } var file_penumbra_view_v1alpha1_view_proto_depIdxs = []int32{ 60, // 0: penumbra.view.v1alpha1.AuthorizeAndBuildRequest.transaction_plan:type_name -> penumbra.core.transaction.v1alpha1.TransactionPlan @@ -4468,61 +4503,61 @@ var file_penumbra_view_v1alpha1_view_proto_depIdxs = []int32{ 62, // 2: penumbra.view.v1alpha1.AuthorizeAndBuildResponse.transaction:type_name -> penumbra.core.transaction.v1alpha1.Transaction 62, // 3: penumbra.view.v1alpha1.BroadcastTransactionRequest.transaction:type_name -> penumbra.core.transaction.v1alpha1.Transaction 63, // 4: penumbra.view.v1alpha1.BroadcastTransactionResponse.id:type_name -> penumbra.core.transaction.v1alpha1.Id - 64, // 5: penumbra.view.v1alpha1.TransactionPlannerRequest.fee:type_name -> penumbra.core.crypto.v1alpha1.Fee + 64, // 5: penumbra.view.v1alpha1.TransactionPlannerRequest.fee:type_name -> penumbra.core.component.fee.v1alpha1.Fee 65, // 6: penumbra.view.v1alpha1.TransactionPlannerRequest.memo:type_name -> penumbra.core.transaction.v1alpha1.MemoPlaintext - 66, // 7: penumbra.view.v1alpha1.TransactionPlannerRequest.source:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 67, // 8: penumbra.view.v1alpha1.TransactionPlannerRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId + 66, // 7: penumbra.view.v1alpha1.TransactionPlannerRequest.source:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 67, // 8: penumbra.view.v1alpha1.TransactionPlannerRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId 52, // 9: penumbra.view.v1alpha1.TransactionPlannerRequest.outputs:type_name -> penumbra.view.v1alpha1.TransactionPlannerRequest.Output 53, // 10: penumbra.view.v1alpha1.TransactionPlannerRequest.swaps:type_name -> penumbra.view.v1alpha1.TransactionPlannerRequest.Swap 54, // 11: penumbra.view.v1alpha1.TransactionPlannerRequest.swap_claims:type_name -> penumbra.view.v1alpha1.TransactionPlannerRequest.SwapClaim 55, // 12: penumbra.view.v1alpha1.TransactionPlannerRequest.delegations:type_name -> penumbra.view.v1alpha1.TransactionPlannerRequest.Delegate 56, // 13: penumbra.view.v1alpha1.TransactionPlannerRequest.undelegations:type_name -> penumbra.view.v1alpha1.TransactionPlannerRequest.Undelegate - 68, // 14: penumbra.view.v1alpha1.TransactionPlannerRequest.ibc_actions:type_name -> penumbra.core.ibc.v1alpha1.IbcAction + 68, // 14: penumbra.view.v1alpha1.TransactionPlannerRequest.ibc_actions:type_name -> penumbra.core.component.ibc.v1alpha1.IbcAction 57, // 15: penumbra.view.v1alpha1.TransactionPlannerRequest.position_opens:type_name -> penumbra.view.v1alpha1.TransactionPlannerRequest.PositionOpen 58, // 16: penumbra.view.v1alpha1.TransactionPlannerRequest.position_closes:type_name -> penumbra.view.v1alpha1.TransactionPlannerRequest.PositionClose 59, // 17: penumbra.view.v1alpha1.TransactionPlannerRequest.position_withdraws:type_name -> penumbra.view.v1alpha1.TransactionPlannerRequest.PositionWithdraw 60, // 18: penumbra.view.v1alpha1.TransactionPlannerResponse.plan:type_name -> penumbra.core.transaction.v1alpha1.TransactionPlan - 66, // 19: penumbra.view.v1alpha1.AddressByIndexRequest.address_index:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 69, // 20: penumbra.view.v1alpha1.AddressByIndexResponse.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 69, // 21: penumbra.view.v1alpha1.IndexByAddressRequest.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 66, // 22: penumbra.view.v1alpha1.IndexByAddressResponse.address_index:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 66, // 23: penumbra.view.v1alpha1.EphemeralAddressRequest.address_index:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 69, // 24: penumbra.view.v1alpha1.EphemeralAddressResponse.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 66, // 25: penumbra.view.v1alpha1.BalancesRequest.account_filter:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 70, // 26: penumbra.view.v1alpha1.BalancesRequest.asset_id_filter:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 66, // 27: penumbra.view.v1alpha1.BalancesResponse.account:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 71, // 28: penumbra.view.v1alpha1.BalancesResponse.balance:type_name -> penumbra.core.crypto.v1alpha1.Value - 72, // 29: penumbra.view.v1alpha1.ViewAuthRequest.fvk:type_name -> penumbra.core.crypto.v1alpha1.FullViewingKey + 66, // 19: penumbra.view.v1alpha1.AddressByIndexRequest.address_index:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 69, // 20: penumbra.view.v1alpha1.AddressByIndexResponse.address:type_name -> penumbra.core.keys.v1alpha1.Address + 69, // 21: penumbra.view.v1alpha1.IndexByAddressRequest.address:type_name -> penumbra.core.keys.v1alpha1.Address + 66, // 22: penumbra.view.v1alpha1.IndexByAddressResponse.address_index:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 66, // 23: penumbra.view.v1alpha1.EphemeralAddressRequest.address_index:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 69, // 24: penumbra.view.v1alpha1.EphemeralAddressResponse.address:type_name -> penumbra.core.keys.v1alpha1.Address + 66, // 25: penumbra.view.v1alpha1.BalancesRequest.account_filter:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 70, // 26: penumbra.view.v1alpha1.BalancesRequest.asset_id_filter:type_name -> penumbra.core.asset.v1alpha1.AssetId + 66, // 27: penumbra.view.v1alpha1.BalancesResponse.account:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 71, // 28: penumbra.view.v1alpha1.BalancesResponse.balance:type_name -> penumbra.core.asset.v1alpha1.Value + 72, // 29: penumbra.view.v1alpha1.ViewAuthRequest.fvk:type_name -> penumbra.core.keys.v1alpha1.FullViewingKey 14, // 30: penumbra.view.v1alpha1.ViewAuthResponse.token:type_name -> penumbra.view.v1alpha1.ViewAuthToken - 67, // 31: penumbra.view.v1alpha1.StatusRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId - 67, // 32: penumbra.view.v1alpha1.StatusStreamRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId - 70, // 33: penumbra.view.v1alpha1.NotesRequest.asset_id:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 66, // 34: penumbra.view.v1alpha1.NotesRequest.address_index:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 73, // 35: penumbra.view.v1alpha1.NotesRequest.amount_to_spend:type_name -> penumbra.core.crypto.v1alpha1.Amount - 67, // 36: penumbra.view.v1alpha1.NotesRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId - 66, // 37: penumbra.view.v1alpha1.NotesForVotingRequest.address_index:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 67, // 38: penumbra.view.v1alpha1.NotesForVotingRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId - 74, // 39: penumbra.view.v1alpha1.WitnessRequest.note_commitments:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment + 67, // 31: penumbra.view.v1alpha1.StatusRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId + 67, // 32: penumbra.view.v1alpha1.StatusStreamRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId + 70, // 33: penumbra.view.v1alpha1.NotesRequest.asset_id:type_name -> penumbra.core.asset.v1alpha1.AssetId + 66, // 34: penumbra.view.v1alpha1.NotesRequest.address_index:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 73, // 35: penumbra.view.v1alpha1.NotesRequest.amount_to_spend:type_name -> penumbra.core.num.v1alpha1.Amount + 67, // 36: penumbra.view.v1alpha1.NotesRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId + 66, // 37: penumbra.view.v1alpha1.NotesForVotingRequest.address_index:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 67, // 38: penumbra.view.v1alpha1.NotesForVotingRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId + 74, // 39: penumbra.view.v1alpha1.WitnessRequest.note_commitments:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment 60, // 40: penumbra.view.v1alpha1.WitnessRequest.transaction_plan:type_name -> penumbra.core.transaction.v1alpha1.TransactionPlan - 67, // 41: penumbra.view.v1alpha1.WitnessRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId + 67, // 41: penumbra.view.v1alpha1.WitnessRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId 75, // 42: penumbra.view.v1alpha1.WitnessResponse.witness_data:type_name -> penumbra.core.transaction.v1alpha1.WitnessData 60, // 43: penumbra.view.v1alpha1.WitnessAndBuildRequest.transaction_plan:type_name -> penumbra.core.transaction.v1alpha1.TransactionPlan 61, // 44: penumbra.view.v1alpha1.WitnessAndBuildRequest.authorization_data:type_name -> penumbra.core.transaction.v1alpha1.AuthorizationData 62, // 45: penumbra.view.v1alpha1.WitnessAndBuildResponse.transaction:type_name -> penumbra.core.transaction.v1alpha1.Transaction - 76, // 46: penumbra.view.v1alpha1.AssetsRequest.include_specific_denominations:type_name -> penumbra.core.crypto.v1alpha1.Denom - 77, // 47: penumbra.view.v1alpha1.AssetsResponse.denom_metadata:type_name -> penumbra.core.crypto.v1alpha1.DenomMetadata - 78, // 48: penumbra.view.v1alpha1.ChainParametersResponse.parameters:type_name -> penumbra.core.chain.v1alpha1.ChainParameters - 79, // 49: penumbra.view.v1alpha1.FMDParametersResponse.parameters:type_name -> penumbra.core.chain.v1alpha1.FmdParameters - 74, // 50: penumbra.view.v1alpha1.NoteByCommitmentRequest.note_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 67, // 51: penumbra.view.v1alpha1.NoteByCommitmentRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId + 76, // 46: penumbra.view.v1alpha1.AssetsRequest.include_specific_denominations:type_name -> penumbra.core.asset.v1alpha1.Denom + 77, // 47: penumbra.view.v1alpha1.AssetsResponse.denom_metadata:type_name -> penumbra.core.asset.v1alpha1.DenomMetadata + 78, // 48: penumbra.view.v1alpha1.ChainParametersResponse.parameters:type_name -> penumbra.core.component.chain.v1alpha1.ChainParameters + 79, // 49: penumbra.view.v1alpha1.FMDParametersResponse.parameters:type_name -> penumbra.core.component.chain.v1alpha1.FmdParameters + 74, // 50: penumbra.view.v1alpha1.NoteByCommitmentRequest.note_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 67, // 51: penumbra.view.v1alpha1.NoteByCommitmentRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId 48, // 52: penumbra.view.v1alpha1.NoteByCommitmentResponse.spendable_note:type_name -> penumbra.view.v1alpha1.SpendableNoteRecord - 74, // 53: penumbra.view.v1alpha1.SwapByCommitmentRequest.swap_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 67, // 54: penumbra.view.v1alpha1.SwapByCommitmentRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId + 74, // 53: penumbra.view.v1alpha1.SwapByCommitmentRequest.swap_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 67, // 54: penumbra.view.v1alpha1.SwapByCommitmentRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId 49, // 55: penumbra.view.v1alpha1.SwapByCommitmentResponse.swap:type_name -> penumbra.view.v1alpha1.SwapRecord - 67, // 56: penumbra.view.v1alpha1.UnclaimedSwapsRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId + 67, // 56: penumbra.view.v1alpha1.UnclaimedSwapsRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId 49, // 57: penumbra.view.v1alpha1.UnclaimedSwapsResponse.swap:type_name -> penumbra.view.v1alpha1.SwapRecord - 80, // 58: penumbra.view.v1alpha1.NullifierStatusRequest.nullifier:type_name -> penumbra.core.crypto.v1alpha1.Nullifier - 67, // 59: penumbra.view.v1alpha1.NullifierStatusRequest.account_group_id:type_name -> penumbra.core.crypto.v1alpha1.AccountGroupId + 80, // 58: penumbra.view.v1alpha1.NullifierStatusRequest.nullifier:type_name -> penumbra.core.component.sct.v1alpha1.Nullifier + 67, // 59: penumbra.view.v1alpha1.NullifierStatusRequest.account_group_id:type_name -> penumbra.core.keys.v1alpha1.AccountGroupId 63, // 60: penumbra.view.v1alpha1.TransactionInfoByHashRequest.id:type_name -> penumbra.core.transaction.v1alpha1.Id 63, // 61: penumbra.view.v1alpha1.TransactionInfo.id:type_name -> penumbra.core.transaction.v1alpha1.Id 62, // 62: penumbra.view.v1alpha1.TransactionInfo.transaction:type_name -> penumbra.core.transaction.v1alpha1.Transaction @@ -4532,36 +4567,36 @@ var file_penumbra_view_v1alpha1_view_proto_depIdxs = []int32{ 43, // 66: penumbra.view.v1alpha1.TransactionInfoByHashResponse.tx_info:type_name -> penumbra.view.v1alpha1.TransactionInfo 48, // 67: penumbra.view.v1alpha1.NotesResponse.note_record:type_name -> penumbra.view.v1alpha1.SpendableNoteRecord 48, // 68: penumbra.view.v1alpha1.NotesForVotingResponse.note_record:type_name -> penumbra.view.v1alpha1.SpendableNoteRecord - 83, // 69: penumbra.view.v1alpha1.NotesForVotingResponse.identity_key:type_name -> penumbra.core.crypto.v1alpha1.IdentityKey - 74, // 70: penumbra.view.v1alpha1.SpendableNoteRecord.note_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 84, // 71: penumbra.view.v1alpha1.SpendableNoteRecord.note:type_name -> penumbra.core.crypto.v1alpha1.Note - 66, // 72: penumbra.view.v1alpha1.SpendableNoteRecord.address_index:type_name -> penumbra.core.crypto.v1alpha1.AddressIndex - 80, // 73: penumbra.view.v1alpha1.SpendableNoteRecord.nullifier:type_name -> penumbra.core.crypto.v1alpha1.Nullifier - 85, // 74: penumbra.view.v1alpha1.SpendableNoteRecord.source:type_name -> penumbra.core.chain.v1alpha1.NoteSource - 74, // 75: penumbra.view.v1alpha1.SwapRecord.swap_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 86, // 76: penumbra.view.v1alpha1.SwapRecord.swap:type_name -> penumbra.core.dex.v1alpha1.SwapPlaintext - 80, // 77: penumbra.view.v1alpha1.SwapRecord.nullifier:type_name -> penumbra.core.crypto.v1alpha1.Nullifier - 87, // 78: penumbra.view.v1alpha1.SwapRecord.output_data:type_name -> penumbra.core.dex.v1alpha1.BatchSwapOutputData - 85, // 79: penumbra.view.v1alpha1.SwapRecord.source:type_name -> penumbra.core.chain.v1alpha1.NoteSource - 88, // 80: penumbra.view.v1alpha1.OwnedPositionIdsRequest.position_state:type_name -> penumbra.core.dex.v1alpha1.PositionState - 89, // 81: penumbra.view.v1alpha1.OwnedPositionIdsRequest.trading_pair:type_name -> penumbra.core.dex.v1alpha1.TradingPair - 90, // 82: penumbra.view.v1alpha1.OwnedPositionIdsResponse.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 71, // 83: penumbra.view.v1alpha1.TransactionPlannerRequest.Output.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 69, // 84: penumbra.view.v1alpha1.TransactionPlannerRequest.Output.address:type_name -> penumbra.core.crypto.v1alpha1.Address - 71, // 85: penumbra.view.v1alpha1.TransactionPlannerRequest.Swap.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 70, // 86: penumbra.view.v1alpha1.TransactionPlannerRequest.Swap.target_asset:type_name -> penumbra.core.crypto.v1alpha1.AssetId - 64, // 87: penumbra.view.v1alpha1.TransactionPlannerRequest.Swap.fee:type_name -> penumbra.core.crypto.v1alpha1.Fee - 69, // 88: penumbra.view.v1alpha1.TransactionPlannerRequest.Swap.claim_address:type_name -> penumbra.core.crypto.v1alpha1.Address - 74, // 89: penumbra.view.v1alpha1.TransactionPlannerRequest.SwapClaim.swap_commitment:type_name -> penumbra.core.crypto.v1alpha1.StateCommitment - 73, // 90: penumbra.view.v1alpha1.TransactionPlannerRequest.Delegate.amount:type_name -> penumbra.core.crypto.v1alpha1.Amount - 91, // 91: penumbra.view.v1alpha1.TransactionPlannerRequest.Delegate.rate_data:type_name -> penumbra.core.stake.v1alpha1.RateData - 71, // 92: penumbra.view.v1alpha1.TransactionPlannerRequest.Undelegate.value:type_name -> penumbra.core.crypto.v1alpha1.Value - 91, // 93: penumbra.view.v1alpha1.TransactionPlannerRequest.Undelegate.rate_data:type_name -> penumbra.core.stake.v1alpha1.RateData - 92, // 94: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionOpen.position:type_name -> penumbra.core.dex.v1alpha1.Position - 90, // 95: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionClose.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 90, // 96: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionWithdraw.position_id:type_name -> penumbra.core.dex.v1alpha1.PositionId - 93, // 97: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionWithdraw.reserves:type_name -> penumbra.core.dex.v1alpha1.Reserves - 89, // 98: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionWithdraw.trading_pair:type_name -> penumbra.core.dex.v1alpha1.TradingPair + 83, // 69: penumbra.view.v1alpha1.NotesForVotingResponse.identity_key:type_name -> penumbra.core.keys.v1alpha1.IdentityKey + 74, // 70: penumbra.view.v1alpha1.SpendableNoteRecord.note_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 84, // 71: penumbra.view.v1alpha1.SpendableNoteRecord.note:type_name -> penumbra.core.component.shielded_pool.v1alpha1.Note + 66, // 72: penumbra.view.v1alpha1.SpendableNoteRecord.address_index:type_name -> penumbra.core.keys.v1alpha1.AddressIndex + 80, // 73: penumbra.view.v1alpha1.SpendableNoteRecord.nullifier:type_name -> penumbra.core.component.sct.v1alpha1.Nullifier + 85, // 74: penumbra.view.v1alpha1.SpendableNoteRecord.source:type_name -> penumbra.core.component.chain.v1alpha1.NoteSource + 74, // 75: penumbra.view.v1alpha1.SwapRecord.swap_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 86, // 76: penumbra.view.v1alpha1.SwapRecord.swap:type_name -> penumbra.core.component.dex.v1alpha1.SwapPlaintext + 80, // 77: penumbra.view.v1alpha1.SwapRecord.nullifier:type_name -> penumbra.core.component.sct.v1alpha1.Nullifier + 87, // 78: penumbra.view.v1alpha1.SwapRecord.output_data:type_name -> penumbra.core.component.dex.v1alpha1.BatchSwapOutputData + 85, // 79: penumbra.view.v1alpha1.SwapRecord.source:type_name -> penumbra.core.component.chain.v1alpha1.NoteSource + 88, // 80: penumbra.view.v1alpha1.OwnedPositionIdsRequest.position_state:type_name -> penumbra.core.component.dex.v1alpha1.PositionState + 89, // 81: penumbra.view.v1alpha1.OwnedPositionIdsRequest.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.TradingPair + 90, // 82: penumbra.view.v1alpha1.OwnedPositionIdsResponse.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 71, // 83: penumbra.view.v1alpha1.TransactionPlannerRequest.Output.value:type_name -> penumbra.core.asset.v1alpha1.Value + 69, // 84: penumbra.view.v1alpha1.TransactionPlannerRequest.Output.address:type_name -> penumbra.core.keys.v1alpha1.Address + 71, // 85: penumbra.view.v1alpha1.TransactionPlannerRequest.Swap.value:type_name -> penumbra.core.asset.v1alpha1.Value + 70, // 86: penumbra.view.v1alpha1.TransactionPlannerRequest.Swap.target_asset:type_name -> penumbra.core.asset.v1alpha1.AssetId + 64, // 87: penumbra.view.v1alpha1.TransactionPlannerRequest.Swap.fee:type_name -> penumbra.core.component.fee.v1alpha1.Fee + 69, // 88: penumbra.view.v1alpha1.TransactionPlannerRequest.Swap.claim_address:type_name -> penumbra.core.keys.v1alpha1.Address + 74, // 89: penumbra.view.v1alpha1.TransactionPlannerRequest.SwapClaim.swap_commitment:type_name -> penumbra.crypto.tct.v1alpha1.StateCommitment + 73, // 90: penumbra.view.v1alpha1.TransactionPlannerRequest.Delegate.amount:type_name -> penumbra.core.num.v1alpha1.Amount + 91, // 91: penumbra.view.v1alpha1.TransactionPlannerRequest.Delegate.rate_data:type_name -> penumbra.core.component.stake.v1alpha1.RateData + 71, // 92: penumbra.view.v1alpha1.TransactionPlannerRequest.Undelegate.value:type_name -> penumbra.core.asset.v1alpha1.Value + 91, // 93: penumbra.view.v1alpha1.TransactionPlannerRequest.Undelegate.rate_data:type_name -> penumbra.core.component.stake.v1alpha1.RateData + 92, // 94: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionOpen.position:type_name -> penumbra.core.component.dex.v1alpha1.Position + 90, // 95: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionClose.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 90, // 96: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionWithdraw.position_id:type_name -> penumbra.core.component.dex.v1alpha1.PositionId + 93, // 97: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionWithdraw.reserves:type_name -> penumbra.core.component.dex.v1alpha1.Reserves + 89, // 98: penumbra.view.v1alpha1.TransactionPlannerRequest.PositionWithdraw.trading_pair:type_name -> penumbra.core.component.dex.v1alpha1.TradingPair 17, // 99: penumbra.view.v1alpha1.ViewProtocolService.Status:input_type -> penumbra.view.v1alpha1.StatusRequest 19, // 100: penumbra.view.v1alpha1.ViewProtocolService.StatusStream:input_type -> penumbra.view.v1alpha1.StatusStreamRequest 21, // 101: penumbra.view.v1alpha1.ViewProtocolService.Notes:input_type -> penumbra.view.v1alpha1.NotesRequest diff --git a/proto/penumbra/penumbra/client/v1alpha1/client.proto b/proto/penumbra/penumbra/client/v1alpha1/client.proto index 1df1780395..b5d559cef7 100644 --- a/proto/penumbra/penumbra/client/v1alpha1/client.proto +++ b/proto/penumbra/penumbra/client/v1alpha1/client.proto @@ -4,15 +4,21 @@ package penumbra.client.v1alpha1; import "google/protobuf/timestamp.proto"; import "ibc/core/commitment/v1/commitment.proto"; -import "penumbra/core/chain/v1alpha1/chain.proto"; -import "penumbra/core/crypto/v1alpha1/crypto.proto"; -import "penumbra/core/dex/v1alpha1/dex.proto"; -import "penumbra/core/stake/v1alpha1/stake.proto"; + +import "penumbra/crypto/tct/v1alpha1/tct.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; +import "penumbra/core/component/chain/v1alpha1/chain.proto"; +import "penumbra/core/component/dex/v1alpha1/dex.proto"; +import "penumbra/core/component/stake/v1alpha1/stake.proto"; +import "penumbra/core/component/compact_block/v1alpha1/compact_block.proto"; + import "tendermint/crypto/proof.proto"; import "tendermint/p2p/types.proto"; import "tendermint/types/block.proto"; import "tendermint/types/types.proto"; import "tendermint/types/validator.proto"; + // TODO: clean up import paths (this is pulling from the ibc-go-vendor root) // import "proofs.proto"; @@ -71,7 +77,7 @@ message CompactBlockRangeRequest { } message CompactBlockRangeResponse { - core.chain.v1alpha1.CompactBlock compact_block = 1; + core.component.compact_block.v1alpha1.CompactBlock compact_block = 1; } // Requests the global configuration data for the chain. @@ -85,11 +91,11 @@ message EpochByHeightRequest { } message EpochByHeightResponse { - core.chain.v1alpha1.Epoch epoch = 1; + core.component.chain.v1alpha1.Epoch epoch = 1; } message ChainParametersResponse { - core.chain.v1alpha1.ChainParameters chain_parameters = 1; + core.component.chain.v1alpha1.ChainParameters chain_parameters = 1; } // Requests information on the chain's validators. @@ -101,7 +107,7 @@ message ValidatorInfoRequest { } message ValidatorInfoResponse { - core.stake.v1alpha1.ValidatorInfo validator_info = 1; + core.component.stake.v1alpha1.ValidatorInfo validator_info = 1; } // Methods for accessing chain state that are "specific" in the sense that they @@ -154,54 +160,54 @@ service SpecificQueryService { message TransactionByNoteRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; - core.crypto.v1alpha1.StateCommitment note_commitment = 2; + crypto.tct.v1alpha1.StateCommitment note_commitment = 2; } message TransactionByNoteResponse { - core.chain.v1alpha1.NoteSource note_source = 1; + core.component.chain.v1alpha1.NoteSource note_source = 1; } message ValidatorStatusRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; - core.crypto.v1alpha1.IdentityKey identity_key = 2; + core.keys.v1alpha1.IdentityKey identity_key = 2; } message ValidatorStatusResponse { - core.stake.v1alpha1.ValidatorStatus status = 1; + core.component.stake.v1alpha1.ValidatorStatus status = 1; } // Requests the compounded penalty for a validator over a range of epochs. message ValidatorPenaltyRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; - core.crypto.v1alpha1.IdentityKey identity_key = 2; + core.keys.v1alpha1.IdentityKey identity_key = 2; uint64 start_epoch_index = 3; uint64 end_epoch_index = 4; } message ValidatorPenaltyResponse { - core.stake.v1alpha1.Penalty penalty = 1; + core.component.stake.v1alpha1.Penalty penalty = 1; } message CurrentValidatorRateRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; - core.crypto.v1alpha1.IdentityKey identity_key = 2; + core.keys.v1alpha1.IdentityKey identity_key = 2; } message CurrentValidatorRateResponse { - core.stake.v1alpha1.RateData data = 1; + core.component.stake.v1alpha1.RateData data = 1; } message NextValidatorRateRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; - core.crypto.v1alpha1.IdentityKey identity_key = 2; + core.keys.v1alpha1.IdentityKey identity_key = 2; } message NextValidatorRateResponse { - core.stake.v1alpha1.RateData data = 1; + core.component.stake.v1alpha1.RateData data = 1; } // Requests batch swap data associated with a given height and trading pair from the view service. @@ -209,22 +215,22 @@ message BatchSwapOutputDataRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; uint64 height = 2; - core.dex.v1alpha1.TradingPair trading_pair = 3; + core.component.dex.v1alpha1.TradingPair trading_pair = 3; } message BatchSwapOutputDataResponse { - core.dex.v1alpha1.BatchSwapOutputData data = 1; + core.component.dex.v1alpha1.BatchSwapOutputData data = 1; } message SwapExecutionRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; uint64 height = 2; - core.dex.v1alpha1.DirectedTradingPair trading_pair = 3; + core.component.dex.v1alpha1.DirectedTradingPair trading_pair = 3; } message SwapExecutionResponse { - core.dex.v1alpha1.SwapExecution swap_execution = 1; + core.component.dex.v1alpha1.SwapExecution swap_execution = 1; } message ArbExecutionRequest { @@ -234,7 +240,7 @@ message ArbExecutionRequest { } message ArbExecutionResponse { - core.dex.v1alpha1.SwapExecution swap_execution = 1; + core.component.dex.v1alpha1.SwapExecution swap_execution = 1; uint64 height = 2; } @@ -246,13 +252,13 @@ message SwapExecutionsRequest { // If present, only return swap executions occurring before the given height. uint64 end_height = 3; // If present, filter swap executions by the given trading pair. - core.dex.v1alpha1.DirectedTradingPair trading_pair = 4; + core.component.dex.v1alpha1.DirectedTradingPair trading_pair = 4; } message SwapExecutionsResponse { - core.dex.v1alpha1.SwapExecution swap_execution = 1; + core.component.dex.v1alpha1.SwapExecution swap_execution = 1; uint64 height = 2; - core.dex.v1alpha1.DirectedTradingPair trading_pair = 3; + core.component.dex.v1alpha1.DirectedTradingPair trading_pair = 3; } message ArbExecutionsRequest { @@ -265,7 +271,7 @@ message ArbExecutionsRequest { } message ArbExecutionsResponse { - core.dex.v1alpha1.SwapExecution swap_execution = 1; + core.component.dex.v1alpha1.SwapExecution swap_execution = 1; uint64 height = 2; } @@ -278,7 +284,7 @@ message LiquidityPositionsRequest { } message LiquidityPositionsResponse { - core.dex.v1alpha1.Position data = 1; + core.component.dex.v1alpha1.Position data = 1; } // Requests liquidity positions for ordered by effective price. @@ -286,47 +292,47 @@ message LiquidityPositionsByPriceRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; // The directed trading pair to request positions for - core.dex.v1alpha1.DirectedTradingPair trading_pair = 2; + core.component.dex.v1alpha1.DirectedTradingPair trading_pair = 2; // The maximum number of positions to return. uint64 limit = 5; } message LiquidityPositionsByPriceResponse { - core.dex.v1alpha1.Position data = 1; + core.component.dex.v1alpha1.Position data = 1; } // Requests specific liquidity position data from the view service. message LiquidityPositionByIdRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; - core.dex.v1alpha1.PositionId position_id = 2; + core.component.dex.v1alpha1.PositionId position_id = 2; } message LiquidityPositionByIdResponse { - core.dex.v1alpha1.Position data = 1; + core.component.dex.v1alpha1.Position data = 1; } message LiquidityPositionsByIdRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; - repeated core.dex.v1alpha1.PositionId position_id = 2; + repeated core.component.dex.v1alpha1.PositionId position_id = 2; } message LiquidityPositionsByIdResponse { - core.dex.v1alpha1.Position data = 1; + core.component.dex.v1alpha1.Position data = 1; } message SpreadRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; - core.dex.v1alpha1.TradingPair trading_pair = 2; + core.component.dex.v1alpha1.TradingPair trading_pair = 2; } message SpreadResponse { // The best position when trading 1 => 2. - core.dex.v1alpha1.Position best_1_to_2_position = 1; + core.component.dex.v1alpha1.Position best_1_to_2_position = 1; // The best position when trading 2 => 1. - core.dex.v1alpha1.Position best_2_to_1_position = 2; + core.component.dex.v1alpha1.Position best_2_to_1_position = 2; // An approximation of the effective price when trading 1 => 2. double approx_effective_price_1_to_2 = 3; // An approximation of the effective price when trading 2 => 1. @@ -338,14 +344,14 @@ message DenomMetadataByIdRequest { // The expected chain id (empty string if no expectation). string chain_id = 1; // The asset id to request information on. - core.crypto.v1alpha1.AssetId asset_id = 2; + core.asset.v1alpha1.AssetId asset_id = 2; } message DenomMetadataByIdResponse { // If present, information on the requested asset. // // If the requested asset was unknown, this field will not be present. - core.crypto.v1alpha1.DenomMetadata denom_metadata = 1; + core.asset.v1alpha1.DenomMetadata denom_metadata = 1; } message ProposalInfoRequest { @@ -372,7 +378,7 @@ message ProposalRateDataRequest { // The rate data for a single validator. message ProposalRateDataResponse { - core.stake.v1alpha1.RateData rate_data = 1; + core.component.stake.v1alpha1.RateData rate_data = 1; } message SimulateTradeRequest { @@ -386,13 +392,13 @@ message SimulateTradeRequest { message Default {} } - core.crypto.v1alpha1.Value input = 1; - core.crypto.v1alpha1.AssetId output = 2; + core.asset.v1alpha1.Value input = 1; + core.asset.v1alpha1.AssetId output = 2; Routing routing = 3; } message SimulateTradeResponse { - core.dex.v1alpha1.SwapExecution output = 1; + core.component.dex.v1alpha1.SwapExecution output = 1; } // Performs a key-value query, either by key or by key hash. diff --git a/proto/penumbra/penumbra/core/app/v1alpha1/app.proto b/proto/penumbra/penumbra/core/app/v1alpha1/app.proto new file mode 100644 index 0000000000..2acce9e5ec --- /dev/null +++ b/proto/penumbra/penumbra/core/app/v1alpha1/app.proto @@ -0,0 +1,3 @@ +syntax = "proto3"; +package penumbra.core.app.v1alpha1; + diff --git a/proto/penumbra/penumbra/core/asset/v1alpha1/asset.proto b/proto/penumbra/penumbra/core/asset/v1alpha1/asset.proto new file mode 100644 index 0000000000..2433d7df52 --- /dev/null +++ b/proto/penumbra/penumbra/core/asset/v1alpha1/asset.proto @@ -0,0 +1,104 @@ +syntax = "proto3"; +package penumbra.core.asset.v1alpha1; + +import "penumbra/core/num/v1alpha1/num.proto"; + +message BalanceCommitment { + bytes inner = 1; +} + +// A Penumbra asset ID. +message AssetId { + // The bytes of the asset ID. + bytes inner = 1; + + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the `inner` bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. This field exists for convenience of RPC users. + string alt_bech32m = 2; + + // Alternatively, a base denomination string which should be hashed to obtain the asset ID. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_base_denom` set. This field exists for convenience of RPC users. + string alt_base_denom = 3; +} + +message Denom { + string denom = 1; +} + +// DenomMetadata represents a struct that describes a basic token. + message DenomMetadata { + string description = 1; + // denom_units represents the list of DenomUnit's for a given coin + repeated DenomUnit denom_units = 2; + // base represents the base denom (should be the DenomUnit with exponent = 0). + string base = 3; + // display indicates the suggested denom that should be + // displayed in clients. + string display = 4; + // name defines the name of the token (eg: Cosmos Atom) + string name = 5; + // symbol is the token symbol usually shown on exchanges (eg: ATOM). This can + // be the same as the display. + string symbol = 6; + // URI to a document (on or off-chain) that contains additional information. Optional. + string uri = 7; + // URIHash is a sha256 hash of a document pointed by URI. It's used to verify that + // the document didn't change. Optional. + string uri_hash = 8; + + // the asset ID on Penumbra for this denomination. + AssetId penumbra_asset_id = 1984; + } + + // DenomUnit represents a struct that describes a given denomination unit of the basic token. + message DenomUnit { + // denom represents the string name of the given denom unit (e.g uatom). + string denom = 1; + // exponent represents power of 10 exponent that one must + // raise the base_denom to in order to equal the given DenomUnit's denom + // 1 denom = 10^exponent base_denom + // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + // exponent = 6, thus: 1 atom = 10^6 uatom). + uint32 exponent = 2; + // aliases is a list of string aliases for the given denom + repeated string aliases = 3; + } + +message Value { + core.num.v1alpha1.Amount amount = 1; + AssetId asset_id = 2; +} + +// Represents a value of a known or unknown denomination. +// +// Note: unlike some other View types, we don't just store the underlying +// `Value` message together with an additional `Denom`. Instead, we record +// either an `Amount` and `Denom` (only) or an `Amount` and `AssetId`. This is +// because we don't want to allow a situation where the supplied `Denom` doesn't +// match the `AssetId`, and a consumer of the API that doesn't check is tricked. +// This way, the `Denom` will always match, because the consumer is forced to +// recompute it themselves if they want it. +message ValueView { + // A value whose asset ID has a known denomination. + message KnownDenom { + core.num.v1alpha1.Amount amount = 1; + DenomMetadata denom = 2; + } + message UnknownDenom { + core.num.v1alpha1.Amount amount = 1; + AssetId asset_id = 2; + } + oneof value_view { + KnownDenom known_denom = 1; + UnknownDenom unknown_denom = 2; + } +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/core/chain/v1alpha1/chain.proto b/proto/penumbra/penumbra/core/component/chain/v1alpha1/chain.proto similarity index 64% rename from proto/penumbra/penumbra/core/chain/v1alpha1/chain.proto rename to proto/penumbra/penumbra/core/component/chain/v1alpha1/chain.proto index b3e95b0d4d..2a0a80c4b3 100644 --- a/proto/penumbra/penumbra/core/chain/v1alpha1/chain.proto +++ b/proto/penumbra/penumbra/core/component/chain/v1alpha1/chain.proto @@ -1,10 +1,15 @@ syntax = "proto3"; +package penumbra.core.component.chain.v1alpha1; -package penumbra.core.chain.v1alpha1; +import "penumbra/core/num/v1alpha1/num.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; +import "penumbra/core/component/stake/v1alpha1/stake.proto"; -import "penumbra/core/crypto/v1alpha1/crypto.proto"; -import "penumbra/core/dex/v1alpha1/dex.proto"; -import "penumbra/core/stake/v1alpha1/stake.proto"; +// An authorization hash for a Penumbra transaction. +message EffectHash { + bytes inner = 1; +} // Global chain configuration data, such as chain ID, epoch duration, etc. message ChainParameters { @@ -38,7 +43,7 @@ message ChainParameters { // The number of blocks during which a proposal is voted on. uint64 proposal_voting_blocks = 20; // The deposit required to create a proposal. - crypto.v1alpha1.Amount proposal_deposit_amount = 21; + penumbra.core.num.v1alpha1.Amount proposal_deposit_amount = 21; // The quorum required for a proposal to be considered valid, as a fraction of the total stake // weight of the network. string proposal_valid_quorum = 22; @@ -66,48 +71,8 @@ message FmdParameters { uint64 as_of_block_height = 2; } -// Contains the minimum data needed to update client state. -message CompactBlock { - uint64 height = 1; - // State payloads describing new state fragments. - repeated StatePayload state_payloads = 2; - // Nullifiers identifying spent notes. - repeated crypto.v1alpha1.Nullifier nullifiers = 3; - // The block root of this block. - crypto.v1alpha1.MerkleRoot block_root = 4; - // The epoch root of this epoch (only present when the block is the last in an epoch). - crypto.v1alpha1.MerkleRoot epoch_root = 17; - // If a proposal started voting in this block, this is set to `true`. - bool proposal_started = 20; - // Latest Fuzzy Message Detection parameters. - FmdParameters fmd_parameters = 100; - // Price data for swaps executed in this block. - repeated dex.v1alpha1.BatchSwapOutputData swap_outputs = 5; - // Updated chain parameters, if they have changed. - chain.v1alpha1.ChainParameters chain_parameters = 6; -} - -message StatePayload { - message RolledUp { - crypto.v1alpha1.StateCommitment commitment = 1; - } - message Note { - NoteSource source = 1; - crypto.v1alpha1.NotePayload note = 2; - } - message Swap { - NoteSource source = 1; - dex.v1alpha1.SwapPayload swap = 2; - } - oneof state_payload { - RolledUp rolled_up = 1; - Note note = 2; - Swap swap = 3; - } -} - message KnownAssets { - repeated crypto.v1alpha1.DenomMetadata assets = 1; + repeated asset.v1alpha1.DenomMetadata assets = 1; } // A spicy transaction ID @@ -130,9 +95,9 @@ message GenesisAppState { message GenesisContent { message Allocation { - crypto.v1alpha1.Amount amount = 1; + penumbra.core.num.v1alpha1.Amount amount = 1; string denom = 2; - crypto.v1alpha1.Address address = 3; + penumbra.core.keys.v1alpha1.Address address = 3; } ChainParameters chain_params = 1; diff --git a/proto/penumbra/penumbra/core/component/compact_block/v1alpha1/compact_block.proto b/proto/penumbra/penumbra/core/component/compact_block/v1alpha1/compact_block.proto new file mode 100644 index 0000000000..eb34c9527e --- /dev/null +++ b/proto/penumbra/penumbra/core/component/compact_block/v1alpha1/compact_block.proto @@ -0,0 +1,48 @@ +syntax = "proto3"; +package penumbra.core.component.compact_block.v1alpha1; + +import "penumbra/crypto/tct/v1alpha1/tct.proto"; +import "penumbra/core/component/sct/v1alpha1/sct.proto"; +import "penumbra/core/component/chain/v1alpha1/chain.proto"; +import "penumbra/core/component/dex/v1alpha1/dex.proto"; +import "penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto"; + +// Contains the minimum data needed to update client state. +message CompactBlock { + uint64 height = 1; + // State payloads describing new state fragments. + repeated StatePayload state_payloads = 2; + // Nullifiers identifying spent notes. + repeated sct.v1alpha1.Nullifier nullifiers = 3; + // The block root of this block. + crypto.tct.v1alpha1.MerkleRoot block_root = 4; + // The epoch root of this epoch (only present when the block is the last in an epoch). + crypto.tct.v1alpha1.MerkleRoot epoch_root = 17; + // If a proposal started voting in this block, this is set to `true`. + bool proposal_started = 20; + // Latest Fuzzy Message Detection parameters. + chain.v1alpha1.FmdParameters fmd_parameters = 100; + // Price data for swaps executed in this block. + repeated dex.v1alpha1.BatchSwapOutputData swap_outputs = 5; + // Updated chain parameters, if they have changed. + chain.v1alpha1.ChainParameters chain_parameters = 6; +} + +message StatePayload { + message RolledUp { + crypto.tct.v1alpha1.StateCommitment commitment = 1; + } + message Note { + chain.v1alpha1.NoteSource source = 1; + shielded_pool.v1alpha1.NotePayload note = 2; + } + message Swap { + chain.v1alpha1.NoteSource source = 1; + dex.v1alpha1.SwapPayload swap = 2; + } + oneof state_payload { + RolledUp rolled_up = 1; + Note note = 2; + Swap swap = 3; + } +} diff --git a/proto/penumbra/penumbra/core/component/dao/v1alpha1/dao.proto b/proto/penumbra/penumbra/core/component/dao/v1alpha1/dao.proto new file mode 100644 index 0000000000..72dde814ba --- /dev/null +++ b/proto/penumbra/penumbra/core/component/dao/v1alpha1/dao.proto @@ -0,0 +1,3 @@ +syntax = "proto3"; +package penumbra.core.component.dao.v1alpha1; + diff --git a/proto/penumbra/penumbra/core/dex/v1alpha1/dex.proto b/proto/penumbra/penumbra/core/component/dex/v1alpha1/dex.proto similarity index 85% rename from proto/penumbra/penumbra/core/dex/v1alpha1/dex.proto rename to proto/penumbra/penumbra/core/component/dex/v1alpha1/dex.proto index d13caffd72..fc1fd14be9 100644 --- a/proto/penumbra/penumbra/core/dex/v1alpha1/dex.proto +++ b/proto/penumbra/penumbra/core/component/dex/v1alpha1/dex.proto @@ -1,13 +1,28 @@ syntax = "proto3"; +package penumbra.core.component.dex.v1alpha1; + +import "penumbra/crypto/tct/v1alpha1/tct.proto"; +import "penumbra/core/num/v1alpha1/num.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; +import "penumbra/core/component/sct/v1alpha1/sct.proto"; +import "penumbra/core/component/fee/v1alpha1/fee.proto"; +import "penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto"; + +// A Penumbra ZK swap proof. +message ZKSwapProof { + bytes inner = 1; +} -package penumbra.core.dex.v1alpha1; - -import "penumbra/core/crypto/v1alpha1/crypto.proto"; +// A Penumbra ZK swap claim proof. +message ZKSwapClaimProof { + bytes inner = 1; +} // A transaction action that submits a swap to the dex. message Swap { // Contains the Swap proof. - crypto.v1alpha1.ZKSwapProof proof = 1; + ZKSwapProof proof = 1; // Encapsulates the authorized fields of the Swap action, used in signing. SwapBody body = 4; } @@ -18,7 +33,7 @@ message Swap { // Swap transaction. message SwapClaim { // Contains the SwapClaim proof. - bytes proof = 1; + ZKSwapClaimProof proof = 1; // Encapsulates the authorized fields of the SwapClaim action, used in signing. SwapClaimBody body = 2; // The epoch duration of the chain when the swap claim took place. @@ -28,13 +43,13 @@ message SwapClaim { // Encapsulates the authorized fields of the SwapClaim action, used in signing. message SwapClaimBody { // The nullifier for the Swap commitment to be consumed. - crypto.v1alpha1.Nullifier nullifier = 1; + component.sct.v1alpha1.Nullifier nullifier = 1; // The fee allows `SwapClaim` without an additional `Spend`. - crypto.v1alpha1.Fee fee = 2; + component.fee.v1alpha1.Fee fee = 2; // Note output for asset 1. - crypto.v1alpha1.StateCommitment output_1_commitment = 3; + crypto.tct.v1alpha1.StateCommitment output_1_commitment = 3; // Note output for asset 2. - crypto.v1alpha1.StateCommitment output_2_commitment = 4; + crypto.tct.v1alpha1.StateCommitment output_2_commitment = 4; // Input and output amounts, and asset IDs for the assets in the swap. BatchSwapOutputData output_data = 6; } @@ -44,20 +59,20 @@ message SwapBody { // The trading pair to swap. TradingPair trading_pair = 1; // The amount for asset 1. - crypto.v1alpha1.Amount delta_1_i = 2; + num.v1alpha1.Amount delta_1_i = 2; // The amount for asset 2. - crypto.v1alpha1.Amount delta_2_i = 3; + num.v1alpha1.Amount delta_2_i = 3; // A commitment to a prepaid fee for the future SwapClaim. // This is recorded separately from delta_j_i because it's shielded; // in the future we'll want separate commitments to each delta_j_i // anyways in order to prove consistency with flow encryption. - crypto.v1alpha1.BalanceCommitment fee_commitment = 4; + asset.v1alpha1.BalanceCommitment fee_commitment = 4; // The swap commitment and encryption of the swap data. SwapPayload payload = 5; } message SwapPayload { - crypto.v1alpha1.StateCommitment commitment = 1; + crypto.tct.v1alpha1.StateCommitment commitment = 1; bytes encrypted_swap = 2; } @@ -65,13 +80,13 @@ message SwapPlaintext { // The trading pair to swap. TradingPair trading_pair = 1; // Input amount of asset 1 - crypto.v1alpha1.Amount delta_1_i = 2; + num.v1alpha1.Amount delta_1_i = 2; // Input amount of asset 2 - crypto.v1alpha1.Amount delta_2_i = 3; + num.v1alpha1.Amount delta_2_i = 3; // Pre-paid fee to claim the swap - crypto.v1alpha1.Fee claim_fee = 4; + fee.v1alpha1.Fee claim_fee = 4; // Address that will claim the swap outputs via SwapClaim. - crypto.v1alpha1.Address claim_address = 5; + keys.v1alpha1.Address claim_address = 5; // Swap rseed (blinding factors are derived from this) bytes rseed = 6; } @@ -121,8 +136,8 @@ message SwapView { message SwapClaimView { message Visible { dex.v1alpha1.SwapClaim swap_claim = 1; - crypto.v1alpha1.NoteView output_1 = 2; - crypto.v1alpha1.NoteView output_2 = 3; + shielded_pool.v1alpha1.NoteView output_1 = 2; + shielded_pool.v1alpha1.NoteView output_2 = 3; } message Opaque { dex.v1alpha1.SwapClaim swap_claim = 1; @@ -138,18 +153,18 @@ message SwapClaimView { // representation of an unordered pair. message TradingPair { // The first asset of the pair. - crypto.v1alpha1.AssetId asset_1 = 1; + asset.v1alpha1.AssetId asset_1 = 1; // The second asset of the pair. - crypto.v1alpha1.AssetId asset_2 = 2; + asset.v1alpha1.AssetId asset_2 = 2; } // Encodes a trading pair starting from asset `start` // and ending on asset `end`. message DirectedTradingPair { // The start asset of the pair. - crypto.v1alpha1.AssetId start = 1; + asset.v1alpha1.AssetId start = 1; // The end asset of the pair. - crypto.v1alpha1.AssetId end = 2; + asset.v1alpha1.AssetId end = 2; } // Records the result of a batch swap on-chain. @@ -158,17 +173,17 @@ message DirectedTradingPair { // clearing price for the batch. message BatchSwapOutputData { // The total amount of asset 1 that was input to the batch swap. - crypto.v1alpha1.Amount delta_1 = 1; + num.v1alpha1.Amount delta_1 = 1; // The total amount of asset 2 that was input to the batch swap. - crypto.v1alpha1.Amount delta_2 = 2; + num.v1alpha1.Amount delta_2 = 2; // The total amount of asset 1 that was output from the batch swap for 2=>1 trades. - crypto.v1alpha1.Amount lambda_1 = 3; + num.v1alpha1.Amount lambda_1 = 3; // The total amount of asset 2 that was output from the batch swap for 1=>2 trades. - crypto.v1alpha1.Amount lambda_2 = 4; + num.v1alpha1.Amount lambda_2 = 4; // The total amount of asset 1 that was returned unfilled from the batch swap for 1=>2 trades. - crypto.v1alpha1.Amount unfilled_1 = 5; + num.v1alpha1.Amount unfilled_1 = 5; // The total amount of asset 2 that was returned unfilled from the batch swap for 2=>1 trades. - crypto.v1alpha1.Amount unfilled_2 = 6; + num.v1alpha1.Amount unfilled_2 = 6; // The height for which the batch swap data is valid. uint64 height = 7; // The trading pair associated with the batch swap. @@ -194,9 +209,9 @@ message TradingFunction { message BareTradingFunction { uint32 fee = 1; // This is not actually an amount, it's an integer the same width as an amount - crypto.v1alpha1.Amount p = 2; + num.v1alpha1.Amount p = 2; // This is not actually an amount, it's an integer the same width as an amount - crypto.v1alpha1.Amount q = 3; + num.v1alpha1.Amount q = 3; } // The reserves of a position. @@ -206,8 +221,8 @@ message BareTradingFunction { // duplicating data (each asset ID alone is four times the size of the // reserves). message Reserves { - crypto.v1alpha1.Amount r1 = 1; - crypto.v1alpha1.Amount r2 = 2; + num.v1alpha1.Amount r1 = 1; + num.v1alpha1.Amount r2 = 2; } // Data identifying a position. @@ -316,7 +331,7 @@ message PositionWithdraw { // A transparent (zero blinding factor) commitment to the position's final reserves and fees. // // The chain will check this commitment by recomputing it with the on-chain state. - crypto.v1alpha1.BalanceCommitment reserves_commitment = 2; + asset.v1alpha1.BalanceCommitment reserves_commitment = 2; } // A transaction action that claims retroactive rewards for a historical @@ -329,7 +344,7 @@ message PositionRewardClaim { // A transparent (zero blinding factor) commitment to the position's accumulated rewards. // // The chain will check this commitment by recomputing it with the on-chain state. - crypto.v1alpha1.BalanceCommitment rewards_commitment = 2; + asset.v1alpha1.BalanceCommitment rewards_commitment = 2; } // Contains the entire execution of a particular swap. @@ -337,14 +352,14 @@ message SwapExecution { // Contains all individual steps consisting of a trade trace. message Trace { // Each step in the trade trace. - repeated crypto.v1alpha1.Value value = 1; + repeated asset.v1alpha1.Value value = 1; } repeated Trace traces = 1; // The total input amount for this execution. - crypto.v1alpha1.Value input = 2; + asset.v1alpha1.Value input = 2; // The total output amount for this execution. - crypto.v1alpha1.Value output = 3; + asset.v1alpha1.Value output = 3; } // Contains private and public data for withdrawing funds from a closed position. diff --git a/proto/penumbra/penumbra/core/component/distributions/v1alpha1/distributions.proto b/proto/penumbra/penumbra/core/component/distributions/v1alpha1/distributions.proto new file mode 100644 index 0000000000..5f481018fe --- /dev/null +++ b/proto/penumbra/penumbra/core/component/distributions/v1alpha1/distributions.proto @@ -0,0 +1,3 @@ +syntax = "proto3"; +package penumbra.core.component.distributions.v1alpha1; + diff --git a/proto/penumbra/penumbra/core/component/fee/v1alpha1/fee.proto b/proto/penumbra/penumbra/core/component/fee/v1alpha1/fee.proto new file mode 100644 index 0000000000..573f902a54 --- /dev/null +++ b/proto/penumbra/penumbra/core/component/fee/v1alpha1/fee.proto @@ -0,0 +1,14 @@ +syntax = "proto3"; +package penumbra.core.component.fee.v1alpha1; + +import "penumbra/core/num/v1alpha1/num.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; + +// Specifies fees paid by a transaction. +message Fee { + // The amount of the token used to pay fees. + num.v1alpha1.Amount amount = 1; + // If present, the asset ID of the token used to pay fees. + // If absent, specifies the staking token implicitly. + asset.v1alpha1.AssetId asset_id = 2; +} diff --git a/proto/penumbra/penumbra/core/governance/v1alpha1/governance.proto b/proto/penumbra/penumbra/core/component/governance/v1alpha1/governance.proto similarity index 82% rename from proto/penumbra/penumbra/core/governance/v1alpha1/governance.proto rename to proto/penumbra/penumbra/core/component/governance/v1alpha1/governance.proto index afcad62741..d697943eb5 100644 --- a/proto/penumbra/penumbra/core/governance/v1alpha1/governance.proto +++ b/proto/penumbra/penumbra/core/component/governance/v1alpha1/governance.proto @@ -1,16 +1,25 @@ syntax = "proto3"; - -package penumbra.core.governance.v1alpha1; +package penumbra.core.component.governance.v1alpha1; import "google/protobuf/any.proto"; -import "penumbra/core/crypto/v1alpha1/crypto.proto"; -import "penumbra/core/chain/v1alpha1/chain.proto"; + +import "penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.proto"; +import "penumbra/core/num/v1alpha1/num.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; +import "penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto"; +import "penumbra/core/component/chain/v1alpha1/chain.proto"; + +// A Penumbra ZK delegator vote proof. +message ZKDelegatorVoteProof { + bytes inner = 1; +} message ProposalSubmit { // The proposal to be submitted. governance.v1alpha1.Proposal proposal = 1; // The amount of the proposal deposit. - crypto.v1alpha1.Amount deposit_amount = 3; + num.v1alpha1.Amount deposit_amount = 3; } message ProposalWithdraw { @@ -24,7 +33,7 @@ message ProposalDepositClaim { // The proposal to claim the deposit for. uint64 proposal = 1; // The expected deposit amount. - crypto.v1alpha1.Amount deposit_amount = 2; + num.v1alpha1.Amount deposit_amount = 2; // The outcome of the proposal. ProposalOutcome outcome = 3; } @@ -33,7 +42,7 @@ message ValidatorVote { // The effecting data for the vote. ValidatorVoteBody body = 1; // The vote authorization signature is authorizing data. - crypto.v1alpha1.SpendAuthSignature auth_sig = 2; + penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature auth_sig = 2; } message ValidatorVoteBody { @@ -42,18 +51,18 @@ message ValidatorVoteBody { // The vote. governance.v1alpha1.Vote vote = 2; // The validator identity. - crypto.v1alpha1.IdentityKey identity_key = 3; + keys.v1alpha1.IdentityKey identity_key = 3; // The validator governance key. - crypto.v1alpha1.GovernanceKey governance_key = 4; + keys.v1alpha1.GovernanceKey governance_key = 4; } message DelegatorVote { // The effecting data for the vote. DelegatorVoteBody body = 1; // The vote authorization signature is authorizing data. - crypto.v1alpha1.SpendAuthSignature auth_sig = 2; + penumbra.crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature auth_sig = 2; // The vote proof is authorizing data. - crypto.v1alpha1.ZKDelegatorVoteProof proof = 3; + ZKDelegatorVoteProof proof = 3; } message DelegatorVoteBody { @@ -64,15 +73,30 @@ message DelegatorVoteBody { // The vote. governance.v1alpha1.Vote vote = 3; // The value of the delegation note. - crypto.v1alpha1.Value value = 4; + asset.v1alpha1.Value value = 4; // The amount of the delegation note, in unbonded penumbra. - crypto.v1alpha1.Amount unbonded_amount = 5; + num.v1alpha1.Amount unbonded_amount = 5; // The nullifier of the input note. bytes nullifier = 6; // The randomized validating key for the spend authorization signature. bytes rk = 7; } +message DelegatorVoteView { + message Visible { + governance.v1alpha1.DelegatorVote delegator_vote = 1; + shielded_pool.v1alpha1.NoteView note = 2; + } + message Opaque { + governance.v1alpha1.DelegatorVote delegator_vote = 1; + } + oneof delegator_vote { + Visible visible = 1; + Opaque opaque = 2; + } +} + + message DelegatorVotePlan { // The proposal to vote on. uint64 proposal = 1; @@ -81,11 +105,11 @@ message DelegatorVotePlan { // The vote to cast. governance.v1alpha1.Vote vote = 3; // The delegation note to prove that we can vote. - crypto.v1alpha1.Note staked_note = 4; + shielded_pool.v1alpha1.Note staked_note = 4; // The position of that delegation note. uint64 staked_note_position = 5; // The unbonded amount equivalent to the delegation note. - crypto.v1alpha1.Amount unbonded_amount = 6; + num.v1alpha1.Amount unbonded_amount = 6; // The randomizer to use for the proof of spend capability. bytes randomizer = 7; // The first blinding factor to use for the ZK delegator vote proof. @@ -96,19 +120,19 @@ message DelegatorVotePlan { message DaoDeposit { // The value to deposit into the DAO. - crypto.v1alpha1.Value value = 1; + asset.v1alpha1.Value value = 1; } message DaoSpend { // The value to spend from the DAO. - crypto.v1alpha1.Value value = 1; + asset.v1alpha1.Value value = 1; } message DaoOutput { // The value to output from the DAO. - crypto.v1alpha1.Value value = 1; + asset.v1alpha1.Value value = 1; // The address to send the output to. - crypto.v1alpha1.Address address = 2; + keys.v1alpha1.Address address = 2; } // A vote on a proposal. @@ -260,4 +284,4 @@ message Proposal { message UpgradePlan { uint64 height = 1; } -} +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/core/ibc/v1alpha1/ibc.proto b/proto/penumbra/penumbra/core/component/ibc/v1alpha1/ibc.proto similarity index 55% rename from proto/penumbra/penumbra/core/ibc/v1alpha1/ibc.proto rename to proto/penumbra/penumbra/core/component/ibc/v1alpha1/ibc.proto index 2fc2e7b8cb..172e4fd456 100644 --- a/proto/penumbra/penumbra/core/ibc/v1alpha1/ibc.proto +++ b/proto/penumbra/penumbra/core/component/ibc/v1alpha1/ibc.proto @@ -1,36 +1,14 @@ syntax = "proto3"; +package penumbra.core.component.ibc.v1alpha1; -package penumbra.core.ibc.v1alpha1; - -import "penumbra/core/crypto/v1alpha1/crypto.proto"; import "ibc/core/client/v1/client.proto"; import "google/protobuf/any.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; +import "penumbra/core/num/v1alpha1/num.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; + message IbcAction { - /* - oneof action { - .ibc.core.connection.v1.MsgConnectionOpenInit connection_open_init = 1; - .ibc.core.connection.v1.MsgConnectionOpenTry connection_open_try = 2; - .ibc.core.connection.v1.MsgConnectionOpenAck connection_open_ack = 3; - .ibc.core.connection.v1.MsgConnectionOpenConfirm connection_open_confirm = 4; - - .ibc.core.channel.v1.MsgChannelOpenInit channel_open_init = 5; - .ibc.core.channel.v1.MsgChannelOpenTry channel_open_try = 6; - .ibc.core.channel.v1.MsgChannelOpenAck channel_open_ack = 7; - .ibc.core.channel.v1.MsgChannelOpenConfirm channel_open_confirm = 8; - .ibc.core.channel.v1.MsgChannelCloseInit channel_close_init = 9; - .ibc.core.channel.v1.MsgChannelCloseConfirm channel_close_confirm = 10; - - .ibc.core.channel.v1.MsgRecvPacket recv_packet = 11; - .ibc.core.channel.v1.MsgTimeout timeout = 12; - .ibc.core.channel.v1.MsgAcknowledgement acknowledgement = 13; - - .ibc.core.client.v1.MsgCreateClient create_client = 14; - .ibc.core.client.v1.MsgUpdateClient update_client = 15; - .ibc.core.client.v1.MsgUpgradeClient upgrade_client = 16; - .ibc.core.client.v1.MsgSubmitMisbehaviour submit_misbehaviour = 17; - } - */ .google.protobuf.Any raw_action = 1; } @@ -48,16 +26,17 @@ message FungibleTokenPacketData { string receiver = 4; } +// A Penumbra transaction action requesting an ICS20 transfer. message Ics20Withdrawal { - crypto.v1alpha1.Amount amount = 1; - crypto.v1alpha1.Denom denom = 2; + num.v1alpha1.Amount amount = 1; + asset.v1alpha1.Denom denom = 2; // the address on the destination chain to send the transfer to string destination_chain_address = 3; // a "sender" penumbra address to use to return funds from this withdrawal. // this should be an ephemeral address - crypto.v1alpha1.Address return_address = 4; + keys.v1alpha1.Address return_address = 4; // The height on the counterparty chain at which this transfer expires, and // funds are sent back to the return address. @@ -70,7 +49,6 @@ message Ics20Withdrawal { string source_channel = 7; } - message ClientData { string client_id = 1; google.protobuf.Any client_state = 2; // NOTE: left as Any to allow us to add more client types later @@ -96,4 +74,4 @@ message ConnectionCounter { message ClientConnections { repeated string connections = 1; -} +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/core/component/sct/v1alpha1/sct.proto b/proto/penumbra/penumbra/core/component/sct/v1alpha1/sct.proto new file mode 100644 index 0000000000..9028ca8264 --- /dev/null +++ b/proto/penumbra/penumbra/core/component/sct/v1alpha1/sct.proto @@ -0,0 +1,6 @@ +syntax = "proto3"; +package penumbra.core.component.sct.v1alpha1; + +message Nullifier { + bytes inner = 1; +} diff --git a/proto/penumbra/penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto b/proto/penumbra/penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto new file mode 100644 index 0000000000..267f8e5c69 --- /dev/null +++ b/proto/penumbra/penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto @@ -0,0 +1,156 @@ +syntax = "proto3"; +package penumbra.core.component.shielded_pool.v1alpha1; + +import "penumbra/crypto/tct/v1alpha1/tct.proto"; +import "penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; + +message Note { + asset.v1alpha1.Value value = 1; + bytes rseed = 2; + keys.v1alpha1.Address address = 3; +} + +message NoteView { + asset.v1alpha1.ValueView value = 1; + bytes rseed = 2; + keys.v1alpha1.AddressView address = 3; +} + +// An encrypted note. +// 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. +message NoteCiphertext { + bytes inner = 1; +} + +// The body of an output description, including only the minimal +// data required to scan and process the output. +message NotePayload { + // The note commitment for the output note. 32 bytes. + crypto.tct.v1alpha1.StateCommitment note_commitment = 1; + // The encoding of an ephemeral public key. 32 bytes. + bytes ephemeral_key = 2; + // An encryption of the newly created note. + // 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. + NoteCiphertext encrypted_note = 3; +} + +// A Penumbra ZK output proof. +message ZKOutputProof { + bytes inner = 1; +} + +// A Penumbra ZK spend proof. +message ZKSpendProof { + bytes inner = 1; +} + +// A Penumbra ZK nullifier derivation proof. +message ZKNullifierDerivationProof { + bytes inner = 1; +} + +// Spends a shielded note. +message Spend { + // The effecting data of the spend. + SpendBody body = 1; + // The authorizing signature for the spend. + crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature auth_sig = 2; + // The proof that the spend is well-formed is authorizing data. + ZKSpendProof proof = 3; +} + +// The body of a spend description, containing only the effecting data +// describing changes to the ledger, and not the authorizing data that allows +// those changes to be performed. +message SpendBody { + // A commitment to the value of the input note. + asset.v1alpha1.BalanceCommitment balance_commitment = 1; + // The nullifier of the input note. + bytes nullifier = 3; + // The randomized validating key for the spend authorization signature. + bytes rk = 4; +} +message SpendView { + message Visible { + Spend spend = 1; + NoteView note = 2; + } + message Opaque { + Spend spend = 1; + } + oneof spend_view { + Visible visible = 1; + Opaque opaque = 2; + } +} + +message SpendPlan { + // The plaintext note we plan to spend. + Note note = 1; + // The position of the note we plan to spend. + uint64 position = 2; + // The randomizer to use for the spend. + bytes randomizer = 3; + // The blinding factor to use for the value commitment. + bytes value_blinding = 4; + // The first blinding factor to use for the ZK spend proof. + bytes proof_blinding_r = 5; + // The second blinding factor to use for the ZK spend proof. + bytes proof_blinding_s = 6; +} + +// Creates a new shielded note. +message Output { + // The effecting data for the output. + OutputBody body = 1; + // The output proof is authorizing data. + ZKOutputProof proof = 2; +} + +// The body of an output description, containing only the effecting data +// describing changes to the ledger, and not the authorizing data that allows +// those changes to be performed. +message OutputBody { + // The minimal data required to scan and process the new output note. + NotePayload note_payload = 1; + // A commitment to the value of the output note. 32 bytes. + asset.v1alpha1.BalanceCommitment balance_commitment = 2; + // An encrypted key for decrypting the memo. + bytes wrapped_memo_key = 3; + // The key material used for note encryption, wrapped in encryption to the + // sender's outgoing viewing key. 80 bytes. + bytes ovk_wrapped_key = 4; +} + +message OutputView { + message Visible { + Output output = 1; + NoteView note = 2; + keys.v1alpha1.PayloadKey payload_key = 3; + } + + message Opaque { + Output output = 1; + } + oneof output_view { + Visible visible = 1; + Opaque opaque = 2; + } +} + +message OutputPlan { + // The value to send to this output. + asset.v1alpha1.Value value = 1; + // The destination address to send it to. + keys.v1alpha1.Address dest_address = 2; + // The rseed to use for the new note. + bytes rseed = 3; + // The blinding factor to use for the value commitment. + bytes value_blinding = 4; + // The first blinding factor to use for the ZK output proof. + bytes proof_blinding_r = 5; + // The second blinding factor to use for the ZK output proof. + bytes proof_blinding_s = 6; +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/core/stake/v1alpha1/stake.proto b/proto/penumbra/penumbra/core/component/stake/v1alpha1/stake.proto similarity index 85% rename from proto/penumbra/penumbra/core/stake/v1alpha1/stake.proto rename to proto/penumbra/penumbra/core/component/stake/v1alpha1/stake.proto index 340d41ec73..02cabfa682 100644 --- a/proto/penumbra/penumbra/core/stake/v1alpha1/stake.proto +++ b/proto/penumbra/penumbra/core/component/stake/v1alpha1/stake.proto @@ -1,13 +1,21 @@ syntax = "proto3"; +package penumbra.core.component.stake.v1alpha1; -package penumbra.core.stake.v1alpha1; +import "penumbra/core/keys/v1alpha1/keys.proto"; +import "penumbra/core/num/v1alpha1/num.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; + + +// A Penumbra ZK undelegate claim proof. +message ZKUndelegateClaimProof { + bytes inner = 1; +} -import "penumbra/core/crypto/v1alpha1/crypto.proto"; // Describes a validator's configuration data. message Validator { // The validator's identity verification key. - crypto.v1alpha1.IdentityKey identity_key = 1; + keys.v1alpha1.IdentityKey identity_key = 1; // The validator's consensus pubkey for use in Tendermint (Ed25519). bytes consensus_key = 2; // The validator's (human-readable) name. @@ -27,12 +35,12 @@ message Validator { // with increasing sequence numbers. uint32 sequence_number = 7; // The validator's governance key. - crypto.v1alpha1.GovernanceKey governance_key = 9; + keys.v1alpha1.GovernanceKey governance_key = 9; } // For storing the list of keys of known validators. message ValidatorList { - repeated crypto.v1alpha1.IdentityKey validator_keys = 1; + repeated keys.v1alpha1.IdentityKey validator_keys = 1; } // A portion of a validator's commission. @@ -60,7 +68,7 @@ message FundingStream { // Describes the reward and exchange rates and voting power for a validator in some epoch. message RateData { - crypto.v1alpha1.IdentityKey identity_key = 1; + keys.v1alpha1.IdentityKey identity_key = 1; uint64 epoch_index = 2; uint64 validator_reward_rate = 4; uint64 validator_exchange_rate = 5; @@ -75,7 +83,7 @@ message BaseRateData { // Describes the current state of a validator on-chain message ValidatorStatus { - crypto.v1alpha1.IdentityKey identity_key = 1; + keys.v1alpha1.IdentityKey identity_key = 1; ValidatorState state = 2; uint64 voting_power = 3; BondingState bonding_state = 4; @@ -125,35 +133,35 @@ message ValidatorDefinition { // A transaction action adding stake to a validator's delegation pool. message Delegate { // The identity key of the validator to delegate to. - crypto.v1alpha1.IdentityKey validator_identity = 1; + keys.v1alpha1.IdentityKey validator_identity = 1; // The index of the epoch in which this delegation was performed. // The delegation takes effect in the next epoch. uint64 epoch_index = 2; // The delegation amount, in units of unbonded stake. // TODO: use flow aggregation to hide this, replacing it with bytes amount_ciphertext; - crypto.v1alpha1.Amount unbonded_amount = 3; + num.v1alpha1.Amount unbonded_amount = 3; // The amount of delegation tokens produced by this action. // // This is implied by the validator's exchange rate in the specified epoch // (and should be checked in transaction validation!), but including it allows // stateless verification that the transaction is internally consistent. - crypto.v1alpha1.Amount delegation_amount = 4; + num.v1alpha1.Amount delegation_amount = 4; } // A transaction action withdrawing stake from a validator's delegation pool. message Undelegate { // The identity key of the validator to undelegate from. - crypto.v1alpha1.IdentityKey validator_identity = 1; + keys.v1alpha1.IdentityKey validator_identity = 1; // The index of the epoch in which this undelegation was performed. uint64 start_epoch_index = 2; // The amount to undelegate, in units of unbonding tokens. - crypto.v1alpha1.Amount unbonded_amount = 3; + num.v1alpha1.Amount unbonded_amount = 3; // The amount of delegation tokens consumed by this action. // // This is implied by the validator's exchange rate in the specified epoch // (and should be checked in transaction validation!), but including it allows // stateless verification that the transaction is internally consistent. - crypto.v1alpha1.Amount delegation_amount = 4; + num.v1alpha1.Amount delegation_amount = 4; } // A transaction action finishing an undelegation, converting (slashable) @@ -165,19 +173,19 @@ message UndelegateClaim { message UndelegateClaimBody { // The identity key of the validator to finish undelegating from. - crypto.v1alpha1.IdentityKey validator_identity = 1; + keys.v1alpha1.IdentityKey validator_identity = 1; // The epoch in which unbonding began, used to verify the penalty. uint64 start_epoch_index = 2; // The penalty applied to undelegation, in bps^2 (10e-8). // In the happy path (no slashing), this is 0. Penalty penalty = 3; // The action's contribution to the transaction's value balance. - crypto.v1alpha1.BalanceCommitment balance_commitment = 4; + asset.v1alpha1.BalanceCommitment balance_commitment = 4; } message UndelegateClaimPlan { // The identity key of the validator to finish undelegating from. - crypto.v1alpha1.IdentityKey validator_identity = 1; + keys.v1alpha1.IdentityKey validator_identity = 1; // The epoch in which unbonding began, used to verify the penalty. uint64 start_epoch_index = 2; // The penalty applied to undelegation, in bps^2 (10e-8). @@ -185,7 +193,7 @@ message UndelegateClaimPlan { Penalty penalty = 4; // The amount of unbonding tokens to claim. // This is a bare number because its denom is determined by the preceding data. - crypto.v1alpha1.Amount unbonding_amount = 5; + num.v1alpha1.Amount unbonding_amount = 5; // The blinding factor to use for the balance commitment. bytes balance_blinding = 6; // The first blinding factor to use for the ZK undelegate claim proof. @@ -210,10 +218,10 @@ message Uptime { // Tracks our view of Tendermint's view of the validator set, so we can keep it // from getting confused. message CurrentConsensusKeys { - repeated crypto.v1alpha1.ConsensusKey consensus_keys = 1; + repeated keys.v1alpha1.ConsensusKey consensus_keys = 1; } // Tracks slashing penalties applied to a validator in some epoch. message Penalty { uint64 inner = 1; -} +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/core/crypto/v1alpha1/crypto.proto b/proto/penumbra/penumbra/core/crypto/v1alpha1/crypto.proto deleted file mode 100644 index 614a13d52b..0000000000 --- a/proto/penumbra/penumbra/core/crypto/v1alpha1/crypto.proto +++ /dev/null @@ -1,302 +0,0 @@ -syntax = "proto3"; - -package penumbra.core.crypto.v1alpha1; - -// Specifies fees paid by a transaction. -message Fee { - // The amount of the token used to pay fees. - Amount amount = 1; - // If present, the asset ID of the token used to pay fees. - // If absent, specifies the staking token implicitly. - AssetId asset_id = 2; -} - -// A Penumbra address. An address in Penumbra is a Bech32m-encoded -// string, with the human-readable prefix (HRP) `penumbrav2t`. -message Address { - // The bytes of the address. Must be represented as a series of - // `uint8` (i.e. values 0 through 255), with a length of 80 elements. - bytes inner = 1; - - // Alternatively, a Bech32m-encoded string representation of the `inner` - // bytes. - // - // NOTE: implementations are not required to support parsing this field. - // Implementations should prefer to encode the bytes in all messages they - // produce. Implementations must not accept messages with both `inner` and - // `alt_bech32m` set. - string alt_bech32m = 2; -} - -message AddressView { - message Visible { - Address address = 1; - AddressIndex index = 2; - AccountGroupId account_group_id = 3; - } - message Opaque { - Address address = 1; - } - oneof address_view { - Visible visible = 1; - Opaque opaque = 2; - } -} - -message SpendKey { - bytes inner = 1; -} - -message SpendVerificationKey { - bytes inner = 1; -} - -message FullViewingKey { - bytes inner = 1; -} - -message AccountGroupId { - bytes inner = 1; -} - -message Diversifier { - bytes inner = 1; -} - -message AddressIndex { - uint32 account = 2; - bytes randomizer = 3; -} - -message StateCommitment { - bytes inner = 1; -} - -message BalanceCommitment { - bytes inner = 1; -} - -// A Penumbra asset ID. -message AssetId { - // The bytes of the asset ID. - bytes inner = 1; - - // Alternatively, a Bech32m-encoded string representation of the `inner` - // bytes. - // - // NOTE: implementations are not required to support parsing this field. - // Implementations should prefer to encode the `inner` bytes in all messages they - // produce. Implementations must not accept messages with both `inner` and - // `alt_bech32m` set. This field exists for convenience of RPC users. - string alt_bech32m = 2; - - // Alternatively, a base denomination string which should be hashed to obtain the asset ID. - // - // NOTE: implementations are not required to support parsing this field. - // Implementations should prefer to encode the bytes in all messages they - // produce. Implementations must not accept messages with both `inner` and - // `alt_base_denom` set. This field exists for convenience of RPC users. - string alt_base_denom = 3; -} - -// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, -// split over two fields, `lo` and `hi`, representing the low- and high-order bytes -// of the 128-bit value, respectively. Clients must assemble these bits in their -// implementation into a `uint128` or comparable data structure, in order to model -// the Amount accurately. -message Amount { - uint64 lo = 1; - uint64 hi = 2; -} - -message Denom { - string denom = 1; -} - -// DenomMetadata represents a struct that describes a basic token. - message DenomMetadata { - string description = 1; - // denom_units represents the list of DenomUnit's for a given coin - repeated DenomUnit denom_units = 2; - // base represents the base denom (should be the DenomUnit with exponent = 0). - string base = 3; - // display indicates the suggested denom that should be - // displayed in clients. - string display = 4; - // name defines the name of the token (eg: Cosmos Atom) - string name = 5; - // symbol is the token symbol usually shown on exchanges (eg: ATOM). This can - // be the same as the display. - string symbol = 6; - // URI to a document (on or off-chain) that contains additional information. Optional. - string uri = 7; - // URIHash is a sha256 hash of a document pointed by URI. It's used to verify that - // the document didn't change. Optional. - string uri_hash = 8; - - // the asset ID on Penumbra for this denomination. - AssetId penumbra_asset_id = 1984; - } - - // DenomUnit represents a struct that describes a given denomination unit of the basic token. - message DenomUnit { - // denom represents the string name of the given denom unit (e.g uatom). - string denom = 1; - // exponent represents power of 10 exponent that one must - // raise the base_denom to in order to equal the given DenomUnit's denom - // 1 denom = 10^exponent base_denom - // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with - // exponent = 6, thus: 1 atom = 10^6 uatom). - uint32 exponent = 2; - // aliases is a list of string aliases for the given denom - repeated string aliases = 3; - } - -message Value { - Amount amount = 1; - AssetId asset_id = 2; -} - -// Represents a value of a known or unknown denomination. -// -// Note: unlike some other View types, we don't just store the underlying -// `Value` message together with an additional `Denom`. Instead, we record -// either an `Amount` and `Denom` (only) or an `Amount` and `AssetId`. This is -// because we don't want to allow a situation where the supplied `Denom` doesn't -// match the `AssetId`, and a consumer of the API that doesn't check is tricked. -// This way, the `Denom` will always match, because the consumer is forced to -// recompute it themselves if they want it. -message ValueView { - // A value whose asset ID has a known denomination. - message KnownDenom { - Amount amount = 1; - DenomMetadata denom = 2; - } - message UnknownDenom { - Amount amount = 1; - AssetId asset_id = 2; - } - oneof value_view { - KnownDenom known_denom = 1; - UnknownDenom unknown_denom = 2; - } -} - -message MerkleRoot { - bytes inner = 1; -} - -// A validator's identity key (decaf377-rdsa spendauth verification key). -message IdentityKey { - bytes ik = 1; -} - -// A validator's governance key (decaf377-rdsa spendauth verification key). -message GovernanceKey { - bytes gk = 1; -} - -message ConsensusKey { - bytes inner = 1; -} - -message Note { - Value value = 1; - bytes rseed = 2; - Address address = 3; -} - -message NoteView { - ValueView value = 1; - bytes rseed = 2; - AddressView address = 3; -} - -// An encrypted note. -// 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. -message NoteCiphertext { - bytes inner = 1; -} - -message Nullifier { - bytes inner = 1; -} - -message SpendAuthSignature { - bytes inner = 1; -} - -message BindingSignature { - bytes inner = 1; -} - -// The body of an output description, including only the minimal -// data required to scan and process the output. -message NotePayload { - // The note commitment for the output note. 32 bytes. - StateCommitment note_commitment = 1; - // The encoding of an ephemeral public key. 32 bytes. - bytes ephemeral_key = 2; - // An encryption of the newly created note. - // 132 = 1(type) + 11(d) + 8(amount) + 32(asset_id) + 32(rcm) + 32(pk_d) + 16(MAC) bytes. - NoteCiphertext encrypted_note = 3; -} - -// An authentication path from a state commitment to the root of the state commitment tree. -message StateCommitmentProof { - StateCommitment note_commitment = 1; - uint64 position = 2; - repeated MerklePathChunk auth_path = 3; // always length 24 -} - -// A set of 3 sibling hashes in the auth path for some note commitment. -message MerklePathChunk { - bytes sibling_1 = 1; - bytes sibling_2 = 2; - bytes sibling_3 = 3; -} - -// A clue for use with Fuzzy Message Detection. -message Clue { - bytes inner = 1; -} - -// An authorization hash for a Penumbra transaction. -message EffectHash { - bytes inner = 1; -} - -// A Penumbra ZK output proof. -message ZKOutputProof { - bytes inner = 1; -} - -// A Penumbra ZK spend proof. -message ZKSpendProof { - bytes inner = 1; -} - -// A Penumbra ZK swap proof. -message ZKSwapProof { - bytes inner = 1; -} - -// A Penumbra ZK swap claim proof. -message ZKSwapClaimProof { - bytes inner = 1; -} - -// A Penumbra ZK undelegate claim proof. -message ZKUndelegateClaimProof { - bytes inner = 1; -} - -// A Penumbra ZK delegator vote proof. -message ZKDelegatorVoteProof { - bytes inner = 1; -} - -// A Penumbra ZK nullifier derivation proof. -message ZKNullifierDerivationProof { - bytes inner = 1; -} diff --git a/proto/penumbra/penumbra/core/keys/v1alpha1/keys.proto b/proto/penumbra/penumbra/core/keys/v1alpha1/keys.proto new file mode 100644 index 0000000000..10b61da7e3 --- /dev/null +++ b/proto/penumbra/penumbra/core/keys/v1alpha1/keys.proto @@ -0,0 +1,77 @@ +syntax = "proto3"; +package penumbra.core.keys.v1alpha1; + +// A Penumbra address. An address in Penumbra is a Bech32m-encoded +// string, with the human-readable prefix (HRP) `penumbrav2t`. +message Address { + // The bytes of the address. Must be represented as a series of + // `uint8` (i.e. values 0 through 255), with a length of 80 elements. + bytes inner = 1; + + // Alternatively, a Bech32m-encoded string representation of the `inner` + // bytes. + // + // NOTE: implementations are not required to support parsing this field. + // Implementations should prefer to encode the bytes in all messages they + // produce. Implementations must not accept messages with both `inner` and + // `alt_bech32m` set. + string alt_bech32m = 2; +} + +message AddressView { + message Visible { + Address address = 1; + AddressIndex index = 2; + AccountGroupId account_group_id = 3; + } + message Opaque { + Address address = 1; + } + oneof address_view { + Visible visible = 1; + Opaque opaque = 2; + } +} + +message PayloadKey { + bytes inner = 1; +} + +message SpendKey { + bytes inner = 1; +} + +message SpendVerificationKey { + bytes inner = 1; +} + +message FullViewingKey { + bytes inner = 1; +} + +message AccountGroupId { + bytes inner = 1; +} + +message Diversifier { + bytes inner = 1; +} + +message AddressIndex { + uint32 account = 2; + bytes randomizer = 3; +} + +// A validator's identity key (decaf377-rdsa spendauth verification key). +message IdentityKey { + bytes ik = 1; +} + +// A validator's governance key (decaf377-rdsa spendauth verification key). +message GovernanceKey { + bytes gk = 1; +} + +message ConsensusKey { + bytes inner = 1; +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/core/num/v1alpha1/num.proto b/proto/penumbra/penumbra/core/num/v1alpha1/num.proto new file mode 100644 index 0000000000..5afe43b8ce --- /dev/null +++ b/proto/penumbra/penumbra/core/num/v1alpha1/num.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +package penumbra.core.num.v1alpha1; + +// The quantity of a particular Asset. Represented as a 128-bit unsigned integer, +// split over two fields, `lo` and `hi`, representing the low- and high-order bytes +// of the 128-bit value, respectively. Clients must assemble these bits in their +// implementation into a `uint128` or comparable data structure, in order to model +// the Amount accurately. +message Amount { + uint64 lo = 1; + uint64 hi = 2; +} diff --git a/proto/penumbra/penumbra/core/transaction/v1alpha1/transaction.proto b/proto/penumbra/penumbra/core/transaction/v1alpha1/transaction.proto index 725deab021..b6d777ffdb 100644 --- a/proto/penumbra/penumbra/core/transaction/v1alpha1/transaction.proto +++ b/proto/penumbra/penumbra/core/transaction/v1alpha1/transaction.proto @@ -1,12 +1,19 @@ syntax = "proto3"; - package penumbra.core.transaction.v1alpha1; -import "penumbra/core/crypto/v1alpha1/crypto.proto"; -import "penumbra/core/stake/v1alpha1/stake.proto"; -import "penumbra/core/ibc/v1alpha1/ibc.proto"; -import "penumbra/core/dex/v1alpha1/dex.proto"; -import "penumbra/core/governance/v1alpha1/governance.proto"; +import "penumbra/crypto/tct/v1alpha1/tct.proto"; +import "penumbra/crypto/decaf377_fmd/v1alpha1/decaf377_fmd.proto"; +import "penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; +import "penumbra/core/component/sct/v1alpha1/sct.proto"; +import "penumbra/core/component/chain/v1alpha1/chain.proto"; +import "penumbra/core/component/fee/v1alpha1/fee.proto"; +import "penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto"; +import "penumbra/core/component/dex/v1alpha1/dex.proto"; +import "penumbra/core/component/ibc/v1alpha1/ibc.proto"; +import "penumbra/core/component/stake/v1alpha1/stake.proto"; +import "penumbra/core/component/governance/v1alpha1/governance.proto"; // A Penumbra transaction. message Transaction { @@ -15,7 +22,7 @@ message Transaction { bytes binding_sig = 2; // The root of some previous state of the state commitment tree, used as an anchor for all // ZK state transition proofs. - crypto.v1alpha1.MerkleRoot anchor = 3; + crypto.tct.v1alpha1.MerkleRoot anchor = 3; } // A transaction ID, the Sha256 hash of a transaction. @@ -23,10 +30,6 @@ message Id { bytes hash = 1; } -message EffectHash { - bytes inner = 1; -} - // The body of a transaction. message TransactionBody { // A list of actions (state changes) performed by this transaction. @@ -34,7 +37,7 @@ message TransactionBody { // Parameters determining if a transaction should be accepted by this chain. TransactionParameters transaction_parameters = 2; // The transaction fee. - crypto.v1alpha1.Fee fee = 3; + component.fee.v1alpha1.Fee fee = 3; // Detection data for use with Fuzzy Message Detection DetectionData detection_data = 4; // Sub-message containing memo ciphertext if a memo was added to the transaction. @@ -62,46 +65,47 @@ message TransactionParameters { // Detection data used by a detection server performing Fuzzy Message Detection. message DetectionData { // A list of clues for use with Fuzzy Message Detection. - repeated crypto.v1alpha1.Clue fmd_clues = 4; + repeated crypto.decaf377_fmd.v1alpha1.Clue fmd_clues = 4; } // A state change performed by a transaction. message Action { oneof action { - Spend spend = 1; - Output output = 2; - dex.v1alpha1.Swap swap = 3; - dex.v1alpha1.SwapClaim swap_claim = 4; + // Common actions have numbers < 15, to save space. + component.shielded_pool.v1alpha1.Spend spend = 1; + component.shielded_pool.v1alpha1.Output output = 2; + component.dex.v1alpha1.Swap swap = 3; + component.dex.v1alpha1.SwapClaim swap_claim = 4; // Uncommon actions have numbers > 15. - stake.v1alpha1.ValidatorDefinition validator_definition = 16; - ibc.v1alpha1.IbcAction ibc_action = 17; + component.stake.v1alpha1.ValidatorDefinition validator_definition = 16; + component.ibc.v1alpha1.IbcAction ibc_action = 17; // Governance: - governance.v1alpha1.ProposalSubmit proposal_submit = 18; - governance.v1alpha1.ProposalWithdraw proposal_withdraw = 19; - governance.v1alpha1.ValidatorVote validator_vote = 20; - governance.v1alpha1.DelegatorVote delegator_vote = 21; - governance.v1alpha1.ProposalDepositClaim proposal_deposit_claim = 22; + component.governance.v1alpha1.ProposalSubmit proposal_submit = 18; + component.governance.v1alpha1.ProposalWithdraw proposal_withdraw = 19; + component.governance.v1alpha1.ValidatorVote validator_vote = 20; + component.governance.v1alpha1.DelegatorVote delegator_vote = 21; + component.governance.v1alpha1.ProposalDepositClaim proposal_deposit_claim = 22; // Positions - dex.v1alpha1.PositionOpen position_open = 30; - dex.v1alpha1.PositionClose position_close = 31; - dex.v1alpha1.PositionWithdraw position_withdraw = 32; - dex.v1alpha1.PositionRewardClaim position_reward_claim = 34; + component.dex.v1alpha1.PositionOpen position_open = 30; + component.dex.v1alpha1.PositionClose position_close = 31; + component.dex.v1alpha1.PositionWithdraw position_withdraw = 32; + component.dex.v1alpha1.PositionRewardClaim position_reward_claim = 34; // (un)delegation - stake.v1alpha1.Delegate delegate = 40; - stake.v1alpha1.Undelegate undelegate = 41; - stake.v1alpha1.UndelegateClaim undelegate_claim = 42; + component.stake.v1alpha1.Delegate delegate = 40; + component.stake.v1alpha1.Undelegate undelegate = 41; + component.stake.v1alpha1.UndelegateClaim undelegate_claim = 42; // DAO - governance.v1alpha1.DaoSpend dao_spend = 50; - governance.v1alpha1.DaoOutput dao_output = 51; - governance.v1alpha1.DaoDeposit dao_deposit = 52; + component.governance.v1alpha1.DaoSpend dao_spend = 50; + component.governance.v1alpha1.DaoOutput dao_output = 51; + component.governance.v1alpha1.DaoDeposit dao_deposit = 52; - ibc.v1alpha1.Ics20Withdrawal ics20_withdrawal = 200; + component.ibc.v1alpha1.Ics20Withdrawal ics20_withdrawal = 200; } } @@ -113,27 +117,23 @@ message TransactionPerspective { repeated NullifierWithNote spend_nullifiers = 2; // The openings of note commitments referred to in the transaction // but not included in the transaction. - repeated crypto.v1alpha1.Note advice_notes = 3; + repeated component.shielded_pool.v1alpha1.Note advice_notes = 3; // Any relevant address views. - repeated crypto.v1alpha1.AddressView address_views = 4; + repeated keys.v1alpha1.AddressView address_views = 4; // Any relevant denoms for viewed assets. - repeated crypto.v1alpha1.DenomMetadata denoms = 5; + repeated asset.v1alpha1.DenomMetadata denoms = 5; // The transaction ID associated with this TransactionPerspective transaction.v1alpha1.Id transaction_id = 6; } -message PayloadKey { - bytes inner = 1; -} - message PayloadKeyWithCommitment { - PayloadKey payload_key = 1; - crypto.v1alpha1.StateCommitment commitment = 2; + keys.v1alpha1.PayloadKey payload_key = 1; + crypto.tct.v1alpha1.StateCommitment commitment = 2; } message NullifierWithNote { - crypto.v1alpha1.Nullifier nullifier = 1; - crypto.v1alpha1.Note note = 2; + component.sct.v1alpha1.Nullifier nullifier = 1; + component.shielded_pool.v1alpha1.Note note = 2; } // View of a Penumbra transaction. @@ -144,7 +144,7 @@ message TransactionView { bytes binding_sig = 2; // The root of some previous state of the state commitment tree, used as an anchor for all // ZK state transition proofs. - crypto.v1alpha1.MerkleRoot anchor = 3; + crypto.tct.v1alpha1.MerkleRoot anchor = 3; } message TransactionBodyView { @@ -153,7 +153,7 @@ message TransactionBodyView { // Transaction parameters. TransactionParameters transaction_parameters = 2; // The transaction fee. - crypto.v1alpha1.Fee fee = 3; + component.fee.v1alpha1.Fee fee = 3; // The detection data in this transaction, only populated if // there are outputs in the actions of this transaction. DetectionData detection_data = 4; @@ -166,146 +166,62 @@ message TransactionBodyView { message ActionView { oneof action_view { // Action types with visible/opaque variants - SpendView spend = 1; - OutputView output = 2; - dex.v1alpha1.SwapView swap = 3; - dex.v1alpha1.SwapClaimView swap_claim = 4; + component.shielded_pool.v1alpha1.SpendView spend = 1; + component.shielded_pool.v1alpha1.OutputView output = 2; + component.dex.v1alpha1.SwapView swap = 3; + component.dex.v1alpha1.SwapClaimView swap_claim = 4; + // Action types without visible/opaque variants - stake.v1alpha1.ValidatorDefinition validator_definition = 16; - ibc.v1alpha1.IbcAction ibc_action = 17; + component.stake.v1alpha1.ValidatorDefinition validator_definition = 16; + component.ibc.v1alpha1.IbcAction ibc_action = 17; + // Governance: - governance.v1alpha1.ProposalSubmit proposal_submit = 18; - governance.v1alpha1.ProposalWithdraw proposal_withdraw = 19; - governance.v1alpha1.ValidatorVote validator_vote = 20; - DelegatorVoteView delegator_vote = 21; - governance.v1alpha1.ProposalDepositClaim proposal_deposit_claim = 22; - dex.v1alpha1.PositionOpen position_open = 30; - dex.v1alpha1.PositionClose position_close = 31; - dex.v1alpha1.PositionWithdraw position_withdraw = 32; - dex.v1alpha1.PositionRewardClaim position_reward_claim = 34; - stake.v1alpha1.Delegate delegate = 41; - stake.v1alpha1.Undelegate undelegate = 42; + component.governance.v1alpha1.ProposalSubmit proposal_submit = 18; + component.governance.v1alpha1.ProposalWithdraw proposal_withdraw = 19; + component.governance.v1alpha1.ValidatorVote validator_vote = 20; + component.governance.v1alpha1.DelegatorVoteView delegator_vote = 21; + component.governance.v1alpha1.ProposalDepositClaim proposal_deposit_claim = 22; + + component.dex.v1alpha1.PositionOpen position_open = 30; + component.dex.v1alpha1.PositionClose position_close = 31; + component.dex.v1alpha1.PositionWithdraw position_withdraw = 32; + component.dex.v1alpha1.PositionRewardClaim position_reward_claim = 34; + + component.stake.v1alpha1.Delegate delegate = 41; + component.stake.v1alpha1.Undelegate undelegate = 42; // DAO - governance.v1alpha1.DaoSpend dao_spend = 50; - governance.v1alpha1.DaoOutput dao_output = 51; - governance.v1alpha1.DaoDeposit dao_deposit = 52; + component.governance.v1alpha1.DaoSpend dao_spend = 50; + component.governance.v1alpha1.DaoOutput dao_output = 51; + component.governance.v1alpha1.DaoDeposit dao_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 // of the transaction. is that fine? - stake.v1alpha1.UndelegateClaim undelegate_claim = 43; - ibc.v1alpha1.Ics20Withdrawal ics20_withdrawal = 200; - - } -} - -message SpendView { - message Visible { - Spend spend = 1; - crypto.v1alpha1.NoteView note = 2; - } - message Opaque { - Spend spend = 1; - } - oneof spend_view { - Visible visible = 1; - Opaque opaque = 2; - } -} - -message DelegatorVoteView { - message Visible { - governance.v1alpha1.DelegatorVote delegator_vote = 1; - crypto.v1alpha1.NoteView note = 2; - } - message Opaque { - governance.v1alpha1.DelegatorVote delegator_vote = 1; - } - oneof delegator_vote { - Visible visible = 1; - Opaque opaque = 2; - } -} - -message OutputView { - message Visible { - Output output = 1; - crypto.v1alpha1.NoteView note = 2; - PayloadKey payload_key = 3; - } + component.stake.v1alpha1.UndelegateClaim undelegate_claim = 43; + component.ibc.v1alpha1.Ics20Withdrawal ics20_withdrawal = 200; - message Opaque { - Output output = 1; - } - oneof output_view { - Visible visible = 1; - Opaque opaque = 2; } } -// Spends a shielded note. -message Spend { - // The effecting data of the spend. - SpendBody body = 1; - // The authorizing signature for the spend. - crypto.v1alpha1.SpendAuthSignature auth_sig = 2; - // The proof that the spend is well-formed is authorizing data. - crypto.v1alpha1.ZKSpendProof proof = 3; -} - -// The body of a spend description, containing only the effecting data -// describing changes to the ledger, and not the authorizing data that allows -// those changes to be performed. -message SpendBody { - // A commitment to the value of the input note. - crypto.v1alpha1.BalanceCommitment balance_commitment = 1; - // The nullifier of the input note. - bytes nullifier = 3; - // The randomized validating key for the spend authorization signature. - bytes rk = 4; -} - -// Creates a new shielded note. -message Output { - // The effecting data for the output. - OutputBody body = 1; - // The output proof is authorizing data. - crypto.v1alpha1.ZKOutputProof proof = 2; -} - -// The body of an output description, containing only the effecting data -// describing changes to the ledger, and not the authorizing data that allows -// those changes to be performed. -message OutputBody { - // The minimal data required to scan and process the new output note. - crypto.v1alpha1.NotePayload note_payload = 1; - // A commitment to the value of the output note. 32 bytes. - crypto.v1alpha1.BalanceCommitment balance_commitment = 2; - // An encrypted key for decrypting the memo. - bytes wrapped_memo_key = 3; - // The key material used for note encryption, wrapped in encryption to the - // sender's outgoing viewing key. 80 bytes. - bytes ovk_wrapped_key = 4; -} - // The data required to authorize a transaction plan. message AuthorizationData { // The computed auth hash for the approved transaction plan. - crypto.v1alpha1.EffectHash effect_hash = 1; + component.chain.v1alpha1.EffectHash effect_hash = 1; // The required spend authorizations, returned in the same order as the // Spend actions in the original request. - repeated crypto.v1alpha1.SpendAuthSignature spend_auths = 2; + repeated crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature spend_auths = 2; // The required delegator vote authorizations, returned in the same order as the // DelegatorVote actions in the original request. - repeated crypto.v1alpha1.SpendAuthSignature delegator_vote_auths = 3; + repeated crypto.decaf377_rdsa.v1alpha1.SpendAuthSignature delegator_vote_auths = 3; } // The data required for proving when building a transaction from a plan. message WitnessData { // The anchor for the state transition proofs. - crypto.v1alpha1.MerkleRoot anchor = 1; + crypto.tct.v1alpha1.MerkleRoot anchor = 1; // The auth paths for the notes the transaction spends, in the // same order as the spends in the transaction plan. - repeated crypto.v1alpha1.StateCommitmentProof state_commitment_proofs = 2; + repeated crypto.tct.v1alpha1.StateCommitmentProof state_commitment_proofs = 2; } // Describes a planned transaction. Permits clients to prepare a transaction @@ -318,7 +234,7 @@ message TransactionPlan { uint64 expiry_height = 2; // The name of the network for which this TransactionPlan was built. string chain_id = 3; - crypto.v1alpha1.Fee fee = 4; + component.fee.v1alpha1.Fee fee = 4; repeated CluePlan clue_plans = 5; // Planning interface for constructing an optional Memo for the Transaction. MemoPlan memo_plan = 6; @@ -330,50 +246,50 @@ message TransactionPlan { // themselves. message ActionPlan { oneof action { - SpendPlan spend = 1; - OutputPlan output = 2; - dex.v1alpha1.SwapPlan swap = 3; - dex.v1alpha1.SwapClaimPlan swap_claim = 4; + component.shielded_pool.v1alpha1.SpendPlan spend = 1; + component.shielded_pool.v1alpha1.OutputPlan output = 2; + component.dex.v1alpha1.SwapPlan swap = 3; + component.dex.v1alpha1.SwapClaimPlan swap_claim = 4; // This is just a message relayed to the chain. - stake.v1alpha1.ValidatorDefinition validator_definition = 16; + component.stake.v1alpha1.ValidatorDefinition validator_definition = 16; // This is just a message relayed to the chain. - ibc.v1alpha1.IbcAction ibc_action = 17; + component.ibc.v1alpha1.IbcAction ibc_action = 17; // Governance: - governance.v1alpha1.ProposalSubmit proposal_submit = 18; - governance.v1alpha1.ProposalWithdraw proposal_withdraw = 19; - governance.v1alpha1.ValidatorVote validator_vote = 20; - governance.v1alpha1.DelegatorVotePlan delegator_vote = 21; - governance.v1alpha1.ProposalDepositClaim proposal_deposit_claim = 22; + component.governance.v1alpha1.ProposalSubmit proposal_submit = 18; + component.governance.v1alpha1.ProposalWithdraw proposal_withdraw = 19; + component.governance.v1alpha1.ValidatorVote validator_vote = 20; + component.governance.v1alpha1.DelegatorVotePlan delegator_vote = 21; + component.governance.v1alpha1.ProposalDepositClaim proposal_deposit_claim = 22; - ibc.v1alpha1.Ics20Withdrawal withdrawal = 23; + component.ibc.v1alpha1.Ics20Withdrawal withdrawal = 23; - dex.v1alpha1.PositionOpen position_open = 30; - dex.v1alpha1.PositionClose position_close = 31; + component.dex.v1alpha1.PositionOpen position_open = 30; + component.dex.v1alpha1.PositionClose position_close = 31; // The position withdraw/reward claim actions require balance information so they have Plan types. - dex.v1alpha1.PositionWithdrawPlan position_withdraw = 32; - dex.v1alpha1.PositionRewardClaimPlan position_reward_claim = 34; + component.dex.v1alpha1.PositionWithdrawPlan position_withdraw = 32; + component.dex.v1alpha1.PositionRewardClaimPlan position_reward_claim = 34; // We don't need any extra information (yet) to understand delegations, // because we don't yet use flow encryption. - stake.v1alpha1.Delegate delegate = 40; + component.stake.v1alpha1.Delegate delegate = 40; // We don't need any extra information (yet) to understand undelegations, // because we don't yet use flow encryption. - stake.v1alpha1.Undelegate undelegate = 41; - stake.v1alpha1.UndelegateClaimPlan undelegate_claim = 42; + component.stake.v1alpha1.Undelegate undelegate = 41; + component.stake.v1alpha1.UndelegateClaimPlan undelegate_claim = 42; // DAO - governance.v1alpha1.DaoSpend dao_spend = 50; - governance.v1alpha1.DaoOutput dao_output = 51; - governance.v1alpha1.DaoDeposit dao_deposit = 52; + component.governance.v1alpha1.DaoSpend dao_spend = 50; + component.governance.v1alpha1.DaoOutput dao_output = 51; + component.governance.v1alpha1.DaoDeposit dao_deposit = 52; } } // Describes a plan for forming a `Clue`. message CluePlan { // The address. - crypto.v1alpha1.Address address = 1; + keys.v1alpha1.Address address = 1; // The random seed to use for the clue plan. bytes rseed = 2; // The bits of precision. @@ -391,7 +307,7 @@ message MemoPlan { message MemoCiphertext { bytes inner = 1; } message MemoPlaintext { - crypto.v1alpha1.Address sender = 1; + keys.v1alpha1.Address sender = 1; string text = 2; } @@ -410,36 +326,6 @@ message MemoView { } } -message SpendPlan { - // The plaintext note we plan to spend. - crypto.v1alpha1.Note note = 1; - // The position of the note we plan to spend. - uint64 position = 2; - // The randomizer to use for the spend. - bytes randomizer = 3; - // The blinding factor to use for the value commitment. - bytes value_blinding = 4; - // The first blinding factor to use for the ZK spend proof. - bytes proof_blinding_r = 5; - // The second blinding factor to use for the ZK spend proof. - bytes proof_blinding_s = 6; -} - -message OutputPlan { - // The value to send to this output. - crypto.v1alpha1.Value value = 1; - // The destination address to send it to. - crypto.v1alpha1.Address dest_address = 2; - // The rseed to use for the new note. - bytes rseed = 3; - // The blinding factor to use for the value commitment. - bytes value_blinding = 4; - // The first blinding factor to use for the ZK output proof. - bytes proof_blinding_r = 5; - // The second blinding factor to use for the ZK output proof. - bytes proof_blinding_s = 6; -} - message GasPrices { // The price per unit block space in terms of the staking token. uint64 block_space_price = 1; diff --git a/proto/penumbra/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.proto b/proto/penumbra/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.proto deleted file mode 100644 index db29878360..0000000000 --- a/proto/penumbra/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.proto +++ /dev/null @@ -1,25 +0,0 @@ -syntax = "proto3"; - -package penumbra.core.transparent_proofs.v1alpha1; - -import "penumbra/core/crypto/v1alpha1/crypto.proto"; -import "penumbra/core/dex/v1alpha1/dex.proto"; - -// A Penumbra transparent SwapClaimProof. -message SwapClaimProof { - // The swap being claimed - dex.v1alpha1.SwapPlaintext swap_plaintext = 1; - - // Inclusion proof for the swap commitment - crypto.v1alpha1.StateCommitmentProof swap_commitment_proof = 4; - - // The nullifier key used to derive the swap nullifier - bytes nk = 6; - - /** - * @exclude - * Describes output amounts - */ - crypto.v1alpha1.Amount lambda_1_i = 20; - crypto.v1alpha1.Amount lambda_2_i = 21; -} diff --git a/proto/penumbra/penumbra/crypto/decaf377_fmd/v1alpha1/decaf377_fmd.proto b/proto/penumbra/penumbra/crypto/decaf377_fmd/v1alpha1/decaf377_fmd.proto new file mode 100644 index 0000000000..1ec13c8e77 --- /dev/null +++ b/proto/penumbra/penumbra/crypto/decaf377_fmd/v1alpha1/decaf377_fmd.proto @@ -0,0 +1,7 @@ +syntax = "proto3"; +package penumbra.crypto.decaf377_fmd.v1alpha1; + +// A clue for use with Fuzzy Message Detection. +message Clue { + bytes inner = 1; +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.proto b/proto/penumbra/penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.proto new file mode 100644 index 0000000000..f754c7477d --- /dev/null +++ b/proto/penumbra/penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +package penumbra.crypto.decaf377_rdsa.v1alpha1; + +message SpendAuthSignature { + bytes inner = 1; +} + +message BindingSignature { + bytes inner = 1; +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/crypto/tct/v1alpha1/tct.proto b/proto/penumbra/penumbra/crypto/tct/v1alpha1/tct.proto new file mode 100644 index 0000000000..740814bd99 --- /dev/null +++ b/proto/penumbra/penumbra/crypto/tct/v1alpha1/tct.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +package penumbra.crypto.tct.v1alpha1; + +message StateCommitment { + bytes inner = 1; +} + +message MerkleRoot { + bytes inner = 1; +} + +// An authentication path from a state commitment to the root of the state commitment tree. +message StateCommitmentProof { + StateCommitment note_commitment = 1; + uint64 position = 2; + repeated MerklePathChunk auth_path = 3; // always length 24 +} + +// A set of 3 sibling hashes in the auth path for some note commitment. +message MerklePathChunk { + bytes sibling_1 = 1; + bytes sibling_2 = 2; + bytes sibling_3 = 3; +} \ No newline at end of file diff --git a/proto/penumbra/penumbra/custody/v1alpha1/custody.proto b/proto/penumbra/penumbra/custody/v1alpha1/custody.proto index 14672fea4e..77255d6ea8 100644 --- a/proto/penumbra/penumbra/custody/v1alpha1/custody.proto +++ b/proto/penumbra/penumbra/custody/v1alpha1/custody.proto @@ -2,7 +2,7 @@ syntax = "proto3"; package penumbra.custody.v1alpha1; -import "penumbra/core/crypto/v1alpha1/crypto.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; import "penumbra/core/transaction/v1alpha1/transaction.proto"; // The custody protocol is used by a wallet client to request authorization for @@ -25,7 +25,7 @@ message AuthorizeRequest { // The transaction plan to authorize. core.transaction.v1alpha1.TransactionPlan plan = 1; // Identifies the FVK (and hence the spend authorization key) to use for signing. - core.crypto.v1alpha1.AccountGroupId account_group_id = 2; + core.keys.v1alpha1.AccountGroupId account_group_id = 2; // Optionally, pre-authorization data, if required by the custodian. // diff --git a/proto/penumbra/penumbra/narsil/ledger/v1alpha1/ledger.proto b/proto/penumbra/penumbra/narsil/ledger/v1alpha1/ledger.proto index c1e43fab81..d50056ad8c 100644 --- a/proto/penumbra/penumbra/narsil/ledger/v1alpha1/ledger.proto +++ b/proto/penumbra/penumbra/narsil/ledger/v1alpha1/ledger.proto @@ -2,8 +2,9 @@ syntax = "proto3"; package penumbra.narsil.ledger.v1alpha1; -import "penumbra/core/crypto/v1alpha1/crypto.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; import "penumbra/core/transaction/v1alpha1/transaction.proto"; +import "penumbra/core/component/chain/v1alpha1/chain.proto"; import "penumbra/custody/v1alpha1/custody.proto"; // Methods for narsil clients to communicate with narsild. @@ -114,7 +115,7 @@ message AccountGroupInfo { // account group. It is replicated across all shards. // // The spend verification key component is the `PK` in the FROST I-D. - core.crypto.v1alpha1.FullViewingKey full_viewing_key = 1; + core.keys.v1alpha1.FullViewingKey full_viewing_key = 1; // Describes the participants in the account group. repeated ShardInfo participants = 2; } @@ -124,7 +125,7 @@ message ShardInfo { // The index of the shard, used for FROST accounting purposes. uint32 index = 1; // The shard verification key, corresponding to `PK_i` in the FROST I-D. - core.crypto.v1alpha1.SpendVerificationKey shard_verification_key = 2; + core.keys.v1alpha1.SpendVerificationKey shard_verification_key = 2; // The shard operator's identity key, used to identify the operator of this shard. ShardIdentityKey identity_key = 3; } @@ -141,7 +142,7 @@ message ShardInfo { // authorization of the same `TransactionPlan` after it has been signed, and the // ledger can immediately return the already-existing authorization data. message RequestIndex { - core.transaction.v1alpha1.EffectHash effect_hash = 1; + core.component.chain.v1alpha1.EffectHash effect_hash = 1; } // Identifies a particular signing ceremony. diff --git a/proto/penumbra/penumbra/tools/summoning/v1alpha1/summoning.proto b/proto/penumbra/penumbra/tools/summoning/v1alpha1/summoning.proto index 011ba5b77b..026a7eac96 100644 --- a/proto/penumbra/penumbra/tools/summoning/v1alpha1/summoning.proto +++ b/proto/penumbra/penumbra/tools/summoning/v1alpha1/summoning.proto @@ -2,7 +2,8 @@ syntax = "proto3"; package penumbra.tools.summoning.v1alpha1; -import "penumbra/core/crypto/v1alpha1/crypto.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; +import "penumbra/core/num/v1alpha1/num.proto"; // Runs a Phase 2 MPC ceremony with dynamic slot allocation. service CeremonyCoordinatorService { @@ -23,7 +24,7 @@ service CeremonyCoordinatorService { message ParticipateRequest { // Sent at the beginning of the connection to identify the participant. message Identify { - core.crypto.v1alpha1.Address address = 1; + core.keys.v1alpha1.Address address = 1; } // Sent by the participant after getting a `ContributeNow` message. @@ -56,9 +57,9 @@ message ParticipateResponse { // The total number of participants in the queue. uint32 connected_participants = 2; // The bid for the most recently executed contribution slot. - core.crypto.v1alpha1.Amount last_slot_bid = 3; + core.num.v1alpha1.Amount last_slot_bid = 3; // The participant's current bid. - core.crypto.v1alpha1.Amount your_bid = 4; + core.num.v1alpha1.Amount your_bid = 4; } // Sent to the participant to inform them that they should contribute now. diff --git a/proto/penumbra/penumbra/view/v1alpha1/view.proto b/proto/penumbra/penumbra/view/v1alpha1/view.proto index a4ebcb345f..bec32554db 100644 --- a/proto/penumbra/penumbra/view/v1alpha1/view.proto +++ b/proto/penumbra/penumbra/view/v1alpha1/view.proto @@ -2,12 +2,18 @@ syntax = "proto3"; package penumbra.view.v1alpha1; -import "penumbra/core/chain/v1alpha1/chain.proto"; -import "penumbra/core/crypto/v1alpha1/crypto.proto"; -import "penumbra/core/dex/v1alpha1/dex.proto"; +import "penumbra/crypto/tct/v1alpha1/tct.proto"; +import "penumbra/core/keys/v1alpha1/keys.proto"; +import "penumbra/core/num/v1alpha1/num.proto"; +import "penumbra/core/asset/v1alpha1/asset.proto"; import "penumbra/core/transaction/v1alpha1/transaction.proto"; -import "penumbra/core/ibc/v1alpha1/ibc.proto"; -import "penumbra/core/stake/v1alpha1/stake.proto"; +import "penumbra/core/component/chain/v1alpha1/chain.proto"; +import "penumbra/core/component/dex/v1alpha1/dex.proto"; +import "penumbra/core/component/fee/v1alpha1/fee.proto"; +import "penumbra/core/component/ibc/v1alpha1/ibc.proto"; +import "penumbra/core/component/sct/v1alpha1/sct.proto"; +import "penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto"; +import "penumbra/core/component/stake/v1alpha1/stake.proto"; // The view protocol is used by a view client, who wants to do some // transaction-related actions, to request data from a view service, which is @@ -20,11 +26,11 @@ service ViewProtocolService { // Get current status of chain sync rpc Status(StatusRequest) returns (StatusResponse); - // Stream sync status updates until the view service has caught up with the core.chain.v1alpha1. + // Stream sync status updates until the view service has caught up with the chain. // Returns a stream of `StatusStreamResponse`s. rpc StatusStream(StatusStreamRequest) returns (stream StatusStreamResponse); - // Queries for notes that have been accepted by the core.chain.v1alpha1. + // Queries for notes that have been accepted by the chain. // Returns a stream of `NotesResponse`s. rpc Notes(NotesRequest) returns (stream NotesResponse); @@ -127,15 +133,15 @@ message TransactionPlannerRequest { // The expiry height for the requested TransactionPlan uint64 expiry_height = 1; // The fee for the requested TransactionPlan, if any. - core.crypto.v1alpha1.Fee fee = 2; + core.component.fee.v1alpha1.Fee fee = 2; // The memo for the requested TransactionPlan. // The memo must be unspecified unless `outputs` is nonempty. core.transaction.v1alpha1.MemoPlaintext memo = 3; // If present, only spends funds from the given account. - core.crypto.v1alpha1.AddressIndex source = 4; + core.keys.v1alpha1.AddressIndex source = 4; // Optionally identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 14; + core.keys.v1alpha1.AccountGroupId account_group_id = 14; // Request contents repeated Output outputs = 20; @@ -143,7 +149,7 @@ message TransactionPlannerRequest { repeated SwapClaim swap_claims = 31; repeated Delegate delegations = 40; repeated Undelegate undelegations = 50; - repeated penumbra.core.ibc.v1alpha1.IbcAction ibc_actions = 60; + repeated penumbra.core.component.ibc.v1alpha1.IbcAction ibc_actions = 60; repeated PositionOpen position_opens = 70; repeated PositionClose position_closes = 71; repeated PositionWithdraw position_withdraws = 72; @@ -151,52 +157,52 @@ message TransactionPlannerRequest { // Request message subtypes message Output { // The amount and denomination in which the Output is issued. - core.crypto.v1alpha1.Value value = 1; + core.asset.v1alpha1.Value value = 1; // The address to which Output will be sent. - core.crypto.v1alpha1.Address address = 2; + core.keys.v1alpha1.Address address = 2; } message Swap { // The input amount and denomination to be traded in the Swap. - core.crypto.v1alpha1.Value value = 1; + core.asset.v1alpha1.Value value = 1; // The denomination to be received as a Output of the Swap. - core.crypto.v1alpha1.AssetId target_asset = 2; + core.asset.v1alpha1.AssetId target_asset = 2; // The pre-paid fee to be paid for claiming the Swap outputs. - core.crypto.v1alpha1.Fee fee = 3; + core.component.fee.v1alpha1.Fee fee = 3; // The address to which swap claim output will be sent. - core.crypto.v1alpha1.Address claim_address = 4; + core.keys.v1alpha1.Address claim_address = 4; } message SwapClaim { // SwapCommitment to identify the Swap to be claimed. // Use the commitment from the Swap message: - // penumbra.core.dex.v1alpha1.Swap.body.payload.commitment. - core.crypto.v1alpha1.StateCommitment swap_commitment = 1; + // penumbra.core.component.dex.v1alpha1.Swap.body.payload.commitment. + crypto.tct.v1alpha1.StateCommitment swap_commitment = 1; } message Delegate { - core.crypto.v1alpha1.Amount amount = 1; - core.stake.v1alpha1.RateData rate_data = 3; + core.num.v1alpha1.Amount amount = 1; + core.component.stake.v1alpha1.RateData rate_data = 3; } message Undelegate { - core.crypto.v1alpha1.Value value = 1; - core.stake.v1alpha1.RateData rate_data = 2; + core.asset.v1alpha1.Value value = 1; + core.component.stake.v1alpha1.RateData rate_data = 2; } message PositionOpen { // Contains the data defining the position, sufficient to compute its `PositionId`. // // Positions are immutable, so the `PositionData` (and hence the `PositionId`) // are unchanged over the entire lifetime of the position. - core.dex.v1alpha1.Position position = 1; + core.component.dex.v1alpha1.Position position = 1; } message PositionClose { // The position to close. - core.dex.v1alpha1.PositionId position_id = 1; + core.component.dex.v1alpha1.PositionId position_id = 1; } message PositionWithdraw { // The position to withdraw. - core.dex.v1alpha1.PositionId position_id = 1; + core.component.dex.v1alpha1.PositionId position_id = 1; // The position's final reserves. - core.dex.v1alpha1.Reserves reserves = 2; + core.component.dex.v1alpha1.Reserves reserves = 2; // The trading pair of the position. - core.dex.v1alpha1.TradingPair trading_pair = 3; + core.component.dex.v1alpha1.TradingPair trading_pair = 3; } } @@ -205,42 +211,42 @@ message TransactionPlannerResponse { } message AddressByIndexRequest { - core.crypto.v1alpha1.AddressIndex address_index = 1; + core.keys.v1alpha1.AddressIndex address_index = 1; bool display_confirm = 2; } message AddressByIndexResponse { - core.crypto.v1alpha1.Address address = 1; + core.keys.v1alpha1.Address address = 1; } message IndexByAddressRequest { - core.crypto.v1alpha1.Address address = 1; + core.keys.v1alpha1.Address address = 1; } message IndexByAddressResponse { // Will be absent if given an address not viewable by this viewing service - core.crypto.v1alpha1.AddressIndex address_index = 1; + core.keys.v1alpha1.AddressIndex address_index = 1; } message EphemeralAddressRequest { - core.crypto.v1alpha1.AddressIndex address_index = 1; + core.keys.v1alpha1.AddressIndex address_index = 1; bool display_confirm = 2; } message EphemeralAddressResponse { - core.crypto.v1alpha1.Address address = 1; + core.keys.v1alpha1.Address address = 1; } message BalancesRequest { // If present, filter balances to only include the account specified by the `AddressIndex`. - core.crypto.v1alpha1.AddressIndex account_filter = 1; + core.keys.v1alpha1.AddressIndex account_filter = 1; // If present, filter balances to only include the specified asset ID. - core.crypto.v1alpha1.AssetId asset_id_filter = 2; + core.asset.v1alpha1.AssetId asset_id_filter = 2; } message BalancesResponse { - core.crypto.v1alpha1.AddressIndex account = 1; - core.crypto.v1alpha1.Value balance = 2; + core.keys.v1alpha1.AddressIndex account = 1; + core.asset.v1alpha1.Value balance = 2; } // Scaffolding for bearer-token authentication for the ViewService. @@ -249,7 +255,7 @@ message ViewAuthToken { } message ViewAuthRequest { - core.crypto.v1alpha1.FullViewingKey fvk = 1; + core.keys.v1alpha1.FullViewingKey fvk = 1; } message ViewAuthResponse { @@ -263,7 +269,7 @@ service ViewAuthService { // Requests sync status of the view service. message StatusRequest { // Identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 14; + core.keys.v1alpha1.AccountGroupId account_group_id = 14; } // Returns the status of the view service and whether it is synchronized with the chain state. @@ -277,7 +283,7 @@ message StatusResponse { // Requests streaming updates on the sync height until the view service is synchronized. message StatusStreamRequest { // Identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 14; + core.keys.v1alpha1.AccountGroupId account_group_id = 14; } // A streaming sync status update @@ -295,18 +301,18 @@ message NotesRequest { bool include_spent = 2; // If set, only return notes with the specified asset id. - core.crypto.v1alpha1.AssetId asset_id = 3; + core.asset.v1alpha1.AssetId asset_id = 3; - // If set, only return notes with the specified address incore.dex.v1alpha1. - core.crypto.v1alpha1.AddressIndex address_index = 4; + // If set, only return notes with the specified address incore.component.dex.v1alpha1. + core.keys.v1alpha1.AddressIndex address_index = 4; // If set, stop returning notes once the total exceeds this amount. // // Ignored if `asset_id` is unset or if `include_spent` is set. - core.crypto.v1alpha1.Amount amount_to_spend = 6; + core.num.v1alpha1.Amount amount_to_spend = 6; // Identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 14; + core.keys.v1alpha1.AccountGroupId account_group_id = 14; } // A query for notes to be used for voting on a proposal. @@ -315,21 +321,21 @@ message NotesForVotingRequest { uint64 votable_at_height = 1; // If set, only return notes with the specified asset id. - core.crypto.v1alpha1.AddressIndex address_index = 3; + core.keys.v1alpha1.AddressIndex address_index = 3; // Identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 14; + core.keys.v1alpha1.AccountGroupId account_group_id = 14; } message WitnessRequest { // The note commitments to obtain auth paths for. - repeated core.crypto.v1alpha1.StateCommitment note_commitments = 2; + repeated crypto.tct.v1alpha1.StateCommitment note_commitments = 2; // The transaction plan to witness core.transaction.v1alpha1.TransactionPlan transaction_plan = 3; // Identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 14; + core.keys.v1alpha1.AccountGroupId account_group_id = 14; } message WitnessResponse { @@ -351,7 +357,7 @@ message AssetsRequest { // the request indicate a filter. bool filtered = 1; // Include these specific denominations in the response. - repeated core.crypto.v1alpha1.Denom include_specific_denominations = 2; + repeated core.asset.v1alpha1.Denom include_specific_denominations = 2; // Include all delegation tokens, to any validator, in the response. bool include_delegation_tokens = 3; // Include all unbonding tokens, from any validator, in the response. @@ -366,29 +372,29 @@ message AssetsRequest { // Requests all assets known to the view service. message AssetsResponse { - core.crypto.v1alpha1.DenomMetadata denom_metadata = 2; + core.asset.v1alpha1.DenomMetadata denom_metadata = 2; } // Requests the current chain parameters from the view service. message ChainParametersRequest {} message ChainParametersResponse { - core.chain.v1alpha1.ChainParameters parameters = 1; + core.component.chain.v1alpha1.ChainParameters parameters = 1; } // Requests the current FMD parameters from the view service. message FMDParametersRequest {} message FMDParametersResponse { - core.chain.v1alpha1.FmdParameters parameters = 1; + core.component.chain.v1alpha1.FmdParameters parameters = 1; } message NoteByCommitmentRequest { - core.crypto.v1alpha1.StateCommitment note_commitment = 2; + crypto.tct.v1alpha1.StateCommitment note_commitment = 2; // If set to true, waits to return until the requested note is detected. bool await_detection = 3; // Identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 14; + core.keys.v1alpha1.AccountGroupId account_group_id = 14; } message NoteByCommitmentResponse { @@ -396,11 +402,11 @@ message NoteByCommitmentResponse { } message SwapByCommitmentRequest { - core.crypto.v1alpha1.StateCommitment swap_commitment = 2; + crypto.tct.v1alpha1.StateCommitment swap_commitment = 2; // If set to true, waits to return until the requested swap is detected. bool await_detection = 3; // Identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 14; + core.keys.v1alpha1.AccountGroupId account_group_id = 14; } message SwapByCommitmentResponse { @@ -409,7 +415,7 @@ message SwapByCommitmentResponse { message UnclaimedSwapsRequest { // Identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 1; + core.keys.v1alpha1.AccountGroupId account_group_id = 1; } message UnclaimedSwapsResponse { @@ -417,10 +423,10 @@ message UnclaimedSwapsResponse { } message NullifierStatusRequest { - core.crypto.v1alpha1.Nullifier nullifier = 2; + core.component.sct.v1alpha1.Nullifier nullifier = 2; bool await_detection = 3; // Identifies the account group to query. - core.crypto.v1alpha1.AccountGroupId account_group_id = 14; + core.keys.v1alpha1.AccountGroupId account_group_id = 14; } message NullifierStatusResponse { @@ -466,19 +472,19 @@ message NotesResponse { message NotesForVotingResponse { SpendableNoteRecord note_record = 1; - core.crypto.v1alpha1.IdentityKey identity_key = 2; + core.keys.v1alpha1.IdentityKey identity_key = 2; } // A note plaintext with associated metadata about its status. message SpendableNoteRecord { // The note commitment, identifying the note. - core.crypto.v1alpha1.StateCommitment note_commitment = 1; + crypto.tct.v1alpha1.StateCommitment note_commitment = 1; // The note plaintext itself. - core.crypto.v1alpha1.Note note = 2; - // A precomputed decryption of the note's address incore.dex.v1alpha1. - core.crypto.v1alpha1.AddressIndex address_index = 3; + core.component.shielded_pool.v1alpha1.Note note = 2; + // A precomputed decryption of the note's address incore.component.dex.v1alpha1. + core.keys.v1alpha1.AddressIndex address_index = 3; // The note's nullifier. - core.crypto.v1alpha1.Nullifier nullifier = 4; + core.component.sct.v1alpha1.Nullifier nullifier = 4; // The height at which the note was created. uint64 height_created = 5; // Records whether the note was spent (and if so, at what height). @@ -486,26 +492,26 @@ message SpendableNoteRecord { // The note position. uint64 position = 7; // The source of the note (a tx hash or otherwise) - core.chain.v1alpha1.NoteSource source = 8; + core.component.chain.v1alpha1.NoteSource source = 8; } message SwapRecord { - core.crypto.v1alpha1.StateCommitment swap_commitment = 1; - core.dex.v1alpha1.SwapPlaintext swap = 2; + crypto.tct.v1alpha1.StateCommitment swap_commitment = 1; + core.component.dex.v1alpha1.SwapPlaintext swap = 2; uint64 position = 3; - core.crypto.v1alpha1.Nullifier nullifier = 4; - core.dex.v1alpha1.BatchSwapOutputData output_data = 5; + core.component.sct.v1alpha1.Nullifier nullifier = 4; + core.component.dex.v1alpha1.BatchSwapOutputData output_data = 5; uint64 height_claimed = 6; - core.chain.v1alpha1.NoteSource source = 7; + core.component.chain.v1alpha1.NoteSource source = 7; } message OwnedPositionIdsRequest { // If present, return only positions with this position state. - core.dex.v1alpha1.PositionState position_state = 1; + core.component.dex.v1alpha1.PositionState position_state = 1; // If present, return only positions for this trading pair. - core.dex.v1alpha1.TradingPair trading_pair = 2; + core.component.dex.v1alpha1.TradingPair trading_pair = 2; } message OwnedPositionIdsResponse { - core.dex.v1alpha1.PositionId position_id = 1; + core.component.dex.v1alpha1.PositionId position_id = 1; } diff --git a/tools/proto-compiler/src/main.rs b/tools/proto-compiler/src/main.rs index 7d47c25af6..3bc2d976e4 100644 --- a/tools/proto-compiler/src/main.rs +++ b/tools/proto-compiler/src/main.rs @@ -22,6 +22,9 @@ fn main() -> anyhow::Result<()> { .file_descriptor_set_path(&descriptor_path) .compile_well_known_types(); + // Disable this, in case the CompactBlock having `Bytes` causes memory leaks. + // Or don't, if changing it now would cause a lot of errors patching up TryFrom impls. + /* // Specify which parts of the protos should have their `bytes` fields // converted to Rust `Bytes` (= zero-copy view into a shared buffer) rather // than `Vec`. @@ -45,6 +48,7 @@ fn main() -> anyhow::Result<()> { ".penumbra.core.crypto.v1alpha1.NotePayload", ".penumbra.core.chain.v1alpha1.CompactBlock", ]); + */ // As recommended in pbjson_types docs. config.extern_path(".google.protobuf", "::pbjson_types"); @@ -66,15 +70,30 @@ fn main() -> anyhow::Result<()> { config.compile_protos( &[ - "../../proto/penumbra/penumbra/core/crypto/v1alpha1/crypto.proto", + "../../proto/penumbra/penumbra/client/v1alpha1/client.proto", + "../../proto/penumbra/penumbra/core/app/v1alpha1/app.proto", + "../../proto/penumbra/penumbra/core/asset/v1alpha1/asset.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/dex/v1alpha1/dex.proto", + "../../proto/penumbra/penumbra/core/component/distributions/v1alpha1/distributions.proto", + "../../proto/penumbra/penumbra/core/component/fee/v1alpha1/fee.proto", + "../../proto/penumbra/penumbra/core/component/governance/v1alpha1/governance.proto", + "../../proto/penumbra/penumbra/core/component/ibc/v1alpha1/ibc.proto", + "../../proto/penumbra/penumbra/core/component/sct/v1alpha1/sct.proto", + "../../proto/penumbra/penumbra/core/component/shielded_pool/v1alpha1/shielded_pool.proto", + "../../proto/penumbra/penumbra/core/component/stake/v1alpha1/stake.proto", + "../../proto/penumbra/penumbra/core/keys/v1alpha1/keys.proto", + "../../proto/penumbra/penumbra/core/num/v1alpha1/num.proto", "../../proto/penumbra/penumbra/core/transaction/v1alpha1/transaction.proto", - "../../proto/penumbra/penumbra/core/stake/v1alpha1/stake.proto", - "../../proto/penumbra/penumbra/core/chain/v1alpha1/chain.proto", - "../../proto/penumbra/penumbra/core/ibc/v1alpha1/ibc.proto", - "../../proto/penumbra/penumbra/core/dex/v1alpha1/dex.proto", - "../../proto/penumbra/penumbra/core/transparent_proofs/v1alpha1/transparent_proofs.proto", - "../../proto/penumbra/penumbra/core/governance/v1alpha1/governance.proto", + "../../proto/penumbra/penumbra/crypto/decaf377_fmd/v1alpha1/decaf377_fmd.proto", + "../../proto/penumbra/penumbra/crypto/decaf377_rdsa/v1alpha1/decaf377_rdsa.proto", + "../../proto/penumbra/penumbra/crypto/tct/v1alpha1/tct.proto", + "../../proto/penumbra/penumbra/custody/v1alpha1/custody.proto", + "../../proto/penumbra/penumbra/narsil/ledger/v1alpha1/ledger.proto", "../../proto/penumbra/penumbra/tools/summoning/v1alpha1/summoning.proto", + "../../proto/penumbra/penumbra/view/v1alpha1/view.proto", "../../proto/rust-vendored/tendermint/types/validator.proto", "../../proto/rust-vendored/tendermint/p2p/types.proto", ],