aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/block_processor.go3
-rw-r--r--core/state_transition.go5
2 files changed, 5 insertions, 3 deletions
diff --git a/core/block_processor.go b/core/block_processor.go
index fd4009037..b12f88c47 100644
--- a/core/block_processor.go
+++ b/core/block_processor.go
@@ -81,7 +81,8 @@ func (self *BlockProcessor) ApplyTransaction(coinbase *state.StateObject, stated
_, gas, err := ApplyMessage(NewEnv(statedb, self.bc, tx, block), tx, cb)
if err != nil && (IsNonceErr(err) || state.IsGasLimitErr(err) || IsInvalidTxErr(err)) {
// If the account is managed, remove the invalid nonce.
- self.bc.TxState().RemoveNonce(tx.From(), tx.Nonce())
+ from, _ := tx.From()
+ self.bc.TxState().RemoveNonce(from, tx.Nonce())
return nil, nil, err
}
diff --git a/core/state_transition.go b/core/state_transition.go
index 575bdf026..ef822e86c 100644
--- a/core/state_transition.go
+++ b/core/state_transition.go
@@ -44,9 +44,10 @@ type StateTransition struct {
env vm.Environment
}
+// Message represents a message sent to a contract.
type Message interface {
- From() common.Address
- To() common.Address
+ From() (common.Address, error)
+ To() *common.Address
GasPrice() *big.Int
Gas() *big.Int