new_swap.py 990 B

123456789101112131415161718192021222324252627282930313233343536
  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.eth.tx.new_swap: Ethereum new swap transaction class
  12. """
  13. from ....tx.new_swap import NewSwap as TxNewSwap
  14. from .new import New
  15. class NewSwap(New, TxNewSwap):
  16. desc = 'Ethereum swap transaction'
  17. def update_data_output(self, trade_limit):
  18. parsed_memo = self.swap_proto_mod.Memo.parse(self.swap_memo)
  19. self.swap_memo = str(self.swap_proto_mod.Memo(
  20. self.recv_proto,
  21. self.recv_asset,
  22. self.recv_proto.coin_addr(parsed_memo.address),
  23. trade_limit = trade_limit))
  24. self.set_gas_with_data(self.swap_memo.encode())
  25. @property
  26. def vault_idx(self):
  27. return 0
  28. @property
  29. def vault_output(self):
  30. return self.outputs[0]