|
|
@ -478,7 +478,7 @@ func (p *BlobPool) parseTransaction(id uint64, size uint32, blob []byte) error { |
|
|
|
log.Error("Rejecting duplicate blob pool entry", "id", id, "hash", tx.Hash()) |
|
|
|
log.Error("Rejecting duplicate blob pool entry", "id", id, "hash", tx.Hash()) |
|
|
|
return errors.New("duplicate blob entry") |
|
|
|
return errors.New("duplicate blob entry") |
|
|
|
} |
|
|
|
} |
|
|
|
sender, err := p.signer.Sender(tx) |
|
|
|
sender, err := types.Sender(p.signer, tx) |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
// This path is impossible unless the signature validity changes across
|
|
|
|
// This path is impossible unless the signature validity changes across
|
|
|
|
// restarts. For that ever improbable case, recover gracefully by ignoring
|
|
|
|
// restarts. For that ever improbable case, recover gracefully by ignoring
|
|
|
@ -892,7 +892,7 @@ func (p *BlobPool) reorg(oldHead, newHead *types.Header) (map[common.Address][]* |
|
|
|
// and accumulate the transactors and transactions
|
|
|
|
// and accumulate the transactors and transactions
|
|
|
|
for rem.NumberU64() > add.NumberU64() { |
|
|
|
for rem.NumberU64() > add.NumberU64() { |
|
|
|
for _, tx := range rem.Transactions() { |
|
|
|
for _, tx := range rem.Transactions() { |
|
|
|
from, _ := p.signer.Sender(tx) |
|
|
|
from, _ := types.Sender(p.signer, tx) |
|
|
|
|
|
|
|
|
|
|
|
discarded[from] = append(discarded[from], tx) |
|
|
|
discarded[from] = append(discarded[from], tx) |
|
|
|
transactors[from] = struct{}{} |
|
|
|
transactors[from] = struct{}{} |
|
|
@ -904,7 +904,7 @@ func (p *BlobPool) reorg(oldHead, newHead *types.Header) (map[common.Address][]* |
|
|
|
} |
|
|
|
} |
|
|
|
for add.NumberU64() > rem.NumberU64() { |
|
|
|
for add.NumberU64() > rem.NumberU64() { |
|
|
|
for _, tx := range add.Transactions() { |
|
|
|
for _, tx := range add.Transactions() { |
|
|
|
from, _ := p.signer.Sender(tx) |
|
|
|
from, _ := types.Sender(p.signer, tx) |
|
|
|
|
|
|
|
|
|
|
|
included[from] = append(included[from], tx) |
|
|
|
included[from] = append(included[from], tx) |
|
|
|
inclusions[tx.Hash()] = add.NumberU64() |
|
|
|
inclusions[tx.Hash()] = add.NumberU64() |
|
|
@ -917,7 +917,7 @@ func (p *BlobPool) reorg(oldHead, newHead *types.Header) (map[common.Address][]* |
|
|
|
} |
|
|
|
} |
|
|
|
for rem.Hash() != add.Hash() { |
|
|
|
for rem.Hash() != add.Hash() { |
|
|
|
for _, tx := range rem.Transactions() { |
|
|
|
for _, tx := range rem.Transactions() { |
|
|
|
from, _ := p.signer.Sender(tx) |
|
|
|
from, _ := types.Sender(p.signer, tx) |
|
|
|
|
|
|
|
|
|
|
|
discarded[from] = append(discarded[from], tx) |
|
|
|
discarded[from] = append(discarded[from], tx) |
|
|
|
transactors[from] = struct{}{} |
|
|
|
transactors[from] = struct{}{} |
|
|
@ -927,7 +927,7 @@ func (p *BlobPool) reorg(oldHead, newHead *types.Header) (map[common.Address][]* |
|
|
|
return nil, nil |
|
|
|
return nil, nil |
|
|
|
} |
|
|
|
} |
|
|
|
for _, tx := range add.Transactions() { |
|
|
|
for _, tx := range add.Transactions() { |
|
|
|
from, _ := p.signer.Sender(tx) |
|
|
|
from, _ := types.Sender(p.signer, tx) |
|
|
|
|
|
|
|
|
|
|
|
included[from] = append(included[from], tx) |
|
|
|
included[from] = append(included[from], tx) |
|
|
|
inclusions[tx.Hash()] = add.NumberU64() |
|
|
|
inclusions[tx.Hash()] = add.NumberU64() |
|
|
@ -1127,7 +1127,7 @@ func (p *BlobPool) validateTx(tx *types.Transaction) error { |
|
|
|
// If the transaction replaces an existing one, ensure that price bumps are
|
|
|
|
// If the transaction replaces an existing one, ensure that price bumps are
|
|
|
|
// adhered to.
|
|
|
|
// adhered to.
|
|
|
|
var ( |
|
|
|
var ( |
|
|
|
from, _ = p.signer.Sender(tx) // already validated above
|
|
|
|
from, _ = types.Sender(p.signer, tx) // already validated above
|
|
|
|
next = p.state.GetNonce(from) |
|
|
|
next = p.state.GetNonce(from) |
|
|
|
) |
|
|
|
) |
|
|
|
if uint64(len(p.index[from])) > tx.Nonce()-next { |
|
|
|
if uint64(len(p.index[from])) > tx.Nonce()-next { |
|
|
|