1313from  test_framework .blocktools  import  create_block_with_mnpayments 
1414from  test_framework .messages  import  tx_from_hex 
1515from  test_framework .test_framework  import  (
16+     MASTERNODE_COLLATERAL ,
1617    BitcoinTestFramework ,
1718    MasternodeInfo ,
1819)
@@ -49,7 +50,7 @@ def start_controller_node(self):
4950
5051    def  run_test (self ):
5152        self .log .info ("funding controller node" )
52-         while  self .nodes [0 ].getbalance () <  (self .num_initial_mn  +  3 ) *  1000 :
53+         while  self .nodes [0 ].getbalance () <  (self .num_initial_mn  +  3 ) *  MASTERNODE_COLLATERAL :
5354            self .generate (self .nodes [0 ], 10 , sync_fun = self .no_op ) # generate enough for collaterals 
5455        self .log .info ("controller node has {} dash" .format (self .nodes [0 ].getbalance ()))
5556
@@ -228,34 +229,17 @@ def prepare_mn(self, node, idx, alias) -> MasternodeInfo:
228229        return  mn 
229230
230231    def  create_mn_collateral (self , node , mn : MasternodeInfo ):
231-         txid  =  node .sendtoaddress (mn .collateral_address , 1000 )
232-         vout  =  None 
233- 
232+         txid  =  node .sendtoaddress (mn .collateral_address , mn .get_collateral_value ())
234233        self .generate (node , 1 , sync_fun = self .no_op )
235-         rawtx  =  node .getrawtransaction (txid , 1 )
236-         for  txout  in  rawtx ['vout' ]:
237-             if  txout ['value' ] ==  Decimal (1000 ):
238-                 vout  =  txout ['n' ]
239-                 break 
240-         assert  vout  is  not None 
241- 
234+         vout  =  mn .get_collateral_vout (node , txid )
242235        mn .set_params (collateral_txid = txid , collateral_vout = vout )
243236
244237    # register a protx MN and also fund it (using collateral inside ProRegTx) 
245238    def  register_fund_mn (self , node , mn : MasternodeInfo ):
246-         node .sendtoaddress (mn .fundsAddr , 1000.001 )
247- 
248-         proTxHash  =  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 )
249-         vout  =  None 
250- 
251-         rawtx  =  node .getrawtransaction (proTxHash , 1 )
252-         for  txout  in  rawtx ['vout' ]:
253-             if  txout ['value' ] ==  Decimal (1000 ):
254-                 vout  =  txout ['n' ]
255-                 break 
256-         assert  vout  is  not None 
257- 
258-         mn .set_params (proTxHash = proTxHash , collateral_txid = proTxHash , collateral_vout = vout )
239+         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 )
241+         vout  =  mn .get_collateral_vout (node , txid )
242+         mn .set_params (proTxHash = txid , collateral_txid = txid , collateral_vout = vout )
259243
260244    # create a protx MN which refers to an existing collateral 
261245    def  register_mn (self , node , mn : MasternodeInfo ):
@@ -275,7 +259,7 @@ def start_mn(self, mn: MasternodeInfo):
275259        self .sync_all ()
276260
277261    def  spend_mn_collateral (self , mn : MasternodeInfo , with_dummy_input_output = False ):
278-         return  self .spend_input (mn .collateral_txid , mn .collateral_vout , 1000 , with_dummy_input_output )
262+         return  self .spend_input (mn .collateral_txid , mn .collateral_vout , mn . get_collateral_value () , with_dummy_input_output )
279263
280264    def  update_mn_payee (self , mn : MasternodeInfo , payee ):
281265        self .nodes [0 ].sendtoaddress (mn .fundsAddr , 0.001 )
0 commit comments