@@ -91,6 +91,7 @@ use stacks_common::util::secp256k1::{MessageSignature, Secp256k1PrivateKey, Secp
91
91
use stacks_common:: util:: { get_epoch_time_secs, sleep_ms} ;
92
92
use stacks_signer:: chainstate:: { ProposalEvalConfig , SortitionsView } ;
93
93
use stacks_signer:: signerdb:: { BlockInfo , BlockState , ExtraBlockInfo , SignerDb } ;
94
+ use stacks_signer:: v0:: SpawnedSigner ;
94
95
95
96
use super :: bitcoin_regtest:: BitcoinCoreController ;
96
97
use crate :: config:: { EventKeyType , InitialBalance } ;
@@ -105,6 +106,7 @@ use crate::tests::neon_integrations::{
105
106
get_neighbors, get_pox_info, next_block_and_wait, run_until_burnchain_height, submit_tx,
106
107
test_observer, wait_for_runloop,
107
108
} ;
109
+ use crate :: tests:: signer:: SignerTest ;
108
110
use crate :: tests:: {
109
111
gen_random_port, get_chain_info, make_contract_publish, make_contract_publish_versioned,
110
112
make_stacks_transfer, to_addr,
@@ -9605,87 +9607,19 @@ fn test_shadow_recovery() {
9605
9607
return ;
9606
9608
}
9607
9609
9608
- let ( mut naka_conf, _miner_account) = naka_neon_integration_conf ( None ) ;
9609
- let http_origin = format ! ( "http://{}" , & naka_conf. node. rpc_bind) ;
9610
- naka_conf. miner . wait_on_interim_blocks = Duration :: from_secs ( 1 ) ;
9611
- let sender_sk = Secp256k1PrivateKey :: new ( ) ;
9612
- let sender_signer_sk = Secp256k1PrivateKey :: new ( ) ;
9613
- let sender_signer_addr = tests:: to_addr ( & sender_signer_sk) ;
9614
- // setup sender + recipient for some test stx transfers
9615
- // these are necessary for the interim blocks to get mined at all
9616
- let sender_addr = tests:: to_addr ( & sender_sk) ;
9617
- let send_amt = 100 ;
9618
- let send_fee = 180 ;
9619
- naka_conf. add_initial_balance ( PrincipalData :: from ( sender_addr. clone ( ) ) . to_string ( ) , 100000 ) ;
9620
- naka_conf. add_initial_balance (
9621
- PrincipalData :: from ( sender_signer_addr. clone ( ) ) . to_string ( ) ,
9622
- 100000 ,
9623
- ) ;
9624
- let recipient = PrincipalData :: from ( StacksAddress :: burn_address ( false ) ) ;
9625
- let stacker_sk = setup_stacker ( & mut naka_conf) ;
9610
+ let mut signer_test: SignerTest < SpawnedSigner > = SignerTest :: new ( 1 , vec ! [ ] ) ;
9611
+ signer_test. boot_to_epoch_3 ( ) ;
9626
9612
9627
- test_observer:: spawn ( ) ;
9628
- test_observer:: register_any ( & mut naka_conf) ;
9629
-
9630
- let mut btcd_controller = BitcoinCoreController :: new ( naka_conf. clone ( ) ) ;
9631
- btcd_controller
9632
- . start_bitcoind ( )
9633
- . expect ( "Failed starting bitcoind" ) ;
9634
- let mut btc_regtest_controller = BitcoinRegtestController :: new ( naka_conf. clone ( ) , None ) ;
9635
- btc_regtest_controller. bootstrap_chain ( 201 ) ;
9636
-
9637
- let mut run_loop = boot_nakamoto:: BootRunLoop :: new ( naka_conf. clone ( ) ) . unwrap ( ) ;
9638
- let run_loop_stopper = run_loop. get_termination_switch ( ) ;
9639
- let Counters {
9640
- blocks_processed,
9641
- naka_submitted_commits : commits_submitted,
9642
- naka_proposed_blocks : proposals_submitted,
9643
- ..
9644
- } = run_loop. counters ( ) ;
9645
-
9646
- let coord_channel = run_loop. coordinator_channels ( ) ;
9647
-
9648
- let run_loop_thread = thread:: Builder :: new ( )
9649
- . name ( "run_loop" . into ( ) )
9650
- . spawn ( move || run_loop. start ( None , 0 ) )
9651
- . unwrap ( ) ;
9652
- wait_for_runloop ( & blocks_processed) ;
9653
- let mut signers = TestSigners :: new ( vec ! [ sender_signer_sk. clone( ) ] ) ;
9654
- boot_to_epoch_3 (
9655
- & naka_conf,
9656
- & blocks_processed,
9657
- & [ stacker_sk] ,
9658
- & [ sender_signer_sk] ,
9659
- & mut Some ( & mut signers) ,
9660
- & mut btc_regtest_controller,
9661
- ) ;
9662
-
9663
- info ! ( "Bootstrapped to Epoch-3.0 boundary, starting nakamoto miner" ) ;
9613
+ let naka_conf = signer_test. running_nodes . conf . clone ( ) ;
9614
+ let btc_regtest_controller = & mut signer_test. running_nodes . btc_regtest_controller ;
9615
+ let coord_channel = signer_test. running_nodes . coord_channel . clone ( ) ;
9616
+ let commits_submitted = signer_test. running_nodes . commits_submitted . clone ( ) ;
9664
9617
9665
9618
let burnchain = naka_conf. get_burnchain ( ) ;
9666
- let sortdb = burnchain. open_sortition_db ( true ) . unwrap ( ) ;
9667
- let ( chainstate, _) = StacksChainState :: open (
9668
- naka_conf. is_mainnet ( ) ,
9669
- naka_conf. burnchain . chain_id ,
9670
- & naka_conf. get_chainstate_path_str ( ) ,
9671
- None ,
9672
- )
9673
- . unwrap ( ) ;
9674
-
9675
- let block_height_pre_3_0 =
9676
- NakamotoChainState :: get_canonical_block_header ( chainstate. db ( ) , & sortdb)
9677
- . unwrap ( )
9678
- . unwrap ( )
9679
- . stacks_block_height ;
9680
-
9681
- info ! ( "Nakamoto miner started..." ) ;
9682
- blind_signer ( & naka_conf, & signers, proposals_submitted) ;
9683
-
9684
- wait_for_first_naka_block_commit ( 60 , & commits_submitted) ;
9685
9619
9686
9620
// make another tenure
9687
9621
next_block_and_mine_commit (
9688
- & mut btc_regtest_controller,
9622
+ btc_regtest_controller,
9689
9623
60 ,
9690
9624
& coord_channel,
9691
9625
& commits_submitted,
@@ -9736,7 +9670,6 @@ fn test_shadow_recovery() {
9736
9670
} )
9737
9671
. unwrap ( ) ;
9738
9672
9739
- let burn_height_after = get_chain_info ( & naka_conf) . burn_block_height ;
9740
9673
let stacks_height_before = get_chain_info ( & naka_conf) . stacks_tip_height ;
9741
9674
9742
9675
// fix node
@@ -9753,14 +9686,14 @@ fn test_shadow_recovery() {
9753
9686
. unwrap ( ) ;
9754
9687
9755
9688
// revive ATC-C by waiting for commits
9756
- for i in 0 ..4 {
9689
+ for _i in 0 ..4 {
9757
9690
btc_regtest_controller. bootstrap_chain ( 1 ) ;
9758
9691
sleep_ms ( 30_000 ) ;
9759
9692
}
9760
9693
9761
9694
// make another tenure
9762
9695
next_block_and_mine_commit (
9763
- & mut btc_regtest_controller,
9696
+ btc_regtest_controller,
9764
9697
60 ,
9765
9698
& coord_channel,
9766
9699
& commits_submitted,
0 commit comments