stacker.news/lib/lnurl.js

18 lines
521 B
JavaScript

import { randomBytes } from 'crypto'
import { bech32 } from 'bech32'
export function lnurlAuth (params) {
// generate secret (32 random bytes)
const secret = Buffer.from(randomBytes(32), 'hex')
// create url
const url = new URL(process.env.LNAUTH_URL)
url.searchParams = new URLSearchParams({
...params,
k1: secret
})
// bech32 encode url
const words = bech32.toWords(Buffer.from(url.toString(), 'utf8'))
const encodedUrl = bech32.encode('lnurl', words, 1023)
return { secret, encodedUrl }
}