robosats/api/lightning.py

60 lines
1.7 KiB
Python
Raw Normal View History

from datetime import timedelta
2022-01-06 12:32:17 +00:00
from django.utils import timezone
import random
import string
#######
# Placeholder functions
# Should work with LND (maybe c-lightning in the future)
class LNNode():
'''
Place holder functions to interact with Lightning Node
'''
2022-01-06 20:33:40 +00:00
def gen_hodl_invoice(num_satoshis, description, expiry):
'''Generates hodl invoice to publish an order'''
# TODO
invoice = ''.join(random.choices(string.ascii_uppercase + string.digits, k=80)) #FIX
payment_hash = ''.join(random.choices(string.ascii_uppercase + string.digits, k=40)) #FIX
expires_at = timezone.now() + timedelta(hours=8) ##FIX
return invoice, payment_hash, expires_at
2022-01-07 19:22:07 +00:00
def validate_hodl_invoice_locked(payment_hash):
'''Generates hodl invoice to publish an order'''
return True
2022-01-07 19:22:07 +00:00
def validate_ln_invoice(invoice, num_satoshis): # num_satoshis
2022-01-06 12:32:17 +00:00
'''Checks if the submited LN invoice is as expected'''
valid = True
2022-01-07 19:22:07 +00:00
context = None
2022-01-06 12:32:17 +00:00
description = 'Placeholder desc' # TODO decrypt from LN invoice
2022-01-07 19:22:07 +00:00
payment_hash = '567&*GIHU126' # TODO decrypt
2022-01-06 12:32:17 +00:00
expires_at = timezone.now() # TODO decrypt
2022-01-07 19:22:07 +00:00
return valid, context, description, payment_hash, expires_at
2022-01-07 19:22:07 +00:00
def pay_invoice(invoice):
'''Sends sats to buyer, or cancelinvoices'''
return True
2022-01-07 19:22:07 +00:00
def settle_hodl_htlcs(payment_hash):
'''Charges a LN hodl invoice'''
return True
2022-01-07 19:22:07 +00:00
def return_hodl_htlcs(payment_hash):
'''Returns sats'''
return True
2022-01-07 19:22:07 +00:00
def double_check_htlc_is_settled(payment_hash):
''' Just as it sounds. Better safe than sorry!'''
return True