@@ -11,13 +11,15 @@ import (
1111 "time"
1212)
1313
14+ type HFHandler func (* HardforkTest , * BlockAnalysisResult ) error
15+
1416// RunMainNetworkPhase runs the main network and validates its operation
1517// and returns the fork config bytes and block analysis result
16- func (t * HardforkTest ) RunMainNetworkPhase (mainGenesisTs int64 ) ([] byte , * BlockAnalysisResult , error ) {
18+ func (t * HardforkTest ) RunMainNetworkPhase (mainGenesisTs int64 , beforeShutdown HFHandler ) (* BlockAnalysisResult , error ) {
1719 // Start the main network
1820 mainNetCmd , err := t .RunMainNetwork (mainGenesisTs )
1921 if err != nil {
20- return nil , nil , err
22+ return nil , err
2123 }
2224
2325 defer t .gracefulShutdown (mainNetCmd , "Main network" )
@@ -28,44 +30,42 @@ func (t *HardforkTest) RunMainNetworkPhase(mainGenesisTs int64) ([]byte, *BlockA
2830 // Check block height at slot BestChainQueryFrom
2931 blockHeight , err := t .Client .GetHeight (t .AnyPortOfType (PORT_REST ))
3032 if err != nil {
31- return nil , nil , err
33+ return nil , err
3234 }
3335
3436 t .Logger .Info ("Block height is %d at slot %d." , blockHeight , t .Config .BestChainQueryFrom )
3537
3638 // Validate slot occupancy
3739 if err := t .ValidateSlotOccupancy (0 , blockHeight ); err != nil {
38- return nil , nil , err
40+ return nil , err
3941 }
4042
4143 // Analyze blocks and get genesis epoch data
4244 analysis , err := t .AnalyzeBlocks ()
4345 if err != nil {
44- return nil , nil , err
46+ return nil , err
4547 }
4648
4749 // Validate max slot
4850 if err := t .ValidateLatestOccupiedSlot (analysis .LatestOccupiedSlot ); err != nil {
49- return nil , nil , err
51+ return nil , err
5052 }
5153
5254 // Validate latest block slot
5355 if err := t .ValidateLatestNonEmptyBlockSlot (analysis .LatestNonEmptyBlock ); err != nil {
54- return nil , nil , err
56+ return nil , err
5557 }
5658
5759 // Validate no new blocks are created after chain end
5860 if err := t .ValidateNoNewBlocks (t .AnyPortOfType (PORT_REST )); err != nil {
59- return nil , nil , err
61+ return nil , err
6062 }
6163
62- // Extract fork config before nodes shutdown
63- forkConfigBytes , err := t .GetForkConfig (t .AnyPortOfType (PORT_REST ))
64- if err != nil {
65- return nil , nil , err
64+ if err := beforeShutdown (t , analysis ); err != nil {
65+ return nil , err
6666 }
6767
68- return forkConfigBytes , analysis , nil
68+ return analysis , nil
6969}
7070
7171type ForkData struct {
@@ -164,7 +164,7 @@ func (t *HardforkTest) LegacyForkPhase(analysis *BlockAnalysisResult, forkConfig
164164}
165165
166166// Uses `mina advanced generate-hardfork-config CLI`
167- func (t * HardforkTest ) AdvancedForkPhase (analysis * BlockAnalysisResult , forkConfigBytes [] byte ) (* ForkData , error ) {
167+ func (t * HardforkTest ) AdvancedForkPhase (analysis * BlockAnalysisResult ) (* ForkData , error ) {
168168
169169 cwd := ""
170170 var err error = nil
0 commit comments