Skip to content

Commit f355fb2

Browse files
authored
Implement voucher_invalid_after_settling unit test for paych actor. (#215)
* Implement voucher_invalid_after_settling unit test for paych actor. * Define ERR_CHANNEL_STATE_UPDATE_AFTER_SETTLED.
1 parent 96859d5 commit f355fb2

File tree

1 file changed

+43
-14
lines changed

1 file changed

+43
-14
lines changed

actors/paych/tests/paych_actor_test.rs

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ mod update_channel_state_redeem {
376376

377377
#[test]
378378
fn redeem_voucher_one_lane() {
379-
let (mut rt, mut sv) = require_create_cannel_with_lanes(1);
379+
let (mut rt, mut sv) = require_create_channel_with_lanes(1);
380380
let state: PState = rt.get_state().unwrap();
381381
let payee_addr = Address::new_id(PAYEE_ID);
382382

@@ -415,7 +415,7 @@ mod update_channel_state_redeem {
415415

416416
#[test]
417417
fn redeem_voucher_correct_lane() {
418-
let (mut rt, mut sv) = require_create_cannel_with_lanes(3);
418+
let (mut rt, mut sv) = require_create_channel_with_lanes(3);
419419
let state: PState = rt.get_state().unwrap();
420420
let payee_addr = Address::new_id(PAYEE_ID);
421421

@@ -460,7 +460,7 @@ mod merge_tests {
460460
use super::*;
461461

462462
fn construct_runtime(num_lanes: u64) -> (MockRuntime, SignedVoucher, PState) {
463-
let (mut rt, sv) = require_create_cannel_with_lanes(num_lanes);
463+
let (mut rt, sv) = require_create_channel_with_lanes(num_lanes);
464464
let state: PState = rt.get_state().unwrap();
465465
rt.set_caller(*ACCOUNT_ACTOR_CODE_ID, state.from);
466466
rt.expect_validate_caller_addr(vec![state.from, state.to]);
@@ -582,7 +582,7 @@ mod merge_tests {
582582
#[test]
583583
fn invalid_merge_lane_999() {
584584
let num_lanes = 2;
585-
let (mut rt, mut sv) = require_create_cannel_with_lanes(num_lanes);
585+
let (mut rt, mut sv) = require_create_channel_with_lanes(num_lanes);
586586
let state: PState = rt.get_state().unwrap();
587587

588588
sv.lane = 0;
@@ -616,7 +616,7 @@ mod update_channel_state_extra {
616616
const OTHER_ADDR: u64 = 104;
617617

618618
fn construct_runtime(exit_code: ExitCode) -> (MockRuntime, SignedVoucher) {
619-
let (mut rt, mut sv) = require_create_cannel_with_lanes(1);
619+
let (mut rt, mut sv) = require_create_channel_with_lanes(1);
620620
let state: PState = rt.get_state().unwrap();
621621
let other_addr = Address::new_id(OTHER_ADDR);
622622
let fake_params = [1, 2, 3, 4];
@@ -677,7 +677,7 @@ mod update_channel_state_extra {
677677

678678
#[test]
679679
fn update_channel_settling() {
680-
let (mut rt, sv) = require_create_cannel_with_lanes(1);
680+
let (mut rt, sv) = require_create_channel_with_lanes(1);
681681
rt.epoch = 10;
682682
let state: PState = rt.get_state().unwrap();
683683
rt.expect_validate_caller_addr(vec![state.from, state.to]);
@@ -732,7 +732,7 @@ mod secret_preimage {
732732

733733
#[test]
734734
fn succeed_correct_secret() {
735-
let (mut rt, sv) = require_create_cannel_with_lanes(1);
735+
let (mut rt, sv) = require_create_channel_with_lanes(1);
736736
let state: PState = rt.get_state().unwrap();
737737
rt.expect_validate_caller_addr(vec![state.from, state.to]);
738738

@@ -752,7 +752,7 @@ mod secret_preimage {
752752

753753
#[test]
754754
fn incorrect_secret() {
755-
let (mut rt, sv) = require_create_cannel_with_lanes(1);
755+
let (mut rt, sv) = require_create_channel_with_lanes(1);
756756

757757
let state: PState = rt.get_state().unwrap();
758758

@@ -785,7 +785,7 @@ mod actor_settle {
785785
const EP: i64 = 10;
786786
#[test]
787787
fn adjust_settling_at() {
788-
let (mut rt, _sv) = require_create_cannel_with_lanes(1);
788+
let (mut rt, _sv) = require_create_channel_with_lanes(1);
789789
rt.epoch = EP;
790790
let mut state: PState = rt.get_state().unwrap();
791791
rt.set_caller(*ACCOUNT_ACTOR_CODE_ID, state.from);
@@ -801,7 +801,7 @@ mod actor_settle {
801801

802802
#[test]
803803
fn call_twice() {
804-
let (mut rt, _sv) = require_create_cannel_with_lanes(1);
804+
let (mut rt, _sv) = require_create_channel_with_lanes(1);
805805
rt.epoch = EP;
806806
let state: PState = rt.get_state().unwrap();
807807
rt.set_caller(*ACCOUNT_ACTOR_CODE_ID, state.from);
@@ -819,7 +819,7 @@ mod actor_settle {
819819

820820
#[test]
821821
fn settle_if_height_less() {
822-
let (mut rt, mut sv) = require_create_cannel_with_lanes(1);
822+
let (mut rt, mut sv) = require_create_channel_with_lanes(1);
823823
rt.epoch = EP;
824824
let mut state: PState = rt.get_state().unwrap();
825825

@@ -847,6 +847,35 @@ mod actor_settle {
847847
state = rt.get_state().unwrap();
848848
assert_eq!(state.settling_at, ucp.sv.min_settle_height);
849849
}
850+
851+
#[test]
852+
fn voucher_invalid_after_settling() {
853+
const ERR_CHANNEL_STATE_UPDATE_AFTER_SETTLED: ExitCode = ExitCode::new(32);
854+
855+
let (mut rt, sv) = require_create_channel_with_lanes(1);
856+
rt.epoch = EP;
857+
let mut state: PState = rt.get_state().unwrap();
858+
rt.set_caller(*ACCOUNT_ACTOR_CODE_ID, state.from);
859+
rt.expect_validate_caller_addr(vec![state.from, state.to]);
860+
861+
call(&mut rt, Method::Settle as u64, &RawBytes::default());
862+
863+
state = rt.get_state().unwrap();
864+
rt.epoch = state.settling_at + 40;
865+
rt.expect_validate_caller_addr(vec![state.from, state.to]);
866+
rt.expect_verify_signature(ExpectedVerifySig {
867+
sig: sv.clone().signature.unwrap(),
868+
signer: Address::new_id(PAYEE_ID),
869+
plaintext: sv.signing_bytes().unwrap(),
870+
result: Ok(()),
871+
});
872+
expect_error(
873+
&mut rt,
874+
Method::UpdateChannelState as u64,
875+
&RawBytes::serialize(UpdateChannelStateParams::from(sv)).unwrap(),
876+
ERR_CHANNEL_STATE_UPDATE_AFTER_SETTLED,
877+
);
878+
}
850879
}
851880

852881
mod actor_collect {
@@ -856,7 +885,7 @@ mod actor_collect {
856885

857886
#[test]
858887
fn happy_path() {
859-
let (mut rt, _sv) = require_create_cannel_with_lanes(1);
888+
let (mut rt, _sv) = require_create_channel_with_lanes(1);
860889
let curr_epoch: ChainEpoch = 10;
861890
rt.epoch = curr_epoch;
862891
let st: PState = rt.get_state().unwrap();
@@ -914,7 +943,7 @@ mod actor_collect {
914943
];
915944

916945
for tc in test_cases {
917-
let (mut rt, _sv) = require_create_cannel_with_lanes(1);
946+
let (mut rt, _sv) = require_create_channel_with_lanes(1);
918947
rt.epoch = 10;
919948
let mut state: PState = rt.get_state().unwrap();
920949

@@ -950,7 +979,7 @@ mod actor_collect {
950979
}
951980
}
952981

953-
fn require_create_cannel_with_lanes(num_lanes: u64) -> (MockRuntime, SignedVoucher) {
982+
fn require_create_channel_with_lanes(num_lanes: u64) -> (MockRuntime, SignedVoucher) {
954983
let paych_addr = Address::new_id(100);
955984
let payer_addr = Address::new_id(PAYER_ID);
956985
let payee_addr = Address::new_id(PAYEE_ID);

0 commit comments

Comments
 (0)