Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify error handling in golang snippets #158

Closed
wants to merge 40 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
422a248
Add "receive payment" snippet for fees
ok300 Jan 12, 2024
2a89a91
Fix dart issues
ok300 Jan 30, 2024
b08f7dc
Add snippet for receive_onchain fee info
ok300 Feb 7, 2024
ec4f4fb
Simplify get_fee_info_before_receiving_payment snippet
ok300 Feb 26, 2024
e3f7eee
Fix kotlin division
ok300 Apr 13, 2024
1add2ae
Fix kotlin CI error
ok300 Apr 17, 2024
951c84b
Fix RN CI error
ok300 Apr 17, 2024
d8d496e
Fix dart CI errors
ok300 Apr 17, 2024
f4f90dc
Fix golang CI error
ok300 Apr 17, 2024
e95fe7b
Fix RN CI errors
ok300 Apr 17, 2024
2ac462d
Fix kotlin CI error
ok300 Apr 17, 2024
887152f
Fix golang CI error
ok300 Apr 17, 2024
d4c2812
Fix kotlin CI error
ok300 Apr 17, 2024
c6c6760
Fix kotlin CI error
ok300 Apr 17, 2024
9f13aaa
Fix RN CI error
ok300 Apr 18, 2024
965f5b9
Fix kotlin CI error
ok300 Apr 18, 2024
c9c2091
Fix kotlin CI error
ok300 Apr 18, 2024
cb5d26a
Fix indentation for rust snippet
ok300 Apr 19, 2024
d8b496e
Add remaining kotlin snippets
ok300 Apr 19, 2024
ad4651f
Add remaining RN snippets
ok300 Apr 19, 2024
4aed9ed
Add remaining dart snippets
ok300 Apr 19, 2024
43bb2d8
Fix swift snippet CI errors
ok300 Apr 25, 2024
2e85b33
Add remaining swift snippets
ok300 Apr 25, 2024
548bb54
Add missing RN import
ok300 Apr 25, 2024
8c07d6d
Add remaining python snippets
ok300 Apr 25, 2024
9b64837
Add empty default arg in RN openChannelFee call
ok300 Apr 25, 2024
2cd8442
Add remaining golang snippets
ok300 Apr 25, 2024
b06a747
Add remaining csharp snippets
ok300 Apr 25, 2024
f0cd584
Fix golang formatting (tab indentation)
ok300 Apr 25, 2024
0240330
Fix golang formatting of multi-line logs
ok300 Apr 25, 2024
36717c5
Fix golang formatting, add EOF newline
ok300 Apr 25, 2024
f56bd29
Update snippets/go/communicating_fees.go
ok300 Apr 29, 2024
41b49df
Update snippets/go/communicating_fees.go
ok300 Apr 29, 2024
afe570b
Update src/guide/communicating_fees.md
ok300 Apr 29, 2024
c831d4a
Update snippets/go/communicating_fees.go
ok300 Apr 29, 2024
2e5bf79
Update src/guide/communicating_fees.md
ok300 Apr 29, 2024
e084005
Fix error handling in golang snippets
ok300 Apr 29, 2024
a392b75
Fix function name case in Kotlin snippets
ok300 Apr 29, 2024
f1a2683
Update src/guide/communicating_fees.md
ok300 Apr 29, 2024
b4486af
Simplify error handling in golang snippets
ok300 Apr 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ jobs:
name: setup
runs-on: ubuntu-latest
outputs:
sdk-ref: ${{ inputs.sdk-ref || '0.4.0-rc1' }}
package-version: '0.4.0-rc1'
sdk-ref: ${{ inputs.sdk-ref || '0.4.0-rc5' }}
package-version: '0.4.0-rc5'
steps:
- run: echo "set pre-setup output variables"

Expand Down
83 changes: 83 additions & 0 deletions snippets/csharp/CommunicatingFees.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
using Breez.Sdk;

