Compare commits

...

4 commits

Author SHA1 Message Date
Chris Stewart
9ad0c3fe00
Merge 9ab4e3fe7e into c5e44a0435 2025-04-29 11:55:39 +02:00
merge-script
c5e44a0435
Merge bitcoin/bitcoin#32369: test: Use the correct node for doubled keypath test
Some checks are pending
CI / macOS 14 native, arm64, fuzz (push) Waiting to run
CI / Windows native, VS 2022 (push) Waiting to run
CI / Windows native, fuzz, VS 2022 (push) Waiting to run
CI / Linux->Windows cross, no tests (push) Waiting to run
CI / Windows, test cross-built (push) Blocked by required conditions
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
32d55e28af test: Use the correct node for doubled keypath test (Ava Chow)

Pull request description:

  #29124 had a silent merge conflict with #32350 which resulted in it using the wrong node. Fix the test to use the correct v22 node.

ACKs for top commit:
  maflcko:
    lgtm ACK 32d55e28af
  rkrux:
    ACK 32d55e28af
  BrandonOdiwuor:
    Code Review ACK 32d55e28af

Tree-SHA512: 1e0231985beb382b16e1d608c874750423d0502388db0c8ad450b22d17f9d96f5e16a6b44948ebda5efc750f62b60d0de8dd20131f449427426a36caf374af92
2025-04-29 09:59:42 +01:00
Ava Chow
32d55e28af test: Use the correct node for doubled keypath test 2025-04-28 14:44:17 -07:00
Chris Stewart
9ab4e3fe7e tests: Add witness commitment if we have a witness transaction in FullBlockTest.update_block() 2025-04-08 16:49:12 -05:00
3 changed files with 23 additions and 1 deletions

View file

@ -26,12 +26,14 @@ from test_framework.messages import (
COutPoint,
CTransaction,
CTxIn,
CTxInWitness,
CTxOut,
MAX_MONEY,
SEQUENCE_FINAL,
)
from test_framework.blocktools import create_tx_with_script, MAX_BLOCK_SIGOPS
from test_framework.script import (
OP_TRUE,
CScript,
OP_0,
OP_2DIV,
@ -129,6 +131,22 @@ class SizeTooSmall(BadTxTemplate):
tx.calc_sha256()
return tx
# reject a transaction that contains a witness
# but doesnt spend a segwit output
class ExtraWitness(BadTxTemplate):
expect_disconnect = False
valid_in_block = False
block_reject_reason = "mandatory-script-verify-flag-failed (Witness provided for non-witness script)"
def get_tx(self):
tx = CTransaction()
tx.vin.append(self.valid_txin)
tx.vout.append(CTxOut(0, CScript()))
tx.wit.vtxinwit = [CTxInWitness()]
tx.wit.vtxinwit[0].scriptWitness.stack = [CScript([OP_TRUE])]
tx.calc_sha256()
return tx
class BadInputOutpointIndex(BadTxTemplate):
# Won't be rejected - nonexistent outpoint index is treated as an orphan since the coins

View file

@ -7,6 +7,7 @@ import copy
import time
from test_framework.blocktools import (
add_witness_commitment,
create_block,
create_coinbase,
create_tx_with_script,
@ -1400,6 +1401,9 @@ class FullBlockTest(BitcoinTestFramework):
self.add_transactions_to_block(block, new_transactions)
old_sha256 = block.sha256
block.hashMerkleRoot = block.calc_merkle_root()
has_witness_tx = any(not tx.wit.is_null() for tx in block.vtx)
if has_witness_tx:
add_witness_commitment(block)
block.solve()
# Update the internal state just like in next_block
self.tip = block

View file

@ -87,7 +87,7 @@ class BackwardsCompatibilityTest(BitcoinTestFramework):
# 0.21.x and 22.x would both produce bad derivation paths when topping up an inactive hd chain
# Make sure that this is being automatically cleaned up by migration
node_master = self.nodes[1]
node_v22 = self.nodes[self.num_nodes - 5]
node_v22 = self.nodes[self.num_nodes - 3]
wallet_name = "bad_deriv_path"
node_v22.createwallet(wallet_name=wallet_name, descriptors=False)
bad_deriv_wallet = node_v22.get_wallet_rpc(wallet_name)