Improved error reporting and removed commented code
This commit is contained in:
		@@ -80,7 +80,7 @@ func (self *BlockProcessor) ApplyTransaction(coinbase *state.StateObject, stated
 | 
				
			|||||||
	cb := statedb.GetStateObject(coinbase.Address())
 | 
						cb := statedb.GetStateObject(coinbase.Address())
 | 
				
			||||||
	st := NewStateTransition(NewEnv(statedb, self.bc, tx, block), tx, cb)
 | 
						st := NewStateTransition(NewEnv(statedb, self.bc, tx, block), tx, cb)
 | 
				
			||||||
	_, err := st.TransitionState()
 | 
						_, err := st.TransitionState()
 | 
				
			||||||
	if err != nil && (IsNonceErr(err) || state.IsGasLimitErr(err)) {
 | 
						if err != nil && (IsNonceErr(err) || state.IsGasLimitErr(err) || IsInvalidTxErr(err)) {
 | 
				
			||||||
		return nil, nil, err
 | 
							return nil, nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -120,17 +120,12 @@ func (self *BlockProcessor) ApplyTransactions(coinbase *state.StateObject, state
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	for _, tx := range txs {
 | 
						for _, tx := range txs {
 | 
				
			||||||
		receipt, txGas, err := self.ApplyTransaction(coinbase, statedb, block, tx, totalUsedGas, transientProcess)
 | 
							receipt, txGas, err := self.ApplyTransaction(coinbase, statedb, block, tx, totalUsedGas, transientProcess)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil && (IsNonceErr(err) || state.IsGasLimitErr(err) || IsInvalidTxErr(err)) {
 | 
				
			||||||
			switch {
 | 
					 | 
				
			||||||
			case IsNonceErr(err):
 | 
					 | 
				
			||||||
			return nil, nil, nil, nil, err
 | 
								return nil, nil, nil, nil, err
 | 
				
			||||||
			case state.IsGasLimitErr(err):
 | 
					 | 
				
			||||||
				return nil, nil, nil, nil, err
 | 
					 | 
				
			||||||
			default:
 | 
					 | 
				
			||||||
				statelogger.Infoln(err)
 | 
					 | 
				
			||||||
				erroneous = append(erroneous, tx)
 | 
					 | 
				
			||||||
				err = nil
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								statelogger.Infoln("TX err:", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		receipts = append(receipts, receipt)
 | 
							receipts = append(receipts, receipt)
 | 
				
			||||||
		handled = append(handled, tx)
 | 
							handled = append(handled, tx)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -184,6 +184,7 @@ func (self *StateTransition) TransitionState() (ret []byte, err error) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if err = self.UseGas(big.NewInt(dgas)); err != nil {
 | 
						if err = self.UseGas(big.NewInt(dgas)); err != nil {
 | 
				
			||||||
 | 
							println("2")
 | 
				
			||||||
		return nil, InvalidTxError(err)
 | 
							return nil, InvalidTxError(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -200,46 +201,14 @@ func (self *StateTransition) TransitionState() (ret []byte, err error) {
 | 
				
			|||||||
				ref.SetCode(ret)
 | 
									ref.SetCode(ret)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					 | 
				
			||||||
		/*
 | 
					 | 
				
			||||||
			if vmenv, ok := vmenv.(*VMEnv); ok && tryJit {
 | 
					 | 
				
			||||||
				statelogger.Infof("CREATE: re-running using JIT (PH=%x)\n", stateCopy.Root()[:4])
 | 
					 | 
				
			||||||
				// re-run using the JIT (validation for the JIT)
 | 
					 | 
				
			||||||
				goodState := vmenv.State().Copy()
 | 
					 | 
				
			||||||
				vmenv.state = stateCopy
 | 
					 | 
				
			||||||
				vmenv.SetVmType(vm.JitVmTy)
 | 
					 | 
				
			||||||
				vmenv.Create(sender, contract.Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
 | 
					 | 
				
			||||||
				statelogger.Infof("DONE PH=%x STD_H=%x JIT_H=%x\n", stateCopy.Root()[:4], goodState.Root()[:4], vmenv.State().Root()[:4])
 | 
					 | 
				
			||||||
				self.state.Set(goodState)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		*/
 | 
					 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		ret, err = vmenv.Call(self.From(), self.To().Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
 | 
							ret, err = vmenv.Call(self.From(), self.To().Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
 | 
				
			||||||
 | 
					 | 
				
			||||||
		/*
 | 
					 | 
				
			||||||
			if vmenv, ok := vmenv.(*VMEnv); ok && tryJit {
 | 
					 | 
				
			||||||
				statelogger.Infof("CALL: re-running using JIT (PH=%x)\n", stateCopy.Root()[:4])
 | 
					 | 
				
			||||||
				// re-run using the JIT (validation for the JIT)
 | 
					 | 
				
			||||||
				goodState := vmenv.State().Copy()
 | 
					 | 
				
			||||||
				vmenv.state = stateCopy
 | 
					 | 
				
			||||||
				vmenv.SetVmType(vm.JitVmTy)
 | 
					 | 
				
			||||||
				vmenv.Call(self.From(), self.To().Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
 | 
					 | 
				
			||||||
				statelogger.Infof("DONE PH=%x STD_H=%x JIT_H=%x\n", stateCopy.Root()[:4], goodState.Root()[:4], vmenv.State().Root()[:4])
 | 
					 | 
				
			||||||
				self.state.Set(goodState)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		*/
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err != nil && IsValueTransferErr(err) {
 | 
						if err != nil && IsValueTransferErr(err) {
 | 
				
			||||||
		return nil, InvalidTxError(err)
 | 
							return nil, InvalidTxError(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			self.UseGas(self.gas)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user