41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
import hashlib
|
|
import random
|
|
import secrets
|
|
import string
|
|
|
|
from lnbits.core.crud import create_payment
|
|
from lnbits.settings import get_wallet_class
|
|
|
|
|
|
async def credit_wallet(wallet_id: str, amount: int):
|
|
preimage = secrets.token_hex(32)
|
|
m = hashlib.sha256()
|
|
m.update(f"{preimage}".encode())
|
|
payment_hash = m.hexdigest()
|
|
await create_payment(
|
|
wallet_id=wallet_id,
|
|
payment_request="",
|
|
payment_hash=payment_hash,
|
|
checking_id=payment_hash,
|
|
preimage=preimage,
|
|
memo=f"funding_test_{get_random_string(5)}",
|
|
amount=amount, # msat
|
|
pending=False, # not pending, so it will increase the wallet's balance
|
|
)
|
|
|
|
|
|
def get_random_string(N=10):
|
|
return "".join(
|
|
random.SystemRandom().choice(string.ascii_uppercase + string.digits)
|
|
for _ in range(10)
|
|
)
|
|
|
|
|
|
async def get_random_invoice_data():
|
|
return {"out": False, "amount": 10, "memo": f"test_memo_{get_random_string(10)}"}
|
|
|
|
|
|
WALLET = get_wallet_class()
|
|
is_fake: bool = WALLET.__class__.__name__ == "FakeWallet"
|
|
is_regtest: bool = not is_fake
|