Skip to content

Commit 04b5c0c

Browse files
e4: small tests preparations (#7220)
1 parent 97eccd9 commit 04b5c0c

File tree

3 files changed

+34
-31
lines changed

3 files changed

+34
-31
lines changed

accounts/abi/bind/backends/simulated.go

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -179,20 +179,6 @@ func (b *SimulatedBackend) emptyPendingBlock() {
179179
b.pendingReceipts = chain.Receipts[0]
180180
b.pendingHeader = chain.Headers[0]
181181
b.gasPool = new(core.GasPool).AddGas(b.pendingHeader.GasLimit)
182-
if ethconfig.EnableHistoryV4InTest {
183-
panic("implement domain state reader")
184-
/*
185-
agg := db.(*temporal.DB).GetAgg()
186-
agg.SetTx(tx)
187-
188-
rs := state.NewStateV3("", agg.BufferedDomains())
189-
stateWriter = state.NewStateWriterV3(rs)
190-
r := state.NewStateReaderV3(rs)
191-
r.SetTx(tx)
192-
stateReader = r
193-
defer agg.StartUnbufferedWrites().FinishWrites()
194-
*/
195-
}
196182
if b.pendingReaderTx != nil {
197183
b.pendingReaderTx.Rollback()
198184
}
@@ -201,7 +187,12 @@ func (b *SimulatedBackend) emptyPendingBlock() {
201187
panic(err)
202188
}
203189
b.pendingReaderTx = tx
204-
b.pendingReader = state.NewPlainStateReader(b.pendingReaderTx)
190+
if ethconfig.EnableHistoryV4InTest {
191+
panic("implement me")
192+
//b.pendingReader = state.NewReaderV4(b.pendingReaderTx.(kv.TemporalTx))
193+
} else {
194+
b.pendingReader = state.NewPlainStateReader(b.pendingReaderTx)
195+
}
205196
b.pendingState = state.New(b.pendingReader)
206197
}
207198

core/genesis_write.go

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import (
4040
"github.com/ledgerwatch/erigon/core/state"
4141
"github.com/ledgerwatch/erigon/core/types"
4242
"github.com/ledgerwatch/erigon/crypto"
43+
"github.com/ledgerwatch/erigon/eth/ethconfig"
4344
"github.com/ledgerwatch/erigon/params"
4445
"github.com/ledgerwatch/erigon/params/networkname"
4546
"github.com/ledgerwatch/erigon/turbo/trie"
@@ -175,31 +176,40 @@ func WriteGenesisState(g *types.Genesis, tx kv.RwTx, tmpDir string) (*types.Bloc
175176
if err != nil {
176177
return nil, nil, err
177178
}
178-
for addr, account := range g.Alloc {
179-
if len(account.Code) > 0 || len(account.Storage) > 0 {
180-
// Special case for weird tests - inaccessible storage
181-
var b [8]byte
182-
binary.BigEndian.PutUint64(b[:], state.FirstContractIncarnation)
183-
if err := tx.Put(kv.IncarnationMap, addr[:], b[:]); err != nil {
184-
return nil, nil, err
179+
var stateWriter state.StateWriter
180+
if ethconfig.EnableHistoryV4InTest {
181+
panic("implement me")
182+
//tx.(*temporal.Tx).Agg().SetTxNum(0)
183+
//stateWriter = state.NewWriterV4(tx.(kv.TemporalTx))
184+
//defer tx.(*temporal.Tx).Agg().StartUnbufferedWrites().FinishWrites()
185+
} else {
186+
for addr, account := range g.Alloc {
187+
if len(account.Code) > 0 || len(account.Storage) > 0 {
188+
// Special case for weird tests - inaccessible storage
189+
var b [8]byte
190+
binary.BigEndian.PutUint64(b[:], state.FirstContractIncarnation)
191+
if err := tx.Put(kv.IncarnationMap, addr[:], b[:]); err != nil {
192+
return nil, nil, err
193+
}
185194
}
186195
}
196+
stateWriter = state.NewPlainStateWriter(tx, tx, 0)
187197
}
188198

189199
if block.Number().Sign() != 0 {
190200
return nil, statedb, fmt.Errorf("can't commit genesis block with number > 0")
191201
}
192202

193-
blockWriter := state.NewPlainStateWriter(tx, tx, 0)
194-
195-
if err := statedb.CommitBlock(&chain.Rules{}, blockWriter); err != nil {
203+
if err := statedb.CommitBlock(&chain.Rules{}, stateWriter); err != nil {
196204
return nil, statedb, fmt.Errorf("cannot write state: %w", err)
197205
}
198-
if err := blockWriter.WriteChangeSets(); err != nil {
199-
return nil, statedb, fmt.Errorf("cannot write change sets: %w", err)
200-
}
201-
if err := blockWriter.WriteHistory(); err != nil {
202-
return nil, statedb, fmt.Errorf("cannot write history: %w", err)
206+
if csw, ok := stateWriter.(state.WriterWithChangeSets); ok {
207+
if err := csw.WriteChangeSets(); err != nil {
208+
return nil, statedb, fmt.Errorf("cannot write change sets: %w", err)
209+
}
210+
if err := csw.WriteHistory(); err != nil {
211+
return nil, statedb, fmt.Errorf("cannot write history: %w", err)
212+
}
203213
}
204214
return block, statedb, nil
205215
}

core/state/temporal/kv_temporal.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ func New(db kv.RwDB, agg *state.AggregatorV3, cb1 tConvertV3toV2, cb2 tRestoreCo
7171

7272
return &DB{RwDB: db, agg: agg, convertV3toV2: cb1, restoreCodeHash: cb2, parseInc: cb3, systemContractLookup: systemContractLookup}, nil
7373
}
74-
func (db *DB) GetAgg() *state.AggregatorV3 { return db.agg }
74+
func (db *DB) Agg() *state.AggregatorV3 { return db.agg }
7575

7676
func (db *DB) BeginTemporalRo(ctx context.Context) (kv.TemporalTx, error) {
7777
kvTx, err := db.RwDB.BeginRo(ctx)
@@ -162,6 +162,8 @@ type Tx struct {
162162
resourcesToClose []kv.Closer
163163
}
164164

165+
func (tx *Tx) AggCtx() *state.AggregatorV3Context { return tx.agg }
166+
func (tx *Tx) Agg() *state.AggregatorV3 { return tx.db.agg }
165167
func (tx *Tx) Rollback() {
166168
for _, closer := range tx.resourcesToClose {
167169
closer.Close()

0 commit comments

Comments
 (0)