Skip to content

Commit 41640c7

Browse files
authored
Implement last test in the UpdateChannelStateRedeem category for paych. (#219)
* Implement voucher nonce reuse test. * Fix updated exit code. * Apply clippy suggestion.
1 parent b8f4753 commit 41640c7

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

actors/paych/tests/paych_actor_test.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,37 @@ mod update_channel_state_redeem {
454454
assert_eq!(sv.amount, ls_updated.redeemed);
455455
assert_eq!(sv.nonce, ls_updated.nonce);
456456
}
457+
458+
#[test]
459+
fn redeem_voucher_nonce_reuse() {
460+
let (mut rt, mut sv) = require_create_channel_with_lanes(3);
461+
let state: PState = rt.get_state().unwrap();
462+
let payee_addr = Address::new_id(PAYEE_ID);
463+
464+
rt.set_caller(*ACCOUNT_ACTOR_CODE_ID, payee_addr);
465+
rt.expect_validate_caller_addr(vec![state.from, state.to]);
466+
467+
sv.amount = BigInt::from(9);
468+
sv.nonce = 1;
469+
470+
let payer_addr = Address::new_id(PAYER_ID);
471+
472+
rt.expect_verify_signature(ExpectedVerifySig {
473+
sig: sv.clone().signature.unwrap(),
474+
signer: payer_addr,
475+
plaintext: sv.signing_bytes().unwrap(),
476+
result: Ok(()),
477+
});
478+
479+
expect_error(
480+
&mut rt,
481+
Method::UpdateChannelState as u64,
482+
&RawBytes::serialize(UpdateChannelStateParams::from(sv)).unwrap(),
483+
ExitCode::USR_ILLEGAL_ARGUMENT,
484+
);
485+
486+
rt.verify();
487+
}
457488
}
458489

459490
mod merge_tests {

0 commit comments

Comments
 (0)