#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EvmAddress {
#[prost(bytes = "vec", tag = "1")]
pub value: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct U256 {
#[prost(bytes = "vec", tag = "1")]
pub value: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Bytes32 {
#[prost(bytes = "vec", tag = "1")]
pub value: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MultiChainAddress {
#[prost(oneof = "multi_chain_address::ChainAddress", tags = "1")]
pub chain_address: ::core::option::Option<multi_chain_address::ChainAddress>,
}
pub mod multi_chain_address {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum ChainAddress {
#[prost(message, tag = "1")]
Evm(super::EvmAddress),
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TokenAmount {
#[prost(message, optional, tag = "1")]
pub token: ::core::option::Option<MultiChainAddress>,
#[prost(message, optional, tag = "2")]
pub amount: ::core::option::Option<U256>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SpendSpec {
#[prost(message, optional, tag = "1")]
pub src_spender: ::core::option::Option<MultiChainAddress>,
#[prost(uint32, tag = "2")]
pub src_domain: u32,
#[prost(message, optional, tag = "3")]
pub src_token: ::core::option::Option<MultiChainAddress>,
#[prost(message, optional, tag = "4")]
pub src_deposit_contract: ::core::option::Option<MultiChainAddress>,
#[prost(uint32, tag = "5")]
pub dst_domain: u32,
#[prost(message, optional, tag = "6")]
pub dst_token: ::core::option::Option<MultiChainAddress>,
#[prost(message, optional, tag = "7")]
pub dst_delivery_contract: ::core::option::Option<MultiChainAddress>,
#[prost(message, optional, tag = "8")]
pub dst_recipient: ::core::option::Option<MultiChainAddress>,
#[prost(message, optional, tag = "9")]
pub dst_caller: ::core::option::Option<MultiChainAddress>,
#[prost(message, optional, tag = "10")]
pub amount: ::core::option::Option<U256>,
#[prost(message, optional, tag = "11")]
pub salt: ::core::option::Option<Bytes32>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SpendIntent {
#[prost(message, optional, tag = "1")]
pub spec: ::core::option::Option<SpendSpec>,
#[prost(message, optional, tag = "2")]
pub max_fee: ::core::option::Option<U256>,
#[prost(uint64, tag = "3")]
pub expiry_height: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SignedSpendIntent {
#[prost(message, optional, tag = "1")]
pub intent: ::core::option::Option<SpendIntent>,
#[prost(bytes = "vec", tag = "2")]
pub signature: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SpendAttestationPending {}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SpendAttestationExecuted {
#[prost(uint64, tag = "1")]
pub height: u64,
#[prost(bytes = "vec", tag = "2")]
pub tx_hash: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SpendAttestationExecutedAndSettled {
#[prost(message, optional, tag = "1")]
pub execution: ::core::option::Option<SpendAttestationExecuted>,
#[prost(uint64, tag = "2")]
pub settlement_height: u64,
#[prost(bytes = "vec", tag = "3")]
pub settlement_tx_hash: ::prost::alloc::vec::Vec<u8>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SpendAttestationExpired {}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SpendAttestation {
#[prost(bytes = "vec", tag = "1")]
pub bytes: ::prost::alloc::vec::Vec<u8>,
#[prost(bytes = "vec", tag = "2")]
pub signature: ::prost::alloc::vec::Vec<u8>,
#[prost(uint64, tag = "3")]
pub expiry_height: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AttestedSpendIntent {
#[prost(message, optional, tag = "1")]
pub intent: ::core::option::Option<SignedSpendIntent>,
#[prost(message, optional, tag = "2")]
pub attestation: ::core::option::Option<SpendAttestation>,
#[prost(message, optional, tag = "3")]
pub attestation_status: ::core::option::Option<SpendAttestationStatus>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SpendFeesBreakdown {
#[prost(message, optional, tag = "1")]
pub fee_token: ::core::option::Option<MultiChainAddress>,
#[prost(message, optional, tag = "2")]
pub total_fees: ::core::option::Option<U256>,
#[prost(message, optional, tag = "3")]
pub usdc_minted: ::core::option::Option<U256>,
#[prost(message, optional, tag = "4")]
pub usdc_fees: ::core::option::Option<U256>,
#[prost(message, optional, tag = "5")]
pub converted_usdc_fees: ::core::option::Option<U256>,
#[prost(message, optional, tag = "6")]
pub claim_fee: ::core::option::Option<U256>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct SpendAttestationStatus {
#[prost(oneof = "spend_attestation_status::Status", tags = "6, 7, 8, 9")]
pub status: ::core::option::Option<spend_attestation_status::Status>,
}
pub mod spend_attestation_status {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Status {
#[prost(message, tag = "6")]
Pending(super::SpendAttestationPending),
#[prost(message, tag = "7")]
Executed(super::SpendAttestationExecuted),
#[prost(message, tag = "8")]
Expired(super::SpendAttestationExpired),
#[prost(message, tag = "9")]
ExecutedAndSettled(super::SpendAttestationExecutedAndSettled),
}
}