13
13
from test_framework .blocktools import create_block_with_mnpayments
14
14
from test_framework .messages import tx_from_hex
15
15
from test_framework .test_framework import (
16
+ MASTERNODE_COLLATERAL ,
16
17
BitcoinTestFramework ,
17
18
MasternodeInfo ,
18
19
)
@@ -49,7 +50,7 @@ def start_controller_node(self):
49
50
50
51
def run_test (self ):
51
52
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 :
53
54
self .generate (self .nodes [0 ], 10 , sync_fun = self .no_op ) # generate enough for collaterals
54
55
self .log .info ("controller node has {} dash" .format (self .nodes [0 ].getbalance ()))
55
56
@@ -228,34 +229,17 @@ def prepare_mn(self, node, idx, alias) -> MasternodeInfo:
228
229
return mn
229
230
230
231
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 ())
234
233
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 )
242
235
mn .set_params (collateral_txid = txid , collateral_vout = vout )
243
236
244
237
# register a protx MN and also fund it (using collateral inside ProRegTx)
245
238
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 )
259
243
260
244
# create a protx MN which refers to an existing collateral
261
245
def register_mn (self , node , mn : MasternodeInfo ):
@@ -275,7 +259,7 @@ def start_mn(self, mn: MasternodeInfo):
275
259
self .sync_all ()
276
260
277
261
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 )
279
263
280
264
def update_mn_payee (self , mn : MasternodeInfo , payee ):
281
265
self .nodes [0 ].sendtoaddress (mn .fundsAddr , 0.001 )
0 commit comments