fix panic on bad sender
This commit is contained in:
parent
8cf9ed0ea5
commit
7c24cd790d
@ -116,7 +116,11 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
|
|||||||
|
|
||||||
// Get the sender
|
// Get the sender
|
||||||
//sender := pool.Ethereum.BlockManager().procState.GetAccount(tx.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)
|
totAmount := new(big.Int).Set(tx.Value)
|
||||||
// Make sure there's enough in the sender's account. Having insufficient
|
// 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.
|
// Validate the returned key.
|
||||||
// Return nil if public key isn't in full format
|
// 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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user