X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=lightning-invoice%2Fsrc%2Futils.rs;h=1f6dc619a560b42b8f928cc8e6096605615e8f6c;hb=8896f6eb7fbde2cad1ce1e8b361b261c6c4d60f2;hp=c2fe5e4aefc533557c0bba8cd9cfef646d4ee938;hpb=e1208bfd66908818604da97e924899d6843078da;p=rust-lightning diff --git a/lightning-invoice/src/utils.rs b/lightning-invoice/src/utils.rs index c2fe5e4a..1f6dc619 100644 --- a/lightning-invoice/src/utils.rs +++ b/lightning-invoice/src/utils.rs @@ -15,7 +15,7 @@ use lightning::ln::channelmanager::{ChannelDetails, ChannelManager, PaymentId, P use lightning::ln::channelmanager::{PhantomRouteHints, MIN_CLTV_EXPIRY_DELTA}; use lightning::ln::inbound_payment::{create, create_from_hash, ExpandedKey}; use lightning::routing::gossip::RoutingFees; -use lightning::routing::router::{InFlightHtlcs, Route, RouteHint, RouteHintHop}; +use lightning::routing::router::{InFlightHtlcs, Route, RouteHint, RouteHintHop, Router}; use lightning::util::logger::Logger; use secp256k1::PublicKey; use core::ops::Deref; @@ -232,8 +232,8 @@ where /// /// `invoice_expiry_delta_secs` describes the number of seconds that the invoice is valid for /// in excess of the current time. -pub fn create_invoice_from_channelmanager( - channelmanager: &ChannelManager, keys_manager: K, logger: L, +pub fn create_invoice_from_channelmanager( + channelmanager: &ChannelManager, keys_manager: K, logger: L, network: Currency, amt_msat: Option, description: String, invoice_expiry_delta_secs: u32 ) -> Result> where @@ -241,6 +241,7 @@ where T::Target: BroadcasterInterface, K::Target: KeysInterface, F::Target: FeeEstimator, + R::Target: Router, L::Target: Logger, { use std::time::SystemTime; @@ -262,8 +263,8 @@ where /// /// `invoice_expiry_delta_secs` describes the number of seconds that the invoice is valid for /// in excess of the current time. -pub fn create_invoice_from_channelmanager_with_description_hash( - channelmanager: &ChannelManager, keys_manager: K, logger: L, +pub fn create_invoice_from_channelmanager_with_description_hash( + channelmanager: &ChannelManager, keys_manager: K, logger: L, network: Currency, amt_msat: Option, description_hash: Sha256, invoice_expiry_delta_secs: u32 ) -> Result> @@ -272,6 +273,7 @@ where T::Target: BroadcasterInterface, K::Target: KeysInterface, F::Target: FeeEstimator, + R::Target: Router, L::Target: Logger, { use std::time::SystemTime; @@ -289,8 +291,8 @@ where /// See [`create_invoice_from_channelmanager_with_description_hash`] /// This version can be used in a `no_std` environment, where [`std::time::SystemTime`] is not /// available and the current time is supplied by the caller. -pub fn create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch( - channelmanager: &ChannelManager, keys_manager: K, logger: L, +pub fn create_invoice_from_channelmanager_with_description_hash_and_duration_since_epoch( + channelmanager: &ChannelManager, keys_manager: K, logger: L, network: Currency, amt_msat: Option, description_hash: Sha256, duration_since_epoch: Duration, invoice_expiry_delta_secs: u32 ) -> Result> @@ -299,6 +301,7 @@ pub fn create_invoice_from_channelmanager_with_description_hash_and_duration_sin T::Target: BroadcasterInterface, K::Target: KeysInterface, F::Target: FeeEstimator, + R::Target: Router, L::Target: Logger, { _create_invoice_from_channelmanager_and_duration_since_epoch( @@ -311,8 +314,8 @@ pub fn create_invoice_from_channelmanager_with_description_hash_and_duration_sin /// See [`create_invoice_from_channelmanager`] /// This version can be used in a `no_std` environment, where [`std::time::SystemTime`] is not /// available and the current time is supplied by the caller. -pub fn create_invoice_from_channelmanager_and_duration_since_epoch( - channelmanager: &ChannelManager, keys_manager: K, logger: L, +pub fn create_invoice_from_channelmanager_and_duration_since_epoch( + channelmanager: &ChannelManager, keys_manager: K, logger: L, network: Currency, amt_msat: Option, description: String, duration_since_epoch: Duration, invoice_expiry_delta_secs: u32 ) -> Result> @@ -321,6 +324,7 @@ pub fn create_invoice_from_channelmanager_and_duration_since_epoch( - channelmanager: &ChannelManager, keys_manager: K, logger: L, +fn _create_invoice_from_channelmanager_and_duration_since_epoch( + channelmanager: &ChannelManager, keys_manager: K, logger: L, network: Currency, amt_msat: Option, description: InvoiceDescription, duration_since_epoch: Duration, invoice_expiry_delta_secs: u32 ) -> Result> @@ -342,6 +346,7 @@ fn _create_invoice_from_channelmanager_and_duration_since_epoch( - channelmanager: &ChannelManager, keys_manager: K, logger: L, +pub fn create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_hash( + channelmanager: &ChannelManager, keys_manager: K, logger: L, network: Currency, amt_msat: Option, description: String, duration_since_epoch: Duration, invoice_expiry_delta_secs: u32, payment_hash: PaymentHash ) -> Result> @@ -367,6 +372,7 @@ pub fn create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_ T::Target: BroadcasterInterface, K::Target: KeysInterface, F::Target: FeeEstimator, + R::Target: Router, L::Target: Logger, { let payment_secret = channelmanager @@ -381,8 +387,8 @@ pub fn create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_ ) } -fn _create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_hash( - channelmanager: &ChannelManager, keys_manager: K, logger: L, +fn _create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_hash( + channelmanager: &ChannelManager, keys_manager: K, logger: L, network: Currency, amt_msat: Option, description: InvoiceDescription, duration_since_epoch: Duration, invoice_expiry_delta_secs: u32, payment_hash: PaymentHash, payment_secret: PaymentSecret ) -> Result> @@ -391,6 +397,7 @@ fn _create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_has T::Target: BroadcasterInterface, K::Target: KeysInterface, F::Target: FeeEstimator, + R::Target: Router, L::Target: Logger, { let our_node_pubkey = channelmanager.get_our_node_id(); @@ -565,12 +572,13 @@ fn filter_channels( .collect::>() } -impl Payer for ChannelManager +impl Payer for ChannelManager where M::Target: chain::Watch<::Signer>, T::Target: BroadcasterInterface, K::Target: KeysInterface, F::Target: FeeEstimator, + R::Target: Router, L::Target: Logger, { fn node_id(&self) -> PublicKey {