Skip to content

Commit aa96ace

Browse files
committed
test: add helper for register_fund{,_evo,_legacy} calls
1 parent dbce9c9 commit aa96ace

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

test/functional/feature_dip3_deterministicmns.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ def create_mn_collateral(self, node, mn: MasternodeInfo):
237237
# register a protx MN and also fund it (using collateral inside ProRegTx)
238238
def register_fund_mn(self, node, mn: MasternodeInfo):
239239
node.sendtoaddress(mn.fundsAddr, mn.get_collateral_value() + 0.001)
240-
txid = node.protx('register_fund' if softfork_active(node, 'v19') else 'register_fund_legacy', mn.collateral_address, '127.0.0.1:%d' % mn.nodePort, mn.ownerAddr, mn.pubKeyOperator, mn.votingAddr, mn.operator_reward, mn.rewards_address, mn.fundsAddr)
240+
txid = mn.register_fund(node, True)
241241
vout = mn.get_collateral_vout(node, txid)
242242
mn.set_params(proTxHash=txid, collateral_txid=txid, collateral_vout=vout)
243243

test/functional/test_framework/test_framework.py

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1252,6 +1252,41 @@ def register(self, node: TestNode, submit: bool = True, collateral_txid: Optiona
12521252

12531253
return node.protx(command, *args)
12541254

1255+
def register_fund(self, node: TestNode, submit: bool = True, collateral_address: Optional[str] = None, ipAndPort: Optional[str] = None,
1256+
ownerAddr: Optional[str] = None, pubKeyOperator: Optional[str] = None, votingAddr: Optional[str] = None,
1257+
operator_reward: Optional[int] = None, rewards_address: Optional[str] = None, fundsAddr: Optional[str] = None,
1258+
platform_node_id: Optional[str] = None, platform_p2p_port: Optional[int] = None, platform_http_port: Optional[int] = None) -> str:
1259+
# EvoNode-specific fields are ignored for regular masternodes
1260+
if self.evo:
1261+
if platform_node_id is None:
1262+
raise AssertionError("EvoNode but platform_node_id is missing, must be specified!")
1263+
if platform_p2p_port is None:
1264+
raise AssertionError("EvoNode but platform_p2p_port is missing, must be specified!")
1265+
if platform_http_port is None:
1266+
raise AssertionError("EvoNode but platform_http_port is missing, must be specified!")
1267+
1268+
# Common arguments shared between regular masternodes and EvoNodes
1269+
args = [
1270+
collateral_address or self.collateral_address,
1271+
ipAndPort or f'127.0.0.1:{self.nodePort}',
1272+
ownerAddr or self.ownerAddr,
1273+
pubKeyOperator or self.pubKeyOperator,
1274+
votingAddr or self.votingAddr,
1275+
operator_reward or self.operator_reward,
1276+
rewards_address or self.rewards_address,
1277+
]
1278+
address_funds = fundsAddr or self.fundsAddr
1279+
1280+
# Construct final command and arguments
1281+
if self.evo:
1282+
command = "register_fund_evo"
1283+
args = args + [platform_node_id, platform_p2p_port, platform_http_port, address_funds, submit] # type: ignore
1284+
else:
1285+
command = "register_fund_legacy" if self.legacy else "register_fund"
1286+
args = args + [address_funds, submit] # type: ignore
1287+
1288+
return node.protx(command, *args)
1289+
12551290
class DashTestFramework(BitcoinTestFramework):
12561291
def set_test_params(self):
12571292
"""Tests must this method to change default values for number of nodes, topology, etc"""
@@ -1499,8 +1534,7 @@ def prepare_masternode(self, idx):
14991534
submit = (idx % 4) < 2
15001535

15011536
if register_fund:
1502-
protx_result = self.nodes[0].protx('register_fund_legacy' if mn.legacy else 'register_fund', mn.collateral_address, ipAndPort,
1503-
mn.ownerAddr, mn.pubKeyOperator, mn.votingAddr, operatorReward, mn.rewards_address, mn.fundsAddr, submit)
1537+
protx_result = mn.register_fund(self.nodes[0], submit, ipAndPort=ipAndPort, operator_reward=operatorReward)
15041538
else:
15051539
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
15061540
protx_result = mn.register(self.nodes[0], submit, collateral_txid=txid, collateral_vout=collateral_vout, ipAndPort=ipAndPort,

0 commit comments

Comments
 (0)