File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -454,6 +454,37 @@ mod update_channel_state_redeem {
454
454
assert_eq ! ( sv. amount, ls_updated. redeemed) ;
455
455
assert_eq ! ( sv. nonce, ls_updated. nonce) ;
456
456
}
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
+ }
457
488
}
458
489
459
490
mod merge_tests {
You can’t perform that action at this time.
0 commit comments