fix panic on bad sender

pull/195/head
Ethan Buchman 10 years ago
parent 8cf9ed0ea5
commit 7c24cd790d
  1. 6
      chain/transaction_pool.go
  2. 2
      chain/types/transaction.go

@ -116,7 +116,11 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
// Get the sender
//sender := pool.Ethereum.BlockManager().procState.GetAccount(tx.Sender())
sender := pool.Ethereum.BlockManager().CurrentState().GetAccount(tx.Sender())
senderAddr := tx.Sender()
if senderAddr == nil {
return fmt.Errorf("Invalid sender")
}
sender := pool.Ethereum.BlockManager().CurrentState().GetAccount(senderAddr)
totAmount := new(big.Int).Set(tx.Value)
// Make sure there's enough in the sender's account. Having insufficient

@ -116,7 +116,7 @@ func (tx *Transaction) Sender() []byte {
// Validate the returned key.
// Return nil if public key isn't in full format
if len(pubkey) != 0 && pubkey[0] != 4 {
if len(pubkey) == 0 || pubkey[0] != 4 {
return nil
}

Loading…
Cancel
Save