@@ -171,7 +171,8 @@ mod integration {
171171
172172 use bitcoin:: Address ;
173173 use http:: StatusCode ;
174- use payjoin:: receive:: v2:: { PayjoinProposal , Receiver , UncheckedProposal } ;
174+ use payjoin:: persist:: NoopPersister ;
175+ use payjoin:: receive:: v2:: { NewReceiver , PayjoinProposal , Receiver , UncheckedProposal } ;
175176 use payjoin:: send:: v2:: SenderBuilder ;
176177 use payjoin:: { OhttpKeys , PjUri , UriExt } ;
177178 use payjoin_test_utils:: { BoxSendSyncError , TestServices } ;
@@ -205,8 +206,9 @@ mod integration {
205206 let ohttp_relay = services. ohttp_relay_url ( ) ;
206207 let mock_address = Address :: from_str ( "tb1q6d3a2w975yny0asuvd9a67ner4nks58ff0q8g4" ) ?
207208 . assume_checked ( ) ;
208- let mut bad_initializer =
209- Receiver :: new ( mock_address, directory, bad_ohttp_keys, None ) ?;
209+ let new_receiver = NewReceiver :: new ( mock_address, directory, bad_ohttp_keys, None ) ?;
210+ let storage_token = new_receiver. persist ( & mut NoopPersister ) ?;
211+ let mut bad_initializer = Receiver :: load ( storage_token, & NoopPersister ) ?;
210212 let ( req, _ctx) = bad_initializer. extract_req ( & ohttp_relay) ?;
211213 agent
212214 . post ( req. url )
@@ -242,12 +244,16 @@ mod integration {
242244 // Inside the Receiver:
243245 let address = receiver. get_new_address ( None , None ) ?. assume_checked ( ) ;
244246 // test session with expiry in the past
245- let mut expired_receiver = Receiver :: new (
247+ let new_receiver = NewReceiver :: new (
246248 address. clone ( ) ,
247249 directory. clone ( ) ,
248250 ohttp_keys. clone ( ) ,
249251 Some ( Duration :: from_secs ( 0 ) ) ,
250252 ) ?;
253+ let storage_token =
254+ new_receiver. persist ( & mut NoopPersister ) . map_err ( |e| e. to_string ( ) ) ?;
255+ let mut expired_receiver =
256+ Receiver :: load ( storage_token, & NoopPersister ) . map_err ( |e| e. to_string ( ) ) ?;
251257 match expired_receiver. extract_req ( & ohttp_relay) {
252258 // Internal error types are private, so check against a string
253259 Err ( err) => assert ! ( err. to_string( ) . contains( "expired" ) ) ,
@@ -294,8 +300,12 @@ mod integration {
294300 let address = receiver. get_new_address ( None , None ) ?. assume_checked ( ) ;
295301
296302 // test session with expiry in the future
303+ let new_receiver =
304+ NewReceiver :: new ( address. clone ( ) , directory. clone ( ) , ohttp_keys. clone ( ) , None ) ?;
305+ let storage_token =
306+ new_receiver. persist ( & mut NoopPersister ) . map_err ( |e| e. to_string ( ) ) ?;
297307 let mut session =
298- Receiver :: new ( address . clone ( ) , directory . clone ( ) , ohttp_keys . clone ( ) , None ) ?;
308+ Receiver :: load ( storage_token , & NoopPersister ) . map_err ( |e| e . to_string ( ) ) ?;
299309 println ! ( "session: {:#?}" , & session) ;
300310 // Poll receive request
301311 let ohttp_relay = services. ohttp_relay_url ( ) ;
@@ -465,9 +475,12 @@ mod integration {
465475 let directory = services. directory_url ( ) ;
466476 let ohttp_keys = services. fetch_ohttp_keys ( ) . await ?;
467477 let address = receiver. get_new_address ( None , None ) ?. assume_checked ( ) ;
468-
478+ let new_receiver =
479+ NewReceiver :: new ( address, directory. clone ( ) , ohttp_keys. clone ( ) , None ) ?;
480+ let storage_token =
481+ new_receiver. persist ( & mut NoopPersister ) . map_err ( |e| e. to_string ( ) ) ?;
469482 let mut session =
470- Receiver :: new ( address , directory . clone ( ) , ohttp_keys . clone ( ) , None ) ?;
483+ Receiver :: load ( storage_token , & NoopPersister ) . map_err ( |e| e . to_string ( ) ) ?;
471484
472485 // **********************
473486 // Inside the V1 Sender:
@@ -690,7 +703,8 @@ mod integration {
690703 #[ cfg( feature = "_multiparty" ) ]
691704 mod multiparty {
692705 use bitcoin:: ScriptBuf ;
693- use payjoin:: receive:: v2:: Receiver ;
706+ use payjoin:: persist:: NoopPersister ;
707+ use payjoin:: receive:: v2:: { NewReceiver , Receiver } ;
694708 use payjoin:: send:: multiparty:: {
695709 GetContext as MultiPartyGetContext , SenderBuilder as MultiPartySenderBuilder ,
696710 } ;
@@ -738,12 +752,16 @@ mod integration {
738752 // Senders will generate a sweep psbt and send PSBT to receiver subdir
739753 for sender in senders. iter ( ) {
740754 let address = receiver. get_new_address ( None , None ) ?. assume_checked ( ) ;
741- let receiver_session = Receiver :: new (
755+ let new_receiver = NewReceiver :: new (
742756 address. clone ( ) ,
743757 directory. clone ( ) ,
744758 ohttp_keys. clone ( ) ,
745759 None ,
746760 ) ?;
761+ let storage_token =
762+ new_receiver. persist ( & mut NoopPersister ) . map_err ( |e| e. to_string ( ) ) ?;
763+ let receiver_session =
764+ Receiver :: load ( storage_token, & NoopPersister ) . map_err ( |e| e. to_string ( ) ) ?;
747765 let pj_uri = receiver_session. pj_uri ( ) ;
748766 let psbt = build_sweep_psbt ( sender, & pj_uri) ?;
749767 let sender_ctx = MultiPartySenderBuilder :: new ( psbt. clone ( ) , pj_uri. clone ( ) )
0 commit comments