core: remove dead code, limit test code scope (#17006)
* core: move test util var/func to test file * core: remove useless func
This commit is contained in:
parent
3e57c33147
commit
9b1536b26a
|
@ -25,6 +25,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
|
"github.com/ethereum/go-ethereum/consensus"
|
||||||
"github.com/ethereum/go-ethereum/consensus/ethash"
|
"github.com/ethereum/go-ethereum/consensus/ethash"
|
||||||
"github.com/ethereum/go-ethereum/core/rawdb"
|
"github.com/ethereum/go-ethereum/core/rawdb"
|
||||||
"github.com/ethereum/go-ethereum/core/state"
|
"github.com/ethereum/go-ethereum/core/state"
|
||||||
|
@ -35,6 +36,39 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/ethereum/go-ethereum/params"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// So we can deterministically seed different blockchains
|
||||||
|
var (
|
||||||
|
canonicalSeed = 1
|
||||||
|
forkSeed = 2
|
||||||
|
)
|
||||||
|
|
||||||
|
// newCanonical creates a chain database, and injects a deterministic canonical
|
||||||
|
// chain. Depending on the full flag, if creates either a full block chain or a
|
||||||
|
// header only chain.
|
||||||
|
func newCanonical(engine consensus.Engine, n int, full bool) (ethdb.Database, *BlockChain, error) {
|
||||||
|
var (
|
||||||
|
db = ethdb.NewMemDatabase()
|
||||||
|
genesis = new(Genesis).MustCommit(db)
|
||||||
|
)
|
||||||
|
|
||||||
|
// Initialize a fresh chain with only a genesis block
|
||||||
|
blockchain, _ := NewBlockChain(db, nil, params.AllEthashProtocolChanges, engine, vm.Config{})
|
||||||
|
// Create and inject the requested chain
|
||||||
|
if n == 0 {
|
||||||
|
return db, blockchain, nil
|
||||||
|
}
|
||||||
|
if full {
|
||||||
|
// Full block-chain requested
|
||||||
|
blocks := makeBlockChain(genesis, n, engine, db, canonicalSeed)
|
||||||
|
_, err := blockchain.InsertChain(blocks)
|
||||||
|
return db, blockchain, err
|
||||||
|
}
|
||||||
|
// Header-only chain requested
|
||||||
|
headers := makeHeaderChain(genesis.Header(), n, engine, db, canonicalSeed)
|
||||||
|
_, err := blockchain.InsertHeaderChain(headers, 1)
|
||||||
|
return db, blockchain, err
|
||||||
|
}
|
||||||
|
|
||||||
// Test fork of length N starting from block i
|
// Test fork of length N starting from block i
|
||||||
func testFork(t *testing.T, blockchain *BlockChain, i, n int, full bool, comparator func(td1, td2 *big.Int)) {
|
func testFork(t *testing.T, blockchain *BlockChain, i, n int, full bool, comparator func(td1, td2 *big.Int)) {
|
||||||
// Copy old chain up to #i into a new db
|
// Copy old chain up to #i into a new db
|
||||||
|
|
|
@ -30,12 +30,6 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/ethereum/go-ethereum/params"
|
||||||
)
|
)
|
||||||
|
|
||||||
// So we can deterministically seed different blockchains
|
|
||||||
var (
|
|
||||||
canonicalSeed = 1
|
|
||||||
forkSeed = 2
|
|
||||||
)
|
|
||||||
|
|
||||||
// BlockGen creates blocks for testing.
|
// BlockGen creates blocks for testing.
|
||||||
// See GenerateChain for a detailed explanation.
|
// See GenerateChain for a detailed explanation.
|
||||||
type BlockGen struct {
|
type BlockGen struct {
|
||||||
|
@ -252,33 +246,6 @@ func makeHeader(chain consensus.ChainReader, parent *types.Block, state *state.S
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// newCanonical creates a chain database, and injects a deterministic canonical
|
|
||||||
// chain. Depending on the full flag, if creates either a full block chain or a
|
|
||||||
// header only chain.
|
|
||||||
func newCanonical(engine consensus.Engine, n int, full bool) (ethdb.Database, *BlockChain, error) {
|
|
||||||
var (
|
|
||||||
db = ethdb.NewMemDatabase()
|
|
||||||
genesis = new(Genesis).MustCommit(db)
|
|
||||||
)
|
|
||||||
|
|
||||||
// Initialize a fresh chain with only a genesis block
|
|
||||||
blockchain, _ := NewBlockChain(db, nil, params.AllEthashProtocolChanges, engine, vm.Config{})
|
|
||||||
// Create and inject the requested chain
|
|
||||||
if n == 0 {
|
|
||||||
return db, blockchain, nil
|
|
||||||
}
|
|
||||||
if full {
|
|
||||||
// Full block-chain requested
|
|
||||||
blocks := makeBlockChain(genesis, n, engine, db, canonicalSeed)
|
|
||||||
_, err := blockchain.InsertChain(blocks)
|
|
||||||
return db, blockchain, err
|
|
||||||
}
|
|
||||||
// Header-only chain requested
|
|
||||||
headers := makeHeaderChain(genesis.Header(), n, engine, db, canonicalSeed)
|
|
||||||
_, err := blockchain.InsertHeaderChain(headers, 1)
|
|
||||||
return db, blockchain, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// makeHeaderChain creates a deterministic chain of headers rooted at parent.
|
// makeHeaderChain creates a deterministic chain of headers rooted at parent.
|
||||||
func makeHeaderChain(parent *types.Header, n int, engine consensus.Engine, db ethdb.Database, seed int) []*types.Header {
|
func makeHeaderChain(parent *types.Header, n int, engine consensus.Engine, db ethdb.Database, seed int) []*types.Header {
|
||||||
blocks := makeBlockChain(types.NewBlockWithHeader(parent), n, engine, db, seed)
|
blocks := makeBlockChain(types.NewBlockWithHeader(parent), n, engine, db, seed)
|
||||||
|
|
|
@ -35,15 +35,6 @@ var (
|
||||||
ErrInvalidSig = errors.New("invalid transaction v, r, s values")
|
ErrInvalidSig = errors.New("invalid transaction v, r, s values")
|
||||||
)
|
)
|
||||||
|
|
||||||
// deriveSigner makes a *best* guess about which signer to use.
|
|
||||||
func deriveSigner(V *big.Int) Signer {
|
|
||||||
if V.Sign() != 0 && isProtectedV(V) {
|
|
||||||
return NewEIP155Signer(deriveChainId(V))
|
|
||||||
} else {
|
|
||||||
return HomesteadSigner{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type Transaction struct {
|
type Transaction struct {
|
||||||
data txdata
|
data txdata
|
||||||
// caches
|
// caches
|
||||||
|
|
|
@ -65,12 +65,6 @@ func memoryCall(stack *Stack) *big.Int {
|
||||||
return math.BigMax(x, y)
|
return math.BigMax(x, y)
|
||||||
}
|
}
|
||||||
|
|
||||||
func memoryCallCode(stack *Stack) *big.Int {
|
|
||||||
x := calcMemSize(stack.Back(5), stack.Back(6))
|
|
||||||
y := calcMemSize(stack.Back(3), stack.Back(4))
|
|
||||||
|
|
||||||
return math.BigMax(x, y)
|
|
||||||
}
|
|
||||||
func memoryDelegateCall(stack *Stack) *big.Int {
|
func memoryDelegateCall(stack *Stack) *big.Int {
|
||||||
x := calcMemSize(stack.Back(4), stack.Back(5))
|
x := calcMemSize(stack.Back(4), stack.Back(5))
|
||||||
y := calcMemSize(stack.Back(2), stack.Back(3))
|
y := calcMemSize(stack.Back(2), stack.Back(3))
|
||||||
|
|
Loading…
Reference in New Issue