python ci

This commit is contained in:
ruben beck
2023-11-03 15:50:30 +01:00
committed by ok300
parent 1f6c87c774
commit d1eb7a099a
29 changed files with 220 additions and 126 deletions

View File

@@ -1,15 +0,0 @@
from breez_sdk import BlockingBreezServices
import logging
import breez_sdk
sdk_services = BlockingBreezServices
try:
# ANCHOR: buy-btc
req = breez_sdk.BuyBitcoinRequest(breez_sdk.BuyBitcoinProvider.MOONPAY)
buy_bitcoin_resp = sdk_services.buy_bitcoin(req)
# ANCHOR_END: buy-btc
except Exception as error:
logging.error(error)
raise

View File

@@ -0,0 +1,92 @@
#!/usr/bin/env python
import breez_sdk
from src.getting_started import getting_started,getting_started_node_info
from src.connecting_lsp import get_lsp_info, connect_lsp
from src.buy_btc import buy
from src.send_onchain import get_current_fees, list_current_fees, check_reverse_swap_status, start_reverse_swap
from src.static_channel_backup import retrieve_backup_files
from src.send_spontaneous_payment import send_spontaneous_payment
from src.receive_payment import receive_payment
from src.receive_onchain import generate_receive_onchain_address, get_in_progress_swap, list_refundables, execute_refund, get_channel_opening_fees
from src.fiat_currencies import list_supported_fiat_currencies, get_current_rates
from src.lnurl_auth import auth
from src.lnurl_pay import pay
from src.lnurl_withdraw import withdraw
import tempfile
class SDKListener(breez_sdk.EventListener):
def on_event(self, event):
print(event)
def main():
temp_dir = tempfile.TemporaryDirectory()
api_key = "API_KEY"
mnemonic = "MNEMONIC"
# getting started
sdk_services = getting_started(api_key, mnemonic, temp_dir.name)
node_info = getting_started_node_info(sdk_services)
print(type(node_info))
# lsp info
get_lsp_info(sdk_services)
# connect lsp
connect_lsp(sdk_services,sdk_services.lsp_id())
# buy btc
buy(sdk_services)
# send onchain
current_fees = get_current_fees(sdk_services)
list_current_fees(current_fees)
check_reverse_swap_status(sdk_services)
start_reverse_swap(sdk_services,current_fees, 7)
# static backup
temp_dir2 = tempfile.TemporaryDirectory()
retrieve_backup_files(sdk_services,temp_dir2.name)
# receive payment
receive_payment(sdk_services)
# receive onchain
generate_receive_onchain_address(sdk_services)
get_in_progress_swap(sdk_services)
refundables = list_refundables(sdk_services)
execute_refund(sdk_services,refundables)
get_channel_opening_fees(sdk_services,3000000)
#send spontaneous payment
send_spontaneous_payment(sdk_services)
# fiat currencies
list_supported_fiat_currencies(sdk_services)
get_current_rates(sdk_services)
# lnurl auth
auth(sdk_services)
# lnurl pay
pay(sdk_services)
# lnurl withdraw
withdraw(sdk_services)
# use temp_dir, and remove when done:
temp_dir.cleanup()
temp_dir2.cleanup()
main()

View File

@@ -0,0 +1,15 @@
import logging
import breez_sdk
def buy(sdk_services):
try:
# ANCHOR: buy-btc
req = breez_sdk.BuyBitcoinRequest(breez_sdk.BuyBitcoinProvider.MOONPAY)
buy_bitcoin_resp = sdk_services.buy_bitcoin(req=req)
# ANCHOR_END: buy-btc
except Exception as error:
logging.error(error)
raise

View File

@@ -1,24 +1,20 @@
import logging
from breez_sdk import BlockingBreezServices
sdk_services = BlockingBreezServices
def get_lsp_info():
def get_lsp_info(sdk_services):
try:
# ANCHOR: get-lsp-info
lsp_id = sdk_services.lsp_id()
lsp_info = sdk_services.lsp_info()
# ANCHOR_END: get-lsp-info
return lsp_info
except Exception as error:
logging.log(error)
except Exception as error:
print(error)
raise
def connect_lsp(lsp_id):
def connect_lsp(sdk_services,lsp_id):
try:
# ANCHOR: connect-lsp
sdk_services.connect_lsp(lsp_id)
# ANCHOR_END: connect-lsp
except Exception as error:
logging.log(error)
print(error)
raise

View File

@@ -1,25 +1,20 @@
import breez_sdk
from breez_sdk import BlockingBreezServices
import logging
sdk_services = BlockingBreezServices
def list_supported_fiat_currencies():
def list_supported_fiat_currencies(sdk_services):
try:
# ANCHOR: list-fiat-currencies
supported_fiat_currencies = sdk_services.list_fiat_currencies()
# ANCHOR_END: list-fiat-currencies
return supported_fiat_currencies
except Exception as error:
logging.error(error)
print(error)
raise
def get_current_rates():
def get_current_rates(sdk_services):
try:
# ANCHOR: fetch-fiat-rates
fiat_rates = sdk_services.fetch_fiat_rates
# ANCHOR_END: fetch-fiat-rates
return fiat_rates
except Exception as error:
logging.error(error)
print(error)
raise

