Skip to main content

PaymentMethod

Enum PaymentMethod 

Source
pub enum PaymentMethod {
    Ark(Address),
    Bitcoin(Address<NetworkUnchecked>),
    OutputScript(ScriptBuf),
    Invoice(Invoice),
    Offer(Offer),
    LightningAddress(LightningAddress),
    Lnurl(LnUrl),
    Custom(String),
}
Expand description

Provides a typed mechanism for describing the recipient in a MovementDestination.

Variants§

§

Ark(Address)

An ark::Address for bark.

§

Bitcoin(Address<NetworkUnchecked>)

An onchain bitcoin::Address.

§

OutputScript(ScriptBuf)

An onchain bitcoin::ScriptBuf output, typically used for non-address formats like OP_RETURN.

§

Invoice(Invoice)

Any supported form of lightning Invoice, e.g., Bolt11Invoice and Bolt12Invoice.

§

Offer(Offer)

A reusable BOLT12 Offer for lightning payments.

§

LightningAddress(LightningAddress)

An email-like format used to retrieve a Bolt11Invoice.

§

Lnurl(LnUrl)

A bech32-encoded LNURL-pay link (lnurl1…) resolved to a Bolt11Invoice via an LNURL-Pay request.

§

Custom(String)

An alternative payment method that isn’t native to bark.

Implementations§

Source§

impl PaymentMethod

Source

pub fn is_ark(&self) -> bool

Source

pub fn is_bitcoin(&self) -> bool

Source

pub fn is_custom(&self) -> bool

Source

pub fn is_lightning(&self) -> bool

Returns whether the payment method is a lightning payment method, e.g., BOLT11.

Source

pub fn type_str(&self) -> &'static str

Returns the type tag string for this payment method.

Source

pub fn value_string(&self) -> String

Returns the value as a plain string for this payment method.

Source

pub fn supports_comment(&self) -> bool

Returns whether the payment method supports a comment on payment.

Source

pub fn requires_amount(&self) -> bool

Returns whether the payment method needs an externally provided amount, either because it cannot carry one itself or because it doesn’t carry one.

Invoices and offers can carry their own amount; only amountless ones require an amount upfront. An offer denominated in a fiat currency has no bitcoin amount, so it also requires one.

For PaymentMethod::Custom we can’t tell whether an amount is needed, so we never require one and leave it to whoever handles the custom method.

Source

pub fn from_type_value(type_str: &str, value: &str) -> Result<Self>

Construct a PaymentMethod from a type tag and value string.

Trait Implementations§

Source§

impl Clone for PaymentMethod

Source§

fn clone(&self) -> PaymentMethod

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PaymentMethod

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for PaymentMethod

Source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for PaymentMethod

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for PaymentMethod

Source§

impl From<Address<NetworkUnchecked>> for PaymentMethod

Source§

fn from(addr: Address<NetworkUnchecked>) -> Self

Converts to this type from the input type.
Source§

impl From<Address> for PaymentMethod

Source§

fn from(addr: Address) -> Self

Converts to this type from the input type.
Source§

impl From<Address> for PaymentMethod

Source§

fn from(addr: Address<NetworkChecked>) -> Self

Converts to this type from the input type.
Source§

impl From<Bolt11Invoice> for PaymentMethod

Source§

fn from(invoice: Bolt11Invoice) -> Self

Converts to this type from the input type.
Source§

impl From<Bolt12Invoice> for PaymentMethod

Source§

fn from(invoice: Bolt12Invoice) -> Self

Converts to this type from the input type.
Source§

impl From<Invoice> for PaymentMethod

Source§

fn from(invoice: Invoice) -> Self

Converts to this type from the input type.
Source§

impl From<LightningAddress> for PaymentMethod

Source§

fn from(addr: LightningAddress) -> Self

Converts to this type from the input type.
Source§

impl From<LnUrl> for PaymentMethod

Source§

fn from(lnurl: LnUrl) -> Self

Converts to this type from the input type.
Source§

impl From<Offer> for PaymentMethod

Source§

fn from(offer: Offer) -> Self

Converts to this type from the input type.
Source§

impl Hash for PaymentMethod

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for PaymentMethod

Source§

fn eq(&self, other: &PaymentMethod) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for PaymentMethod

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for PaymentMethod

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compares self with key and returns true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSync for T
where T: Sync,

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more