public class CommunicatingFeesSnippets
{
public void getFeeInfoBeforeInvoiceCreated(BlockingBreezServices sdk)
{
// ANCHOR: get-fee-info-before-receiving-payment
try
{
var nodeInfo = sdk.NodeInfo();

var inboundLiquiditySat = nodeInfo?.inboundLiquidityMsats / 1_000;

var openingFeeResponse = sdk.OpenChannelFee(new OpenChannelFeeRequest(null));
var openingFees = openingFeeResponse?.feeParams;
if (openingFees != null)
{
var feePercentage = (openingFees.proportional * 100) / 1_000_000.0;
var minFeeSat = openingFees.minMsat / 1_000;

if (inboundLiquiditySat == 0)
{
Console.WriteLine(
$"A setup fee of {feePercentage}% with a minimum of {minFeeSat} sats will be applied."
);
}
else
{
Console.WriteLine(
$"A setup fee of {feePercentage}% with a minimum of {minFeeSat} sats will be applied " +
$"for receiving more than {inboundLiquiditySat} sats."
);
}
}
}
catch (Exception)
{
// Handle error
}
// ANCHOR_END: get-fee-info-before-receiving-payment
}

public void GetFeeInfoAfterInvoiceCreated(ReceivePaymentResponse receivePaymentResponse)
{
// ANCHOR: get-fee-info-after-invoice-created
var openingFeeSat = receivePaymentResponse.openingFeeMsat.GetValueOrDefault() / 1000;
Console.WriteLine($"A setup fee of {openingFeeSat} sats is applied to this invoice.");
// ANCHOR_END: get-fee-info-after-invoice-created
}

public void getFeeInfoReceiveOnchain(BlockingBreezServices sdk)
{
// ANCHOR: get-fee-info-receive-onchain
try
{
var swapInfo = sdk.ReceiveOnchain(new ReceiveOnchainRequest());

var minDepositSat = swapInfo?.minAllowedDeposit;
var maxDepositSat = swapInfo?.maxAllowedDeposit;

var nodeInfo = sdk.NodeInfo();
var inboundLiquiditySat = nodeInfo?.inboundLiquidityMsats / 1_000;

var swapOpeningFees = swapInfo?.channelOpeningFees;
if (swapOpeningFees != null)
{
var feePercentage = (swapOpeningFees.proportional * 100) / 1_000_000.0;
var minFeeSat = swapOpeningFees.minMsat / 1_000;

Console.WriteLine(
$"Send more than {minDepositSat} sats and up to {maxDepositSat} sats to this address. " +
$"A setup fee of {feePercentage}% with a minimum of {minFeeSat} sats will be applied " +
$"for sending more than {inboundLiquiditySat} sats. This address can only be used once."
);
}
}
catch (Exception)
{
// Handle error
}
// ANCHOR_END: get-fee-info-receive-onchain
}
}
52 changes: 52 additions & 0 deletions snippets/dart_snippets/lib/communicating_fees.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import 'package:breez_sdk/breez_sdk.dart';
import 'package:breez_sdk/bridge_generated.dart';

Future<void> getFeeInfoBeforeInvoiceCreated() async {
// ANCHOR: get-fee-info-before-receiving-payment
NodeState? nodeInfo = await BreezSDK().nodeInfo();
if (nodeInfo != null) {
int inboundLiquiditySat = nodeInfo.inboundLiquidityMsats ~/ 1000;

OpenChannelFeeResponse openingFeeResponse = await BreezSDK().openChannelFee(req: OpenChannelFeeRequest());

OpeningFeeParams openingFees = openingFeeResponse.feeParams;
double feePercentage = (openingFees.proportional * 100) / 1000000;
int minFeeSat = openingFees.minMsat ~/ 1000;

if (inboundLiquiditySat == 0) {
print("A setup fee of $feePercentage% with a minimum of $minFeeSat sats will be applied.");
} else {
print("A setup fee of $feePercentage% with a minimum of $minFeeSat sats will be applied for receiving more than $inboundLiquiditySat sats.");
}
}
// ANCHOR_END: get-fee-info-before-receiving-payment
}

Future<void> getFeeInfoAfterInvoiceCreated({required ReceivePaymentResponse receivePaymentResponse}) async {
// ANCHOR: get-fee-info-after-invoice-created
int openingFeeSat = (receivePaymentResponse.openingFeeMsat ?? 0) / 1000 as int;
print("A setup fee of $openingFeeSat sats is applied to this invoice.");
// ANCHOR_END: get-fee-info-after-invoice-created
}

