@@ -277,36 +277,48 @@ def create_simple_node(self):
277
277
278
278
def prepare_masternodes (self ):
279
279
for idx in range (0 , self .mn_count ):
280
- bls = self .nodes [0 ].bls ('generate' )
281
- address = self .nodes [0 ].getnewaddress ()
282
- txid = self .nodes [0 ].sendtoaddress (address , MASTERNODE_COLLATERAL )
283
-
284
- txraw = self .nodes [0 ].getrawtransaction (txid , True )
285
- collateral_vout = 0
286
- for vout_idx in range (0 , len (txraw ["vout" ])):
287
- vout = txraw ["vout" ][vout_idx ]
288
- if vout ["value" ] == MASTERNODE_COLLATERAL :
289
- collateral_vout = vout_idx
290
- self .nodes [0 ].lockunspent (False , [{'txid' : txid , 'vout' : collateral_vout }])
291
-
292
- # send to same address to reserve some funds for fees
293
- self .nodes [0 ].sendtoaddress (address , 0.001 )
294
-
295
- ownerAddr = self .nodes [0 ].getnewaddress ()
296
- votingAddr = self .nodes [0 ].getnewaddress ()
297
- rewardsAddr = self .nodes [0 ].getnewaddress ()
298
-
299
- port = p2p_port (len (self .nodes ) + idx )
300
- if (idx % 2 ) == 0 :
301
- self .nodes [0 ].lockunspent (True , [{'txid' : txid , 'vout' : collateral_vout }])
302
- proTxHash = self .nodes [0 ].protx ('register_fund' , address , '127.0.0.1:%d' % port , ownerAddr , bls ['public' ], votingAddr , 0 , rewardsAddr , address )
303
- else :
304
- self .nodes [0 ].generate (1 )
305
- proTxHash = self .nodes [0 ].protx ('register' , txid , collateral_vout , '127.0.0.1:%d' % port , ownerAddr , bls ['public' ], votingAddr , 0 , rewardsAddr , address )
280
+ self .prepare_masternode (idx )
281
+
282
+ def prepare_masternode (self , idx ):
283
+ bls = self .nodes [0 ].bls ('generate' )
284
+ address = self .nodes [0 ].getnewaddress ()
285
+ txid = self .nodes [0 ].sendtoaddress (address , MASTERNODE_COLLATERAL )
286
+
287
+ txraw = self .nodes [0 ].getrawtransaction (txid , True )
288
+ collateral_vout = 0
289
+ for vout_idx in range (0 , len (txraw ["vout" ])):
290
+ vout = txraw ["vout" ][vout_idx ]
291
+ if vout ["value" ] == MASTERNODE_COLLATERAL :
292
+ collateral_vout = vout_idx
293
+ self .nodes [0 ].lockunspent (False , [{'txid' : txid , 'vout' : collateral_vout }])
294
+
295
+ # send to same address to reserve some funds for fees
296
+ self .nodes [0 ].sendtoaddress (address , 0.001 )
297
+
298
+ ownerAddr = self .nodes [0 ].getnewaddress ()
299
+ votingAddr = self .nodes [0 ].getnewaddress ()
300
+ rewardsAddr = self .nodes [0 ].getnewaddress ()
301
+
302
+ port = p2p_port (len (self .nodes ) + idx )
303
+ if (idx % 2 ) == 0 :
304
+ self .nodes [0 ].lockunspent (True , [{'txid' : txid , 'vout' : collateral_vout }])
305
+ proTxHash = self .nodes [0 ].protx ('register_fund' , address , '127.0.0.1:%d' % port , ownerAddr , bls ['public' ], votingAddr , 0 , rewardsAddr , address )
306
+ else :
306
307
self .nodes [0 ].generate (1 )
308
+ proTxHash = self .nodes [0 ].protx ('register' , txid , collateral_vout , '127.0.0.1:%d' % port , ownerAddr , bls ['public' ], votingAddr , 0 , rewardsAddr , address )
309
+ self .nodes [0 ].generate (1 )
307
310
308
- self .mninfo .append (MasternodeInfo (proTxHash , ownerAddr , votingAddr , bls ['public' ], bls ['secret' ], address , txid , collateral_vout ))
311
+ self .mninfo .append (MasternodeInfo (proTxHash , ownerAddr , votingAddr , bls ['public' ], bls ['secret' ], address , txid , collateral_vout ))
312
+ self .sync_all ()
313
+
314
+ def remove_mastermode (self , idx ):
315
+ mn = self .mninfo [idx ]
316
+ rawtx = self .nodes [0 ].createrawtransaction ([{"txid" : mn .collateral_txid , "vout" : mn .collateral_vout }], {self .nodes [0 ].getnewaddress (): 999.9999 })
317
+ rawtx = self .nodes [0 ].signrawtransaction (rawtx )
318
+ self .nodes [0 ].sendrawtransaction (rawtx ["hex" ])
319
+ self .nodes [0 ].generate (1 )
309
320
self .sync_all ()
321
+ self .mninfo .remove (mn )
310
322
311
323
def prepare_datadirs (self ):
312
324
# stop faucet node so that we can copy the datadir
0 commit comments