mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2024-12-22 11:41:19 +00:00
erigon22: rename historyReader22 to historyReader23 (#5202)
This commit is contained in:
parent
8f7ce51e11
commit
a0af80014c
@ -148,7 +148,7 @@ func (api *ErigonImpl) GetLogs(ctx context.Context, crit filters.FilterCriteria)
|
||||
var lastHeader *types.Header
|
||||
var lastSigner *types.Signer
|
||||
var lastRules *params.Rules
|
||||
stateReader := state.NewHistoryReader22(ac, nil /* ReadIndices */)
|
||||
stateReader := state.NewHistoryReader23(ac, nil /* ReadIndices */)
|
||||
iter := txNumbers.Iterator()
|
||||
for iter.HasNext() {
|
||||
txNum := iter.Next()
|
||||
|
@ -172,7 +172,7 @@ func (api *APIImpl) GetLogs(ctx context.Context, crit filters.FilterCriteria) ([
|
||||
var lastHeader *types.Header
|
||||
var lastSigner *types.Signer
|
||||
var lastRules *params.Rules
|
||||
stateReader := state.NewHistoryReader22(ac, nil /* ReadIndices */)
|
||||
stateReader := state.NewHistoryReader23(ac, nil /* ReadIndices */)
|
||||
iter := txNumbers.Iterator()
|
||||
|
||||
chainConfig, err := api.chainConfig(tx)
|
||||
|
@ -315,7 +315,7 @@ func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, str
|
||||
var lastHeader *types.Header
|
||||
var lastSigner *types.Signer
|
||||
var lastRules *params.Rules
|
||||
stateReader := state.NewHistoryReader22(ac, nil /* ReadIndices */)
|
||||
stateReader := state.NewHistoryReader23(ac, nil /* ReadIndices */)
|
||||
noop := state.NewNoopWriter()
|
||||
for it.HasNext() {
|
||||
txNum := it.Next()
|
||||
|
@ -139,7 +139,7 @@ func History22(genesis *core.Genesis, logger log.Logger) error {
|
||||
return fmt.Errorf("reopen snapshot segments: %w", err)
|
||||
}
|
||||
blockReader = snapshotsync.NewBlockReaderWithSnapshots(allSnapshots)
|
||||
readWrapper := state.NewHistoryReader22(h.MakeContext(), ri)
|
||||
readWrapper := state.NewHistoryReader23(h.MakeContext(), ri)
|
||||
|
||||
for !interrupt {
|
||||
select {
|
||||
@ -221,7 +221,7 @@ func History22(genesis *core.Genesis, logger log.Logger) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func runHistory22(trace bool, blockNum, txNumStart uint64, hw *state.HistoryReader22, ww state.StateWriter, chainConfig *params.ChainConfig, getHeader func(hash common.Hash, number uint64) *types.Header, block *types.Block, vmConfig vm.Config) (uint64, types.Receipts, error) {
|
||||
func runHistory22(trace bool, blockNum, txNumStart uint64, hw *state.HistoryReader23, ww state.StateWriter, chainConfig *params.ChainConfig, getHeader func(hash common.Hash, number uint64) *types.Header, block *types.Block, vmConfig vm.Config) (uint64, types.Receipts, error) {
|
||||
header := block.Header()
|
||||
vmConfig.TraceJumpDest = true
|
||||
engine := ethash.NewFullFaker()
|
||||
|
@ -157,16 +157,18 @@ func TestCreate2Revive(t *testing.T) {
|
||||
if err = m.InsertChain(chain.Slice(1, 2)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var it *contracts.ReviveDeployEventIterator
|
||||
it, err = revive.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Fatal("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
if !m.HistoryV2 {
|
||||
// HistoryV2 doesn't store Receipts in db by default. Please enable this test, after implementation of special flag which stores logs
|
||||
it, err := revive.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Fatal("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
}
|
||||
}
|
||||
|
||||
var key2 common.Hash
|
||||
@ -203,15 +205,17 @@ func TestCreate2Revive(t *testing.T) {
|
||||
if err = m.InsertChain(chain.Slice(3, 4)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
it, err = revive.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Error("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
if !m.HistoryV2 {
|
||||
it, err := revive.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Error("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
}
|
||||
}
|
||||
err = m.DB.View(context.Background(), func(tx kv.Tx) error {
|
||||
st := state.New(state.NewPlainStateReader(tx))
|
||||
@ -385,16 +389,19 @@ func TestCreate2Polymorth(t *testing.T) {
|
||||
if err = m.InsertChain(chain.Slice(1, 2)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var it *contracts.PolyDeployEventIterator
|
||||
it, err = poly.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Error("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
|
||||
if !m.HistoryV2 {
|
||||
var it *contracts.PolyDeployEventIterator
|
||||
it, err = poly.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Error("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
}
|
||||
}
|
||||
err = m.DB.View(context.Background(), func(tx kv.Tx) error {
|
||||
st := state.New(state.NewPlainStateReader(tx))
|
||||
@ -428,15 +435,17 @@ func TestCreate2Polymorth(t *testing.T) {
|
||||
if err = m.InsertChain(chain.Slice(3, 4)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
it, err = poly.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Error("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
if !m.HistoryV2 {
|
||||
it, err := poly.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Error("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
}
|
||||
}
|
||||
err = m.DB.View(context.Background(), func(tx kv.Tx) error {
|
||||
st := state.New(state.NewPlainStateReader(tx))
|
||||
@ -458,15 +467,17 @@ func TestCreate2Polymorth(t *testing.T) {
|
||||
if err = m.InsertChain(chain.Slice(4, 5)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
it, err = poly.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Error("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
if !m.HistoryV2 {
|
||||
it, err := poly.FilterDeployEvent(nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !it.Next() {
|
||||
t.Error("Expected DeployEvent")
|
||||
}
|
||||
if it.Event.D != create2address {
|
||||
t.Errorf("Wrong create2address: %x, expected %x", it.Event.D, create2address)
|
||||
}
|
||||
}
|
||||
err = m.DB.View(context.Background(), func(tx kv.Tx) error {
|
||||
st := state.New(state.NewPlainStateReader(tx))
|
||||
|
@ -20,7 +20,7 @@ func bytesToUint64(buf []byte) (x uint64) {
|
||||
}
|
||||
|
||||
// Implements StateReader and StateWriter
|
||||
type HistoryReader22 struct {
|
||||
type HistoryReader23 struct {
|
||||
ac *libstate.AggregatorContext
|
||||
ri *libstate.ReadIndices
|
||||
txNum uint64
|
||||
@ -28,32 +28,32 @@ type HistoryReader22 struct {
|
||||
tx kv.Tx
|
||||
}
|
||||
|
||||
func NewHistoryReader22(ac *libstate.AggregatorContext, ri *libstate.ReadIndices) *HistoryReader22 {
|
||||
return &HistoryReader22{ac: ac, ri: ri}
|
||||
func NewHistoryReader23(ac *libstate.AggregatorContext, ri *libstate.ReadIndices) *HistoryReader23 {
|
||||
return &HistoryReader23{ac: ac, ri: ri}
|
||||
}
|
||||
|
||||
func (hr *HistoryReader22) SetTx(tx kv.Tx) { hr.tx = tx }
|
||||
func (hr *HistoryReader23) SetTx(tx kv.Tx) { hr.tx = tx }
|
||||
|
||||
func (hr *HistoryReader22) SetRwTx(tx kv.RwTx) {
|
||||
func (hr *HistoryReader23) SetRwTx(tx kv.RwTx) {
|
||||
hr.ri.SetTx(tx)
|
||||
}
|
||||
|
||||
func (hr *HistoryReader22) SetTxNum(txNum uint64) {
|
||||
func (hr *HistoryReader23) SetTxNum(txNum uint64) {
|
||||
hr.txNum = txNum
|
||||
if hr.ri != nil {
|
||||
hr.ri.SetTxNum(txNum)
|
||||
}
|
||||
}
|
||||
|
||||
func (hr *HistoryReader22) FinishTx() error {
|
||||
func (hr *HistoryReader23) FinishTx() error {
|
||||
return hr.ri.FinishTx()
|
||||
}
|
||||
|
||||
func (hr *HistoryReader22) SetTrace(trace bool) {
|
||||
func (hr *HistoryReader23) SetTrace(trace bool) {
|
||||
hr.trace = trace
|
||||
}
|
||||
|
||||
func (hr *HistoryReader22) ReadAccountData(address common.Address) (*accounts.Account, error) {
|
||||
func (hr *HistoryReader23) ReadAccountData(address common.Address) (*accounts.Account, error) {
|
||||
if hr.ri != nil {
|
||||
if err := hr.ri.ReadAccountData(address.Bytes()); err != nil {
|
||||
return nil, err
|
||||
@ -80,7 +80,7 @@ func (hr *HistoryReader22) ReadAccountData(address common.Address) (*accounts.Ac
|
||||
return &a, nil
|
||||
}
|
||||
|
||||
func (hr *HistoryReader22) ReadAccountStorage(address common.Address, incarnation uint64, key *common.Hash) ([]byte, error) {
|
||||
func (hr *HistoryReader23) ReadAccountStorage(address common.Address, incarnation uint64, key *common.Hash) ([]byte, error) {
|
||||
if hr.ri != nil {
|
||||
if err := hr.ri.ReadAccountStorage(address.Bytes(), key.Bytes()); err != nil {
|
||||
return nil, err
|
||||
@ -103,7 +103,7 @@ func (hr *HistoryReader22) ReadAccountStorage(address common.Address, incarnatio
|
||||
return enc, nil
|
||||
}
|
||||
|
||||
func (hr *HistoryReader22) ReadAccountCode(address common.Address, incarnation uint64, codeHash common.Hash) ([]byte, error) {
|
||||
func (hr *HistoryReader23) ReadAccountCode(address common.Address, incarnation uint64, codeHash common.Hash) ([]byte, error) {
|
||||
if hr.ri != nil {
|
||||
if err := hr.ri.ReadAccountCode(address.Bytes()); err != nil {
|
||||
return nil, err
|
||||
@ -119,7 +119,7 @@ func (hr *HistoryReader22) ReadAccountCode(address common.Address, incarnation u
|
||||
return enc, nil
|
||||
}
|
||||
|
||||
func (hr *HistoryReader22) ReadAccountCodeSize(address common.Address, incarnation uint64, codeHash common.Hash) (int, error) {
|
||||
func (hr *HistoryReader23) ReadAccountCodeSize(address common.Address, incarnation uint64, codeHash common.Hash) (int, error) {
|
||||
if hr.ri != nil {
|
||||
if err := hr.ri.ReadAccountCodeSize(address.Bytes()); err != nil {
|
||||
return 0, err
|
||||
@ -135,6 +135,6 @@ func (hr *HistoryReader22) ReadAccountCodeSize(address common.Address, incarnati
|
||||
return size, nil
|
||||
}
|
||||
|
||||
func (hr *HistoryReader22) ReadAccountIncarnation(address common.Address) (uint64, error) {
|
||||
func (hr *HistoryReader23) ReadAccountIncarnation(address common.Address) (uint64, error) {
|
||||
return 0, nil
|
||||
}
|
@ -710,6 +710,17 @@ func (p *Promoter) UnwindOnHistoryV2(logPrefix string, agg *state.Aggregator22,
|
||||
return err
|
||||
}
|
||||
plainKey := dbutils.PlainGenerateCompositeStorageKey(k[:20], acc.Incarnation, k[20:])
|
||||
/*
|
||||
incarnation := uint64(1)
|
||||
if len(val) == 0 {
|
||||
if err := acc.DecodeForStorage(val); err != nil {
|
||||
return err
|
||||
}
|
||||
incarnation = acc.Incarnation
|
||||
v = nil
|
||||
}
|
||||
plainKey := dbutils.PlainGenerateCompositeStorageKey(k[:20], incarnation, k[20:])
|
||||
*/
|
||||
newK, err := transformPlainStateKey(plainKey)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -1020,15 +1020,15 @@ func TestDoubleAccountRemoval(t *testing.T) {
|
||||
}
|
||||
defer tx.Rollback()
|
||||
|
||||
st := m.NewStateReader(1, tx)
|
||||
st := m.NewHistoricalStateReader(1, tx)
|
||||
assert.NoError(t, err)
|
||||
assert.False(t, st.Exist(theAddr), "Contract should not exist at block #0")
|
||||
|
||||
st = m.NewStateReader(2, tx)
|
||||
st = m.NewHistoricalStateReader(2, tx)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, st.Exist(theAddr), "Contract should exist at block #1")
|
||||
|
||||
st = m.NewStateReader(3, tx)
|
||||
st = m.NewHistoricalStateReader(3, tx)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, st.Exist(theAddr), "Contract should exist at block #2")
|
||||
}
|
||||
|
@ -646,11 +646,11 @@ func (ms *MockSentry) HeaderDownload() *headerdownload.HeaderDownload {
|
||||
return ms.sentriesClient.Hd
|
||||
}
|
||||
|
||||
func (ms *MockSentry) NewStateReader(blockNum uint64, tx kv.Tx) *state.IntraBlockState {
|
||||
func (ms *MockSentry) NewHistoricalStateReader(blockNum uint64, tx kv.Tx) *state.IntraBlockState {
|
||||
if ms.HistoryV2 {
|
||||
agg, _ := libstate.NewAggregator(path.Join(ms.Dirs.DataDir, "agg22"), stagedsync.AggregationStep)
|
||||
defer agg.Close()
|
||||
r := state.NewHistoryReader22(agg.MakeContext(), nil)
|
||||
r := state.NewHistoryReader23(agg.MakeContext(), nil)
|
||||
r.SetTx(tx)
|
||||
r.SetTxNum(ms.txNums.MinOf(blockNum))
|
||||
return state.New(r)
|
||||
|
Loading…
Reference in New Issue
Block a user