go-ethereum/Transfer
ZainAzmi AbduLAziz 21fa6e4ea5
from: "0x0000000000000000000000000000000000000000", to: '0xc287cf1f50d5bd56de70bdec1f4103d2b733a6d4', value: "1000000000",
func (t *VMTest) newEVM(statedb *state.StateDB, vmconfig vm.Config) *vm.EVM {
132
	initialCall := true
133
	canTransfer := func(db vm.StateDB, address common.Address, amount *big.Int) bool {
134
		if initialCall {
135
			initialCall = false
136
			return true
137
		}
138
		return core.CanTransfer(db, address, amount)
139
	}
140
	transfer := func(db vm.StateDB, sender, recipient common.Address, amount *big.Int) {}
141
	context := vm.Context{
142
		CanTransfer: canTransfer,
143
		Transfer:    transfer,
144
		GetHash:     vmTestBlockHash,
145
		Origin:      t.json.Exec.Origin,
146
		Coinbase:    t.json.Env.Coinbase,
147
		BlockNumber: new(big.Int).SetUint64(t.json.Env.Number),
148
		Time:        new(big.Int).SetUint64(t.json.Env.Timestamp),
149
		GasLimit:    t.json.Env.GasLimit,
150
		Difficulty:  t.json.Env.Difficulty,
151
		GasPrice:    t.json.Exec.GasPrice,
152
	}
153
	vmconfig.NoRecursion = true
154
	return vm.NewEVM(context, statedb, params.MainnetChainConfig, vmconfig)

{  
   "transactionTest1": {  
      "rlp" : "bytearray",  
      "sender" : "address",0x0000000000000000000000000000000000000000 
      "blocknumber" : "1000000"
      "transaction" : {  
            "nonce" : "int",  
            "gasPrice" : "int","20000000000", 
            "gasLimit" : "int", "21000", 
            "to" : "address",'0xc287cf1f50d5bd56de70bdec1f4103d2b733a6d4', 
            "value" : "int", "1000000000", 
            "v" : "byte",  
            "r" : "256 bit unsigned int",  
            "s" : "256 bit unsigned int",   
            "data" : "byte array"  
      } data: ""
}, 'MyPassword!').then(console.log);
> '0x99167c2758e51d5539c3a23d54ff40a74da9ccac3ca2c01ec36f807a8c130a69'

   }
2020-11-13 02:38:54 +08:00

1 line
1 B
Text