Merge pull request #387 from LightningTipBot/lnurlp/fiat_price

allow fiat amount in lnurlp server
This commit is contained in:
calle 2022-08-28 22:36:58 +02:00 committed by GitHub
commit ed6ea4d33c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 15 additions and 13 deletions

View file

@ -81,11 +81,13 @@ func (w Lnurl) Handle(writer http.ResponseWriter, request *http.Request) {
api.NotFoundHandler(writer, fmt.Errorf("[handleLnUrl] Form value 'amount' is not set"))
return
}
amount, parseError := strconv.Atoi(stringAmount)
if parseError != nil {
api.NotFoundHandler(writer, fmt.Errorf("[handleLnUrl] Couldn't cast amount to int %v", parseError))
amount, err := telegram.GetAmount(stringAmount)
if err != nil {
api.NotFoundHandler(writer, fmt.Errorf("[handleLnUrl] Couldn't cast amount to int: %v", err))
return
}
amount = amount * 1000 // msat
comment := request.FormValue("comment")
if len(comment) > CommentAllowed {
api.NotFoundHandler(writer, fmt.Errorf("[handleLnUrl] Comment is too long"))
@ -95,7 +97,7 @@ func (w Lnurl) Handle(writer http.ResponseWriter, request *http.Request) {
// payer data
payerdata := request.FormValue("payerdata")
var payerData lnurl.PayerDataValues
err := json.Unmarshal([]byte(payerdata), &payerData)
err = json.Unmarshal([]byte(payerdata), &payerData)
if err != nil {
// api.NotFoundHandler(writer, fmt.Errorf("[handleLnUrl] Couldn't parse payerdata: %v", err))
fmt.Errorf("[handleLnUrl] Couldn't parse payerdata: %v", err)

View file

@ -35,11 +35,11 @@ func decodeAmountFromCommand(input string) (amount int64, err error) {
// log.Errorln(errmsg)
return 0, fmt.Errorf(errmsg)
}
amount, err = getAmount(strings.Split(input, " ")[1])
amount, err = GetAmount(strings.Split(input, " ")[1])
return amount, err
}
func getAmount(input string) (amount int64, err error) {
func GetAmount(input string) (amount int64, err error) {
// convert something like 1.2k into 1200
if strings.HasSuffix(strings.ToLower(input), "k") {
fmount, err := strconv.ParseFloat(strings.TrimSpace(input[:len(input)-1]), 64)
@ -141,7 +141,7 @@ func (bot *TipBot) enterAmountHandler(ctx intercept.Context) (intercept.Context,
return ctx, err
}
amount, err := getAmount(ctx.Message().Text)
amount, err := GetAmount(ctx.Message().Text)
if err != nil {
log.Warnf("[enterAmountHandler] %s", err.Error())
bot.trySendMessage(ctx.Message().Sender, Translate(ctx, "lnurlInvalidAmountMessage"))

View file

@ -62,7 +62,7 @@ func (bot TipBot) createFaucet(ctx context.Context, text string, sender *tb.User
if err != nil {
return nil, errors.New(errors.DecodePerUserAmountError, err)
}
perUserAmount, err := getAmount(peruserStr)
perUserAmount, err := GetAmount(peruserStr)
if err != nil {
return nil, errors.New(errors.InvalidAmountError, err)
}

View file

@ -412,7 +412,7 @@ func (bot TipBot) addGroupHandler(ctx intercept.Context) (intercept.Context, err
amount := int64(0) // default amount is zero
if amount_str, err := getArgumentFromCommand(m.Text, 3); err == nil {
amount, err = getAmount(amount_str)
amount, err = GetAmount(amount_str)
if err != nil {
bot.trySendMessage(m.Sender, Translate(ctx, "lnurlInvalidAmountMessage"))
return ctx, err

View file

@ -250,7 +250,7 @@ func (bot *TipBot) invHandler(ctx intercept.Context) (intercept.Context, error)
var amount int64
if amount_str, err := getArgumentFromCommand(m.Text, 2); err == nil {
amount, err = getAmount(amount_str)
amount, err = GetAmount(amount_str)
if err != nil {
return ctx, err
}
@ -424,7 +424,7 @@ func (bot *TipBot) satdressProxyHandler(ctx intercept.Context) (intercept.Contex
var amount int64
if amount_str, err := getArgumentFromCommand(m.Text, 2); err == nil {
amount, err = getAmount(amount_str)
amount, err = GetAmount(amount_str)
if err != nil {
return ctx, err
}

View file

@ -166,7 +166,7 @@ func (bot *TipBot) enterShopItemPriceHandler(ctx intercept.Context) (intercept.C
if m.Text == "0" {
amount = 0
} else {
amount, err = getAmount(m.Text)
amount, err = GetAmount(m.Text)
if err != nil {
log.Warnf("[enterShopItemPriceHandler] %s", err.Error())
bot.trySendMessage(m.Sender, Translate(ctx, "lnurlInvalidAmountMessage"))

View file

@ -58,7 +58,7 @@ func (bot TipBot) createTipjar(ctx context.Context, text string, sender *tb.User
if err != nil {
return nil, errors.New(errors.DecodePerUserAmountError, err)
}
perUserAmount, err := getAmount(peruserStr)
perUserAmount, err := GetAmount(peruserStr)
if err != nil {
return nil, errors.New(errors.InvalidAmountError, err)
}