tx.new_swap: new update_memo() method

This commit is contained in:
The MMGen Project 2026-09-06 10:08:36 +00:00
commit 08f3520566
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 10 additions and 14 deletions

View file

@ -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)

View file

@ -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

View file

@ -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)