@@ -129,11 +129,11 @@ class ProcessPsbtCallback implements payjoin.ProcessPsbt {
129129
130130payjoin.Initialized create_receiver_context (
131131 bitcoin.Address address,
132- payjoin. Url directory,
132+ String directory,
133133 payjoin.OhttpKeys ohttp_keys,
134134 InMemoryReceiverPersister persister) {
135135 var receiver = payjoin.UninitializedReceiver ()
136- .createSession (address, directory. toString () , ohttp_keys, 600 )
136+ .createSession (address, directory, ohttp_keys, null )
137137 .save (persister);
138138 return receiver;
139139}
@@ -175,15 +175,18 @@ List<payjoin.InputPair> get_inputs(payjoin.RpcClient rpc_connection) {
175175 return inputs;
176176}
177177
178- process_provisional_proposal (
179- proposal, InMemoryReceiverPersister recv_persister) async {
178+ Future <payjoin.PayjoinProposalReceiveSession > process_provisional_proposal (
179+ payjoin.ProvisionalProposal proposal,
180+ InMemoryReceiverPersister recv_persister) async {
180181 final payjoin_proposal = proposal
181182 .finalizeProposal (ProcessPsbtCallback (receiver), 1 , 10 )
182183 .save (recv_persister);
183184 return payjoin.PayjoinProposalReceiveSession (payjoin_proposal);
184185}
185186
186- process_wants_inputs (proposal, InMemoryReceiverPersister recv_persister) async {
187+ Future <payjoin.PayjoinProposalReceiveSession > process_wants_inputs (
188+ payjoin.WantsInputs proposal,
189+ InMemoryReceiverPersister recv_persister) async {
187190 final provisional_proposal = proposal
188191 .contributeInputs (get_inputs (receiver))
189192 .commitInputs ()
@@ -192,46 +195,53 @@ process_wants_inputs(proposal, InMemoryReceiverPersister recv_persister) async {
192195 provisional_proposal, recv_persister);
193196}
194197
195- process_wants_outputs (
196- proposal, InMemoryReceiverPersister recv_persister) async {
198+ Future <payjoin.PayjoinProposalReceiveSession > process_wants_outputs (
199+ payjoin.WantsOutputs proposal,
200+ InMemoryReceiverPersister recv_persister) async {
197201 final wants_inputs = proposal.commitOutputs ().save (recv_persister);
198202 return await process_wants_inputs (wants_inputs, recv_persister);
199203}
200204
201- process_outputs_unknown (
202- proposal, InMemoryReceiverPersister recv_persister) async {
205+ Future <payjoin.PayjoinProposalReceiveSession > process_outputs_unknown (
206+ payjoin.OutputsUnknown proposal,
207+ InMemoryReceiverPersister recv_persister) async {
203208 final wants_outputs = proposal
204209 .identifyReceiverOutputs (IsScriptOwnedCallback (receiver))
205210 .save (recv_persister);
206211 return await process_wants_outputs (wants_outputs, recv_persister);
207212}
208213
209- process_maybe_inputs_seen (
210- proposal, InMemoryReceiverPersister recv_persister) async {
214+ Future <payjoin.PayjoinProposalReceiveSession > process_maybe_inputs_seen (
215+ payjoin.MaybeInputsSeen proposal,
216+ InMemoryReceiverPersister recv_persister) async {
211217 final outputs_unknown = proposal
212218 .checkNoInputsSeenBefore (CheckInputsNotSeenCallback (receiver))
213219 .save (recv_persister);
214220 return await process_outputs_unknown (outputs_unknown, recv_persister);
215221}
216222
217- process_maybe_inputs_owned (
218- proposal, InMemoryReceiverPersister recv_persister) async {
223+ Future <payjoin.PayjoinProposalReceiveSession > process_maybe_inputs_owned (
224+ payjoin.MaybeInputsOwned proposal,
225+ InMemoryReceiverPersister recv_persister) async {
219226 final maybe_inputs_owned = proposal
220227 .checkInputsNotOwned (IsScriptOwnedCallback (receiver))
221228 .save (recv_persister);
222229 return await process_maybe_inputs_seen (maybe_inputs_owned, recv_persister);
223230}
224231
225- process_unchecked_proposal (
226- proposal, InMemoryReceiverPersister recv_persister) async {
232+ Future <payjoin.PayjoinProposalReceiveSession > process_unchecked_proposal (
233+ payjoin.UncheckedProposal proposal,
234+ InMemoryReceiverPersister recv_persister) async {
227235 final unchecked_proposal = proposal
228236 .checkBroadcastSuitability (null , MempoolAcceptanceCallback (receiver))
229237 .save (recv_persister);
230238 return await process_maybe_inputs_owned (unchecked_proposal, recv_persister);
231239}
232240
233- Future <payjoin.ReceiveSession ?> retrieve_receiver_proposal (receiver,
234- InMemoryReceiverPersister recv_persister, payjoin.Url ohttp_relay) async {
241+ Future <payjoin.ReceiveSession ?> retrieve_receiver_proposal (
242+ payjoin.Initialized receiver,
243+ InMemoryReceiverPersister recv_persister,
244+ payjoin.Url ohttp_relay) async {
235245 var agent = http.Client ();
236246 var request = receiver.extractReq (ohttp_relay.toString ());
237247 var response = await agent.post (Uri .https (request.request.url.toString ()),
@@ -244,45 +254,53 @@ Future<payjoin.ReceiveSession?> retrieve_receiver_proposal(receiver,
244254 return null ;
245255 }
246256 var proposal = res.success ();
247- return await process_unchecked_proposal (proposal, recv_persister);
257+ return await process_unchecked_proposal (
258+ proposal as payjoin.UncheckedProposal , recv_persister);
248259}
249260
250261Future <payjoin.ReceiveSession ?> process_receiver_proposal (
251262 payjoin.ReceiveSession receiver,
252263 InMemoryReceiverPersister recv_persister,
253264 payjoin.Url ohttp_relay) async {
254265 if (receiver is payjoin.Initialized ) {
255- var res =
256- await retrieve_receiver_proposal ( receiver, recv_persister, ohttp_relay);
266+ var res = await retrieve_receiver_proposal (
267+ receiver as payjoin. Initialized , recv_persister, ohttp_relay);
257268 if (res == null ) {
258269 return null ;
259270 }
260271 return res;
261272 }
262273
263274 if (receiver is payjoin.UncheckedProposal ) {
264- return await process_unchecked_proposal (receiver, recv_persister);
275+ return await process_unchecked_proposal (
276+ receiver as payjoin.UncheckedProposal , recv_persister);
265277 }
266278 if (receiver is payjoin.MaybeInputsOwned ) {
267- return await process_maybe_inputs_owned (receiver, recv_persister);
279+ return await process_maybe_inputs_owned (
280+ receiver as payjoin.MaybeInputsOwned , recv_persister);
268281 }
269282 if (receiver is payjoin.MaybeInputsSeen ) {
270- return await process_maybe_inputs_seen (receiver, recv_persister);
283+ return await process_maybe_inputs_seen (
284+ receiver as payjoin.MaybeInputsSeen , recv_persister);
271285 }
272286 if (receiver is payjoin.OutputsUnknown ) {
273- return await process_outputs_unknown (receiver, recv_persister);
287+ return await process_outputs_unknown (
288+ receiver as payjoin.OutputsUnknown , recv_persister);
274289 }
275290 if (receiver is payjoin.WantsOutputs ) {
276- return await process_wants_outputs (receiver, recv_persister);
291+ return await process_wants_outputs (
292+ receiver as payjoin.WantsOutputs , recv_persister);
277293 }
278294 if (receiver is payjoin.WantsInputs ) {
279- return await process_wants_inputs (receiver, recv_persister);
295+ return await process_wants_inputs (
296+ receiver as payjoin.WantsInputs , recv_persister);
280297 }
281298 if (receiver is payjoin.ProvisionalProposal ) {
282- return await process_provisional_proposal (receiver, recv_persister);
299+ return await process_provisional_proposal (
300+ receiver as payjoin.ProvisionalProposal , recv_persister);
283301 }
284302 if (receiver is payjoin.PayjoinProposal ) {
285- return receiver;
303+ return receiver as payjoin. PayjoinProposalReceiveSession ;
286304 }
287305
288306 throw Exception ("Unknown receiver state: $receiver " );
@@ -296,7 +314,7 @@ void main() {
296314 receiver = env.getReceiver ();
297315 sender = env.getSender ();
298316 var receiver_address = bitcoin.Address (
299- jsonEncode (receiver.call ("getnewaddress" , [])),
317+ jsonDecode (receiver.call ("getnewaddress" , [])),
300318 bitcoin.Network .regtest);
301319 var services = payjoin.TestServices .initialize ();
302320
@@ -305,31 +323,26 @@ void main() {
305323 var ohttp_keys = services.fetchOhttpKeys ();
306324 var ohttp_relay = services.ohttpRelayUrl ();
307325 var agent = http.Client ();
308- print ("Gets here: 1" );
309326
310327 // **********************
311328 // Inside the Receiver:
312329 var recv_persister = InMemoryReceiverPersister ("1" );
313330 var sender_persister = InMemorySenderPersister ("1" );
314- print ("Gets here: 2" );
315331 var session = create_receiver_context (
316332 receiver_address, directory, ohttp_keys, recv_persister);
317- print ("Gets here: 3" );
318- // var process_response =
319- // await process_receiver_proposal(session, recv_persister, ohttp_relay);
333+ // var process_response = await process_receiver_proposal(
334+ // session as payjoin.ReceiveSession, recv_persister, ohttp_relay);
320335 // expect(process_response, isNull);
321336
322337 // **********************
323338 // Inside the Sender:
324339 // Create a funded PSBT (not broadcasted) to address with amount given in the pj_uri
325- print ("Gets here: 4" );
326340 var pj_uri = session.pjUri ();
327341 var psbt = build_sweep_psbt (sender, pj_uri);
328342 payjoin.WithReplyKey req_ctx =
329343 payjoin.SenderBuilder (psbt.toString (), pj_uri)
330344 .buildRecommended (1000 )
331345 .save (sender_persister);
332- print ("Gets here: 5" );
333346 payjoin.RequestV2PostContext request =
334347 req_ctx.extractV2 (ohttp_relay.toString ());
335348 var response = await agent.post (Uri .https (request.request.url.toString ()),
0 commit comments