From 08f352056697d7c3cd86227835ba40625db5f20a Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Sun, 6 Sep 2026 10:08:36 +0000 Subject: [PATCH] tx.new_swap: new `update_memo()` method --- mmgen/proto/btc/tx/new_swap.py | 8 +------- mmgen/proto/vm/tx/new_swap.py | 8 +------- mmgen/tx/new_swap.py | 8 ++++++++ 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/mmgen/proto/btc/tx/new_swap.py b/mmgen/proto/btc/tx/new_swap.py index fd76bcd7..fadc146a 100755 --- a/mmgen/proto/btc/tx/new_swap.py +++ b/mmgen/proto/btc/tx/new_swap.py @@ -20,13 +20,7 @@ class NewSwap(New, TxNewSwap): def update_data_output(self, trade_limit): o = self.data_output._asdict() - parsed_memo = self.swap_proto_mod.Memo.parse(o['data'].decode()) - memo = 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) + memo = self.update_memo(o['data'].decode(), trade_limit) o['data'] = f'data:{memo}' self.data_output = self.Output(self.proto, **o) diff --git a/mmgen/proto/vm/tx/new_swap.py b/mmgen/proto/vm/tx/new_swap.py index 51f518d7..73753bb6 100755 --- a/mmgen/proto/vm/tx/new_swap.py +++ b/mmgen/proto/vm/tx/new_swap.py @@ -15,13 +15,7 @@ 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.swap_memo = str(self.update_memo(self.swap_memo, trade_limit)) self.set_gas_with_data(self.swap_memo.encode()) @property diff --git a/mmgen/tx/new_swap.py b/mmgen/tx/new_swap.py index 2f7a2f4d..09b6a300 100755 --- a/mmgen/tx/new_swap.py +++ b/mmgen/tx/new_swap.py @@ -181,6 +181,14 @@ class NewSwap(New): o['addr'] = getattr(c, addr) self.outputs[vault_idx] = self.Output(self.proto, **o) + def update_memo(self, memo, trade_limit): + return self.swap_proto_mod.Memo( + self.swap_cfg, + self.recv_proto, + self.recv_asset, + self.recv_proto.coin_addr(self.swap_proto_mod.Memo.parse(memo).address), + trade_limit = trade_limit) + async def update_vault_output(self, amt, *, deduct_est_fee=False): c = self.swap_proto_mod.rpc_client(self, amt)