new.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/env python3
  2. #
  3. # MMGen Wallet, a terminal-based cryptocurrency wallet
  4. # Copyright (C)2013-2025 The MMGen Project <mmgen@tuta.io>
  5. # Licensed under the GNU General Public License, Version 3:
  6. # https://www.gnu.org/licenses
  7. # Public project repositories:
  8. # https://github.com/mmgen/mmgen-wallet
  9. # https://gitlab.com/mmgen/mmgen-wallet
  10. """
  11. proto.rune.tx.new: THORChain new transaction class
  12. """
  13. from ....tx import new as TxBase
  14. from ...vm.tx.new import New as VmNew
  15. from .base import Base
  16. class New(VmNew, Base, TxBase.New):
  17. async def get_fee(self, fee, outputs_sum, start_fee_desc):
  18. return await self.twctl.get_balance(self.inputs[0].addr)
  19. async def set_gas(self, *, to_addr=None, force=False):
  20. self.gas = self.dfl_gas
  21. async def make_txobj(self): # called by create_serialized()
  22. acct_info = self.rpc.get_account_info(self.inputs[0].addr)
  23. self.txobj = {
  24. 'from': self.inputs[0].addr,
  25. 'to': self.outputs[0].addr if self.outputs else None,
  26. 'amt': self.outputs[0].amt if self.outputs else self.swap_amt,
  27. 'gas': self.gas,
  28. 'account_number': int(acct_info['account_number']),
  29. 'sequence': int(acct_info['sequence']),
  30. 'chain_id': self.proto.chain_id}