4343//!
4444//! node.start().unwrap();
4545//!
46- //! let funding_address = node.new_onchain_address ();
46+ //! let funding_address = node.onchain_payment().new_address ();
4747//!
4848//! // .. fund address ..
4949//!
@@ -130,7 +130,7 @@ use connection::ConnectionManager;
130130use event:: { EventHandler , EventQueue } ;
131131use gossip:: GossipSource ;
132132use liquidity:: LiquiditySource ;
133- use payment:: { Bolt11Payment , SpontaneousPayment } ;
133+ use payment:: { Bolt11Payment , OnchainPayment , SpontaneousPayment } ;
134134use payment_store:: PaymentStore ;
135135pub use payment_store:: { LSPFeeLimits , PaymentDetails , PaymentDirection , PaymentStatus } ;
136136use peer_store:: { PeerInfo , PeerStore } ;
@@ -154,7 +154,6 @@ use lightning_background_processor::process_events_async;
154154use lightning_transaction_sync:: EsploraSyncClient ;
155155
156156use bitcoin:: secp256k1:: PublicKey ;
157- use bitcoin:: { Address , Txid } ;
158157
159158use rand:: Rng ;
160159
@@ -874,38 +873,24 @@ impl Node {
874873 ) )
875874 }
876875
877- /// Retrieve a new on-chain/funding address.
878- pub fn new_onchain_address ( & self ) -> Result < Address , Error > {
879- let funding_address = self . wallet . get_new_address ( ) ?;
880- log_info ! ( self . logger, "Generated new funding address: {}" , funding_address) ;
881- Ok ( funding_address)
882- }
883-
884- /// Send an on-chain payment to the given address.
885- pub fn send_to_onchain_address (
886- & self , address : & bitcoin:: Address , amount_sats : u64 ,
887- ) -> Result < Txid , Error > {
888- let rt_lock = self . runtime . read ( ) . unwrap ( ) ;
889- if rt_lock. is_none ( ) {
890- return Err ( Error :: NotRunning ) ;
891- }
892-
893- let cur_balance = self . wallet . get_balance ( ) ?;
894- if cur_balance. get_spendable ( ) < amount_sats {
895- log_error ! ( self . logger, "Unable to send payment due to insufficient funds." ) ;
896- return Err ( Error :: InsufficientFunds ) ;
897- }
898- self . wallet . send_to_address ( address, Some ( amount_sats) )
876+ /// Returns a payment handler allowing to send and receive on-chain payments.
877+ #[ cfg( not( feature = "uniffi" ) ) ]
878+ pub fn onchain_payment ( & self ) -> OnchainPayment {
879+ OnchainPayment :: new (
880+ Arc :: clone ( & self . runtime ) ,
881+ Arc :: clone ( & self . wallet ) ,
882+ Arc :: clone ( & self . logger ) ,
883+ )
899884 }
900885
901- /// Send an on-chain payment to the given address, draining all the available funds .
902- pub fn send_all_to_onchain_address ( & self , address : & bitcoin :: Address ) -> Result < Txid , Error > {
903- let rt_lock = self . runtime . read ( ) . unwrap ( ) ;
904- if rt_lock . is_none ( ) {
905- return Err ( Error :: NotRunning ) ;
906- }
907-
908- self . wallet . send_to_address ( address , None )
886+ /// Returns a payment handler allowing to send and receive on-chain payments .
887+ # [ cfg ( feature = "uniffi" ) ]
888+ pub fn onchain_payment ( & self ) -> Arc < OnchainPayment > {
889+ Arc :: new ( OnchainPayment :: new (
890+ Arc :: clone ( & self . runtime ) ,
891+ Arc :: clone ( & self . wallet ) ,
892+ Arc :: clone ( & self . logger ) ,
893+ ) )
909894 }
910895
911896 /// Retrieve a list of known channels.
0 commit comments