mirror of https://github.com/status-im/op-geth.git
updated tests
This commit is contained in:
parent
35fe4313d5
commit
00348756bc
|
@ -6384,25 +6384,33 @@
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
||||||
"balance" : "1000000000000100000",
|
"balance" : "1000000000000099977",
|
||||||
"code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052600060036017f0600055",
|
"code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052600060036017f0600055",
|
||||||
"nonce" : "0",
|
"nonce" : "1",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
|
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
|
||||||
"balance" : "10000",
|
"balance" : "908",
|
||||||
"code" : "0x",
|
"code" : "0x",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
"balance" : "999999999999890000",
|
"balance" : "999999999999899092",
|
||||||
"code" : "0x",
|
"code" : "0x",
|
||||||
"nonce" : "1",
|
"nonce" : "1",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"d2571607e241ecf590ed94b12d87c94babe36db6" : {
|
||||||
|
"balance" : "23",
|
||||||
|
"code" : "0x",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
|
@ -6445,25 +6453,33 @@
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
||||||
"balance" : "1000000000000100000",
|
"balance" : "1000000000000099977",
|
||||||
"code" : "0x7c601080600c6000396000f3006000355415600957005b6020356000355560005260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6017f0600055",
|
"code" : "0x7c601080600c6000396000f3006000355415600957005b6020356000355560005260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6017f0600055",
|
||||||
"nonce" : "0",
|
"nonce" : "1",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
|
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
|
||||||
"balance" : "10000",
|
"balance" : "908",
|
||||||
"code" : "0x",
|
"code" : "0x",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
"balance" : "999999999999890000",
|
"balance" : "999999999999899092",
|
||||||
"code" : "0x",
|
"code" : "0x",
|
||||||
"nonce" : "1",
|
"nonce" : "1",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"d2571607e241ecf590ed94b12d87c94babe36db6" : {
|
||||||
|
"balance" : "23",
|
||||||
|
"code" : "0x",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
|
@ -6506,25 +6522,33 @@
|
||||||
"out" : "0x",
|
"out" : "0x",
|
||||||
"post" : {
|
"post" : {
|
||||||
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
"095e7baea6a6c7c4c2dfeb977efac326af552d87" : {
|
||||||
"balance" : "1000000000000100000",
|
"balance" : "1000000000000099977",
|
||||||
"code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052600060006017f0600055",
|
"code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052600060006017f0600055",
|
||||||
"nonce" : "0",
|
"nonce" : "1",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
|
"0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
|
"2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : {
|
||||||
"balance" : "10000",
|
"balance" : "908",
|
||||||
"code" : "0x",
|
"code" : "0x",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
"a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : {
|
||||||
"balance" : "999999999999890000",
|
"balance" : "999999999999899092",
|
||||||
"code" : "0x",
|
"code" : "0x",
|
||||||
"nonce" : "1",
|
"nonce" : "1",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"d2571607e241ecf590ed94b12d87c94babe36db6" : {
|
||||||
|
"balance" : "23",
|
||||||
|
"code" : "0x",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre" : {
|
"pre" : {
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
"randomVMtest" : {
|
||||||
|
"callcreates" : [
|
||||||
|
],
|
||||||
|
"env" : {
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
||||||
|
"currentDifficulty" : "256",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentTimestamp" : "1",
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
||||||
|
},
|
||||||
|
"exec" : {
|
||||||
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"code" : "0x596b0768335591598873a0325111f337",
|
||||||
|
"data" : "0x",
|
||||||
|
"gas" : "10000",
|
||||||
|
"gasPrice" : "100000000000000",
|
||||||
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"value" : "1000000000000000000"
|
||||||
|
},
|
||||||
|
"gas" : "9997",
|
||||||
|
"logs" : [
|
||||||
|
],
|
||||||
|
"out" : "0x",
|
||||||
|
"post" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x596b0768335591598873a0325111f337",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x596b0768335591598873a0325111f337",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
"randomVMtest" : {
|
||||||
|
"callcreates" : [
|
||||||
|
],
|
||||||
|
"env" : {
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
||||||
|
"currentDifficulty" : "256",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentTimestamp" : "1",
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
||||||
|
},
|
||||||
|
"exec" : {
|
||||||
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"code" : "0x3858423938447a730a049901951a0a1a",
|
||||||
|
"data" : "0x",
|
||||||
|
"gas" : "10000",
|
||||||
|
"gasPrice" : "100000000000000",
|
||||||
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"value" : "1000000000000000000"
|
||||||
|
},
|
||||||
|
"gas" : "9991",
|
||||||
|
"logs" : [
|
||||||
|
],
|
||||||
|
"out" : "0x",
|
||||||
|
"post" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x3858423938447a730a049901951a0a1a",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x3858423938447a730a049901951a0a1a",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
"randomVMtest" : {
|
||||||
|
"callcreates" : [
|
||||||
|
],
|
||||||
|
"env" : {
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
|
||||||
|
"currentDifficulty" : "256",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentTimestamp" : "1",
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6"
|
||||||
|
},
|
||||||
|
"exec" : {
|
||||||
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"code" : "0x619f9a423639",
|
||||||
|
"data" : "0x",
|
||||||
|
"gas" : "10000",
|
||||||
|
"gasPrice" : "100000000000000",
|
||||||
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"value" : "1000000000000000000"
|
||||||
|
},
|
||||||
|
"gas" : "7442",
|
||||||
|
"logs" : [
|
||||||
|
],
|
||||||
|
"out" : "0x",
|
||||||
|
"post" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x619f9a423639",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"code" : "0x619f9a423639",
|
||||||
|
"nonce" : "0",
|
||||||
|
"storage" : {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,7 +11,7 @@
|
||||||
"exec" : {
|
"exec" : {
|
||||||
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
"code" : "0x583438f0",
|
"code" : "0x6303376d4056f107",
|
||||||
"data" : "0x",
|
"data" : "0x",
|
||||||
"gas" : "10000",
|
"gas" : "10000",
|
||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
"pre" : {
|
"pre" : {
|
||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"code" : "0x583438f0",
|
"code" : "0x6303376d4056f107",
|
||||||
"nonce" : "0",
|
"nonce" : "0",
|
||||||
"storage" : {
|
"storage" : {
|
||||||
}
|
}
|
|
@ -58,7 +58,7 @@ func (self *Env) Difficulty() *big.Int { return self.difficulty }
|
||||||
func (self *Env) State() *state.StateDB { return self.state }
|
func (self *Env) State() *state.StateDB { return self.state }
|
||||||
func (self *Env) GasLimit() *big.Int { return self.gasLimit }
|
func (self *Env) GasLimit() *big.Int { return self.gasLimit }
|
||||||
func (self *Env) GetHash(n uint64) []byte {
|
func (self *Env) GetHash(n uint64) []byte {
|
||||||
return nil
|
return crypto.Sha3([]byte(big.NewInt(int64(n)).String()))
|
||||||
}
|
}
|
||||||
func (self *Env) AddLog(log state.Log) {
|
func (self *Env) AddLog(log state.Log) {
|
||||||
self.logs = append(self.logs, log)
|
self.logs = append(self.logs, log)
|
||||||
|
|
|
@ -61,6 +61,13 @@ func (c *Context) GetRangeValue(x, size uint64) []byte {
|
||||||
return ethutil.LeftPadBytes(c.Code[x:y], int(size))
|
return ethutil.LeftPadBytes(c.Code[x:y], int(size))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *Context) GetCode(x, size uint64) []byte {
|
||||||
|
x = uint64(math.Min(float64(x), float64(len(c.Code))))
|
||||||
|
y := uint64(math.Min(float64(x+size), float64(len(c.Code))))
|
||||||
|
|
||||||
|
return ethutil.RightPadBytes(c.Code[x:y], int(size))
|
||||||
|
}
|
||||||
|
|
||||||
func (c *Context) Return(ret []byte) []byte {
|
func (c *Context) Return(ret []byte) []byte {
|
||||||
// Return the remaining gas to the caller
|
// Return the remaining gas to the caller
|
||||||
c.caller.ReturnGas(c.Gas, c.Price)
|
c.caller.ReturnGas(c.Gas, c.Price)
|
||||||
|
|
|
@ -2,7 +2,6 @@ package vm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
|
||||||
"math/big"
|
"math/big"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/crypto"
|
"github.com/ethereum/go-ethereum/crypto"
|
||||||
|
@ -491,21 +490,13 @@ func (self *DebugVm) Run(me, caller ContextRef, code []byte, value, gas, price *
|
||||||
} else {
|
} else {
|
||||||
code = context.Code
|
code = context.Code
|
||||||
}
|
}
|
||||||
|
context := NewContext(nil, nil, code, ethutil.Big0, ethutil.Big0)
|
||||||
var (
|
var (
|
||||||
size = uint64(len(code))
|
|
||||||
mOff = stack.Pop().Uint64()
|
mOff = stack.Pop().Uint64()
|
||||||
cOff = stack.Pop().Uint64()
|
cOff = stack.Pop().Uint64()
|
||||||
l = stack.Pop().Uint64()
|
l = stack.Pop().Uint64()
|
||||||
)
|
)
|
||||||
|
codeCopy := context.GetCode(cOff, l)
|
||||||
if cOff > size {
|
|
||||||
cOff = 0
|
|
||||||
l = 0
|
|
||||||
} else if cOff+l > size {
|
|
||||||
l = uint64(math.Min(float64(cOff+l), float64(size)))
|
|
||||||
}
|
|
||||||
codeCopy := code[cOff : cOff+l]
|
|
||||||
|
|
||||||
mem.Set(mOff, l, codeCopy)
|
mem.Set(mOff, l, codeCopy)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue