pub struct SwapInfo {Show 24 fields
pub bitcoin_address: String,
pub created_at: i64,
pub lock_height: i64,
pub payment_hash: Vec<u8>,
pub preimage: Vec<u8>,
pub private_key: Vec<u8>,
pub public_key: Vec<u8>,
pub swapper_public_key: Vec<u8>,
pub script: Vec<u8>,
pub bolt11: Option<String>,
pub paid_msat: u64,
pub total_incoming_txs: u64,
pub confirmed_sats: u64,
pub unconfirmed_sats: u64,
pub status: SwapStatus,
pub refund_tx_ids: Vec<String>,
pub unconfirmed_tx_ids: Vec<String>,
pub confirmed_tx_ids: Vec<String>,
pub min_allowed_deposit: i64,
pub max_allowed_deposit: i64,
pub max_swapper_payable: i64,
pub last_redeem_error: Option<String>,
pub channel_opening_fees: Option<OpeningFeeParams>,
pub confirmed_at: Option<u32>,
}Expand description
Represents the details of an on-going swap.
Once this SwapInfo is created it will be monitored on-chain and its state is saved to the persistent storage.
The SwapInfo has a status which changes accordingly, documented in SwapStatus.
Fields§
§bitcoin_address: StringBitcoin address for this swap. Sats sent to this address will be swapped.
created_at: i64Relative time lock start, received from [SwapperAPI::create_swap].
lock_height: i64Relative time lock for the timeout for the script to be redeemed before swap fails.
payment_hash: Vec<u8>sha256 hash of preimage to used in the claim sript.
preimage: Vec<u8>Secret to claim the swap.
private_key: Vec<u8>Secret claim key for the bitcoin address.
public_key: Vec<u8>Public key in binary format of the private claim private key.
swapper_public_key: Vec<u8>The public key in binary format from the swapping service. Received from [SwapperAPI::create_swap].
script: Vec<u8>The locking script for the generated bitcoin address. Received from [SwapperAPI::create_swap].
bolt11: Option<String>bolt11 invoice to claim the sent funds.
paid_msat: u64Amount of millisatoshis claimed from sent funds and paid for via bolt11 invoice.
total_incoming_txs: u64Total count of transactions sent to the swap address.
confirmed_sats: u64Confirmed onchain sats to be claim with an bolt11 invoice or refunded if swap fails.
unconfirmed_sats: u64Unconfirmed sats waiting to be confirmed onchain.
status: SwapStatusShows the current status of the swap, either Initial or Expired.
refund_tx_ids: Vec<String>Transaction IDs for failed swap attempts.
unconfirmed_tx_ids: Vec<String>Refund transaction IDs for ongoing swap awaiting confirmation.
confirmed_tx_ids: Vec<String>Transaction IDs that have been confirmed on-chain.
min_allowed_deposit: i64The minimum amount of sats one can send in order for the swap to succeed. Received from [SwapperAPI::create_swap].
max_allowed_deposit: i64The maximum amount of sats one can send in order for the swap to succeed. This is determined based on max_swapper_payable and the node’s local balance.
max_swapper_payable: i64The absolute maximum value payable by the swapper. Received from [SwapperAPI::create_swap].
last_redeem_error: Option<String>Error reason for when swap fails.
channel_opening_fees: Option<OpeningFeeParams>The dynamic fees which is set if a channel opening is needed.
This is an optional field for backward compatibility with swaps created before dynamic fees.
Swaps created after dynamic fees were introduced always have this field set.
confirmed_at: Option<u32>The block height when the swap was confirmed.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for SwapInfo
impl<'de> Deserialize<'de> for SwapInfo
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for SwapInfo
impl IntoDartExceptPrimitive for SwapInfo
impl StructuralPartialEq for SwapInfo
Auto Trait Implementations§
impl Freeze for SwapInfo
impl RefUnwindSafe for SwapInfo
impl Send for SwapInfo
impl Sync for SwapInfo
impl Unpin for SwapInfo
impl UnwindSafe for SwapInfo
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Any.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Any.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request