@@ -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+
12551290class 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