diff --git a/test/functional/p2p_permissions.py b/test/functional/p2p_permissions.py --- a/test/functional/p2p_permissions.py +++ b/test/functional/p2p_permissions.py @@ -7,8 +7,10 @@ Test that permissions are correctly calculated and applied """ +from test_framework.address import ADDRESS_ECREG_P2SH_OP_TRUE from test_framework.messages import CTransaction, FromHex from test_framework.p2p import P2PDataStore +from test_framework.script import OP_TRUE, CScript, CScriptOp from test_framework.test_framework import BitcoinTestFramework from test_framework.test_node import ErrorMatch from test_framework.txtools import pad_tx @@ -117,11 +119,8 @@ match=ErrorMatch.PARTIAL_REGEX) def check_tx_relay(self): - address = self.nodes[0].get_deterministic_priv_key().address - key = self.nodes[0].get_deterministic_priv_key().key - block = self.nodes[0].getblock( - self.nodes[0].generatetoaddress( - 100, address)[0]) + block_op_true = self.nodes[0].getblock( + self.nodes[0].generatetoaddress(100, ADDRESS_ECREG_P2SH_OP_TRUE)[0]) self.sync_all() self.log.debug( @@ -135,12 +134,12 @@ P2PDataStore()) self.log.debug("Send a tx from the wallet initially") - raw_tx = self.nodes[0].createrawtransaction( - inputs=[{'txid': block['tx'][0], 'vout': 0}], - outputs=[{address: 50, }]) - signed_tx = self.nodes[0].signrawtransactionwithkey(raw_tx, - [key])['hex'] - tx = FromHex(CTransaction(), signed_tx) + tx = FromHex(CTransaction(), + self.nodes[0].createrawtransaction( + inputs=[{'txid': block_op_true['tx'][0], 'vout': 0}], + outputs=[{ADDRESS_ECREG_P2SH_OP_TRUE: 50}])) + # push the one byte script to the stack + tx.vin[0].scriptSig = CScriptOp.encode_op_pushdata(CScript([OP_TRUE])) pad_tx(tx) txid = tx.rehash() diff --git a/test/functional/test_framework/address.py b/test/functional/test_framework/address.py --- a/test/functional/test_framework/address.py +++ b/test/functional/test_framework/address.py @@ -11,6 +11,8 @@ ADDRESS_ECREG_UNSPENDABLE = 'ecregtest:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqcrl5mqkt' ADDRESS_ECREG_UNSPENDABLE_DESCRIPTOR = 'addr(ecregtest:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqcrl5mqkt)#u6xx93xc' +# Coins sent to this address can be spent with a scriptSig of just OP_TRUE +ADDRESS_ECREG_P2SH_OP_TRUE = 'ecregtest:prdpw30fk4ym6zl6rftfjuw806arpn26fvkgfu97xt' chars = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'