Skip to content

Commit 87de5dd

Browse files
authored
Rename context to session_context (#953)
Rename for clarity. As of e0e6dff multiple typestates have fields that represent some "context". Related ticket: #952
2 parents e0e6dff + 61528e2 commit 87de5dd

File tree

2 files changed

+87
-50
lines changed

2 files changed

+87
-50
lines changed

payjoin/src/core/receive/v2/mod.rs

Lines changed: 78 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,10 @@ impl Receiver<Initialized> {
343343
MaybeFatalTransitionWithNoResults::success(
344344
SessionEvent::UncheckedProposal((proposal.clone(), self.context.e.clone())),
345345
Receiver {
346-
state: UncheckedProposal { v1: proposal, context: self.state.context.clone() },
346+
state: UncheckedProposal {
347+
v1: proposal,
348+
session_context: self.state.context.clone(),
349+
},
347350
},
348351
)
349352
} else {
@@ -442,7 +445,7 @@ impl Receiver<Initialized> {
442445
let new_state = Receiver {
443446
state: UncheckedProposal {
444447
v1: event,
445-
context: SessionContext { e: reply_key, ..self.state.context },
448+
session_context: SessionContext { e: reply_key, ..self.state.context },
446449
},
447450
};
448451

@@ -458,7 +461,7 @@ impl Receiver<Initialized> {
458461
#[derive(Debug, Clone, PartialEq)]
459462
pub struct UncheckedProposal {
460463
pub(crate) v1: v1::UncheckedProposal,
461-
pub(crate) context: SessionContext,
464+
pub(crate) session_context: SessionContext,
462465
}
463466

464467
impl State for UncheckedProposal {}
@@ -511,7 +514,12 @@ impl Receiver<UncheckedProposal> {
511514
};
512515
MaybeFatalTransition::success(
513516
SessionEvent::MaybeInputsOwned(inner.clone()),
514-
Receiver { state: MaybeInputsOwned { v1: inner, context: self.context.clone() } },
517+
Receiver {
518+
state: MaybeInputsOwned {
519+
v1: inner,
520+
session_context: self.session_context.clone(),
521+
},
522+
},
515523
)
516524
}
517525

@@ -525,20 +533,24 @@ impl Receiver<UncheckedProposal> {
525533
let inner = self.state.v1.assume_interactive_receiver();
526534
NextStateTransition::success(
527535
SessionEvent::MaybeInputsOwned(inner.clone()),
528-
Receiver { state: MaybeInputsOwned { v1: inner, context: self.state.context } },
536+
Receiver {
537+
state: MaybeInputsOwned { v1: inner, session_context: self.state.session_context },
538+
},
529539
)
530540
}
531541

532542
pub(crate) fn apply_maybe_inputs_owned(self, v1: v1::MaybeInputsOwned) -> ReceiveSession {
533-
let new_state = Receiver { state: MaybeInputsOwned { v1, context: self.state.context } };
543+
let new_state = Receiver {
544+
state: MaybeInputsOwned { v1, session_context: self.state.session_context },
545+
};
534546
ReceiveSession::MaybeInputsOwned(new_state)
535547
}
536548
}
537549

538550
#[derive(Debug, Clone, PartialEq)]
539551
pub struct MaybeInputsOwned {
540552
v1: v1::MaybeInputsOwned,
541-
context: SessionContext,
553+
session_context: SessionContext,
542554
}
543555

544556
impl State for MaybeInputsOwned {}
@@ -583,20 +595,23 @@ impl Receiver<MaybeInputsOwned> {
583595
};
584596
MaybeFatalTransition::success(
585597
SessionEvent::MaybeInputsSeen(inner.clone()),
586-
Receiver { state: MaybeInputsSeen { v1: inner, context: self.state.context } },
598+
Receiver {
599+
state: MaybeInputsSeen { v1: inner, session_context: self.state.session_context },
600+
},
587601
)
588602
}
589603

590604
pub(crate) fn apply_maybe_inputs_seen(self, v1: v1::MaybeInputsSeen) -> ReceiveSession {
591-
let new_state = Receiver { state: MaybeInputsSeen { v1, context: self.state.context } };
605+
let new_state =
606+
Receiver { state: MaybeInputsSeen { v1, session_context: self.state.session_context } };
592607
ReceiveSession::MaybeInputsSeen(new_state)
593608
}
594609
}
595610

