lnbits-legend/lnbits/lnurl.py
dni ⚡ a8082f798f
[CHORE] update dependencies, unsafe pip packages, fastapi (#1609)
* 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>
2023-09-25 10:54:02 +01:00

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()