Clean up #6
7
go.mod
7
go.mod
@ -5,7 +5,7 @@ go 1.21
|
||||
require (
|
||||
github.com/VictoriaMetrics/fastcache v1.12.2
|
||||
github.com/cerc-io/ipfs-ethdb/v5 v5.1.0-alpha
|
||||
github.com/cerc-io/plugeth-statediff v0.2.0
|
||||
github.com/cerc-io/plugeth-statediff v0.2.1
|
||||
github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233
|
||||
github.com/davecgh/go-spew v1.1.1
|
||||
github.com/ethereum/go-ethereum v1.13.14
|
||||
@ -111,8 +111,3 @@ require (
|
||||
lukechampine.com/blake3 v1.2.2 // indirect
|
||||
rsc.io/tmplfunc v0.0.3 // indirect
|
||||
)
|
||||
|
||||
replace (
|
||||
github.com/cerc-io/ipfs-ethdb/v5 => github.com/cerc-io/ipfs-ethdb/v5 v5.1.0-alpha
|
||||
github.com/cerc-io/plugeth-statediff => github.com/cerc-io/plugeth-statediff v0.2.1
|
||||
)
|
||||
|
@ -1,38 +0,0 @@
|
||||
package helper
|
||||
|
||||
import (
|
||||
"hash"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"golang.org/x/crypto/sha3"
|
||||
)
|
||||
|
||||
var _ types.TrieHasher = &testHasher{}
|
||||
|
||||
// testHasher (copied from go-ethereum/core/types/block_test.go)
|
||||
// satisfies types.TrieHasher
|
||||
type testHasher struct {
|
||||
hasher hash.Hash
|
||||
}
|
||||
|
||||
func NewHasher() *testHasher {
|
||||
return &testHasher{hasher: sha3.NewLegacyKeccak256()}
|
||||
}
|
||||
|
||||
func (h *testHasher) Reset() {
|
||||
h.hasher.Reset()
|
||||
}
|
||||
|
||||
func (h *testHasher) Update(key, val []byte) error {
|
||||
_, err := h.hasher.Write(key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = h.hasher.Write(val)
|
||||
return err
|
||||
}
|
||||
|
||||
func (h *testHasher) Hash() common.Hash {
|
||||
return common.BytesToHash(h.hasher.Sum(nil))
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
package helper
|
||||
|
||||
import (
|
||||
"context"
|
||||
"math/big"
|
||||
|
||||
"github.com/cerc-io/plugeth-statediff"
|
||||
"github.com/cerc-io/plugeth-statediff/adapt"
|
||||
"github.com/cerc-io/plugeth-statediff/indexer"
|
||||
"github.com/cerc-io/plugeth-statediff/indexer/database/sql/postgres"
|
||||
"github.com/cerc-io/plugeth-statediff/indexer/node"
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core/state"
|
||||
"github.com/ethereum/go-ethereum/core/types"
|
||||
"github.com/ethereum/go-ethereum/params"
|
||||
)
|
||||
|
||||
var (
|
||||
ChainConfig = params.TestChainConfig
|
||||
|
||||
mockTD = big.NewInt(1)
|
||||
)
|
||||
|
||||
// IndexStateDiff indexes a single statediff.
|
||||
// - uses TestChainConfig
|
||||
// - block hash/number are left as zero
|
||||
func IndexStateDiff(dbConfig postgres.Config, stateCache state.Database, rootA, rootB common.Hash) error {
|
||||
_, indexer, err := indexer.NewStateDiffIndexer(
|
||||
context.Background(), ChainConfig, node.Info{}, dbConfig, true)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer indexer.Close() // fixme: hangs when using PGX driver
|
||||
|
||||
builder := statediff.NewBuilder(adapt.GethStateView(stateCache))
|
||||
block := types.NewBlock(&types.Header{Root: rootB}, nil, nil, nil, NewHasher())
|
||||
|
||||
// uses zero block hash/number, we only need the trie structure here
|
||||
args := statediff.Args{
|
||||
OldStateRoot: rootA,
|
||||
NewStateRoot: rootB,
|
||||
}
|
||||
diff, err := builder.BuildStateDiffObject(args, statediff.Params{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
tx, err := indexer.PushBlock(block, nil, mockTD)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// we don't need to index diff.Nodes since we are just interested in the trie
|
||||
for _, ipld := range diff.IPLDs {
|
||||
if err := indexer.PushIPLD(tx, ipld); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return tx.Submit()
|
||||
}
|
Loading…
Reference in New Issue
Block a user