From 8e1317276f19dbb80c4478ea860a35d91b2ef10a Mon Sep 17 00:00:00 2001 From: Jonathan Downing Date: Fri, 18 Oct 2024 10:16:45 -0500 Subject: [PATCH] Allow duplicate addresses to be used in Qi tx inputs --- core/state_processor.go | 8 -------- core/worker.go | 4 ---- 2 files changed, 12 deletions(-) diff --git a/core/state_processor.go b/core/state_processor.go index 27b923210..f1dd68d8d 100644 --- a/core/state_processor.go +++ b/core/state_processor.go @@ -982,10 +982,6 @@ func ValidateQiTxInputs(tx *types.Transaction, chain ChainContext, db ethdb.Read if !address.Equal(entryAddr) { return nil, fmt.Errorf("tx %032x spends UTXO %032x:%d with invalid pubkey, have %s want %s", tx.Hash(), txIn.PreviousOutPoint.TxHash, txIn.PreviousOutPoint.Index, address.String(), entryAddr.String()) } - // Check for duplicate addresses. This also checks for duplicate inputs. - if _, exists := addresses[common.AddressBytes(utxo.Address)]; exists { - return nil, errors.New("Duplicate address in QiTx inputs: " + common.AddressBytes(utxo.Address).String()) - } addresses[common.AddressBytes(utxo.Address)] = struct{}{} // Perform some spend processing logic @@ -1224,10 +1220,6 @@ func ProcessQiTx(tx *types.Transaction, chain ChainContext, checkSig bool, isFir } pubKeys = append(pubKeys, pubKey) } - // Check for duplicate addresses. This also checks for duplicate inputs. - if _, exists := addresses[common.AddressBytes(utxo.Address)]; exists { - return nil, nil, nil, errors.New("Duplicate address in QiTx inputs: " + common.AddressBytes(utxo.Address).String()), nil - } addresses[common.AddressBytes(utxo.Address)] = struct{}{} // Perform some spend processing logic diff --git a/core/worker.go b/core/worker.go index 6c4cbc8cf..1a0ec34d9 100644 --- a/core/worker.go +++ b/core/worker.go @@ -2004,10 +2004,6 @@ func (w *worker) processQiTx(tx *types.Transaction, env *environment, primeTermi types.MaxDenomination) return errors.New(str) } - // Check for duplicate addresses. This also checks for duplicate inputs. - if _, exists := addresses[common.AddressBytes(utxo.Address)]; exists { - return errors.New("Duplicate address in QiTx inputs: " + common.AddressBytes(utxo.Address).String()) - } addresses[common.AddressBytes(utxo.Address)] = struct{}{} totalQitIn.Add(totalQitIn, types.Denominations[denomination]) utxoHash := types.UTXOHash(txIn.PreviousOutPoint.TxHash, txIn.PreviousOutPoint.Index, utxo)