From 8f66a46e76b761fb0e1a9a3b4f24b9c47c5da598 Mon Sep 17 00:00:00 2001 From: Alfred Kamanda Date: Fri, 13 Feb 2026 16:04:00 +0300 Subject: [PATCH] added a function to ReadSwapFromVoucher --- store/swap.go | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/store/swap.go b/store/swap.go index 3359a6f..9b51b98 100644 --- a/store/swap.go +++ b/store/swap.go @@ -209,4 +209,30 @@ func UpdateSwapFromVoucherData(ctx context.Context, store DataStore, sessionId s } return nil -} \ No newline at end of file +} + +// ReadSwapFromVoucher retrieves the voucher being swapped into the pool (swap from) +func ReadSwapFromVoucher(ctx context.Context, store DataStore, sessionId string) (*dataserviceapi.TokenHoldings, error) { + keys := []storedb.DataTyp{ + storedb.DATA_ACTIVE_SWAP_FROM_SYM, + storedb.DATA_ACTIVE_SWAP_FROM_DECIMAL, + storedb.DATA_ACTIVE_SWAP_FROM_ADDRESS, + storedb.DATA_ACTIVE_SWAP_FROM_BALANCE, + } + data := make(map[storedb.DataTyp]string) + + for _, key := range keys { + value, err := store.ReadEntry(ctx, sessionId, key) + if err != nil { + return nil, fmt.Errorf("failed to get data key %x: %v", key, err) + } + data[key] = string(value) + } + + return &dataserviceapi.TokenHoldings{ + TokenSymbol: data[storedb.DATA_ACTIVE_SWAP_FROM_SYM], + Balance: data[storedb.DATA_ACTIVE_SWAP_FROM_BALANCE], + TokenDecimals: data[storedb.DATA_ACTIVE_SWAP_FROM_DECIMAL], + TokenAddress: data[storedb.DATA_ACTIVE_SWAP_FROM_ADDRESS], + }, nil +}