penumbra_proto/gen/cosmos.tx.signing.v1beta1.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
/// SignatureDescriptors wraps multiple SignatureDescriptor's.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SignatureDescriptors {
/// signatures are the signature descriptors
#[prost(message, repeated, tag = "1")]
pub signatures: ::prost::alloc::vec::Vec<SignatureDescriptor>,
}
impl ::prost::Name for SignatureDescriptors {
const NAME: &'static str = "SignatureDescriptors";
const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1";
fn full_name() -> ::prost::alloc::string::String {
::prost::alloc::format!("cosmos.tx.signing.v1beta1.{}", Self::NAME)
}
}
/// SignatureDescriptor is a convenience type which represents the full data for
/// a signature including the public key of the signer, signing modes and the
/// signature itself. It is primarily used for coordinating signatures between
/// clients.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SignatureDescriptor {
/// public_key is the public key of the signer
#[prost(message, optional, tag = "1")]
pub public_key: ::core::option::Option<::pbjson_types::Any>,
#[prost(message, optional, tag = "2")]
pub data: ::core::option::Option<signature_descriptor::Data>,
/// sequence is the sequence of the account, which describes the
/// number of committed transactions signed by a given address. It is used to prevent
/// replay attacks.
#[prost(uint64, tag = "3")]
pub sequence: u64,
}
/// Nested message and enum types in `SignatureDescriptor`.
pub mod signature_descriptor {
/// Data represents signature data
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Data {
/// sum is the oneof that specifies whether this represents single or multi-signature data
#[prost(oneof = "data::Sum", tags = "1, 2")]
pub sum: ::core::option::Option<data::Sum>,
}
/// Nested message and enum types in `Data`.
pub mod data {
/// Single is the signature data for a single signer
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Single {
/// mode is the signing mode of the single signer
#[prost(enumeration = "super::super::SignMode", tag = "1")]
pub mode: i32,
/// signature is the raw signature bytes
#[prost(bytes = "vec", tag = "2")]
pub signature: ::prost::alloc::vec::Vec<u8>,
}
impl ::prost::Name for Single {
const NAME: &'static str = "Single";
const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1";
fn full_name() -> ::prost::alloc::string::String {
::prost::alloc::format!(
"cosmos.tx.signing.v1beta1.SignatureDescriptor.Data.{}", Self::NAME
)
}
}
/// Multi is the signature data for a multisig public key
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Multi {
/// bitarray specifies which keys within the multisig are signing
#[prost(message, optional, tag = "1")]
pub bitarray: ::core::option::Option<
super::super::super::super::super::crypto::multisig::v1beta1::CompactBitArray,
>,
/// signatures is the signatures of the multi-signature
#[prost(message, repeated, tag = "2")]
pub signatures: ::prost::alloc::vec::Vec<super::Data>,
}
impl ::prost::Name for Multi {
const NAME: &'static str = "Multi";
const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1";
fn full_name() -> ::prost::alloc::string::String {
::prost::alloc::format!(
"cosmos.tx.signing.v1beta1.SignatureDescriptor.Data.{}", Self::NAME
)
}
}
/// sum is the oneof that specifies whether this represents single or multi-signature data
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Sum {
/// single represents a single signer
#[prost(message, tag = "1")]
Single(Single),
/// multi represents a multisig signer
#[prost(message, tag = "2")]
Multi(Multi),
}
}
impl ::prost::Name for Data {
const NAME: &'static str = "Data";
const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1";
fn full_name() -> ::prost::alloc::string::String {
::prost::alloc::format!(
"cosmos.tx.signing.v1beta1.SignatureDescriptor.{}", Self::NAME
)
}
}
}
impl ::prost::Name for SignatureDescriptor {
const NAME: &'static str = "SignatureDescriptor";
const PACKAGE: &'static str = "cosmos.tx.signing.v1beta1";
fn full_name() -> ::prost::alloc::string::String {
::prost::alloc::format!("cosmos.tx.signing.v1beta1.{}", Self::NAME)
}
}
/// SignMode represents a signing mode with its own security guarantees.
///
/// This enum should be considered a registry of all known sign modes
/// in the Cosmos ecosystem. Apps are not expected to support all known
/// sign modes. Apps that would like to support custom sign modes are
/// encouraged to open a small PR against this file to add a new case
/// to this SignMode enum describing their sign mode so that different
/// apps have a consistent version of this enum.
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SignMode {
/// SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be
/// rejected.
Unspecified = 0,
/// SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is
/// verified with raw bytes from Tx.
Direct = 1,
/// SIGN_MODE_TEXTUAL is a future signing mode that will verify some
/// human-readable textual representation on top of the binary representation
/// from SIGN_MODE_DIRECT. It is currently experimental, and should be used
/// for testing purposes only, until Textual is fully released. Please follow
/// the tracking issue <https://github.com/cosmos/cosmos-sdk/issues/11970.>
Textual = 2,
/// SIGN_MODE_DIRECT_AUX specifies a signing mode which uses
/// SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not
/// require signers signing over other signers' `signer_info`. It also allows
/// for adding Tips in transactions.
///
/// Since: cosmos-sdk 0.46
DirectAux = 3,
/// SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses
/// Amino JSON and will be removed in the future.
LegacyAminoJson = 127,
/// SIGN_MODE_EIP_191 specifies the sign mode for EIP 191 signing on the Cosmos
/// SDK. Ref: <https://eips.ethereum.org/EIPS/eip-191>
///
/// Currently, SIGN_MODE_EIP_191 is registered as a SignMode enum variant,
/// but is not implemented on the SDK by default. To enable EIP-191, you need
/// to pass a custom `TxConfig` that has an implementation of
/// `SignModeHandler` for EIP-191. The SDK may decide to fully support
/// EIP-191 in the future.
///
/// Since: cosmos-sdk 0.45.2
Eip191 = 191,
}
impl SignMode {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
SignMode::Unspecified => "SIGN_MODE_UNSPECIFIED",
SignMode::Direct => "SIGN_MODE_DIRECT",
SignMode::Textual => "SIGN_MODE_TEXTUAL",
SignMode::DirectAux => "SIGN_MODE_DIRECT_AUX",
SignMode::LegacyAminoJson => "SIGN_MODE_LEGACY_AMINO_JSON",
SignMode::Eip191 => "SIGN_MODE_EIP_191",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SIGN_MODE_UNSPECIFIED" => Some(Self::Unspecified),
"SIGN_MODE_DIRECT" => Some(Self::Direct),
"SIGN_MODE_TEXTUAL" => Some(Self::Textual),
"SIGN_MODE_DIRECT_AUX" => Some(Self::DirectAux),
"SIGN_MODE_LEGACY_AMINO_JSON" => Some(Self::LegacyAminoJson),
"SIGN_MODE_EIP_191" => Some(Self::Eip191),
_ => None,
}
}
}