From 76a913678d5b22d98977d8aad1859f02e3ffc2cd Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sun, 15 Jun 2025 09:16:57 +0000 Subject: [PATCH] new `proto.vm.tx.new_swap` module --- mmgen/proto/eth/tx/new_swap.py | 23 ++++------------------- mmgen/proto/vm/tx/new_swap.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 19 deletions(-) create mode 100755 mmgen/proto/vm/tx/new_swap.py diff --git a/mmgen/proto/eth/tx/new_swap.py b/mmgen/proto/eth/tx/new_swap.py index 822eb99d..e848f9b7 100755 --- a/mmgen/proto/eth/tx/new_swap.py +++ b/mmgen/proto/eth/tx/new_swap.py @@ -13,29 +13,14 @@ proto.eth.tx.new_swap: Ethereum new swap transaction class """ from ....tx.new_swap import NewSwap as TxNewSwap + +from ...vm.tx.new_swap import VmNewSwap + from .new import New, TokenNew -class NewSwap(New, TxNewSwap): +class NewSwap(VmNewSwap, New, TxNewSwap): desc = 'Ethereum swap transaction' - def update_data_output(self, trade_limit): - parsed_memo = self.swap_proto_mod.Memo.parse(self.swap_memo) - self.swap_memo = str(self.swap_proto_mod.Memo( - self.swap_cfg, - self.recv_proto, - self.recv_asset, - self.recv_proto.coin_addr(parsed_memo.address), - trade_limit = trade_limit)) - self.set_gas_with_data(self.swap_memo.encode()) - - @property - def vault_idx(self): - return 0 - - @property - def vault_output(self): - return self.outputs[0] - class TokenNewSwap(TokenNew, NewSwap): desc = 'Ethereum token swap transaction' diff --git a/mmgen/proto/vm/tx/new_swap.py b/mmgen/proto/vm/tx/new_swap.py new file mode 100755 index 00000000..d977d0a3 --- /dev/null +++ b/mmgen/proto/vm/tx/new_swap.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python3 +# +# MMGen Wallet, a terminal-based cryptocurrency wallet +# Copyright (C)2013-2025 The MMGen Project +# Licensed under the GNU General Public License, Version 3: +# https://www.gnu.org/licenses +# Public project repositories: +# https://github.com/mmgen/mmgen-wallet +# https://gitlab.com/mmgen/mmgen-wallet + +""" +proto.vm.tx.new_swap: new swap transaction methods for VM chains +""" + +class VmNewSwap: + + def update_data_output(self, trade_limit): + parsed_memo = self.swap_proto_mod.Memo.parse(self.swap_memo) + self.swap_memo = str(self.swap_proto_mod.Memo( + self.swap_cfg, + self.recv_proto, + self.recv_asset, + self.recv_proto.coin_addr(parsed_memo.address), + trade_limit = trade_limit)) + self.set_gas_with_data(self.swap_memo.encode()) + + @property + def vault_idx(self): + return 0 + + @property + def vault_output(self): + return self.outputs[0]