Skip to content

more go-like error handling #183

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

Merged
merged 1 commit into from
Jan 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
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
Loading