[−][src]Struct lightning_invoice::InvoiceBuilder
Builder for Invoice
s. It's the most convenient and advised way to use this library. It ensures
that only a semantically and syntactically correct Invoice can be built using it.
extern crate secp256k1; extern crate lightning_invoice; extern crate bitcoin_hashes; use bitcoin_hashes::Hash; use bitcoin_hashes::sha256; use secp256k1::Secp256k1; use secp256k1::key::SecretKey; use lightning_invoice::{Currency, InvoiceBuilder}; let private_key = SecretKey::from_slice( &[ 0xe1, 0x26, 0xf6, 0x8f, 0x7e, 0xaf, 0xcc, 0x8b, 0x74, 0xf5, 0x4d, 0x26, 0x9f, 0xe2, 0x06, 0xbe, 0x71, 0x50, 0x00, 0xf9, 0x4d, 0xac, 0x06, 0x7d, 0x1c, 0x04, 0xa8, 0xca, 0x3b, 0x2d, 0xb7, 0x34 ][..] ).unwrap(); let payment_hash = sha256::Hash::from_slice(&[0; 32][..]).unwrap(); let invoice = InvoiceBuilder::new(Currency::Bitcoin) .description("Coins pls!".into()) .payment_hash(payment_hash) .current_timestamp() .build_signed(|hash| { Secp256k1::new().sign_recoverable(hash, &private_key) }) .unwrap(); assert!(invoice.to_string().starts_with("lnbc1"));
Type parameters
The two parameters D
and H
signal if the builder already contains the correct amount of the
given field:
D
: exactly oneDescription
orDescriptionHash
H
: exactly onePaymentHash
T
: the timestamp is set
Implementations
impl InvoiceBuilder<False, False, False>
[src]
pub fn new(currrency: Currency) -> Self
[src]
Construct new, empty InvoiceBuilder
. All necessary fields have to be filled first before
InvoiceBuilder::build(self)
becomes available.
impl<D: Bool, H: Bool, T: Bool> InvoiceBuilder<D, H, T>
[src]
pub fn amount_pico_btc(mut self: Self, amount: u64) -> Self
[src]
Sets the amount in pico BTC. The optimal SI prefix is choosen automatically.
pub fn payee_pub_key(mut self: Self, pub_key: PublicKey) -> Self
[src]
Sets the payee's public key.
pub fn expiry_time(mut self: Self, expiry_time: Duration) -> Self
[src]
Sets the expiry time
pub fn min_final_cltv_expiry(mut self: Self, min_final_cltv_expiry: u64) -> Self
[src]
Sets min_final_cltv_expiry
.
pub fn fallback(mut self: Self, fallback: Fallback) -> Self
[src]
Adds a fallback address.
pub fn route(mut self: Self, route: Vec<RouteHop>) -> Self
[src]
Adds a private route.
impl<D: Bool, H: Bool> InvoiceBuilder<D, H, True>
[src]
pub fn build_raw(self) -> Result<RawInvoice, CreationError>
[src]
Builds a RawInvoice
if no CreationError
occurred while construction any of the fields.
impl<H: Bool, T: Bool> InvoiceBuilder<False, H, T>
[src]
pub fn description(
mut self: Self,
description: String
) -> InvoiceBuilder<True, H, T>
[src]
mut self: Self,
description: String
) -> InvoiceBuilder<True, H, T>
Set the description. This function is only available if no description (hash) was set.
pub fn description_hash(
mut self: Self,
description_hash: Hash
) -> InvoiceBuilder<True, H, T>
[src]
mut self: Self,
description_hash: Hash
) -> InvoiceBuilder<True, H, T>
Set the description hash. This function is only available if no description (hash) was set.
impl<D: Bool, T: Bool> InvoiceBuilder<D, False, T>
[src]
pub fn payment_hash(mut self: Self, hash: Hash) -> InvoiceBuilder<D, True, T>
[src]
Set the payment hash. This function is only available if no payment hash was set.
impl<D: Bool, H: Bool> InvoiceBuilder<D, H, False>
[src]
pub fn timestamp(mut self: Self, time: SystemTime) -> InvoiceBuilder<D, H, True>
[src]
Sets the timestamp.
pub fn current_timestamp(mut self: Self) -> InvoiceBuilder<D, H, True>
[src]
Sets the timestamp to the current UNIX timestamp.
impl InvoiceBuilder<True, True, True>
[src]
pub fn build_signed<F>(self, sign_function: F) -> Result<Invoice, CreationError> where
F: FnOnce(&Message) -> RecoverableSignature,
[src]
F: FnOnce(&Message) -> RecoverableSignature,
Builds and signs an invoice using the supplied sign_function
. This function MAY NOT fail
and MUST produce a recoverable signature valid for the given hash and if applicable also for
the included payee public key.
pub fn try_build_signed<F, E>(
self,
sign_function: F
) -> Result<Invoice, SignOrCreationError<E>> where
F: FnOnce(&Message) -> Result<RecoverableSignature, E>,
[src]
self,
sign_function: F
) -> Result<Invoice, SignOrCreationError<E>> where
F: FnOnce(&Message) -> Result<RecoverableSignature, E>,
Builds and signs an invoice using the supplied sign_function
. This function MAY fail with
an error of type E
and MUST produce a recoverable signature valid for the given hash and
if applicable also for the included payee public key.
Trait Implementations
impl<D: Clone + Bool, H: Clone + Bool, T: Clone + Bool> Clone for InvoiceBuilder<D, H, T>
[src]
pub fn clone(&self) -> InvoiceBuilder<D, H, T>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<D: Debug + Bool, H: Debug + Bool, T: Debug + Bool> Debug for InvoiceBuilder<D, H, T>
[src]
impl<D: Eq + Bool, H: Eq + Bool, T: Eq + Bool> Eq for InvoiceBuilder<D, H, T>
[src]
impl<D: PartialEq + Bool, H: PartialEq + Bool, T: PartialEq + Bool> PartialEq<InvoiceBuilder<D, H, T>> for InvoiceBuilder<D, H, T>
[src]
pub fn eq(&self, other: &InvoiceBuilder<D, H, T>) -> bool
[src]
pub fn ne(&self, other: &InvoiceBuilder<D, H, T>) -> bool
[src]
impl<D: Bool, H: Bool, T: Bool> StructuralEq for InvoiceBuilder<D, H, T>
[src]
impl<D: Bool, H: Bool, T: Bool> StructuralPartialEq for InvoiceBuilder<D, H, T>
[src]
Auto Trait Implementations
impl<D, H, T> RefUnwindSafe for InvoiceBuilder<D, H, T> where
D: RefUnwindSafe,
H: RefUnwindSafe,
T: RefUnwindSafe,
[src]
D: RefUnwindSafe,
H: RefUnwindSafe,
T: RefUnwindSafe,
impl<D, H, T> Send for InvoiceBuilder<D, H, T> where
D: Send,
H: Send,
T: Send,
[src]
D: Send,
H: Send,
T: Send,
impl<D, H, T> Sync for InvoiceBuilder<D, H, T> where
D: Sync,
H: Sync,
T: Sync,
[src]
D: Sync,
H: Sync,
T: Sync,
impl<D, H, T> Unpin for InvoiceBuilder<D, H, T> where
D: Unpin,
H: Unpin,
T: Unpin,
[src]
D: Unpin,
H: Unpin,
T: Unpin,
impl<D, H, T> UnwindSafe for InvoiceBuilder<D, H, T> where
D: UnwindSafe,
H: UnwindSafe,
T: UnwindSafe,
[src]
D: UnwindSafe,
H: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,