596611
#[derive(Debug, Clone, PartialEq)]
597612
pub struct MaybeInputsSeen {
598613
v1: v1::MaybeInputsSeen,
599-
context: SessionContext,
614+
session_context: SessionContext,
600615
}
601616

602617
impl State for MaybeInputsSeen {}
@@ -633,20 +648,24 @@ impl Receiver<MaybeInputsSeen> {
633648
};
634649
MaybeFatalTransition::success(
635650
SessionEvent::OutputsUnknown(inner.clone()),
636-
Receiver { state: OutputsUnknown { inner, context: self.state.context } },
651+
Receiver {
652+
state: OutputsUnknown { inner, session_context: self.state.session_context },
653+
},
637654
)
638655
}
639656

640657
pub(crate) fn apply_outputs_unknown(self, inner: v1::OutputsUnknown) -> ReceiveSession {
641-
let new_state = Receiver { state: OutputsUnknown { inner, context: self.state.context } };
658+
let new_state = Receiver {
659+
state: OutputsUnknown { inner, session_context: self.state.session_context },
660+
};
642661
ReceiveSession::OutputsUnknown(new_state)
643662
}
644663
}
645664

646665
#[derive(Debug, Clone, PartialEq)]
647666
pub struct OutputsUnknown {
648667
inner: v1::OutputsUnknown,
649-
context: SessionContext,
668+
session_context: SessionContext,
650669
}
651670

652671
impl State for OutputsUnknown {}
@@ -688,20 +707,23 @@ impl Receiver<OutputsUnknown> {
688707
};
689708
MaybeFatalTransition::success(
690709
SessionEvent::WantsOutputs(inner.clone()),
691-
Receiver { state: WantsOutputs { v1: inner, context: self.state.context } },
710+
Receiver {
711+
state: WantsOutputs { v1: inner, session_context: self.state.session_context },
712+
},
692713
)
693714
}
694715

695716
pub(crate) fn apply_wants_outputs(self, v1: v1::WantsOutputs) -> ReceiveSession {
696-
let new_state = Receiver { state: WantsOutputs { v1, context: self.state.context } };
717+
let new_state =
718+
Receiver { state: WantsOutputs { v1, session_context: self.state.session_context } };
697719
ReceiveSession::WantsOutputs(new_state)
698720
}
699721
}
700722

701723
#[derive(Debug, Clone, PartialEq)]
702724
pub struct WantsOutputs {
703725
v1: v1::WantsOutputs,
704-
context: SessionContext,
726+
session_context: SessionContext,
705727
}
706728

707729
impl State for WantsOutputs {}
@@ -724,7 +746,9 @@ impl Receiver<WantsOutputs> {
724746
output_script: &Script,
725747
) -> Result<Self, OutputSubstitutionError> {
726748
let inner = self.state.v1.substitute_receiver_script(output_script)?;
727-
Ok(Receiver { state: WantsOutputs { v1: inner, context: self.state.context } })
749+
Ok(Receiver {
750+
state: WantsOutputs { v1: inner, session_context: self.state.session_context },
751+
})
728752
}
729753

730754
/// Replaces **all** receiver outputs with the one or more provided `replacement_outputs`, and
@@ -746,7 +770,9 @@ impl Receiver<WantsOutputs> {
746770
drain_script: &Script,
747771
) -> Result<Self, OutputSubstitutionError> {
748772
let inner = self.state.v1.replace_receiver_outputs(replacement_outputs, drain_script)?;
749-
Ok(Receiver { state: WantsOutputs { v1: inner, context: self.state.context } })
773+
Ok(Receiver {
774+
state: WantsOutputs { v1: inner, session_context: self.state.session_context },
775+
})
750776
}
751777

752778
/// Commits the outputs as final, and moves on to the next typestate.
@@ -756,20 +782,23 @@ impl Receiver<WantsOutputs> {
756782
let inner = self.state.v1.clone().commit_outputs();
757783
NextStateTransition::success(
758784
SessionEvent::WantsInputs(inner.clone()),
759-
Receiver { state: WantsInputs { v1: inner, context: self.state.context } },
785+
Receiver {
786+
state: WantsInputs { v1: inner, session_context: self.state.session_context },
787+
},
760788
)
761789
}
762790

