diff --git a/consensus/consortium/common/contract.go b/consensus/consortium/common/contract.go index 71fdd6585..e4cfe8b76 100644 --- a/consensus/consortium/common/contract.go +++ b/consensus/consortium/common/contract.go @@ -485,6 +485,12 @@ func ApplyTransaction(msg *core.Message, opts *ApplyTransactOpts) (err error) { usedGas := opts.UsedGas nonce := msg.Nonce + // Skip system transactions during simulation when signTxFn is not available + if mining && signTxFn == nil { + log.Debug("Skipping system transaction during simulation", "to", msg.To, "data", hex.EncodeToString(msg.Data)) + return nil + } + // TODO(linh): This function is deprecated. Shall we replace it with NewTx? expectedTx := types.NewTransaction(nonce, *msg.To, msg.Amount, msg.GasLimit, msg.GasPrice, msg.Data) expectedHash := signer.Hash(expectedTx)