diff --git a/test/functional/mempool_accept.py b/test/functional/mempool_accept.py index 4b9ff3d1381..44a36697c6e 100755 --- a/test/functional/mempool_accept.py +++ b/test/functional/mempool_accept.py @@ -409,10 +409,19 @@ class MempoolAcceptanceTest(BitcoinTestFramework): maxfeerate=0, ) - # Clear witness stuffing - anchor_spend = anchor_nonempty_wit_spend - anchor_spend.wit.vtxinwit[0].scriptWitness.stack = [] - anchor_spend.rehash() + # but is consensus-legal + self.generateblock(node, self.wallet.get_address(), [anchor_nonempty_wit_spend.serialize().hex()]) + + # Without witness elements it is standard + create_anchor_tx = self.wallet.send_to(from_node=node, scriptPubKey=PAY_TO_ANCHOR, amount=anchor_value) + self.generate(node, 1) + + anchor_spend = CTransaction() + anchor_spend.vin.append(CTxIn(COutPoint(int(create_anchor_tx["txid"], 16), create_anchor_tx["sent_vout"]), b"")) + anchor_spend.vout.append(CTxOut(anchor_value - int(fee*COIN), script_to_p2wsh_script(CScript([OP_TRUE])))) + anchor_spend.wit.vtxinwit.append(CTxInWitness()) + # It's "segwit" but txid == wtxid since there is no witness data + assert_equal(anchor_spend.rehash(), anchor_spend.getwtxid()) self.check_mempool_result( result_expected=[{'txid': anchor_spend.rehash(), 'allowed': True, 'vsize': anchor_spend.get_vsize(), 'fees': { 'base': Decimal('0.00000700')}}], diff --git a/test/functional/rpc_validateaddress.py b/test/functional/rpc_validateaddress.py index dde07e7eadd..bf094a7df89 100755 --- a/test/functional/rpc_validateaddress.py +++ b/test/functional/rpc_validateaddress.py @@ -166,6 +166,11 @@ VALID_DATA = [ "bc1p0xlxvlhemja6c4dqv22uapctqupfhlxm9h8z3k2e72q4k9hcz7vqzk5jj0", "512079be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798", ), + # PayToAnchor(P2A) + ( + "bc1pfeessrawgf", + "51024e73", + ), ]