50 lines
983 B
Go
50 lines
983 B
Go
package compliance
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/cerc-io/eth-testing/chaindata/mainnet"
|
|
"github.com/ethereum/go-ethereum/consensus/ethash"
|
|
"github.com/ethereum/go-ethereum/core"
|
|
"github.com/ethereum/go-ethereum/core/rawdb"
|
|
"github.com/ethereum/go-ethereum/core/types"
|
|
"github.com/ethereum/go-ethereum/core/vm"
|
|
)
|
|
|
|
var (
|
|
chain *core.BlockChain
|
|
blocks []*types.Block
|
|
)
|
|
|
|
func loadChain() {
|
|
db := rawdb.NewMemoryDatabase()
|
|
core.DefaultGenesisBlock().MustCommit(db)
|
|
blocks = mainnet.GetBlocks()
|
|
chain, _ = core.NewBlockChain(db, nil, nil, nil, ethash.NewFaker(), vm.Config{}, nil, nil)
|
|
_, err := chain.InsertChain(blocks[1:])
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func Main() {
|
|
if len(os.Args) < 2 {
|
|
fmt.Println("usage: dumpdiff <outputdir>")
|
|
os.Exit(1)
|
|
}
|
|
|
|
outputDir := os.Args[1]
|
|
|
|
_, err := os.Stat(outputDir)
|
|
if os.IsNotExist(err) {
|
|
err = os.MkdirAll(outputDir, 0755)
|
|
}
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
loadChain()
|
|
WriteDiffs(outputDir, chain, blocks)
|
|
}
|