11package hardfork
22
33import (
4- "encoding/json"
54 "fmt"
65 "os"
76 "time"
@@ -153,7 +152,7 @@ func (t *HardforkTest) LegacyForkPhase(analysis *BlockAnalysisResult, forkConfig
153152 if err != nil {
154153 return nil , err
155154 }
156- err = t .ValidateLegacyPostpatchForkConfig (analysis .LatestNonEmptyBlock , patchedConfigBytes , forkGenesisTs , mainGenesisTs )
155+ err = t .ValidateFinalForkConfig (analysis .LatestNonEmptyBlock , patchedConfigBytes , forkGenesisTs , mainGenesisTs )
157156 if err != nil {
158157 return nil , err
159158 }
@@ -163,7 +162,7 @@ func (t *HardforkTest) LegacyForkPhase(analysis *BlockAnalysisResult, forkConfig
163162}
164163
165164// Uses `mina advanced generate-hardfork-config CLI`
166- func (t * HardforkTest ) AdvancedForkPhase (analysis * BlockAnalysisResult ) (* ForkData , error ) {
165+ func (t * HardforkTest ) AdvancedForkPhase (analysis * BlockAnalysisResult , mainGenesisTs int64 ) (* ForkData , error ) {
167166
168167 cwd := ""
169168 var err error = nil
@@ -177,21 +176,21 @@ func (t *HardforkTest) AdvancedForkPhase(analysis *BlockAnalysisResult) (*ForkDa
177176 return nil , err
178177 }
179178
180- configToPatch := fmt .Sprintf ("%s/daemon.json" , forkDataPath )
179+ forkConfig := fmt .Sprintf ("%s/daemon.json" , forkDataPath )
181180
182- configJsonString , err := os .ReadFile (configToPatch )
181+ forkConfigBytes , err := os .ReadFile (forkConfig )
183182 if err != nil {
184183 return nil , err
185184 }
186185
187- // TODO: validate fork config here instead of using a generic map to read it.
188- var configRaw map [string ]map [string ]string
189- json .Unmarshal (configJsonString , & configRaw )
186+ forkGenesisSlot := t .Config .SlotChainEnd + t .Config .HfSlotDelta ()
187+ forkGenesisTs := mainGenesisTs + int64 (forkGenesisSlot * t .Config .MainSlot )
190188
191- forkGenesisTs , err := time . Parse ( time . RFC3339Nano , configRaw [ "genesis" ][ "genesis_state_timestamp" ] )
189+ err = t . ValidateFinalForkConfig ( analysis . LatestNonEmptyBlock , forkConfigBytes , forkGenesisTs , mainGenesisTs )
192190 if err != nil {
193191 return nil , err
194192 }
193+
195194 forkLedgersDir := fmt .Sprintf ("%s/genesis" , forkDataPath )
196- return & ForkData {config : configToPatch , ledgersDir : forkLedgersDir , genesis : forkGenesisTs . Unix () }, nil
195+ return & ForkData {config : forkConfig , ledgersDir : forkLedgersDir , genesis : forkGenesisTs }, nil
197196}
0 commit comments