updated tests
This commit is contained in:
		| @@ -6384,25 +6384,33 @@ | ||||
|         "out" : "0x", | ||||
|         "post" : { | ||||
|             "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                 "balance" : "1000000000000100000", | ||||
|                 "balance" : "1000000000000099977", | ||||
|                 "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052600060036017f0600055", | ||||
|                 "nonce" : "0", | ||||
|                 "nonce" : "1", | ||||
|                 "storage" : { | ||||
|                     "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" | ||||
|                 } | ||||
|             }, | ||||
|             "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { | ||||
|                 "balance" : "10000", | ||||
|                 "balance" : "908", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "999999999999890000", | ||||
|                 "balance" : "999999999999899092", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "1", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             }, | ||||
|             "d2571607e241ecf590ed94b12d87c94babe36db6" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "pre" : { | ||||
| @@ -6445,25 +6453,33 @@ | ||||
|         "out" : "0x", | ||||
|         "post" : { | ||||
|             "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                 "balance" : "1000000000000100000", | ||||
|                 "balance" : "1000000000000099977", | ||||
|                 "code" : "0x7c601080600c6000396000f3006000355415600957005b6020356000355560005260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6017f0600055", | ||||
|                 "nonce" : "0", | ||||
|                 "nonce" : "1", | ||||
|                 "storage" : { | ||||
|                     "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" | ||||
|                 } | ||||
|             }, | ||||
|             "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { | ||||
|                 "balance" : "10000", | ||||
|                 "balance" : "908", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "999999999999890000", | ||||
|                 "balance" : "999999999999899092", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "1", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             }, | ||||
|             "d2571607e241ecf590ed94b12d87c94babe36db6" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "pre" : { | ||||
| @@ -6506,25 +6522,33 @@ | ||||
|         "out" : "0x", | ||||
|         "post" : { | ||||
|             "095e7baea6a6c7c4c2dfeb977efac326af552d87" : { | ||||
|                 "balance" : "1000000000000100000", | ||||
|                 "balance" : "1000000000000099977", | ||||
|                 "code" : "0x7c601080600c6000396000f3006000355415600957005b60203560003555600052600060006017f0600055", | ||||
|                 "nonce" : "0", | ||||
|                 "nonce" : "1", | ||||
|                 "storage" : { | ||||
|                     "0x" : "0xd2571607e241ecf590ed94b12d87c94babe36db6" | ||||
|                 } | ||||
|             }, | ||||
|             "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba" : { | ||||
|                 "balance" : "10000", | ||||
|                 "balance" : "908", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             }, | ||||
|             "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { | ||||
|                 "balance" : "999999999999890000", | ||||
|                 "balance" : "999999999999899092", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "1", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             }, | ||||
|             "d2571607e241ecf590ed94b12d87c94babe36db6" : { | ||||
|                 "balance" : "23", | ||||
|                 "code" : "0x", | ||||
|                 "nonce" : "0", | ||||
|                 "storage" : { | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "pre" : { | ||||
|   | ||||
							
								
								
									
										46
									
								
								tests/files/VMTests/RandomTests/201501091831.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								tests/files/VMTests/RandomTests/201501091831.json
									
									
									
									
									
										Normal file
									
								
							| @@ -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" : { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										46
									
								
								tests/files/VMTests/RandomTests/201501110744GO.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								tests/files/VMTests/RandomTests/201501110744GO.json
									
									
									
									
									
										Normal file
									
								
							| @@ -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" : { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										46
									
								
								tests/files/VMTests/RandomTests/201501120415GO.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								tests/files/VMTests/RandomTests/201501120415GO.json
									
									
									
									
									
										Normal file
									
								
							| @@ -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" : { | ||||
|             "address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", | ||||
|             "caller" : "cd1722f3947def4cf144679da39c4c32bdc35681", | ||||
|             "code" : "0x583438f0", | ||||
|             "code" : "0x6303376d4056f107", | ||||
|             "data" : "0x", | ||||
|             "gas" : "10000", | ||||
|             "gasPrice" : "100000000000000", | ||||
| @@ -21,7 +21,7 @@ | ||||
|         "pre" : { | ||||
|             "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { | ||||
|                 "balance" : "1000000000000000000", | ||||
|                 "code" : "0x583438f0", | ||||
|                 "code" : "0x6303376d4056f107", | ||||
|                 "nonce" : "0", | ||||
|                 "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) GasLimit() *big.Int    { return self.gasLimit } | ||||
| 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) { | ||||
| 	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)) | ||||
| } | ||||
|  | ||||
| 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 { | ||||
| 	// Return the remaining gas to the caller | ||||
| 	c.caller.ReturnGas(c.Gas, c.Price) | ||||
|   | ||||
| @@ -2,7 +2,6 @@ package vm | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"math" | ||||
| 	"math/big" | ||||
|  | ||||
| 	"github.com/ethereum/go-ethereum/crypto" | ||||
| @@ -491,21 +490,13 @@ func (self *DebugVm) Run(me, caller ContextRef, code []byte, value, gas, price * | ||||
| 			} else { | ||||
| 				code = context.Code | ||||
| 			} | ||||
|  | ||||
| 			context := NewContext(nil, nil, code, ethutil.Big0, ethutil.Big0) | ||||
| 			var ( | ||||
| 				size = uint64(len(code)) | ||||
| 				mOff = stack.Pop().Uint64() | ||||
| 				cOff = stack.Pop().Uint64() | ||||
| 				l    = stack.Pop().Uint64() | ||||
| 			) | ||||
|  | ||||
| 			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] | ||||
| 			codeCopy := context.GetCode(cOff, l) | ||||
|  | ||||
| 			mem.Set(mOff, l, codeCopy) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user