Compare commits
No commits in common. "633d56b0adb6b283435f5995d30174219d3c74f1" and "1d578209fc774a33076afcf1d827f1af753748fe" have entirely different histories.
633d56b0ad
...
1d578209fc
@ -4,9 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
|
|
||||||
"git.defalsify.org/vise.git/engine"
|
"git.defalsify.org/vise.git/engine"
|
||||||
"git.defalsify.org/vise.git/lang"
|
"git.defalsify.org/vise.git/lang"
|
||||||
@ -390,11 +388,11 @@ func (h *Handlers) VerifyYob(ctx context.Context, sym string, input []byte) (res
|
|||||||
res := resource.Result{}
|
res := resource.Result{}
|
||||||
date := string(input)
|
date := string(input)
|
||||||
_, err := strconv.Atoi(date)
|
_, err := strconv.Atoi(date)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// If conversion fails, input is not numeric
|
// If conversion fails, input is not numeric
|
||||||
res.FlagSet = append(res.FlagSet, models.USERFLAG_INCORRECTDATEFORMAT)
|
res.FlagSet = append(res.FlagSet, models.USERFLAG_INCORRECTDATEFORMAT)
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(date) == 4 {
|
if len(date) == 4 {
|
||||||
res.FlagReset = append(res.FlagReset, models.USERFLAG_INCORRECTDATEFORMAT)
|
res.FlagReset = append(res.FlagReset, models.USERFLAG_INCORRECTDATEFORMAT)
|
||||||
@ -500,78 +498,45 @@ func (h *Handlers) ResetTransactionAmount(ctx context.Context, sym string, input
|
|||||||
func (h *Handlers) MaxAmount(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
func (h *Handlers) MaxAmount(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||||
res := resource.Result{}
|
res := resource.Result{}
|
||||||
|
|
||||||
accountData, err := h.accountFileHandler.ReadAccountData()
|
// mimic a max amount
|
||||||
if err != nil {
|
res.Content = "10.00"
|
||||||
return res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
balance, err := server.CheckBalance(accountData["PublicKey"])
|
|
||||||
if err != nil {
|
|
||||||
return res, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
res.Content = balance
|
|
||||||
|
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Handlers) ValidateAmount(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
func (h *Handlers) ValidateAmount(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||||
res := resource.Result{}
|
res := resource.Result{}
|
||||||
amountStr := string(input)
|
amount := string(input)
|
||||||
|
|
||||||
accountData, err := h.accountFileHandler.ReadAccountData()
|
accountData, err := h.accountFileHandler.ReadAccountData()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
balanceStr, err := server.CheckBalance(accountData["PublicKey"])
|
if amount != "0" {
|
||||||
if err != nil {
|
// mimic invalid amount
|
||||||
return res, err
|
if amount == "00" {
|
||||||
}
|
res.FlagSet = append(res.FlagSet, models.USERFLAG_INVALID_AMOUNT)
|
||||||
res.Content = balanceStr
|
res.Content = amount
|
||||||
|
|
||||||
// Parse the balance
|
return res, nil
|
||||||
balanceParts := strings.Split(balanceStr, " ")
|
}
|
||||||
if len(balanceParts) != 2 {
|
|
||||||
return res, fmt.Errorf("unexpected balance format: %s", balanceStr)
|
res.Content = amount
|
||||||
}
|
|
||||||
balanceValue, err := strconv.ParseFloat(balanceParts[0], 64)
|
accountData["Amount"] = amount
|
||||||
if err != nil {
|
|
||||||
return res, fmt.Errorf("failed to parse balance: %v", err)
|
err = h.accountFileHandler.WriteAccountData(accountData)
|
||||||
}
|
if err != nil {
|
||||||
|
return res, err
|
||||||
|
}
|
||||||
|
|
||||||
// Extract numeric part from input
|
|
||||||
re := regexp.MustCompile(`^(\d+(\.\d+)?)\s*(?:CELO)?$`)
|
|
||||||
matches := re.FindStringSubmatch(strings.TrimSpace(amountStr))
|
|
||||||
if len(matches) < 2 {
|
|
||||||
res.FlagSet = append(res.FlagSet, models.USERFLAG_INVALID_AMOUNT)
|
|
||||||
res.Content = amountStr
|
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
inputAmount, err := strconv.ParseFloat(matches[1], 64)
|
|
||||||
if err != nil {
|
|
||||||
res.FlagSet = append(res.FlagSet, models.USERFLAG_INVALID_AMOUNT)
|
|
||||||
res.Content = amountStr
|
|
||||||
return res, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if inputAmount > balanceValue {
|
|
||||||
res.FlagSet = append(res.FlagSet, models.USERFLAG_INVALID_AMOUNT)
|
|
||||||
res.Content = amountStr
|
|
||||||
return res, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
res.Content = fmt.Sprintf("%.3f", inputAmount) // Format to 3 decimal places
|
|
||||||
accountData["Amount"] = res.Content
|
|
||||||
|
|
||||||
err = h.accountFileHandler.WriteAccountData(accountData)
|
|
||||||
if err != nil {
|
|
||||||
return res, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Handlers) GetRecipient(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
func (h *Handlers) GetRecipient(ctx context.Context, sym string, input []byte) (resource.Result, error) {
|
||||||
res := resource.Result{}
|
res := resource.Result{}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user