well-goknown/lnd/lnd.go

51 lines
1.4 KiB
Go
Raw Normal View History

2023-02-03 04:56:15 +00:00
package lnd
import (
2023-05-04 01:54:20 +00:00
"context"
b64 "encoding/base64"
2023-05-04 02:25:41 +00:00
"encoding/hex"
2023-05-04 01:54:20 +00:00
"errors"
"fmt"
"strconv"
2023-02-05 03:39:01 +00:00
2023-05-04 01:54:20 +00:00
"git.minhas.io/asara/well-goknown/config"
"git.minhas.io/asara/well-goknown/logger"
"github.com/davecgh/go-spew/spew"
2023-05-04 01:54:20 +00:00
"github.com/lightninglabs/lndclient"
"github.com/lightningnetwork/lnd/lnrpc"
)
2023-02-03 04:56:15 +00:00
2023-05-04 01:54:20 +00:00
func Request(rKey string, request []byte) (string, error) {
l := logger.Get()
ctx := context.TODO()
// connect to lnd
// TODO: move to its own function and don't connect on every request
macaroon := config.GetConfig().LndMacaroonHex
addr := config.GetConfig().LndAddr
dec, _ := b64.StdEncoding.DecodeString(config.GetConfig().LndCertB64)
lndCert := string(dec)
lndCli, err := lndclient.NewBasicClient(addr, "", "", "bitcoind", lndclient.MacaroonData(macaroon), lndclient.TLSData(lndCert))
if err != nil {
l.Fatal().Msg("unable to connect to lnd")
}
// add invoice
addrFee, err := strconv.ParseInt(config.GetConfig().NostrAddrFee, 10, 64)
if err != nil {
l.Fatal().Msg("nostr address fee not set properlly")
return "", errors.New("nostr address fee not set properly")
}
info, err := lndCli.AddInvoice(ctx, &lnrpc.Invoice{
Memo: fmt.Sprintf("nostr addr %s", rKey),
2023-05-04 02:25:41 +00:00
Expiry: 1 * 60,
2023-05-04 01:54:20 +00:00
Value: addrFee,
})
if err != nil {
l.Fatal().Msg("unable to create lnd invoice")
}
2023-05-04 02:25:41 +00:00
spew.Dump(hex.EncodeToString(info.RHash))
spew.Dump(info.PaymentRequest)
spew.Dump(request)
2023-02-05 03:24:30 +00:00
return "x", nil
2023-02-03 04:56:15 +00:00
}