View File

@@ -2,24 +2,24 @@ import breez_sdk
import logging
sdk_services = breez_sdk.BlockingBreezServices
# ANCHOR: init-sdk
class SDKListener(breez_sdk.EventListener):
def on_event(self, event):
logging.info(event)
def getting_started():
def getting_started(API_KEY,mnemonic,temp_dir):
seed = breez_sdk.mnemonic_to_seed("<mnemonic words>")
seed = breez_sdk.mnemonic_to_seed(mnemonic)
invite_code = "<invite code>"
api_key = "<api key>"
api_key = API_KEY
config = breez_sdk.default_config(
breez_sdk.EnvironmentType.PRODUCTION,
api_key,
breez_sdk.NodeConfig.GREENLIGHT(breez_sdk.GreenlightNodeConfig(None, invite_code)))
# Customize the config object according to your needs
config.working_dir = "path to an existing directory"
config.working_dir = temp_dir
try:
# Connect to the Breez SDK make it ready for use
@@ -31,14 +31,15 @@ def getting_started():
raise
# ANCHOR_END: init-sdk
def getting_started_node_info():
def getting_started_node_info(sdk_services):
try:
# ANCHOR: fetch-balance
node_info = node_info()
node_info = sdk_services.node_info()
ln_balance = node_info.channels_balance_msat
onchain_balance = node_info.onchain_balance_msat
# ANCHOR_END: fetch-balance
return node_info
except Exception as error:
logging.error(error)
raise

View File

@@ -1,9 +1,7 @@
import breez_sdk
import logging
sdk_services = breez_sdk.BlockingBreezServices
def auth():
def auth(sdk_services):
# ANCHOR: lnurl-auth
# Endpoint can also be of the form:
# keyauth://domain.com/auth?key=val
@@ -15,10 +13,10 @@ def auth():
req = breez_sdk
result = sdk_services.lnurl_auth(parsed_input.data)
if result.is_ok():
logging.info("Successfully authenticated")
print("Successfully authenticated")
else:
logging.error("Failed to authenticate")
print("Failed to authenticate")
except Exception as error:
logging.error(error)
print(error)
raise
# ANCHOR_END: lnurl-auth

View File

@@ -1,9 +1,7 @@
import breez_sdk
import logging
sdk_services = breez_sdk.BlockingBreezServices
def pay():
def pay(sdk_services):
# ANCHOR: lnurl-pay
# Endpoint can also be of the form:
# lnurlp://domain.com/lnurl-pay?key=val
@@ -18,5 +16,5 @@ def pay():
# ANCHOR_END: lnurl-pay
return result
except Exception as error:
logging.error(error)
print(error)
raise

View File

@@ -1,9 +1,7 @@
import breez_sdk
import logging
sdk_services = breez_sdk.BlockingBreezServices
def withdraw():
def withdraw(sdk_services):
# ANCHOR: lnurl-withdraw
# Endpoint can also be of the form:
# lnurlw://domain.com/lnurl-withdraw?key=val
@@ -17,5 +15,5 @@ def withdraw():
# ANCHOR_END: lnurl-withdraw
return result
except Exception as error:
logging.error(error)
print(error)
raise

View File

@@ -1,9 +1,6 @@
import breez_sdk
import logging
sdk_services = breez_sdk.BlockingBreezServices
def generate_receive_onchain_address():
def generate_receive_onchain_address(sdk_services):
try:
# ANCHOR: generate-receive-onchain-address
swap_info = sdk_services.receive_onchain(breez_sdk.ReceiveOnchainRequest())
@@ -12,29 +9,30 @@ def generate_receive_onchain_address():
address = swap_info.bitcoin_address
# ANCHOR_END: generate-receive-onchain-address
except Exception as error:
logging.error(error)
print(error)
raise
def get_in_progress_swap():
try:
# ANCHOR: in-progress-swap
swap_info = sdk_services.in_progress_swap()
# ANCHOR_END: in-progress-swap
except Exception as error:
logging.error(error)
raise
def get_in_progress_swap(sdk_services):
try:
# ANCHOR: in-progress-swap
swap_info = sdk_services.in_progress_swap()
# ANCHOR_END: in-progress-swap
except Exception as error:
print(error)
raise
def list_refundables():
def list_refundables(sdk_services):
try:
# ANCHOR: list-refundables
refundables = sdk_services.list_refundables()
# ANCHOR_END: list-refundables
return refundables
except Exception as error:
logging.error(error)
print(error)
raise
def execute_refund(refundable):
def execute_refund(sdk_services,refundable):
if refundable is breez_sdk.SwapInfo:
# ANCHOR: execute-refund
destination_address = "..."
@@ -47,10 +45,10 @@ def execute_refund(refundable):
sat_per_vbyte=sat_per_vbyte)
# ANCHOR_END: execute-refund
except Exception as error:
logging.error(error)
print(error)
raise
def get_channel_opening_fees(amount_msat,):
def get_channel_opening_fees(sdk_services ,amount_msat=None):
try:
# ANCHOR: get-channel-opening-fees
req = breez_sdk.OpenChannelFeeRequest(amount_msat)
@@ -58,5 +56,5 @@ def get_channel_opening_fees(amount_msat,):
# ANCHOR_END: get-channel-opening-fees
return channel_fees
except Exception as error:
logging.error(error)
print(error)
raise

