class TestMinterSetCandidateOffTx(unittest.TestCase): def setUp(self): self.PRIVATE_KEY = '05ddcd4e6f7d248ed1388f0091fe345bf9bf4fc2390384e26005e7675c98b3c1' self.SIGNED_TX = 'f87c0102018a4d4e54000000000000000ba2e1a00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43808001b845f8431ca02ac45817f167c34b55b8afa0b6d9692be28e2aa41dd28a134663d1f5bebb5ad8a06d5f161a625701d506db20c497d24e9939c2e342a6ff7d724cb1962267bd4ba5' self.TX = MinterSetCandidateOffTx( **{ 'nonce': 1, 'chain_id': MinterTx.TESTNET_CHAIN_ID, 'gas_coin': 'MNT', 'pub_key': 'Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43' }) def test_valid_tx(self): """ Is tx instance of needed TX class. """ self.assertIsInstance(self.TX, MinterSetCandidateOffTx) def test_sign_tx(self): """ Sign transaction and check signed transaction """ self.TX.sign(self.PRIVATE_KEY) self.assertEqual(self.TX.signed_tx, self.SIGNED_TX) def test_from_raw(self): tx = MinterTx.from_raw(raw_tx=self.SIGNED_TX) self.assertEqual(tx.pub_key, self.TX.pub_key)
def setUp(self): self.PRIVATE_KEY = '05ddcd4e6f7d248ed1388f0091fe345bf9bf4fc2390384e26005e7675c98b3c1' self.SIGNED_TX = 'f87c0102018a4d4e54000000000000000ba2e1a00eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43808001b845f8431ca02ac45817f167c34b55b8afa0b6d9692be28e2aa41dd28a134663d1f5bebb5ad8a06d5f161a625701d506db20c497d24e9939c2e342a6ff7d724cb1962267bd4ba5' self.TX = MinterSetCandidateOffTx( **{ 'nonce': 1, 'chain_id': MinterTx.TESTNET_CHAIN_ID, 'gas_coin': 'MNT', 'pub_key': 'Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43' })
break except Exception as e: print(e.__str__()) if nonce is None: raise if action == 'on': # Set candidate on tx tx = MinterSetCandidateOnTx(pub_key=pub_key, nonce=nonce, gas_coin='BIP') tx.sign(wallet['private_key']) tx_str = 'Set candidate ON tx: {}'.format(tx.signed_tx) elif action == 'off': # Set candidate off tx tx = MinterSetCandidateOffTx(pub_key=pub_key, nonce=nonce, gas_coin='BIP', gas_price=50) tx.sign(wallet['private_key']) tx_str = 'Set candidate OFF tx: {}'.format(tx.signed_tx) # Print collected data for user print('Public key: {}'.format(pub_key)) print('From address: {}'.format(wallet['address'])) print(tx_str) except Exception as e: print(e.__str__()) sys.exit(1)
# When all data seems to be set, create txs try: # Get API and wallet minterapi = MinterAPI(api_url) wallet = MinterWallet.create(mnemonic=seed) if action == 'on': # Set candidate on tx tx = MinterSetCandidateOnTx( pub_key=pub_key, nonce=minterapi.get_nonce(address=wallet['address']), gas_coin='BIP') tx.sign(wallet['private_key']) tx_str = 'Set candidate ON tx: {}'.format(tx.signed_tx) elif action == 'off': # Set candidate off tx tx = MinterSetCandidateOffTx( pub_key=pub_key, nonce=minterapi.get_nonce(address=wallet['address']), gas_coin='BIP') tx.sign(wallet['private_key']) tx_str = 'Set candidate OFF tx: {}'.format(tx.signed_tx) # Print collected data for user print('Public key: {}'.format(pub_key)) print('From address: {}'.format(wallet['address'])) print(tx_str) except Exception as e: print(e.__str__()) sys.exit(1)