diff options
author | MacroFake <falke.marco@gmail.com> | 2022-06-22 07:31:56 +0200 |
---|---|---|
committer | MacroFake <falke.marco@gmail.com> | 2022-06-22 07:32:03 +0200 |
commit | 1b71c7688639daa233c4e34fec35a54d21ef31bc (patch) | |
tree | 03afd21c0799232412e003604f3f665c4cca4389 | |
parent | a4e066af8573dcefb11dff120e1c09e8cf7f40c2 (diff) | |
parent | fa8421bc5bcd483a9501257073db17ff2e76eb46 (diff) |
Merge bitcoin/bitcoin#25435: test: Remove from_node from create_self_transfer* MiniWallet helpers
fa8421bc5bcd483a9501257073db17ff2e76eb46 test: Remove from_node from create_self_transfer* MiniWallet helpers (MacroFake)
Pull request description:
MiniWallet is capable to create a transaction without a node, so don't pass it in where not needed.
ACKs for top commit:
kouloumos:
ACK fa8421bc5bcd483a9501257073db17ff2e76eb46
theStack:
ACK fa8421bc5bcd483a9501257073db17ff2e76eb46
Tree-SHA512: d51e2ae6577c1e2bc80386678ff5c7974609e86317850aaec45cdbf0d23076ba1ae76342610c8f90931a6c0971c8e916864442b041a253212e6a9d476d79c541
-rwxr-xr-x | test/functional/feature_fee_estimation.py | 1 | ||||
-rwxr-xr-x | test/functional/feature_rbf.py | 1 | ||||
-rwxr-xr-x | test/functional/mempool_unbroadcast.py | 2 | ||||
-rwxr-xr-x | test/functional/mining_prioritisetransaction.py | 2 | ||||
-rwxr-xr-x | test/functional/p2p_segwit.py | 2 | ||||
-rwxr-xr-x | test/functional/rpc_rawtransaction.py | 2 | ||||
-rw-r--r-- | test/functional/test_framework/util.py | 5 | ||||
-rw-r--r-- | test/functional/test_framework/wallet.py | 27 |
8 files changed, 20 insertions, 22 deletions
diff --git a/test/functional/feature_fee_estimation.py b/test/functional/feature_fee_estimation.py index 422612a78e..ca21dd8a73 100755 --- a/test/functional/feature_fee_estimation.py +++ b/test/functional/feature_fee_estimation.py @@ -51,7 +51,6 @@ def small_txpuzzle_randfee( if total_in <= amount + fee: raise RuntimeError(f"Insufficient funds: need {amount + fee}, have {total_in}") tx = wallet.create_self_transfer_multi( - from_node=from_node, utxos_to_spend=utxos_to_spend, fee_per_output=0) tx.vout[0].nValue = int((total_in - amount - fee) * COIN) diff --git a/test/functional/feature_rbf.py b/test/functional/feature_rbf.py index 4c1e86e93d..738c6ea4af 100755 --- a/test/functional/feature_rbf.py +++ b/test/functional/feature_rbf.py @@ -473,7 +473,6 @@ class ReplaceByFeeTest(BitcoinTestFramework): # Now attempt to submit a tx that double-spends all the root tx inputs, which # would invalidate `num_txs_invalidated` transactions. double_tx = wallet.create_self_transfer_multi( - from_node=normal_node, utxos_to_spend=root_utxos, fee_per_output=10_000_000, # absurdly high feerate ) diff --git a/test/functional/mempool_unbroadcast.py b/test/functional/mempool_unbroadcast.py index 37ef4a9157..7587adc257 100755 --- a/test/functional/mempool_unbroadcast.py +++ b/test/functional/mempool_unbroadcast.py @@ -40,7 +40,7 @@ class MempoolUnbroadcastTest(BitcoinTestFramework): wallet_tx_hsh = node.sendtoaddress(addr, 0.0001) # generate a txn using sendrawtransaction - txFS = self.wallet.create_self_transfer(from_node=node) + txFS = self.wallet.create_self_transfer() rpc_tx_hsh = node.sendrawtransaction(txFS["hex"]) # check transactions are in unbroadcast using rpc diff --git a/test/functional/mining_prioritisetransaction.py b/test/functional/mining_prioritisetransaction.py index e0f2446b2d..fb3974c1d5 100755 --- a/test/functional/mining_prioritisetransaction.py +++ b/test/functional/mining_prioritisetransaction.py @@ -212,7 +212,7 @@ class PrioritiseTransactionTest(BitcoinTestFramework): assert x not in mempool # Create a free transaction. Should be rejected. - tx_res = self.wallet.create_self_transfer(from_node=self.nodes[0], fee_rate=0) + tx_res = self.wallet.create_self_transfer(fee_rate=0) tx_hex = tx_res['hex'] tx_id = tx_res['txid'] diff --git a/test/functional/p2p_segwit.py b/test/functional/p2p_segwit.py index 89ddfd3bcf..952f1e5cc5 100755 --- a/test/functional/p2p_segwit.py +++ b/test/functional/p2p_segwit.py @@ -1998,7 +1998,7 @@ class SegWitTest(BitcoinTestFramework): def serialize(self): return serialize_with_bogus_witness(self.tx) - tx = self.wallet.create_self_transfer(from_node=self.nodes[0])['tx'] + tx = self.wallet.create_self_transfer()['tx'] assert_raises_rpc_error(-22, "TX decode failed", self.nodes[0].decoderawtransaction, hexstring=serialize_with_bogus_witness(tx).hex(), iswitness=True) with self.nodes[0].assert_debug_log(['Unknown transaction optional data']): self.test_node.send_and_ping(msg_bogus_tx(tx)) diff --git a/test/functional/rpc_rawtransaction.py b/test/functional/rpc_rawtransaction.py index dee6d777af..26a5da85b7 100755 --- a/test/functional/rpc_rawtransaction.py +++ b/test/functional/rpc_rawtransaction.py @@ -285,7 +285,7 @@ class RawTransactionsTest(BitcoinTestFramework): # Test a transaction with a large fee. # Fee rate is 0.20000000 BTC/kvB - tx = self.wallet.create_self_transfer(from_node=self.nodes[0], fee_rate=Decimal("0.20000000")) + tx = self.wallet.create_self_transfer(fee_rate=Decimal("0.20000000")) # Thus, testmempoolaccept should reject testres = self.nodes[2].testmempoolaccept([tx['hex']])[0] assert_equal(testres['allowed'], False) diff --git a/test/functional/test_framework/util.py b/test/functional/test_framework/util.py index 1c64fa4028..6a588275ea 100644 --- a/test/functional/test_framework/util.py +++ b/test/functional/test_framework/util.py @@ -527,9 +527,8 @@ def create_lots_of_big_transactions(mini_wallet, node, fee, tx_batch_size, txout use_internal_utxos = utxos is None for _ in range(tx_batch_size): tx = mini_wallet.create_self_transfer( - from_node=node, - utxo_to_spend=None if use_internal_utxos else utxos.pop(), - fee_rate=0, + utxo_to_spend=None if use_internal_utxos else utxos.pop(), + fee_rate=0, )["tx"] tx.vout[0].nValue -= fee_sats tx.vout.extend(txouts) diff --git a/test/functional/test_framework/wallet.py b/test/functional/test_framework/wallet.py index 7249e53676..1e154fbd44 100644 --- a/test/functional/test_framework/wallet.py +++ b/test/functional/test_framework/wallet.py @@ -180,10 +180,10 @@ class MiniWallet: self._utxos = [] return utxos - def send_self_transfer(self, **kwargs): + def send_self_transfer(self, *, from_node, **kwargs): """Create and send a tx with the specified fee_rate. Fee may be exact or at most one satoshi higher than needed.""" tx = self.create_self_transfer(**kwargs) - self.sendrawtransaction(from_node=kwargs['from_node'], tx_hex=tx['hex']) + self.sendrawtransaction(from_node=from_node, tx_hex=tx['hex']) return tx def send_to(self, *, from_node, scriptPubKey, amount, fee=1000): @@ -198,14 +198,14 @@ class MiniWallet: Returns a tuple (txid, n) referring to the created external utxo outpoint. """ - tx = self.create_self_transfer(from_node=from_node, fee_rate=0)["tx"] + tx = self.create_self_transfer(fee_rate=0)["tx"] assert_greater_than_or_equal(tx.vout[0].nValue, amount + fee) tx.vout[0].nValue -= (amount + fee) # change output -> MiniWallet tx.vout.append(CTxOut(amount, scriptPubKey)) # arbitrary output -> to be returned txid = self.sendrawtransaction(from_node=from_node, tx_hex=tx.serialize().hex()) return txid, 1 - def send_self_transfer_multi(self, **kwargs): + def send_self_transfer_multi(self, *, from_node, **kwargs): """ Create and send a transaction that spends the given UTXOs and creates a certain number of outputs with equal amounts. @@ -217,16 +217,18 @@ class MiniWallet: - list of newly created UTXOs, ordered by vout index """ tx = self.create_self_transfer_multi(**kwargs) - txid = self.sendrawtransaction(from_node=kwargs['from_node'], tx_hex=tx.serialize().hex()) + txid = self.sendrawtransaction(from_node=from_node, tx_hex=tx.serialize().hex()) return {'new_utxos': [self.get_utxo(txid=txid, vout=vout) for vout in range(len(tx.vout))], 'txid': txid, 'hex': tx.serialize().hex(), 'tx': tx} def create_self_transfer_multi( - self, *, from_node, - utxos_to_spend: Optional[List[dict]] = None, - num_outputs=1, - sequence=0, - fee_per_output=1000): + self, + *, + utxos_to_spend: Optional[List[dict]] = None, + num_outputs=1, + sequence=0, + fee_per_output=1000, + ): """ Create and return a transaction that spends the given UTXOs and creates a certain number of outputs with equal amounts. @@ -234,7 +236,7 @@ class MiniWallet: utxos_to_spend = utxos_to_spend or [self.get_utxo()] # create simple tx template (1 input, 1 output) tx = self.create_self_transfer( - fee_rate=0, from_node=from_node, + fee_rate=0, utxo_to_spend=utxos_to_spend[0], sequence=sequence)["tx"] # duplicate inputs, witnesses and outputs @@ -253,9 +255,8 @@ class MiniWallet: o.nValue = outputs_value_total // num_outputs return tx - def create_self_transfer(self, *, fee_rate=Decimal("0.003"), from_node=None, utxo_to_spend=None, locktime=0, sequence=0): + def create_self_transfer(self, *, fee_rate=Decimal("0.003"), utxo_to_spend=None, locktime=0, sequence=0): """Create and return a tx with the specified fee_rate. Fee may be exact or at most one satoshi higher than needed.""" - from_node = from_node or self._test_node utxo_to_spend = utxo_to_spend or self.get_utxo() if self._mode in (MiniWalletMode.RAW_OP_TRUE, MiniWalletMode.ADDRESS_OP_TRUE): vsize = Decimal(104) # anyone-can-spend |