View File

@@ -1,17 +1,15 @@
import breez_sdk
import logging
sdk_services = breez_sdk.BlockingBreezServices
def receive_payment():
def receive_payment(sdk_services):
try:
# ANCHOR: receive-payment
req = breez_sdk.ReceivePaymentRequest(
amount_msat=300000,
description="Invoice for 300 000 sats")
amount_msat=3000000,
description="Invoice for 3 000 000 sats")
result = sdk_services.receive_payment(req)
# ANCHOR_END: receive-payment
return result
except Exception as error:
logging.error(error)
print(error)
raise

View File

@@ -1,18 +1,15 @@
import breez_sdk
import logging
sdk_services = breez_sdk.BlockingBreezServices
def get_current_fees():
def get_current_fees(sdk_services):
try:
# ANCHOR: estimate-current-reverse-swap-total-fees
req = breez_sdk.ReverseSwapFeesRequest(send_amount_sat=50000)
current_fees = sdk_services.fetch_reverse_swap_fees(req)
logging.info("Total estimated fees for reverseswap: ", current_fees.total_estimated_fees)
print("Total estimated fees for reverseswap: ", current_fees)
# ANCHOR_END: estimate-current-reverse-swap-total-fees
return current_fees
except Exception as error:
logging.error(error)
print(error)
raise
def list_current_fees(current_fees):
@@ -21,27 +18,27 @@ def list_current_fees(current_fees):
print("Maximum amount, in sats: ", current_fees.max)
# ANCHOR_END: get-current-reverse-swap-min-max
def start_reverse_swap(current_fees,fee_rate):
def start_reverse_swap(sdk_services, current_fees,fee_rate):
# ANCHOR: start-reverse-swap
destination_address = "bc1.."
amount_sat = 50000
sat_per_vbyte = fee_rate
try:
req = breez_sdk.SendOnchainRequest(amount_sat, destination_address, current_fees.fee_hash, sat_per_vbyte)
req = breez_sdk.SendOnchainRequest(amount_sat, destination_address, current_fees.fees_hash, sat_per_vbyte)
sdk_services.send_onchain(req)
# ANCHOR_END: start-reverse-swap
except Exception as error:
logging.error(error)
print(error)
raise
def check_reverse_swap_status():
def check_reverse_swap_status(sdk_services):
try:
# ANCHOR: check-reverse-swaps-status
reverse_swaps = sdk_services.in_progress_reverse_swaps()
for rs in reverse_swaps:
logging.info("Reverse swap ",rs.id , " in progress, status is ", rs.status)
print("Reverse swap ",rs.id , " in progress, status is ", rs.status)
# ANCHOR_END: check-reverse-swaps-status
except Exception as error:
logging.error(error)
print(error)
raise

View File

@@ -1,17 +1,16 @@
import breez_sdk
import logging
sdk_services = breez_sdk.BlockingBreezServices
def send_spontaneous_payment():
def send_spontaneous_payment(sdk_services):
# ANCHOR: send-spontaneous-payment
node_id = "..."
amount_msat = 300000
try:
req = breez_sdk.SendSpontaneousPaymentRequest(node_id,amount_msat)
result = sdk_services.send_spontaneous_payment(req)
# ANCHOR: send-spontaneous-payment
return result
# ANCHOR: send-spontaneous-payment
except Exception as error:
logging.error(error)
print(error)
raise

View File

@@ -1,16 +1,12 @@
import breez_sdk
import logging
sdk_services = breez_sdk.BlockingBreezServices
def retrieve_backup_files():
def retrieve_backup_files(sdk_services, working_dir):
try:
# ANCHOR: static-channel-backup
req = breez_sdk.StaticBackupRequest(working_dir="<working directory>")
req = breez_sdk.StaticBackupRequest(working_dir=working_dir)
backup_data = breez_sdk.static_backup(req)
# ANCHOR_END: static-channel-backup
return backup_data
except Exception as error:
logging.error(error)
print(error)
raise