tests, core/vm/runtime: formatting

This commit is contained in:
Martin Holst Swende 2019-03-19 22:05:32 +01:00
parent b36baff097
commit 1cc5428c65
No known key found for this signature in database
GPG key ID: 683B438C05A5DDF0
8 changed files with 39 additions and 30 deletions

View file

@ -44,15 +44,14 @@ func NewBlockContext(header *types.Header, chain ChainContext, author *common.Ad
beneficiary = *author
}
return &vm.BlockContext{
GetHash: GetHashFn(header, chain),
CanTransfer: CanTransfer,
Transfer: Transfer,
Coinbase: beneficiary,
BlockNumber: new(big.Int).Set(header.Number),
Time: new(big.Int).Set(header.Time),
Difficulty: new(big.Int).Set(header.Difficulty),
GasLimit: header.GasLimit,
GetHash: GetHashFn(header, chain),
CanTransfer: CanTransfer,
Transfer: Transfer,
Coinbase: beneficiary,
BlockNumber: new(big.Int).Set(header.Number),
Time: new(big.Int).Set(header.Time),
Difficulty: new(big.Int).Set(header.Difficulty),
GasLimit: header.GasLimit,
}
}

View file

@ -45,8 +45,6 @@ func NewStateProcessor(config *params.ChainConfig, bc *BlockChain, engine consen
}
}
// Process processes the state changes according to the Ethereum rules by running
// the transaction messages using the statedb and applying any rewards to both
// the processor (coinbase) and any included uncles.

View file

