PUSH gas fix
This commit is contained in:
		
							parent
							
								
									df648cbc60
								
							
						
					
					
						commit
						3ea8c7301e
					
				| @ -61,8 +61,8 @@ func baseCheck(op OpCode, stack *stack, gas *big.Int) error { | ||||
| 	if op >= PUSH1 && op <= PUSH32 { | ||||
| 		op = PUSH1 | ||||
| 	} | ||||
| 	if op >= SWAP1 && op <= SWAP16 { | ||||
| 		op = SWAP1 | ||||
| 	if op >= DUP1 && op <= DUP16 { | ||||
| 		op = DUP1 | ||||
| 	} | ||||
| 
 | ||||
| 	if r, ok := _baseCheck[op]; ok { | ||||
| @ -71,7 +71,7 @@ func baseCheck(op OpCode, stack *stack, gas *big.Int) error { | ||||
| 			return err | ||||
| 		} | ||||
| 
 | ||||
| 		if r.stackPush && len(stack.data)-r.stackPop == 1024 { | ||||
| 		if r.stackPush && len(stack.data)-r.stackPop+1 > 1024 { | ||||
| 			return fmt.Errorf("stack limit reached (%d)", maxStack) | ||||
| 		} | ||||
| 
 | ||||
| @ -154,6 +154,6 @@ var _baseCheck = map[OpCode]req{ | ||||
| 	JUMPDEST:     {0, GasJumpDest, false}, | ||||
| 	SUICIDE:      {1, Zero, false}, | ||||
| 	RETURN:       {2, Zero, false}, | ||||
| 	PUSH1:        {0, GasFastStep, true}, | ||||
| 	PUSH1:        {0, GasFastestStep, true}, | ||||
| 	DUP1:         {0, Zero, true}, | ||||
| } | ||||
|  | ||||
| @ -45,23 +45,7 @@ func (self *Vm) Run(context *Context, callData []byte) (ret []byte, err error) { | ||||
| 
 | ||||
| 	self.Printf("(%d) (%x) %x (code=%d) gas: %v (d) %x", self.env.Depth(), caller.Address().Bytes()[:4], context.Address(), len(code), context.Gas, callData).Endl() | ||||
| 
 | ||||
| 	/* | ||||
| 		if self.Recoverable { | ||||
| 			// Recover from any require exception
 | ||||
| 			defer func() { | ||||
| 				if r := recover(); r != nil { | ||||
| 					self.Printf(" %v", r).Endl() | ||||
| 
 | ||||
| 					context.UseGas(context.Gas) | ||||
| 
 | ||||
| 					ret = context.Return(nil) | ||||
| 
 | ||||
| 					err = fmt.Errorf("%v", r) | ||||
| 				} | ||||
| 			}() | ||||
| 		} | ||||
| 	*/ | ||||
| 
 | ||||
| 	// User defer pattern to check for an error and, based on the error being nil or not, use all gas and return.
 | ||||
| 	defer func() { | ||||
| 		if err != nil { | ||||
| 			self.Printf(" %v", err).Endl() | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user