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 } }