@ -76,7 +76,7 @@ type Context struct {
GasPrice *big.Int // Provides information for GASPRICE
}
func (c *Context) GetHash(n uint64) common.Hash{
func (c *Context) GetHash(n uint64) common.Hash {
return c.BlockContext.GetHash(n)
}
@ -88,7 +88,7 @@ type BlockContext struct {
CanTransfer CanTransferFunc
// Transfer transfers ether from one account to the other
Transfer TransferFunc
GetHash GetHashFunc
GetHash GetHashFunc
// Block information
Coinbase common.Address // Provides information for COINBASE
GasLimit uint64 // Provides information for GASLIMIT

View file

@ -17,17 +17,17 @@
package runtime
import (
"github.com/ethereum/go-ethereum/consensus"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/types"
"math/big"
"strings"
"testing"
"github.com/ethereum/go-ethereum/accounts/abi"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/consensus"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/rawdb"
"github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/params"
)

View file

@ -203,7 +203,7 @@ func (api *PrivateDebugAPI) traceChain(ctx context.Context, start, end *types.Bl
for task := range tasks {
signer := types.MakeSigner(api.config, task.block.Number())
blockCtx := core.NewBlockContext(task.block.Header(), api.eth.blockchain, nil)
blockCtx := core.NewBlockContext(task.block.Header(), api.eth.blockchain, nil)
// Trace all the transactions contained within
for i, tx := range task.block.Transactions() {
msg, _ := tx.AsMessage(signer)
@ -477,12 +477,12 @@ func (api *PrivateDebugAPI) traceBlock(ctx context.Context, block *types.Block,
pend.Add(1)
go func() {
defer pend.Done()
blockCtx := core.NewBlockContext(block.Header(), api.eth.blockchain, nil)
blockCtx := core.NewBlockContext(block.Header(), api.eth.blockchain, nil)
// Fetch and execute the next transaction trace tasks
for task := range jobs {
msg, _ := txs[task.index].AsMessage(signer)
vmctx := core.NewEVMContext(msg,blockCtx)
vmctx := core.NewEVMContext(msg, blockCtx)
res, err := api.traceTx(ctx, msg, vmctx, task.statedb, config)
if err != nil {
@ -498,11 +498,11 @@ func (api *PrivateDebugAPI) traceBlock(ctx context.Context, block *types.Block,
for i, tx := range txs {
// Send the trace task over for execution
jobs <- &txTraceTask{statedb: statedb.Copy(), index: i}
blockCtx := core.NewBlockContext(block.Header(), api.eth.blockchain, nil)
blockCtx := core.NewBlockContext(block.Header(), api.eth.blockchain, nil)
// Generate the next state snapshot fast without tracing
msg, _ := tx.AsMessage(signer)
vmctx := core.NewEVMContext(msg,blockCtx)
vmctx := core.NewEVMContext(msg, blockCtx)
vmenv := vm.NewEVM(vmctx, statedb, api.config, vm.Config{})
if _, _, _, err := core.ApplyMessage(vmenv, msg, new(core.GasPool).AddGas(msg.Gas())); err != nil {
@ -567,7 +567,7 @@ func (api *PrivateDebugAPI) standardTraceBlockToFile(ctx context.Context, block
signer = types.MakeSigner(api.config, block.Number())
dumps []string
)
blockCtx := core.NewBlockContext(block.Header(), api.eth.blockchain, nil)
blockCtx := core.NewBlockContext(block.Header(), api.eth.blockchain, nil)
for i, tx := range block.Transactions() {
// Prepare the trasaction for un-traced execution
var (
@ -801,7 +801,7 @@ func (api *PrivateDebugAPI) computeTxEnv(blockHash common.Hash, txIndex int, ree
}
// Recompute transactions up to the target index.
signer := types.MakeSigner(api.config, block.Number())
blockCtx := core.NewBlockContext(block.Header(), api.eth.blockchain, nil)
blockCtx := core.NewBlockContext(block.Header(), api.eth.blockchain, nil)
for idx, tx := range block.Transactions() {
// Assemble the transaction call message and return if the requested offset
msg, _ := tx.AsMessage(signer)

View file

@ -51,7 +51,13 @@ type dummyStatedb struct {
func (*dummyStatedb) GetRefund() uint64 { return 1337 }
func runTrace(tracer *Tracer) (json.RawMessage, error) {
env := vm.NewEVM(vm.Context{BlockNumber: big.NewInt(1)}, &dummyStatedb{}, params.TestChainConfig, vm.Config{Debug: true, Tracer: tracer})
env := vm.NewEVM(
vm.Context{
BlockContext: &vm.BlockContext{
BlockNumber: big.NewInt(1),
},
},
&dummyStatedb{}, params.TestChainConfig, vm.Config{Debug: true, Tracer: tracer})
contract := vm.NewContract(account{}, account{}, big.NewInt(0), 10000)
contract.Code = []byte{byte(vm.PUSH1), 0x1, byte(vm.PUSH1), 0x1, 0x0}
@ -132,8 +138,13 @@ func TestHaltBetweenSteps(t *testing.T) {
if err != nil {
t.Fatal(err)
}
env := vm.NewEVM(vm.Context{BlockNumber: big.NewInt(1)}, &dummyStatedb{}, params.TestChainConfig, vm.Config{Debug: true, Tracer: tracer})
env := vm.NewEVM(
vm.Context{
BlockContext: &vm.BlockContext{
BlockNumber: big.NewInt(1),
},
},
&dummyStatedb{}, params.TestChainConfig, vm.Config{Debug: true, Tracer: tracer})
contract := vm.NewContract(&account{}, &account{}, big.NewInt(0), 0)
tracer.CaptureState(env, 0, 0, 0, 0, nil, nil, contract, 0, nil)

View file

@ -133,8 +133,8 @@ func odrContractCall(ctx context.Context, db ethdb.Database, config *params.Chai
from.SetBalance(math.MaxBig256)
msg := callmsg{types.NewMessage(from.Address(), &testContractAddr, 0, new(big.Int), 100000, new(big.Int), data, false)}
context := core.NewEVMContext(msg, header, bc, nil)
blockCtx := core.NewBlockContext(header, bc, nil)
context := core.NewEVMContext(msg, blockCtx)
vmenv := vm.NewEVM(context, statedb, config, vm.Config{})
//vmenv := core.NewEnv(statedb, config, bc, msg, header, vm.Config{})
@ -147,7 +147,8 @@ func odrContractCall(ctx context.Context, db ethdb.Database, config *params.Chai
state := light.NewState(ctx, header, lc.Odr())
state.SetBalance(testBankAddress, math.MaxBig256)
msg := callmsg{types.NewMessage(testBankAddress, &testContractAddr, 0, new(big.Int), 100000, new(big.Int), data, false)}
context := core.NewEVMContext(msg, header, lc, nil)
blockCtx := core.NewBlockContext(header, lc, nil)
context := core.NewEVMContext(msg, blockCtx)
vmenv := vm.NewEVM(context, state, config, vm.Config{})
gp := new(core.GasPool).AddGas(math.MaxUint64)
ret, _, _, _ := core.ApplyMessage(vmenv, msg, gp)

View file

@ -134,7 +134,7 @@ func (t *StateTest) Run(subtest StateSubtest, vmconfig vm.Config) (*state.StateD
if err != nil {
return nil, err
}
blockCtx := core.NewBlockContext(block.Header(), nil, &t.json.Env.Coinbase)
blockCtx := core.NewBlockContext(block.Header(), nil, &t.json.Env.Coinbase)
context := core.NewEVMContext(msg, blockCtx)
blockCtx.GetHash = vmTestBlockHash
evm := vm.NewEVM(context, statedb, config, vmconfig)