mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2024-11-19 18:11:30 +01:00
a8082f798f
* d * middleware needs to be initialised before startup runs on python3.11 update secp256k1 update psycopg * update fastapi to v0.103 * fix webpush * bump dependencies * ruff issue * lock versions * bump versions --------- Co-authored-by: jacksn <jkranawetter05@gmail.com>
21 lines
538 B
Python
21 lines
538 B
Python
from typing import Union
|
|
|
|
from bech32 import bech32_decode, bech32_encode, convertbits
|
|
from fastapi.datastructures import URL
|
|
|
|
|
|
def decode(lnurl: str) -> str:
|
|
hrp, data = bech32_decode(lnurl)
|
|
assert hrp
|
|
assert data
|
|
bech32_data = convertbits(data, 5, 8, False)
|
|
assert bech32_data
|
|
return bytes(bech32_data).decode()
|
|
|
|
|
|
def encode(url: Union[str, URL]) -> str:
|
|
bech32_data = convertbits(str(url).encode(), 8, 5, True)
|
|
assert bech32_data
|
|
lnurl = bech32_encode("lnurl", bech32_data)
|
|
return lnurl.upper()
|