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