#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProofOfPossessionBtc {
#[prost(enumeration="BtcSigType", tag="1")]
pub btc_sig_type: i32,
#[prost(bytes="bytes", tag="2")]
pub btc_sig: ::prost::bytes::Bytes,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum BtcSigType {
Bip340 = 0,
Bip322 = 1,
Ecdsa = 2,
}
impl BtcSigType {
pub fn as_str_name(&self) -> &'static str {
match self {
BtcSigType::Bip340 => "BIP340",
BtcSigType::Bip322 => "BIP322",
BtcSigType::Ecdsa => "ECDSA",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"BIP340" => Some(Self::Bip340),
"BIP322" => Some(Self::Bip322),
"ECDSA" => Some(Self::Ecdsa),
_ => None,
}
}
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FinalityProvider {
#[prost(string, tag="1")]
pub addr: ::prost::alloc::string::String,
#[prost(message, optional, tag="2")]
pub description: ::core::option::Option<cosmos_sdk_proto::cosmos::staking::v1beta1::Description>,
#[prost(string, tag="3")]
pub commission: ::prost::alloc::string::String,
#[prost(bytes="bytes", tag="4")]
pub btc_pk: ::prost::bytes::Bytes,
#[prost(message, optional, tag="5")]
pub pop: ::core::option::Option<ProofOfPossessionBtc>,
#[prost(uint64, tag="6")]
pub slashed_babylon_height: u64,
#[prost(uint32, tag="7")]
pub slashed_btc_height: u32,
#[prost(bool, tag="8")]
pub jailed: bool,
#[prost(uint32, tag="9")]
pub highest_voted_height: u32,
#[prost(string, tag="10")]
pub consumer_id: ::prost::alloc::string::String,
#[prost(message, optional, tag="11")]
pub commission_info: ::core::option::Option<CommissionInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommissionInfo {
#[prost(string, tag="1")]
pub max_rate: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub max_change_rate: ::prost::alloc::string::String,
#[prost(message, optional, tag="3")]
pub update_time: ::core::option::Option<::pbjson_types::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BtcDelegation {
#[prost(string, tag="1")]
pub staker_addr: ::prost::alloc::string::String,
#[prost(bytes="bytes", tag="2")]
pub btc_pk: ::prost::bytes::Bytes,
#[prost(message, optional, tag="3")]
pub pop: ::core::option::Option<ProofOfPossessionBtc>,
#[prost(bytes="bytes", repeated, tag="4")]
pub fp_btc_pk_list: ::prost::alloc::vec::Vec<::prost::bytes::Bytes>,
#[prost(uint32, tag="5")]
pub staking_time: u32,
#[prost(uint32, tag="6")]
pub start_height: u32,
#[prost(uint32, tag="7")]
pub end_height: u32,
#[prost(uint64, tag="8")]
pub total_sat: u64,
#[prost(bytes="bytes", tag="9")]
pub staking_tx: ::prost::bytes::Bytes,
#[prost(uint32, tag="10")]
pub staking_output_idx: u32,
#[prost(bytes="bytes", tag="11")]
pub slashing_tx: ::prost::bytes::Bytes,
#[prost(bytes="bytes", tag="12")]
pub delegator_sig: ::prost::bytes::Bytes,
#[prost(message, repeated, tag="13")]
pub covenant_sigs: ::prost::alloc::vec::Vec<CovenantAdaptorSignatures>,
#[prost(uint32, tag="14")]
pub unbonding_time: u32,
#[prost(message, optional, tag="15")]
pub btc_undelegation: ::core::option::Option<BtcUndelegation>,
#[prost(uint32, tag="16")]
pub params_version: u32,
#[prost(uint32, tag="17")]
pub btc_tip_height: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DelegatorUnbondingInfo {
#[prost(bytes="bytes", tag="1")]
pub spend_stake_tx: ::prost::bytes::Bytes,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BtcUndelegation {
#[prost(bytes="bytes", tag="1")]
pub unbonding_tx: ::prost::bytes::Bytes,
#[prost(bytes="bytes", tag="2")]
pub slashing_tx: ::prost::bytes::Bytes,
#[prost(bytes="bytes", tag="3")]
pub delegator_slashing_sig: ::prost::bytes::Bytes,
#[prost(message, repeated, tag="4")]
pub covenant_slashing_sigs: ::prost::alloc::vec::Vec<CovenantAdaptorSignatures>,
#[prost(message, repeated, tag="5")]
pub covenant_unbonding_sig_list: ::prost::alloc::vec::Vec<SignatureInfo>,
#[prost(message, optional, tag="6")]
pub delegator_unbonding_info: ::core::option::Option<DelegatorUnbondingInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SignatureInfo {
#[prost(bytes="bytes", tag="1")]
pub pk: ::prost::bytes::Bytes,
#[prost(bytes="bytes", tag="2")]
pub sig: ::prost::bytes::Bytes,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CovenantAdaptorSignatures {
#[prost(bytes="bytes", tag="1")]
pub cov_pk: ::prost::bytes::Bytes,
#[prost(bytes="bytes", repeated, tag="2")]
pub adaptor_sigs: ::prost::alloc::vec::Vec<::prost::bytes::Bytes>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InclusionProof {
#[prost(message, optional, tag="1")]
pub key: ::core::option::Option<super::super::btccheckpoint::v1::TransactionKey>,
#[prost(bytes="bytes", tag="2")]
pub proof: ::prost::bytes::Bytes,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Params {
#[prost(bytes="bytes", repeated, tag="1")]
pub covenant_pks: ::prost::alloc::vec::Vec<::prost::bytes::Bytes>,
#[prost(uint32, tag="2")]
pub covenant_quorum: u32,
#[prost(int64, tag="3")]
pub min_staking_value_sat: i64,
#[prost(int64, tag="4")]
pub max_staking_value_sat: i64,
#[prost(uint32, tag="5")]
pub min_staking_time_blocks: u32,
#[prost(uint32, tag="6")]
pub max_staking_time_blocks: u32,
#[prost(bytes="bytes", tag="7")]
pub slashing_pk_script: ::prost::bytes::Bytes,
#[prost(int64, tag="8")]
pub min_slashing_tx_fee_sat: i64,
#[prost(string, tag="9")]
pub slashing_rate: ::prost::alloc::string::String,
#[prost(uint32, tag="10")]
pub unbonding_time_blocks: u32,
#[prost(int64, tag="11")]
pub unbonding_fee_sat: i64,
#[prost(string, tag="12")]
pub min_commission_rate: ::prost::alloc::string::String,
#[prost(uint64, tag="13")]
pub delegation_creation_base_gas_fee: u64,
#[prost(uint64, tag="14")]
pub allow_list_expiration_height: u64,
#[prost(uint32, tag="15")]
pub btc_activation_height: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BtcStakingIbcPacket {
#[prost(message, repeated, tag="1")]
pub new_fp: ::prost::alloc::vec::Vec<NewFinalityProvider>,
#[prost(message, repeated, tag="2")]
pub active_del: ::prost::alloc::vec::Vec<ActiveBtcDelegation>,
#[prost(message, repeated, tag="3")]
pub slashed_del: ::prost::alloc::vec::Vec<SlashedBtcDelegation>,
#[prost(message, repeated, tag="4")]
pub unbonded_del: ::prost::alloc::vec::Vec<UnbondedBtcDelegation>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NewFinalityProvider {
#[prost(message, optional, tag="1")]
pub description: ::core::option::Option<cosmos_sdk_proto::cosmos::staking::v1beta1::Description>,
#[prost(string, tag="2")]
pub commission: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub addr: ::prost::alloc::string::String,
#[prost(string, tag="4")]
pub btc_pk_hex: ::prost::alloc::string::String,
#[prost(message, optional, tag="5")]
pub pop: ::core::option::Option<ProofOfPossessionBtc>,
#[prost(string, tag="8")]
pub consumer_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActiveBtcDelegation {
#[prost(string, tag="1")]
pub staker_addr: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub btc_pk_hex: ::prost::alloc::string::String,
#[prost(string, repeated, tag="3")]
pub fp_btc_pk_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(uint32, tag="4")]
pub start_height: u32,
#[prost(uint32, tag="5")]
pub end_height: u32,
#[prost(uint64, tag="6")]
pub total_sat: u64,
#[prost(bytes="bytes", tag="7")]
pub staking_tx: ::prost::bytes::Bytes,
#[prost(bytes="bytes", tag="8")]
pub slashing_tx: ::prost::bytes::Bytes,
#[prost(bytes="bytes", tag="9")]
pub delegator_slashing_sig: ::prost::bytes::Bytes,
#[prost(message, repeated, tag="10")]
pub covenant_sigs: ::prost::alloc::vec::Vec<CovenantAdaptorSignatures>,
#[prost(uint32, tag="11")]
pub staking_output_idx: u32,
#[prost(uint32, tag="12")]
pub unbonding_time: u32,
#[prost(message, optional, tag="13")]
pub undelegation_info: ::core::option::Option<BtcUndelegationInfo>,
#[prost(uint32, tag="14")]
pub params_version: u32,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BtcUndelegationInfo {
#[prost(bytes="bytes", tag="1")]
pub unbonding_tx: ::prost::bytes::Bytes,
#[prost(bytes="bytes", tag="2")]
pub slashing_tx: ::prost::bytes::Bytes,
#[prost(bytes="bytes", tag="3")]
pub delegator_slashing_sig: ::prost::bytes::Bytes,
#[prost(message, repeated, tag="4")]
pub covenant_slashing_sigs: ::prost::alloc::vec::Vec<CovenantAdaptorSignatures>,
#[prost(message, repeated, tag="5")]
pub covenant_unbonding_sig_list: ::prost::alloc::vec::Vec<SignatureInfo>,
#[prost(message, optional, tag="6")]
pub delegator_unbonding_info: ::core::option::Option<DelegatorUnbondingInfo>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SlashedBtcDelegation {
#[prost(string, tag="1")]
pub staking_tx_hash: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub recovered_fp_btc_sk: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnbondedBtcDelegation {
#[prost(string, tag="1")]
pub staking_tx_hash: ::prost::alloc::string::String,
#[prost(bytes="bytes", tag="2")]
pub unbonding_tx_sig: ::prost::bytes::Bytes,
#[prost(bytes="bytes", tag="3")]
pub stake_spending_tx: ::prost::bytes::Bytes,
#[prost(message, optional, tag="4")]
pub proof: ::core::option::Option<InclusionProof>,
}