Skip to content

Commit 1d8e43b

Browse files
authored
Reduce visibility of state transition types (#955)
2 parents 9ca2231 + 6316cbb commit 1d8e43b

File tree

2 files changed

+42
-35
lines changed

2 files changed

+42
-35
lines changed

payjoin/src/core/persist.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ where
181181
}
182182

183183
/// A transition that always results in a state transition.
184-
pub struct NextStateTransition<Event, NextState>(pub(crate) AcceptNextState<Event, NextState>);
184+
pub struct NextStateTransition<Event, NextState>(AcceptNextState<Event, NextState>);
185185

186186
impl<Event, NextState> NextStateTransition<Event, NextState> {
187187
#[inline]
@@ -228,7 +228,7 @@ impl<Event, NextState, Err> MaybeBadInitInputsTransition<Event, NextState, Err>
228228
}
229229

230230
/// Wrapper that marks the progression of a state machine
231-
pub struct AcceptNextState<Event, NextState>(pub(crate) Event, pub(crate) NextState);
231+
pub struct AcceptNextState<Event, NextState>(Event, NextState);
232232
/// Wrapper that marks the success of a state machine with a value that was returned
233233
struct AcceptCompleted<SuccessValue>(SuccessValue);
234234

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

Lines changed: 40 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,6 +1135,7 @@ pub mod test {
11351135

11361136
#[test]
11371137
fn test_v2_mutable_receiver_state_closures() {
1138+
let persister = NoopSessionPersister::default();
11381139
let mut call_count = 0;
11391140
let maybe_inputs_owned = maybe_inputs_owned_v2_from_test_vector();
11401141
let receiver = v2::Receiver { state: maybe_inputs_owned };
@@ -1149,18 +1150,14 @@ pub mod test {
11491150
assert_eq!(call_count, 1);
11501151

11511152
let outputs_unknown = maybe_inputs_seen
1152-
.0
1153-
.map_err(|_| "Check inputs owned closure failed".to_string())
1154-
.expect("Next receiver state should be accessible")
1155-
.1
1156-
.check_no_inputs_seen_before(&mut |_| mock_callback(&mut call_count, false));
1153+
.save(&persister)
1154+
.expect("Noop persister shouldn't fail")
1155+
.check_no_inputs_seen_before(&mut |_| mock_callback(&mut call_count, false))
1156+
.save(&persister)
1157+
.expect("Noop persister shouldn't fail");
11571158
assert_eq!(call_count, 2);
11581159

11591160
let _wants_outputs = outputs_unknown
1160-
.0
1161-
.map_err(|_| "Check no inputs seen closure failed".to_string())
1162-
.expect("Next receiver state should be accessible")
1163-
.1
11641161
.identify_receiver_outputs(&mut |_| mock_callback(&mut call_count, true));
11651162
// there are 2 receiver outputs so we should expect this callback to run twice incrementing
11661163
// call count twice
@@ -1191,11 +1188,15 @@ pub mod test {
11911188

11921189
#[test]
11931190
fn test_maybe_inputs_seen_transient_error() -> Result<(), BoxError> {
1191+
let persister = NoopSessionPersister::default();
11941192
let unchecked_proposal = unchecked_proposal_v2_from_test_vector();
11951193
let receiver = v2::Receiver { state: unchecked_proposal };
11961194

1197-
let maybe_inputs_owned = receiver.assume_interactive_receiver();
1198-
let maybe_inputs_seen = maybe_inputs_owned.0 .1.check_inputs_not_owned(&mut |_| {
1195+
let maybe_inputs_owned = receiver
1196+
.assume_interactive_receiver()
1197+
.save(&persister)
1198+
.expect("Noop persister shouldn't fail");
1199+
let maybe_inputs_seen = maybe_inputs_owned.check_inputs_not_owned(&mut |_| {
11991200
Err(ImplementationError::new(ReplyableError::Implementation("mock error".into())))
12001201
});
12011202

@@ -1214,18 +1215,21 @@ pub mod test {
12141215

12151216
#[test]
12161217
fn test_outputs_unknown_transient_error() -> Result<(), BoxError> {
1218+
let persister = NoopSessionPersister::default();
12171219
let unchecked_proposal = unchecked_proposal_v2_from_test_vector();
12181220
let receiver = v2::Receiver { state: unchecked_proposal };
12191221

1220-
let maybe_inputs_owned = receiver.assume_interactive_receiver();
1221-
let maybe_inputs_seen = maybe_inputs_owned.0 .1.check_inputs_not_owned(&mut |_| Ok(false));
1222-
let outputs_unknown = match maybe_inputs_seen.0 {
1223-
Ok(state) => state.1.check_no_inputs_seen_before(&mut |_| {
1224-
Err(ImplementationError::new(ReplyableError::Implementation("mock error".into())))
1225-
}),
1226-
Err(_) => panic!("Expected Ok, got Err"),
1227-
};
1228-
1222+
let maybe_inputs_owned = receiver
1223+
.assume_interactive_receiver()
1224+
.save(&persister)
1225+
.expect("Noop persister shouldn't fail");
1226+
let maybe_inputs_seen = maybe_inputs_owned
1227+
.check_inputs_not_owned(&mut |_| Ok(false))
1228+
.save(&persister)
1229+
.expect("Noop persister shouldn't fail");
1230+
let outputs_unknown = maybe_inputs_seen.check_no_inputs_seen_before(&mut |_| {
1231+
Err(ImplementationError::new(ReplyableError::Implementation("mock error".into())))
1232+
});
12291233
match outputs_unknown {
12301234
MaybeFatalTransition(Err(Rejection::Transient(RejectTransient(
12311235
ReplyableError::Implementation(error),
@@ -1241,22 +1245,25 @@ pub mod test {
12411245

12421246
#[test]
12431247
fn test_wants_outputs_transient_error() -> Result<(), BoxError> {
1248+
let persister = NoopSessionPersister::default();
12441249
let unchecked_proposal = unchecked_proposal_v2_from_test_vector();
12451250
let receiver = v2::Receiver { state: unchecked_proposal };
12461251

1247-
let maybe_inputs_owned = receiver.assume_interactive_receiver();
1248-
let maybe_inputs_seen = maybe_inputs_owned.0 .1.check_inputs_not_owned(&mut |_| Ok(false));
1249-
let outputs_unknown = match maybe_inputs_seen.0 {
1250-
Ok(state) => state.1.check_no_inputs_seen_before(&mut |_| Ok(false)),
1251-
Err(_) => panic!("Expected Ok, got Err"),
1252-
};
1253-
let wants_outputs = match outputs_unknown.0 {
1254-
Ok(state) => state.1.identify_receiver_outputs(&mut |_| {
1255-
Err(ImplementationError::new(ReplyableError::Implementation("mock error".into())))
1256-
}),
1257-
Err(_) => panic!("Expected Ok, got Err"),
1258-
};
1259-
1252+
let maybe_inputs_owned = receiver
1253+
.assume_interactive_receiver()
1254+
.save(&persister)
1255+
.expect("Noop persister shouldn't fail");
1256+
let maybe_inputs_seen = maybe_inputs_owned
1257+
.check_inputs_not_owned(&mut |_| Ok(false))
1258+
.save(&persister)
1259+
.expect("Noop persister should not fail");
1260+
let outputs_unknown = maybe_inputs_seen
1261+
.check_no_inputs_seen_before(&mut |_| Ok(false))
1262+
.save(&persister)
1263+
.expect("Noop persister should not fail");
1264+
let wants_outputs = outputs_unknown.identify_receiver_outputs(&mut |_| {
1265+
Err(ImplementationError::new(ReplyableError::Implementation("mock error".into())))
1266+
});
12601267
match wants_outputs {
12611268
MaybeFatalTransition(Err(Rejection::Transient(RejectTransient(
12621269
ReplyableError::Implementation(error),

0 commit comments

Comments
 (0)