Skip to content

Commit b34151e

Browse files
PlasmaPowerhkalodner
authored andcommitted
Support creating genesis block in PrepareRecording
1 parent 1e9c9b8 commit b34151e

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

arbitrum/recordingdb.go

+11-4
Original file line numberDiff line numberDiff line change
@@ -134,14 +134,21 @@ func PrepareRecording(blockchain *core.BlockChain, lastBlockHeader *types.Header
134134
rawTrie := blockchain.StateCache().TrieDB()
135135
recordingKeyValue := NewRecordingKV(rawTrie)
136136
recordingStateDatabase := state.NewDatabase(rawdb.NewDatabase(recordingKeyValue))
137-
recordingStateDb, err := state.New(lastBlockHeader.Root, recordingStateDatabase, nil)
137+
var prevRoot common.Hash
138+
if lastBlockHeader != nil {
139+
prevRoot = lastBlockHeader.Root
140+
}
141+
recordingStateDb, err := state.New(prevRoot, recordingStateDatabase, nil)
138142
if err != nil {
139143
return nil, nil, nil, fmt.Errorf("failed to create recordingStateDb: %w", err)
140144
}
141-
if !lastBlockHeader.Number.IsUint64() {
142-
return nil, nil, nil, errors.New("block number not uint64")
145+
var recordingChainContext *RecordingChainContext
146+
if lastBlockHeader != nil {
147+
if !lastBlockHeader.Number.IsUint64() {
148+
return nil, nil, nil, errors.New("block number not uint64")
149+
}
150+
recordingChainContext = NewRecordingChainContext(blockchain, lastBlockHeader.Number.Uint64())
143151
}
144-
recordingChainContext := NewRecordingChainContext(blockchain, lastBlockHeader.Number.Uint64())
145152
return recordingStateDb, recordingChainContext, recordingKeyValue, nil
146153
}
147154

0 commit comments

Comments
 (0)