@@ -24,7 +24,7 @@ use bitcoin::bech32::u5;
2424use bitcoin:: secp256k1:: ecdh:: SharedSecret ;
2525use bitcoin:: secp256k1:: ecdsa:: { RecoverableSignature , Signature } ;
2626use bitcoin:: secp256k1:: { PublicKey , Scalar , Secp256k1 , Signing } ;
27- use bitcoin:: { Script , Transaction , TxOut , Txid } ;
27+ use bitcoin:: { PackedLockTime , LockTime , Script , Transaction , TxOut , Txid } ;
2828
2929use std:: collections:: HashMap ;
3030use std:: sync:: { Arc , Condvar , Mutex , RwLock } ;
@@ -158,14 +158,14 @@ where
158158 }
159159
160160 pub ( crate ) fn create_funding_transaction (
161- & self , output_script : Script , value_sats : u64 , confirmation_target : ConfirmationTarget ,
161+ & self , output_script : Script , value_sats : u64 , confirmation_target : ConfirmationTarget , locktime : LockTime ,
162162 ) -> Result < Transaction , Error > {
163163 let fee_rate = self . estimate_fee_rate ( confirmation_target) ;
164164
165165 let locked_wallet = self . inner . lock ( ) . unwrap ( ) ;
166166 let mut tx_builder = locked_wallet. build_tx ( ) ;
167167
168- tx_builder. add_recipient ( output_script, value_sats) . fee_rate ( fee_rate) . enable_rbf ( ) ;
168+ tx_builder. add_recipient ( output_script, value_sats) . fee_rate ( fee_rate) . nlocktime ( locktime ) . enable_rbf ( ) ;
169169
170170 let mut psbt = match tx_builder. finish ( ) {
171171 Ok ( ( psbt, _) ) => {
@@ -365,7 +365,7 @@ where
365365 pub fn spend_spendable_outputs < C : Signing > (
366366 & self , descriptors : & [ & SpendableOutputDescriptor ] , outputs : Vec < TxOut > ,
367367 change_destination_script : Script , feerate_sat_per_1000_weight : u32 ,
368- secp_ctx : & Secp256k1 < C > ,
368+ locktime : Option < PackedLockTime > , secp_ctx : & Secp256k1 < C > ,
369369 ) -> Result < Transaction , ( ) > {
370370 let only_non_static = & descriptors
371371 . iter ( )
@@ -377,6 +377,7 @@ where
377377 outputs,
378378 change_destination_script,
379379 feerate_sat_per_1000_weight,
380+ locktime,
380381 secp_ctx,
381382 )
382383 }
0 commit comments