forked from cerc-io/plugeth
core/types: avoid duplicating transactions on changing signer (#16435)
This commit is contained in:
parent
e7067be94f
commit
86be91b3e2
@ -339,11 +339,14 @@ type TransactionsByPriceAndNonce struct {
|
|||||||
func NewTransactionsByPriceAndNonce(signer Signer, txs map[common.Address]Transactions) *TransactionsByPriceAndNonce {
|
func NewTransactionsByPriceAndNonce(signer Signer, txs map[common.Address]Transactions) *TransactionsByPriceAndNonce {
|
||||||
// Initialize a price based heap with the head transactions
|
// Initialize a price based heap with the head transactions
|
||||||
heads := make(TxByPrice, 0, len(txs))
|
heads := make(TxByPrice, 0, len(txs))
|
||||||
for _, accTxs := range txs {
|
for from, accTxs := range txs {
|
||||||
heads = append(heads, accTxs[0])
|
heads = append(heads, accTxs[0])
|
||||||
// Ensure the sender address is from the signer
|
// Ensure the sender address is from the signer
|
||||||
acc, _ := Sender(signer, accTxs[0])
|
acc, _ := Sender(signer, accTxs[0])
|
||||||
txs[acc] = accTxs[1:]
|
txs[acc] = accTxs[1:]
|
||||||
|
if from != acc {
|
||||||
|
delete(txs, from)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
heap.Init(&heads)
|
heap.Init(&heads)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user