763791
pub(crate) fn apply_wants_inputs(self, v1: v1::WantsInputs) -> ReceiveSession {
764-
let new_state = Receiver { state: WantsInputs { v1, context: self.state.context } };
792+
let new_state =
793+
Receiver { state: WantsInputs { v1, session_context: self.state.session_context } };
765794
ReceiveSession::WantsInputs(new_state)
766795
}
767796
}
768797

769798
#[derive(Debug, Clone, PartialEq)]
770799
pub struct WantsInputs {
771800
v1: v1::WantsInputs,
772-
context: SessionContext,
801+
session_context: SessionContext,
773802
}
774803

775804
impl State for WantsInputs {}
@@ -800,7 +829,9 @@ impl Receiver<WantsInputs> {
800829
inputs: impl IntoIterator<Item = InputPair>,
801830
) -> Result<Self, InputContributionError> {
802831
let inner = self.state.v1.contribute_inputs(inputs)?;
803-
Ok(Receiver { state: WantsInputs { v1: inner, context: self.state.context } })
832+
Ok(Receiver {
833+
state: WantsInputs { v1: inner, session_context: self.state.session_context },
834+
})
804835
}
805836

806837
/// Commits the inputs as final, and moves on to the next typestate.
@@ -810,20 +841,23 @@ impl Receiver<WantsInputs> {
810841
let inner = self.state.v1.clone().commit_inputs();
811842
NextStateTransition::success(
812843
SessionEvent::WantsFeeRange(inner.clone()),
813-
Receiver { state: WantsFeeRange { v1: inner, context: self.state.context } },
844+
Receiver {
845+
state: WantsFeeRange { v1: inner, session_context: self.state.session_context },
846+
},
814847
)
815848
}
816849

817850
pub(crate) fn apply_wants_fee_range(self, v1: v1::WantsFeeRange) -> ReceiveSession {
818-
let new_state = Receiver { state: WantsFeeRange { v1, context: self.state.context } };
851+
let new_state =
852+
Receiver { state: WantsFeeRange { v1, session_context: self.state.session_context } };
819853
ReceiveSession::WantsFeeRange(new_state)
820854
}
821855
}
822856

823857
#[derive(Debug, Clone, PartialEq)]
824858
pub struct WantsFeeRange {
825859
v1: v1::WantsFeeRange,
826-
context: SessionContext,
860+
session_context: SessionContext,
827861
}
828862

829863
impl State for WantsFeeRange {}
@@ -868,7 +902,7 @@ impl Receiver<WantsFeeRange> {
868902
Receiver {
869903
state: ProvisionalProposal {
870904
psbt_context: inner.psbt_context,
871-
context: self.state.context.clone(),
905+
session_context: self.state.session_context.clone(),
872906
},
873907
},
874908
)
@@ -878,7 +912,7 @@ impl Receiver<WantsFeeRange> {
878912
let new_state = Receiver {
879913
state: ProvisionalProposal {
880914
psbt_context: v1.psbt_context,
881-
context: self.state.context,
915+
session_context: self.state.session_context,
882916
},
883917
};
884918
ReceiveSession::ProvisionalProposal(new_state)
@@ -888,7 +922,7 @@ impl Receiver<WantsFeeRange> {
888922
#[derive(Debug, Clone, PartialEq)]
889923
pub struct ProvisionalProposal {
890924
psbt_context: PsbtContext,
891-
context: SessionContext,
925+
session_context: SessionContext,
892926
}
893927

894928
impl State for ProvisionalProposal {}
@@ -917,23 +951,26 @@ impl Receiver<ProvisionalProposal> {
917951
);
918952
}
919953
};
920-
let payjoin_proposal = PayjoinProposal { psbt: inner.clone(), context: self.state.context };
954+
let payjoin_proposal =
955+
PayjoinProposal { psbt: inner.clone(), session_context: self.state.session_context };
921956
MaybeTransientTransition::success(
922957
SessionEvent::PayjoinProposal(inner),
923958
Receiver { state: payjoin_proposal },
924959
)
925960
}
926961