Future<void> getFeeInfoReceiveOnchain() async {
// ANCHOR: get-fee-info-receive-onchain
SwapInfo swapInfo = await BreezSDK().receiveOnchain(req: ReceiveOnchainRequest());

int minDepositSat = swapInfo.minAllowedDeposit;
int maxDepositSat = swapInfo.maxAllowedDeposit;

NodeState? nodeInfo = await BreezSDK().nodeInfo();
if (nodeInfo != null) {
int inboundLiquiditySat = nodeInfo.inboundLiquidityMsats ~/ 1000;

OpeningFeeParams? swapOpeningFees = swapInfo.channelOpeningFees;
if (swapOpeningFees != null) {
double feePercentage = (swapOpeningFees.proportional * 100) / 1000000;
int minFeeSat = swapOpeningFees.minMsat ~/ 1000;

print("Send more than $minDepositSat sats and up to $maxDepositSat sats to this address. A setup fee of $feePercentage% with a minimum of $minFeeSat sats will be applied for sending more than $inboundLiquiditySat sats. This address can only be used once.");
}
}
// ANCHOR_END: get-fee-info-receive-onchain
}
1 change: 1 addition & 0 deletions snippets/dart_snippets/lib/receive_payment.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ Future<ReceivePaymentResponse> receivePayment() async {

print(receivePaymentResponse.lnInvoice);
// ANCHOR_END: receive-payment

return receivePaymentResponse;
}
2 changes: 1 addition & 1 deletion snippets/dart_snippets/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ packages:
path: "packages/breez-sdk-flutter"
relative: true
source: path
version: "0.4.0-rc1"
version: "0.4.0-rc5"
build:
dependency: transitive
description:
Expand Down
7 changes: 5 additions & 2 deletions snippets/go/buy_btc.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@ func BuyBitcoin() {
buyBitcoinRequest := breez_sdk.BuyBitcoinRequest{
Provider: breez_sdk.BuyBitcoinProviderMoonpay,
}
if buyBitcoinResponse, err := sdk.BuyBitcoin(buyBitcoinRequest); err == nil {
log.Printf("%#v", buyBitcoinResponse)

buyBitcoinResponse, err := sdk.BuyBitcoin(buyBitcoinRequest)
if err != nil {
return err
}
log.Printf("%#v", buyBitcoinResponse)
// ANCHOR_END: buy-btc
}
14 changes: 10 additions & 4 deletions snippets/go/closed_channel.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,23 @@ func PrepareRedeemOnchainFunds(feeRate uint32) {
satPerVbyte := feeRate
destinationAddress := "bc1.."
req := breez_sdk.PrepareRedeemOnchainFundsRequest{SatPerVbyte: satPerVbyte, ToAddress: destinationAddress}
if prepareRedeemOnchainFundsResponse, err := sdk.PrepareRedeemOnchainFunds(req); err == nil {
log.Printf("PrepareRedeemOnchainFundsRequest is %#v", prepareRedeemOnchainFundsResponse)

prepareRedeemOnchainFundsResponse, err := sdk.PrepareRedeemOnchainFunds(req)
if err != nil {
return err
}
log.Printf("PrepareRedeemOnchainFundsRequest is %#v", prepareRedeemOnchainFundsResponse)
// ANCHOR_END: prepare-redeem-onchain-funds
}

func RedeemOnchainFunds(satPerVbyte uint32, toAddress string) {
// ANCHOR: redeem-onchain-funds
req := breez_sdk.RedeemOnchainFundsRequest{SatPerVbyte: satPerVbyte, ToAddress: toAddress}
if redeemOnchainFundsResponse, err := sdk.RedeemOnchainFunds(req); err == nil {
log.Printf("RedeemOnchainFunds error %#v", redeemOnchainFundsResponse)

redeemOnchainFundsResponse, err := sdk.RedeemOnchainFunds(req)
if err != nil {
return err
}
log.Printf("RedeemOnchainFunds error %#v", redeemOnchainFundsResponse)
// ANCHOR_END: redeem-onchain-funds
}
78 changes: 78 additions & 0 deletions snippets/go/communicating_fees.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package example

import (
"log"

"github.com/breez/breez-sdk-go/breez_sdk"
)

func getFeeInfoBeforeInvoiceCreated() {
// ANCHOR: get-fee-info-before-receiving-payment
nodeInfo, err := sdk.NodeInfo()
if err != null {
return err
}

var inboundLiquiditySat = nodeInfo.InboundLiquidityMsats / 1_000

openingFeeResponse, err := sdk.OpenChannelFee(breez_sdk.OpenChannelFeeRequest{})
if err != nil {
return err
}

var openingFees = openingFeeResponse.FeeParams
var feePercentage = (openingFees.Proportional * 100) / 1_000_000.0
var minFeeSat = openingFees.MinMsat / 1_000

if inboundLiquiditySat == 0 {
log.Printf(
"A setup fee of %v%% with a minimum of %v sats will be applied.",
feePercentage, minFeeSat)
} else {
log.Printf(
"A setup fee of %v%% with a minimum of %v sats will be applied"+
"for receiving more than %v sats.",
feePercentage, minFeeSat, inboundLiquiditySat)
}
// ANCHOR_END: get-fee-info-before-receiving-payment
}

func GetFeeInfoAfterInvoiceCreated(receivePaymentResponse breez_sdk.ReceivePaymentResponse) {
// ANCHOR: get-fee-info-after-invoice-created
var openingFeeSat int
openingFeeMsat := receivePaymentResponse.OpeningFeeMsat
if openingFeeMsat != nil {
openingFeeSat = int(*openingFeeMsat / 1_000)
}
log.Printf("A setup fee of %v sats is applied to this invoice.", openingFeeSat)
// ANCHOR_END: get-fee-info-after-invoice-created
}

func getFeeInfoReceiveOnchain() {
// ANCHOR: get-fee-info-receive-onchain
swapInfo, err := sdk.ReceiveOnchain(breez_sdk.ReceiveOnchainRequest{})
if err != nil {
return err
}

var minDepositSat = swapInfo.MinAllowedDeposit
var maxDepositSat = swapInfo.MaxAllowedDeposit

nodeInfo, err := sdk.NodeInfo()
if err != nil {
return err
}

var inboundLiquiditySat = nodeInfo.InboundLiquidityMsats / 1_000

var swapOpeningFees = swapInfo.ChannelOpeningFees
var feePercentage = (swapOpeningFees.Proportional * 100) / 1_000_000.0
var minFeeSat = swapOpeningFees.MinMsat / 1_000

log.Printf(
"Send more than %v sats and up to %v sats to this address. "+
"A setup fee of %v%% with a minimum of %v sats will be applied "+
"for sending more than %v sats. This address can only be used once.",
minDepositSat, maxDepositSat, feePercentage, minFeeSat, inboundLiquiditySat)
// ANCHOR_END: get-fee-info-receive-onchain
}
23 changes: 16 additions & 7 deletions snippets/go/connecting_lsp.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,39 @@ import (

func GetLspInfo() {
// ANCHOR: get-lsp-info
if lspId, err := sdk.LspId(); lspId != nil && err == nil {
lspId, err := sdk.LspId()
if err != nil {
return err
}
if lspId != nil {
log.Printf("%#v", *lspId)
}

if lspInfo, err := sdk.LspInfo(); err == nil {
log.Printf("%#v", lspInfo)
lspInfo, err := sdk.LspInfo()
if err != nil {
return err
}
log.Printf("%#v", lspInfo)
// ANCHOR_END: get-lsp-info
}

func ListLsps() {
// ANCHOR: list-lsps
if lspList, err := sdk.ListLsps(); err == nil {
log.Printf("%#v", lspList)
lspList, err := sdk.ListLsps()
if err != nil {
return err
}
log.Printf("%#v", lspList)
// ANCHOR_END: list-lsps
}

func ConnectLsp() {
// ANCHOR: connect-lsp
lspId := "your selected lsp id"

if err := sdk.ConnectLsp(lspId); err != nil {
log.Printf("%#v", err)
_, err := sdk.ConnectLsp(lspId)
if err != nil {
return err
}
// ANCHOR_END: connect-lsp
}
12 changes: 8 additions & 4 deletions snippets/go/fiat_currencies.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,20 @@ import (

func ListFiatCurrencies() {
// ANCHOR: list-fiat-currencies
if fiatCurrencies, err := sdk.ListFiatCurrencies(); err == nil {
log.Printf("%#v", fiatCurrencies)
fiatCurrencies, err := sdk.ListFiatCurrencies()
if err != nil {
return err
}
log.Printf("%#v", fiatCurrencies)
// ANCHOR_END: list-fiat-currencies
}

func FetchFiatRates() {
// ANCHOR: fetch-fiat-rates
if fiatRates, err := sdk.FetchFiatRates(); err == nil {
log.Printf("%#v", fiatRates)
fiatRates, err := sdk.FetchFiatRates()
if err != nil {
return err
}
log.Printf("%#v", fiatRates)
// ANCHOR_END: fetch-fiat-rates
}
Loading
Loading