diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index 9a0c0266df46..26b41277d748 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -27137,7 +27137,7 @@ "description": [ "It specifies the type of address wanted; currently *bech32* (e.g. `tb1qu9j4lg5f9rgjyfhvfd905vw46eg39czmktxqgg` on bitcoin testnet or `bc1qwqdg6squsna38e46795at95yu9atm8azzmyvckulcc7kytlcckxswvvzej` on bitcoin mainnet), or *p2tr* taproot addresses. The special value *all* generates all known address types for the same underlying key." ], - "default": "*bech32* address", + "default": "*p2tr* address", "enum": [ "bech32", "p2tr", diff --git a/contrib/pyln-testing/pyln/testing/utils.py b/contrib/pyln-testing/pyln/testing/utils.py index 918b90716236..cfcb4b3aad21 100644 --- a/contrib/pyln-testing/pyln/testing/utils.py +++ b/contrib/pyln-testing/pyln/testing/utils.py @@ -1106,7 +1106,7 @@ def restart(self, timeout=10, clean=True): def fundchannel(self, l2, amount=FUNDAMOUNT, wait_for_active=True, announce_channel=True, **kwargs): # Give yourself some funds to work with - addr = self.rpc.newaddr()['bech32'] + addr = self.rpc.newaddr('bech32')['bech32'] def has_funds_on_addr(addr): """Check if the given address has funds in the internal wallet. @@ -1737,7 +1737,7 @@ def join_nodes(self, nodes, fundchannel=True, fundamount=FUNDAMOUNT, wait_for_an bitcoind = nodes[0].bitcoin # If we got here, we want to fund channels for src, dst in connections: - addr = src.rpc.newaddr()['bech32'] + addr = src.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, (fundamount + 1000000) / 10**8) bitcoind.generate_block(1) diff --git a/doc/developers-guide/deprecated-features.md b/doc/developers-guide/deprecated-features.md index 086738795821..4acd298f87bd 100644 --- a/doc/developers-guide/deprecated-features.md +++ b/doc/developers-guide/deprecated-features.md @@ -21,7 +21,8 @@ hidden: false | channel_state_changed.null_scid | Notification Field | v25.09 | v26.09 | In channel_state_changed notification, `short_channel_id` will be missing instead of `null` | | notification.payload | Notification Field | v25.09 | v26.09 | Notifications from plugins used to have fields in `payload` sub-object, now they are not (just like normal notifications) | | pay_notifications.raw_fields | Field | v25.09 | v26.09 | `channel_hint_update`, `pay_failure` and `pay_success` notifications now wrap members in an object of the same name | -| encrypted_hsm | Config | v25.12 | v26.12 | `hsm-passphrase` is a name which also makes sense for modern hsm_secrets which use BIP 39 | +| encrypted_hsm | Config | v25.12 | v26.12 | `hsm-passphrase` is a name which also makes sense for modern hsm_secrets which use BIP 39 | +| newaddr.addresstype.defaultbech32 | Parameter | v25.12 | v26.12 | Use `p2tr` in the response (present since v23.08 if `addresstype` is `p2tr`, and always present since v24.12). | Inevitably there are features which need to change: either to be generalized, or removed when they can no longer be supported. diff --git a/doc/schemas/newaddr.json b/doc/schemas/newaddr.json index 098a338c494c..dc9c94c298f4 100644 --- a/doc/schemas/newaddr.json +++ b/doc/schemas/newaddr.json @@ -19,7 +19,7 @@ "description": [ "It specifies the type of address wanted; currently *bech32* (e.g. `tb1qu9j4lg5f9rgjyfhvfd905vw46eg39czmktxqgg` on bitcoin testnet or `bc1qwqdg6squsna38e46795at95yu9atm8azzmyvckulcc7kytlcckxswvvzej` on bitcoin mainnet), or *p2tr* taproot addresses. The special value *all* generates all known address types for the same underlying key." ], - "default": "*bech32* address", + "default": "*p2tr* address", "enum": [ "bech32", "p2tr", diff --git a/tests/autogenerate-rpc-examples.py b/tests/autogenerate-rpc-examples.py index 1036adbd7a55..350a32a796b5 100644 --- a/tests/autogenerate-rpc-examples.py +++ b/tests/autogenerate-rpc-examples.py @@ -1205,8 +1205,8 @@ def generate_utils_examples(l1, l2, l3, l4, l5, l6, c23_2, c34_2, inv_l11, inv_l example_utxos = ['utxo' + ('02' * 30) + ':1'] withdraw_l22 = update_example(node=l2, method='withdraw', params={'destination': address_l22['p2tr'], 'satoshi': 'all', 'feerate': '20000perkb', 'minconf': 0, 'utxos': utxos}) bitcoind.generate_block(4, wait_for_mempool=[withdraw_l22['txid']]) - multiwithdraw_res1 = update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr()['bech32']: '2222000msat'}, {l1.rpc.newaddr()['bech32']: '3333000msat'}]}) - multiwithdraw_res2 = update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr()['bech32']: 1000}, {l2.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l4.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr()['bech32']: 1000}]}) + multiwithdraw_res1 = update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr('bech32')['bech32']: '2222000msat'}, {l1.rpc.newaddr('bech32')['bech32']: '3333000msat'}]}) + multiwithdraw_res2 = update_example(node=l2, method='multiwithdraw', params={'outputs': [{l1.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr('bech32')['bech32']: 1000}, {l2.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l3.rpc.newaddr()['bech32']: 1000}, {l4.rpc.newaddr('p2tr')['p2tr']: 1000}, {l1.rpc.newaddr('bech32')['bech32']: 1000}]}) l2.rpc.connect(l4.info['id'], 'localhost', l4.port) l2.rpc.connect(l5.info['id'], 'localhost', l5.port) update_example(node=l2, method='disconnect', params={'id': l4.info['id'], 'force': False}) diff --git a/tests/test_bookkeeper.py b/tests/test_bookkeeper.py index 4186d917f990..6e4f481bc679 100644 --- a/tests/test_bookkeeper.py +++ b/tests/test_bookkeeper.py @@ -128,7 +128,7 @@ def test_bookkeeping_external_withdraws(node_factory, bitcoind): """ Withdrawals to an external address shouldn't be included in the income statements until confirmed""" l1 = node_factory.get_node() - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr()['p2tr'] amount = 1111111 amount_msat = Millisatoshi(amount * 1000) @@ -210,7 +210,7 @@ def test_bookkeeping_rbf_withdraw(node_factory, bitcoind): (but it will show up in our account events) """ l1 = node_factory.get_node() - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr()['p2tr'] amount = 1111111 event_counter = 0 @@ -1167,7 +1167,7 @@ def test_migration_no_bkpr(node_factory, bitcoind): @unittest.skipIf(TEST_NETWORK != 'regtest', "External wallet support doesn't work with elements yet.") def test_listincome_timebox(node_factory, bitcoind): l1 = node_factory.get_node() - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr()['p2tr'] amount = 1111111 bitcoind.rpc.sendtoaddress(addr, amount / 10**8) diff --git a/tests/test_closing.py b/tests/test_closing.py index c6afa1f31e40..3a7c31642473 100644 --- a/tests/test_closing.py +++ b/tests/test_closing.py @@ -213,7 +213,7 @@ def test_closing_different_fees(node_factory, bitcoind, executor): balance = [False, True] num_peers = len(feerates) * len(balance) - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr()['p2tr'] bitcoind.rpc.sendtoaddress(addr, 1) numfunds = len(l1.rpc.listfunds()['outputs']) bitcoind.generate_block(1) @@ -1014,17 +1014,17 @@ def test_channel_lease_unilat_closes(node_factory, bitcoind): # we *shouldn't* be able to spend it, there's a lock on it with pytest.raises(RpcError, match='UTXO .* is csv locked'): - l2.rpc.withdraw(l2.rpc.newaddr()['bech32'], "all", utxos=[utxo1]) + l2.rpc.withdraw(l2.rpc.newaddr()['p2tr'], "all", utxos=[utxo1]) # we *can* spend the 1csv lock one - l2.rpc.withdraw(l2.rpc.newaddr()['bech32'], "all", utxos=[utxo3]) + l2.rpc.withdraw(l2.rpc.newaddr()['p2tr'], "all", utxos=[utxo3]) # This can timeout, so do it in easy stages. for i in range(16): bitcoind.generate_block(4032 // 16) sync_blockheight(bitcoind, [l2, l3]) - l2.rpc.withdraw(l2.rpc.newaddr()['bech32'], "all", utxos=[utxo1]) + l2.rpc.withdraw(l2.rpc.newaddr()['p2tr'], "all", utxos=[utxo1]) # We actually mined this many blocks already, so we should see this message: l3.daemon.wait_for_log('waiting confirmation that we spent DELAYED_OUTPUT_TO_US .* using OUR_DELAYED_RETURN_TO_WALLET') @@ -1803,7 +1803,7 @@ def test_onchain_unwatch(node_factory, bitcoind, chainparams): # Now test unrelated onchain churn. # Daemon gets told about wallet; says it doesn't care. - l1.rpc.withdraw(l1.rpc.newaddr()['bech32'], 'all') + l1.rpc.withdraw(l1.rpc.newaddr('bech32')['bech32'], 'all') bitcoind.generate_block(1) l1.daemon.wait_for_log("but we don't care") @@ -1813,7 +1813,7 @@ def test_onchain_unwatch(node_factory, bitcoind, chainparams): # So these should not generate further messages for i in range(5): - l1.rpc.withdraw(l1.rpc.newaddr()['bech32'], 'all') + l1.rpc.withdraw(l1.rpc.newaddr('bech32')['bech32'], 'all') bitcoind.generate_block(1) # Make sure it digests the block sync_blockheight(bitcoind, [l1]) @@ -3366,7 +3366,7 @@ def test_segwit_shutdown_script(node_factory, bitcoind, executor): # Give it one UTXO to spend for each node. addresses = {} for n in nodes: - addresses[l1.rpc.newaddr()['bech32']] = (10**6 + 100000) / 10**8 + addresses[l1.rpc.newaddr('bech32')['bech32']] = (10**6 + 100000) / 10**8 bitcoind.rpc.sendmany("", addresses) bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()['outputs']) == len(addresses)) @@ -3787,7 +3787,7 @@ def test_closing_anchorspend_htlc_tx_rbf(node_factory, bitcoind): fundsats = int(Millisatoshi(only_one(l1.rpc.listfunds()['outputs'])['amount_msat']).to_satoshi()) psbt = l1.rpc.fundpsbt("all", "1000perkw", 1000)['psbt'] # Pay 5k sats in fees, send most to l2 - psbt = l1.rpc.addpsbtoutput(fundsats - 24000 - 5000, psbt, destination=l2.rpc.newaddr()['bech32'])['psbt'] + psbt = l1.rpc.addpsbtoutput(fundsats - 24000 - 5000, psbt, destination=l2.rpc.newaddr()['p2tr'])['psbt'] # 12x2000 sat outputs for l1 to use. for i in range(12): psbt = l1.rpc.addpsbtoutput(2000, psbt)['psbt'] @@ -4005,7 +4005,7 @@ def test_peer_anchor_push(node_factory, bitcoind, executor, chainparams): NUM_OUTPUTS = 10 psbt = l2.rpc.fundpsbt("all", "1000perkw", 1000)['psbt'] # Pay 5k sats in fees. - psbt = l2.rpc.addpsbtoutput(fundsats - OUTPUT_SAT * NUM_OUTPUTS - 5000, psbt, destination=l3.rpc.newaddr()['bech32'])['psbt'] + psbt = l2.rpc.addpsbtoutput(fundsats - OUTPUT_SAT * NUM_OUTPUTS - 5000, psbt, destination=l3.rpc.newaddr()['p2tr'])['psbt'] for _ in range(NUM_OUTPUTS): psbt = l2.rpc.addpsbtoutput(OUTPUT_SAT, psbt)['psbt'] l2.rpc.sendpsbt(l2.rpc.signpsbt(psbt)['signed_psbt']) @@ -4090,12 +4090,12 @@ def test_closing_cpfp(node_factory, bitcoind): l1out = only_one([o for o in l1.rpc.listfunds()['outputs'] if o != change]) assert l1out['txid'] == close_txid - l1.rpc.withdraw(l1.rpc.newaddr()['bech32'], 'all', '20000perkb', minconf=0, utxos=["{}:{}".format(l1out['txid'], l1out['output'])]) + l1.rpc.withdraw(l1.rpc.newaddr('bech32')['bech32'], 'all', '20000perkb', minconf=0, utxos=["{}:{}".format(l1out['txid'], l1out['output'])]) # l2 should be able to do this too! l2out = only_one(l2.rpc.listfunds()['outputs']) assert l2out['txid'] == close_txid - l2.rpc.withdraw(l2.rpc.newaddr()['bech32'], 'all', '20000perkb', minconf=0, utxos=["{}:{}".format(l2out['txid'], l2out['output'])]) + l2.rpc.withdraw(l2.rpc.newaddr('bech32')['bech32'], 'all', '20000perkb', minconf=0, utxos=["{}:{}".format(l2out['txid'], l2out['output'])]) # There should be *three* transactions in mempool now! bitcoind.generate_block(1, wait_for_mempool=3) @@ -4148,7 +4148,7 @@ def test_closing_no_anysegwit_retry(node_factory, bitcoind): with pytest.raises(RpcError, match=r'Peer does not allow v1\+ shutdown addresses'): l1.rpc.close(l2.info['id'], destination='bcrt1pw508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7k0ylj56') - oldaddr = l1.rpc.newaddr()['bech32'] + oldaddr = l1.rpc.newaddr('bech32')['bech32'] l1.rpc.close(l2.info['id'], destination=oldaddr) diff --git a/tests/test_coinmoves.py b/tests/test_coinmoves.py index 21c6ea97e903..2abd765e6587 100644 --- a/tests/test_coinmoves.py +++ b/tests/test_coinmoves.py @@ -117,7 +117,7 @@ def test_coinmoves(node_factory, bitcoind): check_chain_moves(l2, expected_chain2) # MVT_DEPOSIT - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] txid_deposit = bitcoind.rpc.sendtoaddress(addr, 200000000 / 10**8) bitcoind.generate_block(1, wait_for_mempool=1) sync_blockheight(bitcoind, [l1]) @@ -140,7 +140,7 @@ def test_coinmoves(node_factory, bitcoind): first_rowid = only_one(only_one(l1.rpc.sql("SELECT rowid FROM chainmoves;")['rows'])) # MVT_WITHDRAWAL - addr = l3.rpc.newaddr()['bech32'] + addr = l3.rpc.newaddr('bech32')['bech32'] withdraw = l1.rpc.withdraw(addr, 100000000) bitcoind.generate_block(1, wait_for_mempool=1) sync_blockheight(bitcoind, [l1]) @@ -395,7 +395,7 @@ def setup_channel(bitcoind, l1, l2): expected_chain1 = [] expected_chain2 = [] - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] txid_deposit = bitcoind.rpc.sendtoaddress(addr, 100000000 / 10**8) bitcoind.generate_block(1, wait_for_mempool=1) sync_blockheight(bitcoind, [l1]) @@ -1916,7 +1916,7 @@ def test_wait(node_factory, bitcoind, executor): fut = executor.submit(l1.rpc.wait, subsystem='chainmoves', indexname='created', nextvalue=1) - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, 200000000 / 10**8) bitcoind.generate_block(1, wait_for_mempool=1) diff --git a/tests/test_connection.py b/tests/test_connection.py index ae0473b2e89f..b822c68f27a2 100644 --- a/tests/test_connection.py +++ b/tests/test_connection.py @@ -436,7 +436,7 @@ def test_channel_abandon(node_factory, bitcoind): # Now it's unreserved, we can doublespend it (as long as we exceed # previous fee to RBF!). - withdraw = l1.rpc.withdraw(l1.rpc.newaddr()['bech32'], "all") + withdraw = l1.rpc.withdraw(l1.rpc.newaddr('bech32')['bech32'], "all") assert bitcoind.rpc.decoderawtransaction(withdraw['tx'])['vout'][0]['value'] > SATS / 10**8 bitcoind.generate_block(1, wait_for_mempool=withdraw['txid']) @@ -1108,7 +1108,7 @@ def test_funding_fail(node_factory, bitcoind): funds = 1000000 - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] l1.bitcoin.rpc.sendtoaddress(addr, funds / 10**8) bitcoind.generate_block(1) @@ -1150,7 +1150,7 @@ def test_funding_toolarge(node_factory, bitcoind): # Send funds. amount = 2**24 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. @@ -1172,7 +1172,7 @@ def test_v2_open(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -1204,7 +1204,7 @@ def test_funding_push(node_factory, bitcoind, chainparams): # Send funds. amount = 2**24 push_msat = 20000 * 1000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. @@ -1289,7 +1289,7 @@ def test_funding_external_wallet_corners(node_factory, bitcoind): l1.fundwallet(amount + 10000000) # make sure we can generate PSBTs. - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, (amount + 1000000) / 10**8) bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()["outputs"]) != 0) @@ -1320,7 +1320,7 @@ def test_funding_external_wallet_corners(node_factory, bitcoind): l1.rpc.txdiscard(wrongamt['txid']) # Can't complete with incorrect address. - wrongaddr = l1.rpc.txprepare([{l1.rpc.newaddr()['bech32']: amount}]) + wrongaddr = l1.rpc.txprepare([{l1.rpc.newaddr('bech32')['bech32']: amount}]) with pytest.raises(RpcError, match=r'No output to open channel'): l1.rpc.fundchannel_complete(l2.info['id'], wrongaddr['psbt']) l1.rpc.txdiscard(wrongaddr['txid']) @@ -1406,7 +1406,7 @@ def test_funding_v2_corners(node_factory, bitcoind): l1.fundwallet(amount + 10000000) # make sure we can generate PSBTs. - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, (amount + 1000000) / 10**8) bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()["outputs"]) != 0) @@ -1469,7 +1469,7 @@ def test_funding_cancel_race(node_factory, bitcoind, executor): l1 = node_factory.get_node() # make sure we can generate PSBTs. - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, 200000 / 10**8) bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()["outputs"]) != 0) @@ -1550,7 +1550,7 @@ def test_funding_v2_cancel_race(node_factory, bitcoind, executor): l1 = node_factory.get_node() # make sure we can generate PSBTs. - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, 2000000 / 10**8) bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()["outputs"]) != 0) @@ -1680,7 +1680,7 @@ def _close(src, dst, addr=None): _close(l1, l2) # check that you can provide a closing address upfront - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] _fundchannel(l1, l2, amt_normal, addr) # confirm that it appears in listpeerchannels assert addr == l1.rpc.listpeerchannels()['channels'][1]['close_to_addr'] @@ -1701,7 +1701,7 @@ def _close(src, dst, addr=None): assert _close(l2, l1) in ([addr, remote_valid_addr], [remote_valid_addr, addr]) # check that passing in a different addr to close causes an RPC error - addr2 = l1.rpc.newaddr()['bech32'] + addr2 = l1.rpc.newaddr('bech32')['bech32'] _fundchannel(l1, l2, amt_normal, addr) with pytest.raises(RpcError, match=r'does not match previous shutdown script'): l1.rpc.close(l2.info['id'], destination=addr2) @@ -2249,7 +2249,7 @@ def test_lockin_between_restart(node_factory, bitcoind): @pytest.mark.openchannel('v2') def test_funding_while_offline(node_factory, bitcoind): l1 = node_factory.get_node() - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] sync_blockheight(bitcoind, [l1]) # l1 goes down. @@ -2889,17 +2889,17 @@ def test_no_fee_estimate(node_factory, bitcoind, executor): # Can't withdraw either. with pytest.raises(RpcError, match=r'Cannot estimate fees'): - l1.rpc.withdraw(l2.rpc.newaddr()['bech32'], 'all') + l1.rpc.withdraw(l2.rpc.newaddr('bech32')['bech32'], 'all') # Can't use feerate names, either. with pytest.raises(RpcError, match=r'Cannot estimate fees'): - l1.rpc.withdraw(l2.rpc.newaddr()['bech32'], 'all', 'urgent') + l1.rpc.withdraw(l2.rpc.newaddr('bech32')['bech32'], 'all', 'urgent') with pytest.raises(RpcError, match=r'Cannot estimate fees'): - l1.rpc.withdraw(l2.rpc.newaddr()['bech32'], 'all', 'normal') + l1.rpc.withdraw(l2.rpc.newaddr('bech32')['bech32'], 'all', 'normal') with pytest.raises(RpcError, match=r'Cannot estimate fees'): - l1.rpc.withdraw(l2.rpc.newaddr()['bech32'], 'all', 'slow') + l1.rpc.withdraw(l2.rpc.newaddr('bech32')['bech32'], 'all', 'slow') with pytest.raises(RpcError, match=r'Cannot estimate fees'): l1.rpc.fundchannel(l2.info['id'], 10**6, 'urgent') @@ -2911,7 +2911,7 @@ def test_no_fee_estimate(node_factory, bitcoind, executor): l1.rpc.fundchannel(l2.info['id'], 10**6, 'slow') # With anchors, not even with manual feerate! - l1.rpc.withdraw(l2.rpc.newaddr()['bech32'], 10000, '1500perkb') + l1.rpc.withdraw(l2.rpc.newaddr('bech32')['bech32'], 10000, '1500perkb') if TEST_NETWORK == 'regtest': with pytest.raises(RpcError, match=r'Cannot estimate fees'): l1.rpc.fundchannel(l2.info['id'], 10**6, '2000perkw', minconf=0) @@ -2951,7 +2951,7 @@ def test_no_fee_estimate(node_factory, bitcoind, executor): # Can withdraw (use urgent feerate). `minconf` may be needed depending on # the previous `fundchannel` selecting all confirmed outputs. - l1.rpc.withdraw(l2.rpc.newaddr()['bech32'], 'all', 'urgent', minconf=0) + l1.rpc.withdraw(l2.rpc.newaddr('bech32')['bech32'], 'all', 'urgent', minconf=0) def test_opener_feerate_reconnect(node_factory, bitcoind): @@ -3581,7 +3581,7 @@ def test_channel_features(node_factory, bitcoind, anchors): opts = {'dev-force-features': "+23"} l1, l2 = node_factory.line_graph(2, fundchannel=False, opts=opts) - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], 0.1) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], 0.1) bitcoind.generate_block(1) wait_for(lambda: l1.rpc.listfunds()['outputs'] != []) @@ -4057,7 +4057,7 @@ def test_multichan_stress(node_factory, executor, bitcoind): 'dev-no-reconnect': None}) # Now fund *second* channel l2->l3 (slightly larger) - bitcoind.rpc.sendtoaddress(l2.rpc.newaddr()['bech32'], 0.1) + bitcoind.rpc.sendtoaddress(l2.rpc.newaddr('bech32')['bech32'], 0.1) bitcoind.generate_block(1) sync_blockheight(bitcoind, [l2]) l2.rpc.fundchannel(l3.info['id'], '0.01001btc') @@ -4216,7 +4216,7 @@ def test_multichan(node_factory, executor, bitcoind): scid23a = l2.get_channel_scid(l3) # Now fund *second* channel l2->l3 (slightly larger) - bitcoind.rpc.sendtoaddress(l2.rpc.newaddr()['bech32'], 0.1) + bitcoind.rpc.sendtoaddress(l2.rpc.newaddr('bech32')['bech32'], 0.1) bitcoind.generate_block(1) sync_blockheight(bitcoind, [l1, l2, l3]) l2.rpc.fundchannel(l3.info['id'], '0.01001btc') @@ -4725,7 +4725,7 @@ def test_connect_ratelimit(node_factory, bitcoind): l1 = nodes[0] nodes = nodes[1:] - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] for n in nodes: bitcoind.rpc.sendtoaddress(addr, (FUNDAMOUNT + 1000000) / 10**8) bitcoind.generate_block(1, wait_for_mempool=len(nodes)) diff --git a/tests/test_db.py b/tests/test_db.py index a188b2e97fba..47720dc581b2 100644 --- a/tests/test_db.py +++ b/tests/test_db.py @@ -59,7 +59,7 @@ def test_block_backfill(node_factory, bitcoind, chainparams): l1, l2 = node_factory.line_graph(2, fundchannel=False) # Get some funds to l1 - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr()['p2tr'] bitcoind.rpc.sendtoaddress(addr, 1) bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()['outputs']) == 1) @@ -426,7 +426,7 @@ def test_sqlite3_builtin_backup(bitcoind, node_factory): l1.start() # Get an address and put some funds. - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, 1) bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()['outputs']) == 1) diff --git a/tests/test_misc.py b/tests/test_misc.py index b97ba10847c0..f9bddd4e8242 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -299,7 +299,7 @@ def mock_getblock(r): # Attempting to fund an extremely large transaction should fail # with a 'unsynced' error with pytest.raises(RpcError, match=r'304'): - l1.rpc.txprepare([{l1.rpc.newaddr()['bech32']: '200000000sat'}]) + l1.rpc.txprepare([{l1.rpc.newaddr('bech32')['bech32']: '200000000sat'}]) # Funding a new channel blocks... l1.rpc.connect(l3.info['id'], 'localhost', l3.port) @@ -325,7 +325,7 @@ def mock_getblock(r): # Now we get insufficient funds error with pytest.raises(RpcError, match=r'301'): - l1.rpc.txprepare([{l1.rpc.newaddr()['bech32']: '200000000sat'}]) + l1.rpc.txprepare([{l1.rpc.newaddr('bech32')['bech32']: '200000000sat'}]) # This will now work normally. l1.pay(l2, 1000) diff --git a/tests/test_opening.py b/tests/test_opening.py index f2208d5ccc5c..805ed7ee812f 100644 --- a/tests/test_opening.py +++ b/tests/test_opening.py @@ -150,7 +150,7 @@ def test_v2_open_sigs_reconnect_2(node_factory, bitcoind): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -188,7 +188,7 @@ def test_v2_open_sigs_reconnect_1(node_factory, bitcoind): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -229,7 +229,7 @@ def test_v2_open_sigs_out_of_order(node_factory, bitcoind): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -260,7 +260,7 @@ def test_v2_fail_second(node_factory, bitcoind): l1.fundwallet(amount + 10000000) # make sure we can generate PSBTs. - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, (amount + 1000000) / 10**8) bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()["outputs"]) != 0) @@ -309,7 +309,7 @@ def test_v2_open_sigs_restart_while_dead(node_factory, bitcoind): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -342,7 +342,7 @@ def test_v2_rbf_single(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -438,8 +438,8 @@ def test_v2_rbf_abort_retry(node_factory, bitcoind, chainparams): amount = 2**24 chan_amount = 100000 bitcoind.rpc.sendmany("", - {l1.rpc.newaddr()['bech32']: amount / 10**8 + 0.01, - l2.rpc.newaddr()['bech32']: amount / 10**8 + 0.01}) + {l1.rpc.newaddr()['p2tr']: amount / 10**8 + 0.01, + l2.rpc.newaddr()['p2tr']: amount / 10**8 + 0.01}) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -519,8 +519,8 @@ def test_v2_rbf_abort_channel_opens(node_factory, bitcoind, chainparams): amount = 2**24 chan_amount = 100000 bitcoind.rpc.sendmany("", - {l1.rpc.newaddr()['bech32']: amount / 10**8 + 0.01, - l2.rpc.newaddr()['bech32']: amount / 10**8 + 0.01}) + {l1.rpc.newaddr()['p2tr']: amount / 10**8 + 0.01, + l2.rpc.newaddr()['p2tr']: amount / 10**8 + 0.01}) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -672,7 +672,7 @@ def test_v2_rbf_multi(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -765,7 +765,7 @@ def test_rbf_reconnect_init(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -813,7 +813,7 @@ def test_rbf_reconnect_ack(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -871,7 +871,7 @@ def test_rbf_reconnect_tx_construct(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -998,7 +998,7 @@ def test_rbf_reconnect_tx_sigs(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -1068,7 +1068,7 @@ def test_rbf_to_chain_before_commit(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -1123,8 +1123,8 @@ def test_rbf_no_overlap(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -1160,7 +1160,7 @@ def test_rbf_fails_to_broadcast(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -1244,7 +1244,7 @@ def test_rbf_broadcast_close_inflights(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -1317,7 +1317,7 @@ def test_rbf_non_last_mined(node_factory, bitcoind, chainparams): l1.rpc.connect(l2.info['id'], 'localhost', l2.port) amount = 2**24 chan_amount = 100000 - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], amount / 10**8 + 0.01) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['p2tr'], amount / 10**8 + 0.01) bitcoind.generate_block(1) # Wait for it to arrive. wait_for(lambda: len(l1.rpc.listfunds()['outputs']) > 0) @@ -2266,10 +2266,10 @@ def test_coinbase_unspendable(node_factory, bitcoind): [l1] = node_factory.get_nodes(1) - addr = l1.rpc.newaddr()["bech32"] + addr = l1.rpc.newaddr("bech32")["bech32"] bitcoind.rpc.generatetoaddress(1, addr) - addr2 = l1.rpc.newaddr()["bech32"] + addr2 = l1.rpc.newaddr("bech32")["bech32"] # Wait til money in wallet wait_for(lambda: len(l1.rpc.listfunds()['outputs']) == 1) @@ -2283,13 +2283,13 @@ def test_coinbase_unspendable(node_factory, bitcoind): assert len(bitcoind.rpc.getrawmempool()) == 0 # Mine 98 blocks - bitcoind.rpc.generatetoaddress(98, l1.rpc.newaddr()['bech32']) + bitcoind.rpc.generatetoaddress(98, l1.rpc.newaddr('bech32')['bech32']) assert len([out for out in l1.rpc.listfunds()['outputs'] if out['status'] == 'confirmed']) == 0 with pytest.raises(RpcError, match='Could not afford all using all 0 available UTXOs'): l1.rpc.withdraw(addr2, "all") # One more and the first coinbase unlocks - bitcoind.rpc.generatetoaddress(1, l1.rpc.newaddr()['bech32']) + bitcoind.rpc.generatetoaddress(1, l1.rpc.newaddr('bech32')['bech32']) wait_for(lambda: len(l1.rpc.listfunds()['outputs']) == 100) assert len([out for out in l1.rpc.listfunds()['outputs'] if out['status'] == 'confirmed']) == 1 l1.rpc.withdraw(addr2, "all") @@ -2297,7 +2297,7 @@ def test_coinbase_unspendable(node_factory, bitcoind): assert len(bitcoind.rpc.getrawmempool()) == 1 # Mine one block, assert one more is spendable - bitcoind.rpc.generatetoaddress(1, l1.rpc.newaddr()['bech32']) + bitcoind.rpc.generatetoaddress(1, l1.rpc.newaddr('bech32')['bech32']) assert len([out for out in l1.rpc.listfunds()['outputs'] if out['status'] == 'confirmed']) == 1 @@ -2524,7 +2524,7 @@ def test_commitment_feerate(bitcoind, node_factory, anchors): def test_anchor_min_emergency(bitcoind, node_factory): l1, l2 = node_factory.line_graph(2, fundchannel=False) - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, 5000000 / 10**8) bitcoind.generate_block(1, wait_for_mempool=1) wait_for(lambda: l1.rpc.listfunds()['outputs'] != []) @@ -2542,7 +2542,7 @@ def test_anchor_min_emergency(bitcoind, node_factory): assert only_one(l1.rpc.listfunds()['outputs'])['amount_msat'] == Millisatoshi('25000sat') # And we can't spend it, either! - addr2 = l2.rpc.newaddr()['bech32'] + addr2 = l2.rpc.newaddr('bech32')['bech32'] with pytest.raises(RpcError, match=r'We would not have enough left for min-emergency-msat 25000sat'): l1.rpc.withdraw(addr2, '500sat') @@ -2579,7 +2579,7 @@ def test_fundchannel_utxo_too_small(bitcoind, node_factory): l1, l2 = node_factory.get_nodes(2) # Add 1 600 sat UTXO to a fresh node - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], 0.00000600) + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], 0.00000600) bitcoind.generate_block(1, wait_for_mempool=1) wait_for(lambda: len(l1.rpc.listfunds()['outputs']) == 1) diff --git a/tests/test_plugin.py b/tests/test_plugin.py index bc3e6c9178f5..e199985766ea 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -4279,7 +4279,7 @@ def test_sql_crash(node_factory, bitcoind): """ l1, l2 = node_factory.line_graph(2, fundchannel=False) - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, 1) bitcoind.generate_block(1) diff --git a/tests/test_renepay.py b/tests/test_renepay.py index 552c2b0a318a..b8b5d7064dd1 100644 --- a/tests/test_renepay.py +++ b/tests/test_renepay.py @@ -315,7 +315,7 @@ def start_channels(connections): bitcoind = nodes[0].bitcoin # If we got here, we want to fund channels for src, dst, fundamount in connections: - addr = src.rpc.newaddr()["bech32"] + addr = src.rpc.newaddr('bech32')["bech32"] bitcoind.rpc.sendtoaddress(addr, (fundamount + 1000000) / 10**8) bitcoind.generate_block(1) diff --git a/tests/test_wallet.py b/tests/test_wallet.py index 8edd8963c4b6..eec64d684a23 100644 --- a/tests/test_wallet.py +++ b/tests/test_wallet.py @@ -289,7 +289,7 @@ def test_txprepare_multi(node_factory, bitcoind): outputs = [] for i in range(9): - outputs.append({l1.rpc.newaddr()['bech32']: Millisatoshi(amount * 100)}) + outputs.append({l1.rpc.newaddr('bech32')['bech32']: Millisatoshi(amount * 100)}) prep = l1.rpc.txprepare(outputs=outputs) l1.rpc.txdiscard(prep['txid']) @@ -419,7 +419,7 @@ def test_txprepare(node_factory, bitcoind, chainparams): check_feerate([l1], feerate_from_psbt(chainparams, bitcoind, l1, prep3['psbt']), normal_feerate_perkw) # Try passing unconfirmed utxos - unconfirmed_utxo = l1.rpc.withdraw(l1.rpc.newaddr()["bech32"], 10**5) + unconfirmed_utxo = l1.rpc.withdraw(l1.rpc.newaddr("bech32")["bech32"], 10**5) uutxos = [unconfirmed_utxo["txid"] + ":0"] with pytest.raises(RpcError, match=r"Could not afford"): l1.rpc.txprepare([{addr: Millisatoshi(amount * 3.5 * 1000)}], @@ -505,7 +505,7 @@ def test_txprepare_feerate(node_factory, bitcoind, chainparams): # Add some funds to withdraw later for i in range(20): - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], 1000 / 10**8) bitcoind.generate_block(1) @@ -593,7 +593,7 @@ def test_reserveinputs(node_factory, bitcoind, chainparams): outputs = [] # Add a medley of funds to withdraw for i in range(total_outs): - txid = bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], + txid = bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], amount / 10**8) outputs.append((txid, bitcoind.rpc.gettransaction(txid)['details'][0]['vout'])) @@ -649,7 +649,7 @@ def test_fundpsbt(node_factory, bitcoind, chainparams): outputs = [] # Add a medley of funds to withdraw later for i in range(total_outs): - txid = bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], + txid = bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], amount / 10**8) outputs.append((txid, bitcoind.rpc.gettransaction(txid)['details'][0]['vout'])) @@ -793,7 +793,7 @@ def test_utxopsbt(node_factory, bitcoind, chainparams): outputs = [] # Add a funds to withdraw later for _ in range(2): - txid = bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], + txid = bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], amount / 10**8) outputs.append((txid, bitcoind.rpc.gettransaction(txid)['details'][0]['vout'])) @@ -931,7 +931,7 @@ def test_sign_external_psbt(node_factory, bitcoind, chainparams): # Add a medley of funds to withdraw later for i in range(total_outs): - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], amount / 10**8) bitcoind.generate_block(1) @@ -941,7 +941,7 @@ def test_sign_external_psbt(node_factory, bitcoind, chainparams): inputs = [] for inp in l1.rpc.listfunds()['outputs']: inputs.append({'txid': inp['txid'], 'vout': inp['output']}) - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] psbt = bitcoind.rpc.createpsbt(inputs, [{addr: (amount * 3) / 10**8}]) l1.rpc.reserveinputs(psbt) @@ -956,7 +956,7 @@ def test_psbt_version(node_factory, bitcoind, chainparams): is_elements = chainparams['elements'] l1 = node_factory.get_node() - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], sats_amount / 100000000) bitcoind.generate_block(1) @@ -1018,7 +1018,7 @@ def test_sign_and_send_psbt(node_factory, bitcoind, chainparams): # Add a medley of funds to withdraw later for i in range(total_outs): - bitcoind.rpc.sendtoaddress(l1.rpc.newaddr()['bech32'], + bitcoind.rpc.sendtoaddress(l1.rpc.newaddr('bech32')['bech32'], amount / 10**8) bitcoind.generate_block(1) wait_for(lambda: len(l1.rpc.listfunds()['outputs']) == total_outs) @@ -1089,7 +1089,7 @@ def test_sign_and_send_psbt(node_factory, bitcoind, chainparams): # Queue up another node, to make some PSBTs for us for i in range(total_outs): - bitcoind.rpc.sendtoaddress(l2.rpc.newaddr()['bech32'], + bitcoind.rpc.sendtoaddress(l2.rpc.newaddr('bech32')['bech32'], amount / 10**8) # Create a PSBT using L2 bitcoind.generate_block(1) @@ -2062,7 +2062,7 @@ def test_withdraw_nlocktime(node_factory): l1.fundwallet(10**4) # withdraw - addr = l1.rpc.newaddr()["bech32"] + addr = l1.rpc.newaddr("bech32")["bech32"] tx = l1.rpc.withdraw(addr, 10**3)["tx"] nlocktime = node_factory.bitcoind.rpc.decoderawtransaction(tx)["locktime"] tip = node_factory.bitcoind.rpc.getblockcount() @@ -2087,7 +2087,7 @@ def test_withdraw_nlocktime_fuzz(node_factory, bitcoind): l1.fundwallet(10**8) for i in range(100): - addr = l1.rpc.newaddr()["bech32"] + addr = l1.rpc.newaddr("bech32")["bech32"] withdraw = l1.rpc.withdraw(addr, 10**3) bitcoind.generate_block(1) l1.daemon.wait_for_log('Owning output .* txid {} CONFIRMED'. @@ -2110,9 +2110,9 @@ def test_multiwithdraw_simple(node_factory, bitcoind, chainparams): {}, {}]) l1.fundwallet(10**8) - addr2 = l2.rpc.newaddr()['bech32'] + addr2 = l2.rpc.newaddr('bech32')['bech32'] amount2 = Millisatoshi(2222 * 1000) - addr3 = l3.rpc.newaddr()['bech32'] + addr3 = l3.rpc.newaddr('bech32')['bech32'] amount3 = Millisatoshi(3333 * 1000) # Multiwithdraw! @@ -2151,7 +2151,7 @@ def test_repro_4258(node_factory, bitcoind): """Reproduces issue #4258, invalid output encoding for txprepare. """ l1 = node_factory.get_node() - addr = l1.rpc.newaddr()['bech32'] + addr = l1.rpc.newaddr('bech32')['bech32'] bitcoind.rpc.sendtoaddress(addr, 1) bitcoind.generate_block(1) diff --git a/wallet/walletrpc.c b/wallet/walletrpc.c index a91b2aa0d488..41832096eb3b 100644 --- a/wallet/walletrpc.c +++ b/wallet/walletrpc.c @@ -149,10 +149,19 @@ static struct command_result *json_newaddr(struct command *cmd, char *bech32, *p2tr; if (!param(cmd, buffer, params, - p_opt_def("addresstype", param_newaddr, &addrtype, ADDR_BECH32), + p_opt("addresstype", param_newaddr, &addrtype), NULL)) return command_param_failed(); + if (!addrtype) { + addrtype = tal(cmd, enum addrtype); + if (command_deprecated_in_ok(cmd, "addresstype.defaultbech32", + "v25.12", "v26.12")) + *addrtype = ADDR_ALL; + else + *addrtype = ADDR_P2TR; + } + if (!newaddr_inner(cmd, &pubkey, *addrtype)) { return command_fail(cmd, LIGHTNINGD, "Keys exhausted "); };