@@ -29,6 +29,7 @@ use blockstack_lib::net::api::get_tenures_fork_info::TenureForkingInfo;
29
29
use blockstack_lib:: net:: api:: getsortition:: SortitionInfo ;
30
30
use clarity:: types:: chainstate:: { BurnchainHeaderHash , SortitionId } ;
31
31
use clarity:: util:: vrf:: VRFProof ;
32
+ use libsigner:: v0:: messages:: RejectCode ;
32
33
use libsigner:: { BlockProposal , BlockProposalData } ;
33
34
use slog:: slog_info;
34
35
use stacks_common:: bitvec:: BitVec ;
@@ -41,9 +42,7 @@ use stacks_common::util::get_epoch_time_secs;
41
42
use stacks_common:: util:: hash:: { Hash160 , Sha512Trunc256Sum } ;
42
43
use stacks_common:: util:: secp256k1:: MessageSignature ;
43
44
44
- use crate :: chainstate:: {
45
- ProposalEvalConfig , SignerChainstateError , SortitionMinerStatus , SortitionState , SortitionsView ,
46
- } ;
45
+ use crate :: chainstate:: { ProposalEvalConfig , SortitionMinerStatus , SortitionState , SortitionsView } ;
47
46
use crate :: client:: tests:: MockServerClient ;
48
47
use crate :: client:: StacksClient ;
49
48
use crate :: signerdb:: { BlockInfo , SignerDb } ;
@@ -133,15 +132,13 @@ fn check_proposal_units() {
133
132
let ( stacks_client, mut signer_db, block_pk, mut view, block) =
134
133
setup_test_environment ( "check_proposal_units" ) ;
135
134
136
- assert ! ( !view
137
- . check_proposal( & stacks_client, & mut signer_db, & block, & block_pk, false )
138
- . unwrap( ) ) ;
135
+ view. check_proposal ( & stacks_client, & mut signer_db, & block, & block_pk, false )
136
+ . expect_err ( "Proposal should not validate" ) ;
139
137
140
138
view. last_sortition = None ;
141
139
142
- assert ! ( !view
143
- . check_proposal( & stacks_client, & mut signer_db, & block, & block_pk, false )
144
- . unwrap( ) ) ;
140
+ view. check_proposal ( & stacks_client, & mut signer_db, & block, & block_pk, false )
141
+ . expect_err ( "Proposal should not validate" ) ;
145
142
}
146
143
147
144
#[ test]
@@ -150,33 +147,31 @@ fn check_proposal_miner_pkh_mismatch() {
150
147
setup_test_environment ( "miner_pkh_mismatch" ) ;
151
148
block. header . consensus_hash = view. cur_sortition . consensus_hash ;
152
149
let different_block_pk = StacksPublicKey :: from_private ( & StacksPrivateKey :: from_seed ( & [ 2 , 3 ] ) ) ;
153
- assert ! ( !view
154
- . check_proposal(
155
- & stacks_client,
156
- & mut signer_db,
157
- & block,
158
- & different_block_pk,
159
- false ,
160
- )
161
- . unwrap( ) ) ;
150
+ view. check_proposal (
151
+ & stacks_client,
152
+ & mut signer_db,
153
+ & block,
154
+ & different_block_pk,
155
+ false ,
156
+ )
157
+ . expect_err ( "Proposal should not validate" ) ;
162
158
163
159
block. header . consensus_hash = view. last_sortition . as_ref ( ) . unwrap ( ) . consensus_hash ;
164
- assert ! ( !view
165
- . check_proposal(
166
- & stacks_client,
167
- & mut signer_db,
168
- & block,
169
- & different_block_pk,
170
- false ,
171
- )
172
- . unwrap( ) ) ;
160
+ view. check_proposal (
161
+ & stacks_client,
162
+ & mut signer_db,
163
+ & block,
164
+ & different_block_pk,
165
+ false ,
166
+ )
167
+ . expect_err ( "Proposal should not validate" ) ;
173
168
}
174
169
175
170
fn reorg_timing_testing (
176
171
test_name : & str ,
177
172
first_proposal_burn_block_timing_secs : u64 ,
178
173
sortition_timing_secs : u64 ,
179
- ) -> Result < bool , SignerChainstateError > {
174
+ ) -> Result < ( ) , RejectCode > {
180
175
let ( _stacks_client, mut signer_db, block_pk, mut view, mut block) =
181
176
setup_test_environment ( test_name) ;
182
177
view. config . first_proposal_burn_block_timing =
@@ -286,32 +281,29 @@ fn reorg_timing_testing(
286
281
#[ test]
287
282
fn check_proposal_reorg_timing_bad ( ) {
288
283
let result = reorg_timing_testing ( "reorg_timing_bad" , 30 , 31 ) ;
289
- assert ! ( ! result. unwrap ( ) , "Proposal should not validate, because the reorg occurred in a block whose proposed time was long enough before the sortition" ) ;
284
+ result. expect_err ( "Proposal should not validate, because the reorg occurred in a block whose proposed time was long enough before the sortition" ) ;
290
285
}
291
286
292
287
#[ test]
293
288
fn check_proposal_reorg_timing_ok ( ) {
294
289
let result = reorg_timing_testing ( "reorg_timing_okay" , 30 , 30 ) ;
295
- assert ! ( result. unwrap ( ) , "Proposal should validate okay, because the reorg occurred in a block whose proposed time was close to the sortition" ) ;
290
+ result. expect_err ( "Proposal should validate okay, because the reorg occurred in a block whose proposed time was close to the sortition" ) ;
296
291
}
297
292
298
293
#[ test]
299
294
fn check_proposal_invalid_status ( ) {
300
295
let ( stacks_client, mut signer_db, block_pk, mut view, mut block) =
301
296
setup_test_environment ( "invalid_status" ) ;
302
297
block. header . consensus_hash = view. cur_sortition . consensus_hash ;
303
- assert ! ( view
304
- . check_proposal( & stacks_client, & mut signer_db, & block, & block_pk, false )
305
- . unwrap( ) ) ;
298
+ view. check_proposal ( & stacks_client, & mut signer_db, & block, & block_pk, false )
299
+ . expect ( "Proposal should validate" ) ;
306
300
view. cur_sortition . miner_status = SortitionMinerStatus :: InvalidatedAfterFirstBlock ;
307
- assert ! ( !view
308
- . check_proposal( & stacks_client, & mut signer_db, & block, & block_pk, false )
309
- . unwrap( ) ) ;
301
+ view. check_proposal ( & stacks_client, & mut signer_db, & block, & block_pk, false )
302
+ . expect_err ( "Proposal should not validate" ) ;
310
303
311
304
block. header . consensus_hash = view. last_sortition . as_ref ( ) . unwrap ( ) . consensus_hash ;
312
- assert ! ( !view
313
- . check_proposal( & stacks_client, & mut signer_db, & block, & block_pk, false )
314
- . unwrap( ) ) ;
305
+ view. check_proposal ( & stacks_client, & mut signer_db, & block, & block_pk, false )
306
+ . expect_err ( "Proposal should not validate" ) ;
315
307
316
308
view. cur_sortition . miner_status = SortitionMinerStatus :: InvalidatedBeforeFirstBlock ;
317
309
block. header . consensus_hash = view. last_sortition . as_ref ( ) . unwrap ( ) . consensus_hash ;
@@ -320,9 +312,8 @@ fn check_proposal_invalid_status() {
320
312
// the stacks-node to do that (because the stacks-node actually knows whether or not their
321
313
// parent blocks have been seen before, while the signer state checks are only reasoning about
322
314
// stacks blocks seen by the signer, which may be a subset)
323
- assert ! ( view
324
- . check_proposal( & stacks_client, & mut signer_db, & block, & block_pk, false )
325
- . unwrap( ) ) ;
315
+ view. check_proposal ( & stacks_client, & mut signer_db, & block, & block_pk, false )
316
+ . expect ( "Proposal should validate" ) ;
326
317
}
327
318
328
319
fn make_tenure_change_payload ( ) -> TenureChangePayload {
@@ -369,19 +360,17 @@ fn check_proposal_tenure_extend_invalid_conditions() {
369
360
extend_payload. prev_tenure_consensus_hash = block. header . consensus_hash ;
370
361
let tx = make_tenure_change_tx ( extend_payload) ;
371
362
block. txs = vec ! [ tx] ;
372
- assert ! ( !view
373
- . check_proposal( & stacks_client, & mut signer_db, & block, & block_pk, false )
374
- . unwrap( ) ) ;
363
+ view. check_proposal ( & stacks_client, & mut signer_db, & block, & block_pk, false )
364
+ . expect_err ( "Proposal should not validate" ) ;
375
365
376
366
let mut extend_payload = make_tenure_change_payload ( ) ;
377
367
extend_payload. burn_view_consensus_hash = ConsensusHash ( [ 64 ; 20 ] ) ;
378
368
extend_payload. tenure_consensus_hash = block. header . consensus_hash ;
379
369
extend_payload. prev_tenure_consensus_hash = block. header . consensus_hash ;
380
370
let tx = make_tenure_change_tx ( extend_payload) ;
381
371
block. txs = vec ! [ tx] ;
382
- assert ! ( view
383
- . check_proposal( & stacks_client, & mut signer_db, & block, & block_pk, false )
384
- . unwrap( ) ) ;
372
+ view. check_proposal ( & stacks_client, & mut signer_db, & block, & block_pk, false )
373
+ . expect ( "Proposal should validate" ) ;
385
374
}
386
375
387
376
#[ test]
@@ -401,47 +390,43 @@ fn check_block_proposal_timeout() {
401
390
. insert_burn_block ( & burn_hash, burn_height, & received_time)
402
391
. unwrap ( ) ;
403
392
404
- assert ! ( view
405
- . check_proposal(
406
- & stacks_client,
407
- & mut signer_db,
408
- & curr_sortition_block,
409
- & block_pk,
410
- false ,
411
- )
412
- . unwrap( ) ) ;
413
-
414
- assert ! ( !view
415
- . check_proposal(
416
- & stacks_client,
417
- & mut signer_db,
418
- & last_sortition_block,
419
- & block_pk,
420
- false ,
421
- )
422
- . unwrap( ) ) ;
393
+ view. check_proposal (
394
+ & stacks_client,
395
+ & mut signer_db,
396
+ & curr_sortition_block,
397
+ & block_pk,
398
+ false ,
399
+ )
400
+ . expect ( "Proposal should validate" ) ;
401
+
402
+ view. check_proposal (
403
+ & stacks_client,
404
+ & mut signer_db,
405
+ & last_sortition_block,
406
+ & block_pk,
407
+ false ,
408
+ )
409
+ . expect_err ( "Proposal should not validate" ) ;
423
410
424
411
// Sleep a bit to time out the block proposal
425
412
std:: thread:: sleep ( Duration :: from_secs ( 5 ) ) ;
426
- assert ! ( !view
427
- . check_proposal(
428
- & stacks_client,
429
- & mut signer_db,
430
- & curr_sortition_block,
431
- & block_pk,
432
- false ,
433
- )
434
- . unwrap( ) ) ;
435
-
436
- assert ! ( view
437
- . check_proposal(
438
- & stacks_client,
439
- & mut signer_db,
440
- & last_sortition_block,
441
- & block_pk,
442
- false ,
443
- )
444
- . unwrap( ) ) ;
413
+ view. check_proposal (
414
+ & stacks_client,
415
+ & mut signer_db,
416
+ & curr_sortition_block,
417
+ & block_pk,
418
+ false ,
419
+ )
420
+ . expect_err ( "Proposal should not validate" ) ;
421
+
422
+ view. check_proposal (
423
+ & stacks_client,
424
+ & mut signer_db,
425
+ & last_sortition_block,
426
+ & block_pk,
427
+ false ,
428
+ )
429
+ . expect ( "Proposal should validate" ) ;
445
430
}
446
431
447
432
#[ test]
@@ -534,9 +519,8 @@ fn check_proposal_refresh() {
534
519
let ( stacks_client, mut signer_db, block_pk, mut view, mut block) =
535
520
setup_test_environment ( "check_proposal_refresh" ) ;
536
521
block. header . consensus_hash = view. cur_sortition . consensus_hash ;
537
- assert ! ( view
538
- . check_proposal( & stacks_client, & mut signer_db, & block, & block_pk, false )
539
- . unwrap( ) ) ;
522
+ view. check_proposal ( & stacks_client, & mut signer_db, & block, & block_pk, false )
523
+ . expect ( "Proposal should validate" ) ;
540
524
541
525
let MockServerClient {
542
526
server,
@@ -586,5 +570,5 @@ fn check_proposal_refresh() {
586
570
format ! ( "HTTP/1.1 200 Ok\n \n {}" , serde_json:: json!( expected_result) ) . as_bytes ( ) ,
587
571
) ;
588
572
let result = h. join ( ) . unwrap ( ) ;
589
- assert ! ( result. unwrap ( ) ) ;
573
+ result. expect ( "Proposal should validate" ) ;
590
574
}
0 commit comments