Skip to content

Commit

Permalink
more go-like error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
JssDWt committed Jan 10, 2025
1 parent 0baf4ee commit 42f734b
Show file tree
Hide file tree
Showing 19 changed files with 338 additions and 210 deletions.
9 changes: 6 additions & 3 deletions snippets/go/buy_btc.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,16 @@ import (
"github.com/breez/breez-sdk-go/breez_sdk"
)

func BuyBitcoin() {
func BuyBitcoin() error {
// ANCHOR: buy-btc
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
return nil
}
18 changes: 12 additions & 6 deletions snippets/go/closed_channel.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,28 @@ import (
"github.com/breez/breez-sdk-go/breez_sdk"
)

func PrepareRedeemOnchainFunds(feeRate uint32) {
func PrepareRedeemOnchainFunds(feeRate uint32) error {
// ANCHOR: prepare-redeem-onchain-funds
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
return nil
}

func RedeemOnchainFunds(satPerVbyte uint32, toAddress string) {
func RedeemOnchainFunds(satPerVbyte uint32, toAddress string) error {
// 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
return nil
}
81 changes: 46 additions & 35 deletions snippets/go/communicating_fees.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,37 @@ import (
"github.com/breez/breez-sdk-go/breez_sdk"
)

func getFeeInfoBeforeInvoiceCreated() {
func getFeeInfoBeforeInvoiceCreated() error {
// ANCHOR: get-fee-info-before-receiving-payment
if nodeInfo, err := sdk.NodeInfo(); err == nil {
var inboundLiquiditySat = nodeInfo.MaxReceivableSinglePaymentAmountMsat / 1_000
nodeInfo, err := sdk.NodeInfo()
if err != nil {
return err
}
var inboundLiquiditySat = nodeInfo.MaxReceivableSinglePaymentAmountMsat / 1_000

if openingFeeResponse, err := sdk.OpenChannelFee(breez_sdk.OpenChannelFeeRequest{}); err == nil {
var openingFees = openingFeeResponse.FeeParams
var feePercentage = (openingFees.Proportional * 100) / 1_000_000.0
var minFeeSat = openingFees.MinMsat / 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)
}
}
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
return nil
}

func GetFeeInfoAfterInvoiceCreated(receivePaymentResponse breez_sdk.ReceivePaymentResponse) {
func GetFeeInfoAfterInvoiceCreated(receivePaymentResponse breez_sdk.ReceivePaymentResponse) error {
// ANCHOR: get-fee-info-after-invoice-created
var openingFeeSat int
openingFeeMsat := receivePaymentResponse.OpeningFeeMsat
Expand All @@ -40,27 +45,33 @@ func GetFeeInfoAfterInvoiceCreated(receivePaymentResponse breez_sdk.ReceivePayme
}
log.Printf("A setup fee of %v sats is applied to this invoice.", openingFeeSat)
// ANCHOR_END: get-fee-info-after-invoice-created
return nil
}

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

if nodeInfo, err := sdk.NodeInfo(); err == nil {
var inboundLiquiditySat = nodeInfo.MaxReceivableSinglePaymentAmountMsat / 1_000
nodeInfo, err := sdk.NodeInfo()
if err != nil {
return err
}
var inboundLiquiditySat = nodeInfo.MaxReceivableSinglePaymentAmountMsat / 1_000

var swapOpeningFees = swapInfo.ChannelOpeningFees
var feePercentage = (swapOpeningFees.Proportional * 100) / 1_000_000.0
var minFeeSat = swapOpeningFees.MinMsat / 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)
}
}
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
return nil
}
32 changes: 22 additions & 10 deletions snippets/go/connecting_lsp.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,44 @@ import (
"log"
)

func GetLspInfo() {
func GetLspInfo() error {
// 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
return nil
}

func ListLsps() {
func ListLsps() error {
// 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
return nil
}

func ConnectLsp() {
func ConnectLsp() error {
// 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
return nil
}
18 changes: 12 additions & 6 deletions snippets/go/fiat_currencies.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,24 @@ import (
"log"
)

func ListFiatCurrencies() {
func ListFiatCurrencies() error {
// 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
return nil
}

func FetchFiatRates() {
func FetchFiatRates() error {
// 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
return nil
}
16 changes: 10 additions & 6 deletions snippets/go/getting_started.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,15 +61,19 @@ func GettingStartedRestoreOnly(config breez_sdk.Config, seed []uint8) *breez_sdk
return sdk
}

func FetchBalance() {
func FetchBalance() error {
// ANCHOR: fetch-balance
if nodeInfo, err := sdk.NodeInfo(); err == nil {
lnBalance := nodeInfo.ChannelsBalanceMsat
onchainBalance := nodeInfo.OnchainBalanceMsat

log.Printf("%#v %#v", lnBalance, onchainBalance)
nodeInfo, err := sdk.NodeInfo()
if err != nil {
return err
}

lnBalance := nodeInfo.ChannelsBalanceMsat
onchainBalance := nodeInfo.OnchainBalanceMsat

log.Printf("%#v %#v", lnBalance, onchainBalance)
// ANCHOR_END: fetch-balance
return nil
}

// ANCHOR: logging
Expand Down
18 changes: 12 additions & 6 deletions snippets/go/list_payments.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,18 @@ import (
"github.com/breez/breez-sdk-go/breez_sdk"
)

func ListPayments() {
func ListPayments() error {
// ANCHOR: list-payments
if payments, err := sdk.ListPayments(breez_sdk.ListPaymentsRequest{}); err == nil {
log.Printf("%#v", payments)
payments, err := sdk.ListPayments(breez_sdk.ListPaymentsRequest{})
if err != nil {
return err
}
log.Printf("%#v", payments)
// ANCHOR_END: list-payments
return nil
}

func ListPaymentsFiltered() {
func ListPaymentsFiltered() error {
// ANCHOR: list-payments-filtered
filters := []breez_sdk.PaymentTypeFilter{breez_sdk.PaymentTypeFilterSent}
fromTimestamp := int64(1696880000)
Expand All @@ -24,8 +27,11 @@ func ListPaymentsFiltered() {
FromTimestamp: &fromTimestamp,
IncludeFailures: &includeFailures,
}
if payments, err := sdk.ListPayments(listPaymentsRequest); err == nil {
log.Printf("%#v", payments)
payments, err := sdk.ListPayments(listPaymentsRequest)
if err != nil {
return err
}
log.Printf("%#v", payments)
// ANCHOR_END: list-payments-filtered
return nil
}
31 changes: 19 additions & 12 deletions snippets/go/lnurl_auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,30 @@ import (
"github.com/breez/breez-sdk-go/breez_sdk"
)

func LnurlAuth() {
func LnurlAuth() error {
// ANCHOR: lnurl-auth
// keyauth://domain.com/auth?key=val
lnurlAuthUrl := "lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttvdankjm3lw3skw0tvdankjm3xdvcn6vtp8q6n2dfsx5mrjwtrxdjnqvtzv56rzcnyv3jrxv3sxqmkyenrvv6kve3exv6nqdtyv43nqcmzvdsnvdrzx33rsenxx5unqc3cxgeqgntfgu"

if input, err := breez_sdk.ParseInput(lnurlAuthUrl); err != nil {
switch inputType := input.(type) {
case breez_sdk.InputTypeLnUrlAuth:
if result, err := sdk.LnurlAuth(inputType.Data); err != nil {
switch result.(type) {
case breez_sdk.LnUrlCallbackStatusOk:
log.Printf("Successfully authenticated")
default:
log.Printf("Failed to authenticate")
}
}
input, err := breez_sdk.ParseInput(lnurlAuthUrl)
if err != nil {
return err
}

switch inputType := input.(type) {
case breez_sdk.InputTypeLnUrlAuth:
result, err := sdk.LnurlAuth(inputType.Data)
if err != nil {
return err
}

switch result.(type) {
case breez_sdk.LnUrlCallbackStatusOk:
log.Printf("Successfully authenticated")
default:
log.Printf("Failed to authenticate")
}
}
// ANCHOR_END: lnurl-auth
return nil
}
Loading

0 comments on commit 42f734b

Please sign in to comment.