core/types: avoid duplicating transactions on changing signer (#16435)
This commit is contained in:
		@@ -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)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user