Compare commits
No commits in common. "fd4306002104c4e6378348bdc8d641cba12c723d" and "21da4b976bbf9100a67ee40e9a98c3687d885ef9" have entirely different histories.
fd43060021
...
21da4b976b
4
go.mod
4
go.mod
@ -5,12 +5,12 @@ go 1.23.4
|
|||||||
require (
|
require (
|
||||||
git.defalsify.org/vise.git v0.3.2-0.20250507172020-cb22240f1cb9
|
git.defalsify.org/vise.git v0.3.2-0.20250507172020-cb22240f1cb9
|
||||||
git.grassecon.net/grassrootseconomics/common v0.9.0-beta.1.0.20250417111317-2953f4c2f32e
|
git.grassecon.net/grassrootseconomics/common v0.9.0-beta.1.0.20250417111317-2953f4c2f32e
|
||||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250521141246-6c3719e3b652
|
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250521124206-343d30a2f27c
|
||||||
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2.0.20250408094335-e2d1f65bb306
|
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2.0.20250408094335-e2d1f65bb306
|
||||||
git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250129070628-5a539172c694
|
git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250129070628-5a539172c694
|
||||||
github.com/alecthomas/assert/v2 v2.2.2
|
github.com/alecthomas/assert/v2 v2.2.2
|
||||||
github.com/gofrs/uuid v4.4.0+incompatible
|
github.com/gofrs/uuid v4.4.0+incompatible
|
||||||
github.com/grassrootseconomics/ussd-data-service v1.4.7-beta
|
github.com/grassrootseconomics/ussd-data-service v1.4.4-beta
|
||||||
github.com/jackc/pgx/v5 v5.7.1
|
github.com/jackc/pgx/v5 v5.7.1
|
||||||
github.com/peteole/testdata-loader v0.3.0
|
github.com/peteole/testdata-loader v0.3.0
|
||||||
github.com/stretchr/testify v1.9.0
|
github.com/stretchr/testify v1.9.0
|
||||||
|
|||||||
4
go.sum
4
go.sum
@ -16,8 +16,6 @@ git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250520125035-
|
|||||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250520125035-81fbc2574c30/go.mod h1:R7+mt27mhm4/LCutAHHv87pOsLxXEPO93KXnhP8H6W0=
|
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250520125035-81fbc2574c30/go.mod h1:R7+mt27mhm4/LCutAHHv87pOsLxXEPO93KXnhP8H6W0=
|
||||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250521124206-343d30a2f27c h1:c2cA5hcYnLgs7kR4fF5tp42W6VQClTukbfKoaeskZu0=
|
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250521124206-343d30a2f27c h1:c2cA5hcYnLgs7kR4fF5tp42W6VQClTukbfKoaeskZu0=
|
||||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250521124206-343d30a2f27c/go.mod h1:R7+mt27mhm4/LCutAHHv87pOsLxXEPO93KXnhP8H6W0=
|
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250521124206-343d30a2f27c/go.mod h1:R7+mt27mhm4/LCutAHHv87pOsLxXEPO93KXnhP8H6W0=
|
||||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250521141246-6c3719e3b652 h1:MmUQRL6Fjq/jlL53h+cUbJ7WwQ+q/yNy/zT05c7bgNg=
|
|
||||||
git.grassecon.net/grassrootseconomics/sarafu-api v0.9.0-beta.1.0.20250521141246-6c3719e3b652/go.mod h1:wKHPy1mpOCr9ahkRltwm1yi9qH/3m9xb8hMCX5C0L1o=
|
|
||||||
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2.0.20250408094335-e2d1f65bb306 h1:Jo+yWysWw/N5BJQtAyEMN8ePVvAyPHv+JG4lQti+1N4=
|
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2.0.20250408094335-e2d1f65bb306 h1:Jo+yWysWw/N5BJQtAyEMN8ePVvAyPHv+JG4lQti+1N4=
|
||||||
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2.0.20250408094335-e2d1f65bb306/go.mod h1:FdLwYtzsjOIcDiW4uDgDYnB4Wdzq12uJUe0QHSSPbSo=
|
git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.2.0.20250408094335-e2d1f65bb306/go.mod h1:FdLwYtzsjOIcDiW4uDgDYnB4Wdzq12uJUe0QHSSPbSo=
|
||||||
git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250129070628-5a539172c694 h1:DjJlBSz0S13acft5XZDWk7ZYnzElym0xLMYEVgyNJ+E=
|
git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250129070628-5a539172c694 h1:DjJlBSz0S13acft5XZDWk7ZYnzElym0xLMYEVgyNJ+E=
|
||||||
@ -80,8 +78,6 @@ github.com/grassrootseconomics/ussd-data-service v1.4.0-beta h1:4fMd/3h2ZIhRg4Gd
|
|||||||
github.com/grassrootseconomics/ussd-data-service v1.4.0-beta/go.mod h1:9sGnorpKaK76FmOGXoh/xv7x5siSFNYdXxQo9BKW4DI=
|
github.com/grassrootseconomics/ussd-data-service v1.4.0-beta/go.mod h1:9sGnorpKaK76FmOGXoh/xv7x5siSFNYdXxQo9BKW4DI=
|
||||||
github.com/grassrootseconomics/ussd-data-service v1.4.4-beta h1:turlyo0i3OLj29mWpWNoB/3Qao8qEngT/5d1jDWTZE4=
|
github.com/grassrootseconomics/ussd-data-service v1.4.4-beta h1:turlyo0i3OLj29mWpWNoB/3Qao8qEngT/5d1jDWTZE4=
|
||||||
github.com/grassrootseconomics/ussd-data-service v1.4.4-beta/go.mod h1:9sGnorpKaK76FmOGXoh/xv7x5siSFNYdXxQo9BKW4DI=
|
github.com/grassrootseconomics/ussd-data-service v1.4.4-beta/go.mod h1:9sGnorpKaK76FmOGXoh/xv7x5siSFNYdXxQo9BKW4DI=
|
||||||
github.com/grassrootseconomics/ussd-data-service v1.4.7-beta h1:yAe1YaOBsdxW2m20jnVU4F0kLmFr+mK/gHCWEdHmE90=
|
|
||||||
github.com/grassrootseconomics/ussd-data-service v1.4.7-beta/go.mod h1:9sGnorpKaK76FmOGXoh/xv7x5siSFNYdXxQo9BKW4DI=
|
|
||||||
github.com/graygnuorg/go-gdbm v0.0.0-20220711140707-71387d66dce4 h1:U4kkNYryi/qfbBF8gh7Vsbuz+cVmhf5kt6pE9bYYyLo=
|
github.com/graygnuorg/go-gdbm v0.0.0-20220711140707-71387d66dce4 h1:U4kkNYryi/qfbBF8gh7Vsbuz+cVmhf5kt6pE9bYYyLo=
|
||||||
github.com/graygnuorg/go-gdbm v0.0.0-20220711140707-71387d66dce4/go.mod h1:zpZDgZFzeq9s0MIeB1P50NIEWDFFHSFBohI/NbaTD/Y=
|
github.com/graygnuorg/go-gdbm v0.0.0-20220711140707-71387d66dce4/go.mod h1:zpZDgZFzeq9s0MIeB1P50NIEWDFFHSFBohI/NbaTD/Y=
|
||||||
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
|
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
|
||||||
|
|||||||
@ -2784,11 +2784,12 @@ func (h *MenuHandlers) LoadSwapToList(ctx context.Context, sym string, input []b
|
|||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
data := store.ProcessTokens(swapToList)
|
data := store.ProcessVouchers(swapToList)
|
||||||
|
|
||||||
// Store all swap_to tokens data
|
// Store all to list voucher data
|
||||||
dataMap := map[storedb.DataTyp]string{
|
dataMap := map[storedb.DataTyp]string{
|
||||||
storedb.DATA_POOL_TO_SYMBOLS: data.Symbols,
|
storedb.DATA_POOL_TO_SYMBOLS: data.Symbols,
|
||||||
|
storedb.DATA_POOL_TO_BALANCES: data.Balances,
|
||||||
storedb.DATA_POOL_TO_DECIMALS: data.Decimals,
|
storedb.DATA_POOL_TO_DECIMALS: data.Decimals,
|
||||||
storedb.DATA_POOL_TO_ADDRESSES: data.Addresses,
|
storedb.DATA_POOL_TO_ADDRESSES: data.Addresses,
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
Your request failed. Please try again later.
|
Failed to connect to the custodial service. Please try again.
|
||||||
@ -1 +1 @@
|
|||||||
Ombi lako halikufaulu. Tafadhali jaribu tena baadaye.
|
Imeshindwa kuunganisha kwenye huduma ya uangalizi. Tafadhali jaribu tena.
|
||||||
@ -1,5 +1,4 @@
|
|||||||
RELOAD swap_max_limit
|
RELOAD swap_max_limit
|
||||||
CATCH api_failure flag_api_call_error 1
|
|
||||||
MAP swap_max_limit
|
MAP swap_max_limit
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
HALT
|
HALT
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
LOAD swap_preview 0
|
LOAD swap_preview 0
|
||||||
MAP swap_preview
|
MAP swap_preview
|
||||||
CATCH api_failure flag_api_call_error 1
|
|
||||||
MOUT back 0
|
MOUT back 0
|
||||||
MOUT quit 9
|
MOUT quit 9
|
||||||
LOAD authorize_account 6
|
LOAD authorize_account 6
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strconv"
|
|
||||||
|
|
||||||
storedb "git.grassecon.net/grassrootseconomics/sarafu-vise/store/db"
|
storedb "git.grassecon.net/grassrootseconomics/sarafu-vise/store/db"
|
||||||
dataserviceapi "github.com/grassrootseconomics/ussd-data-service/pkg/api"
|
dataserviceapi "github.com/grassrootseconomics/ussd-data-service/pkg/api"
|
||||||
@ -130,8 +129,8 @@ func GetSwapFromVoucherData(ctx context.Context, store DataStore, sessionId stri
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetSwapToVoucherData retrieves and matches token data
|
// GetSwapToVoucherData retrieves and matches voucher data
|
||||||
func GetSwapToVoucherData(ctx context.Context, store DataStore, sessionId string, input string) (*dataserviceapi.TokenDetails, error) {
|
func GetSwapToVoucherData(ctx context.Context, store DataStore, sessionId string, input string) (*dataserviceapi.TokenHoldings, error) {
|
||||||
keys := []storedb.DataTyp{
|
keys := []storedb.DataTyp{
|
||||||
storedb.DATA_POOL_TO_SYMBOLS,
|
storedb.DATA_POOL_TO_SYMBOLS,
|
||||||
storedb.DATA_POOL_TO_BALANCES,
|
storedb.DATA_POOL_TO_BALANCES,
|
||||||
@ -148,7 +147,7 @@ func GetSwapToVoucherData(ctx context.Context, store DataStore, sessionId string
|
|||||||
data[key] = string(value)
|
data[key] = string(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
symbol, _, decimal, address := MatchVoucher(input,
|
symbol, balance, decimal, address := MatchVoucher(input,
|
||||||
data[storedb.DATA_POOL_TO_SYMBOLS],
|
data[storedb.DATA_POOL_TO_SYMBOLS],
|
||||||
data[storedb.DATA_POOL_TO_BALANCES],
|
data[storedb.DATA_POOL_TO_BALANCES],
|
||||||
data[storedb.DATA_POOL_TO_DECIMALS],
|
data[storedb.DATA_POOL_TO_DECIMALS],
|
||||||
@ -159,27 +158,22 @@ func GetSwapToVoucherData(ctx context.Context, store DataStore, sessionId string
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
decimalInt, err := strconv.ParseUint(decimal, 0, 64)
|
return &dataserviceapi.TokenHoldings{
|
||||||
if err != nil {
|
TokenSymbol: string(symbol),
|
||||||
logg.ErrorCtxf(ctx, "Failed to parse decimal to Uint:", "sessionId", sessionId, "decimal", decimal, "error", err)
|
Balance: string(balance),
|
||||||
return nil, nil
|
TokenDecimals: string(decimal),
|
||||||
}
|
ContractAddress: string(address),
|
||||||
|
|
||||||
return &dataserviceapi.TokenDetails{
|
|
||||||
TokenSymbol: string(symbol),
|
|
||||||
TokenDecimals: uint8(decimalInt),
|
|
||||||
TokenAddress: string(address),
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateSwapToVoucherData updates the active swap to voucher data in the DataStore.
|
// UpdateSwapToVoucherData updates the active swap to voucher data in the DataStore.
|
||||||
func UpdateSwapToVoucherData(ctx context.Context, store DataStore, sessionId string, data *dataserviceapi.TokenDetails) error {
|
func UpdateSwapToVoucherData(ctx context.Context, store DataStore, sessionId string, data *dataserviceapi.TokenHoldings) error {
|
||||||
logg.TraceCtxf(ctx, "UpdateSwapToVoucherData", "data", data)
|
logg.TraceCtxf(ctx, "dtal", "data", data)
|
||||||
// Active swap to voucher data entries
|
// Active swap to voucher data entries
|
||||||
activeEntries := map[storedb.DataTyp][]byte{
|
activeEntries := map[storedb.DataTyp][]byte{
|
||||||
storedb.DATA_ACTIVE_SWAP_TO_SYM: []byte(data.TokenSymbol),
|
storedb.DATA_ACTIVE_SWAP_TO_SYM: []byte(data.TokenSymbol),
|
||||||
storedb.DATA_ACTIVE_SWAP_TO_DECIMAL: []byte{data.TokenDecimals},
|
storedb.DATA_ACTIVE_SWAP_TO_DECIMAL: []byte(data.TokenDecimals),
|
||||||
storedb.DATA_ACTIVE_SWAP_TO_ADDRESS: []byte(data.TokenAddress),
|
storedb.DATA_ACTIVE_SWAP_TO_ADDRESS: []byte(data.ContractAddress),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write active data
|
// Write active data
|
||||||
|
|||||||
@ -47,24 +47,6 @@ func ProcessVouchers(holdings []dataserviceapi.TokenHoldings) VoucherMetadata {
|
|||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
// ProcessTokens converts swappable tokens into formatted strings
|
|
||||||
func ProcessTokens(holdings []dataserviceapi.TokenDetails) VoucherMetadata {
|
|
||||||
var data VoucherMetadata
|
|
||||||
var symbols, decimals, addresses []string
|
|
||||||
|
|
||||||
for i, h := range holdings {
|
|
||||||
symbols = append(symbols, fmt.Sprintf("%d:%s", i+1, h.TokenSymbol))
|
|
||||||
decimals = append(decimals, fmt.Sprintf("%d:%d", i+1, h.TokenDecimals))
|
|
||||||
addresses = append(addresses, fmt.Sprintf("%d:%s", i+1, h.TokenAddress))
|
|
||||||
}
|
|
||||||
|
|
||||||
data.Symbols = strings.Join(symbols, "\n")
|
|
||||||
data.Decimals = strings.Join(decimals, "\n")
|
|
||||||
data.Addresses = strings.Join(addresses, "\n")
|
|
||||||
|
|
||||||
return data
|
|
||||||
}
|
|
||||||
|
|
||||||
func ScaleDownBalance(balance, decimals string) string {
|
func ScaleDownBalance(balance, decimals string) string {
|
||||||
// Convert balance and decimals to big.Float
|
// Convert balance and decimals to big.Float
|
||||||
bal := new(big.Float)
|
bal := new(big.Float)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user