927962
pub(crate) fn apply_payjoin_proposal(self, psbt: Psbt) -> ReceiveSession {
928-
let new_state = Receiver { state: PayjoinProposal { psbt, context: self.state.context } };
963+
let new_state = Receiver {
964+
state: PayjoinProposal { psbt, session_context: self.state.session_context },
965+
};
929966
ReceiveSession::PayjoinProposal(new_state)
930967
}
931968
}
932969

933970
#[derive(Debug, Clone, PartialEq)]
934971
pub struct PayjoinProposal {
935972
psbt: Psbt,
936-
context: SessionContext,
973+
session_context: SessionContext,
937974
}
938975

939976
impl State for PayjoinProposal {}
@@ -960,37 +997,37 @@ impl Receiver<PayjoinProposal> {
960997
let body: Vec<u8>;
961998
let method: &str;
962999

963-
if let Some(e) = &self.context.e {
1000+
if let Some(e) = &self.session_context.e {
9641001
// Prepare v2 payload
9651002
let payjoin_bytes = self.psbt.serialize();
9661003
let sender_mailbox = short_id_from_pubkey(e);
9671004
target_resource = self
968-
.context
1005+
.session_context
9691006
.directory
9701007
.join(&sender_mailbox.to_string())
9711008
.map_err(|e| ReplyableError::Implementation(ImplementationError::new(e)))?;
972-
body = encrypt_message_b(payjoin_bytes, &self.context.s, e)?;
1009+
body = encrypt_message_b(payjoin_bytes, &self.session_context.s, e)?;
9731010
method = "POST";
9741011
} else {
9751012
// Prepare v2 wrapped and backwards-compatible v1 payload
9761013
body = self.psbt.to_string().as_bytes().to_vec();
977-
let receiver_mailbox = short_id_from_pubkey(self.context.s.public_key());
1014+
let receiver_mailbox = short_id_from_pubkey(self.session_context.s.public_key());
9781015
target_resource = self
979-
.context
1016+
.session_context
9801017
.directory
9811018
.join(&receiver_mailbox.to_string())
9821019
.map_err(|e| ReplyableError::Implementation(ImplementationError::new(e)))?;
9831020
method = "PUT";
9841021
}
9851022
log::debug!("Payjoin PSBT target: {}", target_resource.as_str());
9861023
let (body, ctx) = ohttp_encapsulate(
987-
&mut self.context.ohttp_keys,
1024+
&mut self.session_context.ohttp_keys,
9881025
method,
9891026
target_resource.as_str(),
9901027
Some(&body),
9911028
)?;
9921029

993-
let req = Request::new_v2(&self.context.full_relay_url(ohttp_relay)?, &body);
1030+
let req = Request::new_v2(&self.session_context.full_relay_url(ohttp_relay)?, &body);
9941031
Ok((req, ctx))
9951032
}
9961033

@@ -1082,7 +1119,7 @@ pub mod test {
10821119
.expect("Test utils query params should not fail");
10831120
UncheckedProposal {
10841121
v1: v1::UncheckedProposal { psbt: PARSED_ORIGINAL_PSBT.clone(), params },
1085-
context: SHARED_CONTEXT.clone(),
1122+
session_context: SHARED_CONTEXT.clone(),
10861123
}
10871124
}
10881125

@@ -1092,7 +1129,7 @@ pub mod test {
10921129
.expect("Test utils query params should not fail");
10931130
MaybeInputsOwned {
10941131
v1: v1::MaybeInputsOwned { psbt: PARSED_ORIGINAL_PSBT.clone(), params },
1095-
context: SHARED_CONTEXT.clone(),
1132+
session_context: SHARED_CONTEXT.clone(),
10961133
}
10971134
}
10981135

@@ -1271,7 +1308,7 @@ pub mod test {
12711308
let receiver = Receiver {
12721309
state: UncheckedProposal {
12731310
v1: crate::receive::v1::test::unchecked_proposal_from_test_vector(),
1274-
context: context.clone(),
1311+
session_context: context.clone(),
12751312
},
12761313
};
12771314

0 commit comments

Comments
 (0)