Skip to content

Commit 1493d67

Browse files
committed
test: add helper for update_registrar{,_legacy} calls
1 parent 6ba685f commit 1493d67

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

test/functional/feature_dip3_deterministicmns.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ def run_test(self):
213213
assert old_voting_address != new_voting_address
214214
# also check if funds from payout address are used when no fee source address is specified
215215
node.sendtoaddress(mn.rewards_address, 0.001)
216-
node.protx('update_registrar' if softfork_active(node, 'v19') else 'update_registrar_legacy', mn.proTxHash, "", new_voting_address, "")
216+
mn.update_registrar(node, pubKeyOperator="", votingAddr=new_voting_address, rewards_address="")
217217
self.generate(node, 1)
218218
new_dmnState = mn.get_node(self).masternode("status")["dmnState"]
219219
new_voting_address_from_rpc = new_dmnState["votingAddress"]
@@ -263,7 +263,7 @@ def spend_mn_collateral(self, mn: MasternodeInfo, with_dummy_input_output=False)
263263

264264
def update_mn_payee(self, mn: MasternodeInfo, payee):
265265
self.nodes[0].sendtoaddress(mn.fundsAddr, 0.001)
266-
self.nodes[0].protx('update_registrar' if softfork_active(self.nodes[0], 'v19') else 'update_registrar_legacy', mn.proTxHash, '', '', payee, mn.fundsAddr)
266+
mn.update_registrar(self.nodes[0], pubKeyOperator="", votingAddr="", rewards_address=payee, fundsAddr=mn.fundsAddr)
267267
self.generate(self.nodes[0], 1)
268268
info = self.nodes[0].protx('info', mn.proTxHash)
269269
assert info['state']['payoutAddress'] == payee

test/functional/test_framework/test_framework.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,6 +1306,26 @@ def revoke(self, node: TestNode, reason: int, fundsAddr: Optional[str] = None) -
13061306

13071307
return node.protx('revoke', *args)
13081308

1309+
def update_registrar(self, node: TestNode, pubKeyOperator: Optional[str] = None, votingAddr: Optional[str] = None,
1310+
rewards_address: Optional[str] = None, fundsAddr: Optional[str] = None) -> str:
1311+
# Update commands should be run from the appropriate MasternodeInfo instance, we do not allow overriding proTxHash for this reason
1312+
if self.proTxHash is None:
1313+
raise AssertionError("proTxHash not set, did you call set_params()")
1314+
1315+
command = 'update_registrar_legacy' if self.legacy else 'update_registrar'
1316+
args = [
1317+
self.proTxHash,
1318+
pubKeyOperator or self.pubKeyOperator,
1319+
votingAddr or self.votingAddr,
1320+
rewards_address or self.rewards_address,
1321+
]
1322+
1323+
# fundsAddr is an optional field that results in different behavior if omitted, so we don't fallback here
1324+
if fundsAddr is not None:
1325+
args = args + [fundsAddr]
1326+
1327+
return node.protx(command, *args)
1328+
13091329
class DashTestFramework(BitcoinTestFramework):
13101330
def set_test_params(self):
13111331
"""Tests must this method to change default values for number of nodes, topology, etc"""

0 commit comments

Comments
 (0)