mirror of
https://github.com/aljazceru/breez-sdk-docs.git
synced 2025-12-17 13:54:20 +01:00
Create Dart snippets and reference them
Co-Authored-By: ok300 <106775972+ok300@users.noreply.github.com>
This commit is contained in:
10
snippets/dart_snippets/lib/buy_btc.dart
Normal file
10
snippets/dart_snippets/lib/buy_btc.dart
Normal file
@@ -0,0 +1,10 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<BuyBitcoinResponse> buyBitcoin() async {
|
||||
// ANCHOR: buy-btc
|
||||
BuyBitcoinRequest req = const BuyBitcoinRequest(provider: BuyBitcoinProvider.Moonpay);
|
||||
BuyBitcoinResponse resp = await BreezSDK().buyBitcoin(req: req);
|
||||
// ANCHOR_END: buy-btc
|
||||
return resp;
|
||||
}
|
||||
17
snippets/dart_snippets/lib/connecting_lsp.dart
Normal file
17
snippets/dart_snippets/lib/connecting_lsp.dart
Normal file
@@ -0,0 +1,17 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<void> getLspInfo() async {
|
||||
// ANCHOR: get-lsp-info
|
||||
String? lspId = await BreezSDK().lspId();
|
||||
LspInformation? lspInfo = await BreezSDK().lspInfo();
|
||||
print(lspId);
|
||||
print(lspInfo);
|
||||
// ANCHOR_END: get-lsp-info
|
||||
}
|
||||
|
||||
Future<void> connectLsp(String lspId) async {
|
||||
// ANCHOR: connect-lsp
|
||||
return await BreezSDK().connectLSP(lspId);
|
||||
// ANCHOR_END: connect-lsp
|
||||
}
|
||||
40
snippets/dart_snippets/lib/fiat_currencies.dart
Normal file
40
snippets/dart_snippets/lib/fiat_currencies.dart
Normal file
@@ -0,0 +1,40 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<List<FiatCurrency>> listFiatCurrencies() async {
|
||||
// ANCHOR: list-fiat-currencies
|
||||
List<FiatCurrency> fiatCurrencyList = await BreezSDK().listFiatCurrencies();
|
||||
// ANCHOR_END: list-fiat-currencies
|
||||
return fiatCurrencyList;
|
||||
}
|
||||
|
||||
Future<Map<String, Rate>> fetchFiatRates(String lspId) async {
|
||||
// ANCHOR: fetch-fiat-rates
|
||||
Map<String, Rate> fiatRatesMap = await BreezSDK().fetchFiatRates();
|
||||
// print your desired rate
|
||||
print(fiatRatesMap["USD"]?.value);
|
||||
// ANCHOR_END: fetch-fiat-rates
|
||||
return fiatRatesMap;
|
||||
}
|
||||
|
||||
Future<Map<FiatCurrency, Rate>> fiatCurrenciesAndRate() async {
|
||||
// ANCHOR: get-fiat-currencies-and-rates
|
||||
List<FiatCurrency> fiatCurrencies = await BreezSDK().listFiatCurrencies();
|
||||
Map<String, Rate> fiatRates = await BreezSDK().fetchFiatRates();
|
||||
|
||||
var sorted = fiatCurrencies.toList();
|
||||
sorted.sort((f1, f2) {
|
||||
return f1.id.compareTo(f2.id);
|
||||
});
|
||||
|
||||
Map<FiatCurrency, Rate> result = {};
|
||||
for (var currency in sorted) {
|
||||
var rate = fiatRates[currency.id];
|
||||
if (rate != null) {
|
||||
result[currency] = rate;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
// ANCHOR_END: get-fiat-currencies-and-rates
|
||||
}
|
||||
46
snippets/dart_snippets/lib/getting_started.dart
Normal file
46
snippets/dart_snippets/lib/getting_started.dart
Normal file
@@ -0,0 +1,46 @@
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<void> initializeSDK() async {
|
||||
// ANCHOR: init-sdk
|
||||
|
||||
// Initialize SDK logs listener
|
||||
BreezSDK().initialize();
|
||||
|
||||
// Create the default config
|
||||
Uint8List seed = await BreezSDK().mnemonicToSeed("<mnemonic words>");
|
||||
String inviteCode = "<invite code>";
|
||||
String apiKey = "<api key>";
|
||||
NodeConfig nodeConfig = NodeConfig.greenlight(
|
||||
config: GreenlightNodeConfig(
|
||||
partnerCredentials: null,
|
||||
inviteCode: inviteCode,
|
||||
),
|
||||
);
|
||||
Config config = await BreezSDK().defaultConfig(
|
||||
envType: EnvironmentType.Production,
|
||||
apiKey: apiKey,
|
||||
nodeConfig: nodeConfig,
|
||||
);
|
||||
|
||||
// Customize the config object according to your needs
|
||||
config = config.copyWith(workingDir: "path to an existing directory");
|
||||
|
||||
// Connect to the Breez SDK make it ready for use
|
||||
return await BreezSDK().connect(config: config, seed: seed);
|
||||
// ANCHOR_END: init-sdk
|
||||
}
|
||||
|
||||
Future<void> fetchBalance(String lspId) async {
|
||||
// ANCHOR: fetch-balance
|
||||
NodeState? nodeInfo = await BreezSDK().nodeInfo();
|
||||
if (nodeInfo != null) {
|
||||
int lnBalance = nodeInfo.channelsBalanceMsat;
|
||||
int onchainBalance = nodeInfo.onchainBalanceMsat;
|
||||
print(lnBalance);
|
||||
print(onchainBalance);
|
||||
}
|
||||
// ANCHOR_END: fetch-balance
|
||||
}
|
||||
33
snippets/dart_snippets/lib/list_payments.dart
Normal file
33
snippets/dart_snippets/lib/list_payments.dart
Normal file
@@ -0,0 +1,33 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<List<Payment>> listPayments() async {
|
||||
// ANCHOR: list-payments
|
||||
ListPaymentsRequest req = ListPaymentsRequest(filter: PaymentTypeFilter.All);
|
||||
List<Payment> paymentsList = await BreezSDK().listPayments(req: req);
|
||||
print(paymentsList);
|
||||
// ANCHOR_END: list-payments
|
||||
return paymentsList;
|
||||
}
|
||||
|
||||
Future<List<Payment>> listPaymentsFiltered({
|
||||
DateTime? startDate,
|
||||
DateTime? endDate,
|
||||
bool? includeFailures,
|
||||
int? offset,
|
||||
int? limit,
|
||||
}) async {
|
||||
// ANCHOR: list-payments-filtered
|
||||
ListPaymentsRequest req = ListPaymentsRequest(
|
||||
filter: PaymentTypeFilter.Sent,
|
||||
fromTimestamp: startDate?.millisecondsSinceEpoch,
|
||||
toTimestamp: endDate?.millisecondsSinceEpoch,
|
||||
includeFailures: includeFailures,
|
||||
offset: offset,
|
||||
limit: limit,
|
||||
);
|
||||
List<Payment> paymentsList = await BreezSDK().listPayments(req: req);
|
||||
print(paymentsList);
|
||||
// ANCHOR_END: list-payments-filtered
|
||||
return paymentsList;
|
||||
}
|
||||
21
snippets/dart_snippets/lib/lnurl_auth.dart
Normal file
21
snippets/dart_snippets/lib/lnurl_auth.dart
Normal file
@@ -0,0 +1,21 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<void> lnurlAuth() async {
|
||||
// ANCHOR: lnurl-auth
|
||||
/// Endpoint can also be of the form:
|
||||
/// keyauth://domain.com/auth?key=val
|
||||
String lnurlAuthUrl =
|
||||
"lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttvdankjm3lw3skw0tvdankjm3xdvcn6vtp8q6n2dfsx5mrjwtrxdjnqvtzv56rzcnyv3jrxv3sxqmkyenrvv6kve3exv6nqdtyv43nqcmzvdsnvdrzx33rsenxx5unqc3cxgeqgntfgu";
|
||||
|
||||
InputType inputType = await BreezSDK().parseInput(input: lnurlAuthUrl);
|
||||
if (inputType is InputType_LnUrlAuth) {
|
||||
LnUrlCallbackStatus result = await BreezSDK().lnurlAuth(reqData: inputType.data);
|
||||
if (result is LnUrlCallbackStatus_Ok) {
|
||||
print("Successfully authenticated");
|
||||
} else {
|
||||
print("Failed to authenticate");
|
||||
}
|
||||
}
|
||||
// ANCHOR_END: lnurl-auth
|
||||
}
|
||||
23
snippets/dart_snippets/lib/lnurl_pay.dart
Normal file
23
snippets/dart_snippets/lib/lnurl_pay.dart
Normal file
@@ -0,0 +1,23 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<void> lnurlPay() async {
|
||||
// ANCHOR: lnurl-pay
|
||||
/// Endpoint can also be of the form:
|
||||
/// lnurlp://domain.com/lnurl-pay?key=val
|
||||
/// lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttsv9un7um9wdekjmmw84jxywf5x43rvv35xgmr2enrxanr2cfcvsmnwe3jxcukvde48qukgdec89snwde3vfjxvepjxpjnjvtpxd3kvdnxx5crxwpjvyunsephsz36jf
|
||||
String lnurlPayUrl = "lightning@address.com";
|
||||
|
||||
InputType inputType = await BreezSDK().parseInput(input: lnurlPayUrl);
|
||||
if (inputType is InputType_LnUrlPay) {
|
||||
int amountMsat = inputType.data.minSendable;
|
||||
LnUrlPayRequest req = LnUrlPayRequest(
|
||||
data: inputType.data,
|
||||
amountMsat: amountMsat,
|
||||
comment: "<comment>",
|
||||
);
|
||||
LnUrlPayResult result = await BreezSDK().lnurlPay(req: req);
|
||||
print(result.data);
|
||||
}
|
||||
// ANCHOR_END: lnurl-pay
|
||||
}
|
||||
23
snippets/dart_snippets/lib/lnurl_withdraw.dart
Normal file
23
snippets/dart_snippets/lib/lnurl_withdraw.dart
Normal file
@@ -0,0 +1,23 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<void> lnurlWithdraw() async {
|
||||
// ANCHOR: lnurl-withdraw
|
||||
/// Endpoint can also be of the form:
|
||||
/// lnurlw://domain.com/lnurl-withdraw?key=val
|
||||
String lnurlWithdrawUrl =
|
||||
"lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4exctthd96xserjv9mn7um9wdekjmmw843xxwpexdnxzen9vgunsvfexq6rvdecx93rgdmyxcuxverrvcursenpxvukzv3c8qunsdecx33nzwpnvg6ryc3hv93nzvecxgcxgwp3h33lxk";
|
||||
|
||||
InputType inputType = await BreezSDK().parseInput(input: lnurlWithdrawUrl);
|
||||
if (inputType is InputType_LnUrlWithdraw) {
|
||||
int amountMsat = inputType.data.minWithdrawable;
|
||||
LnUrlWithdrawRequest req = LnUrlWithdrawRequest(
|
||||
data: inputType.data,
|
||||
amountMsat: amountMsat,
|
||||
description: "<description>",
|
||||
);
|
||||
LnUrlWithdrawResult result = await BreezSDK().lnurlWithdraw(req: req);
|
||||
print(result.data);
|
||||
}
|
||||
// ANCHOR_END: lnurl-withdraw
|
||||
}
|
||||
61
snippets/dart_snippets/lib/receive_onchain.dart
Normal file
61
snippets/dart_snippets/lib/receive_onchain.dart
Normal file
@@ -0,0 +1,61 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<SwapInfo> generateReceiveOnchainAddress() async {
|
||||
// ANCHOR: generate-receive-onchain-address
|
||||
ReceiveOnchainRequest req = const ReceiveOnchainRequest();
|
||||
SwapInfo swapInfo = await BreezSDK().receiveOnchain(req: req);
|
||||
|
||||
// Send your funds to the below bitcoin address
|
||||
final address = swapInfo.bitcoinAddress;
|
||||
print(address);
|
||||
return swapInfo;
|
||||
// ANCHOR_END: generate-receive-onchain-address
|
||||
}
|
||||
|
||||
Future<SwapInfo?> getInProgressSwap() async {
|
||||
// ANCHOR: in-progress-swap
|
||||
SwapInfo? swapInfo = await BreezSDK().inProgressSwap();
|
||||
print(swapInfo);
|
||||
// ANCHOR_END: in-progress-swap
|
||||
return swapInfo;
|
||||
}
|
||||
|
||||
Future<List<SwapInfo>> listRefundables() async {
|
||||
// ANCHOR: list-refundables
|
||||
List<SwapInfo> refundables = await BreezSDK().listRefundables();
|
||||
for (var refundable in refundables) {
|
||||
print(refundable.bitcoinAddress);
|
||||
}
|
||||
// ANCHOR_END: list-refundables
|
||||
return refundables;
|
||||
}
|
||||
|
||||
Future<RefundResponse> executeRefund({
|
||||
required String swapAddress,
|
||||
required String toAddress,
|
||||
required int satPerVbyte,
|
||||
}) async {
|
||||
// ANCHOR: execute-refund
|
||||
RefundRequest req = RefundRequest(
|
||||
swapAddress: swapAddress,
|
||||
toAddress: toAddress,
|
||||
satPerVbyte: satPerVbyte,
|
||||
);
|
||||
RefundResponse resp = await BreezSDK().refund(req: req);
|
||||
print(resp.refundTxId);
|
||||
// ANCHOR_END: execute-refund
|
||||
return resp;
|
||||
}
|
||||
|
||||
Future<OpenChannelFeeResponse> getChannelOpeningFees({
|
||||
required int amountMsat,
|
||||
int? expiry,
|
||||
}) async {
|
||||
// ANCHOR: get-channel-opening-fees
|
||||
OpenChannelFeeRequest req = OpenChannelFeeRequest(amountMsat: amountMsat, expiry: expiry);
|
||||
OpenChannelFeeResponse resp = await BreezSDK().openChannelFee(req: req);
|
||||
print(resp.feeMsat);
|
||||
// ANCHOR_END: get-channel-opening-fees
|
||||
return resp;
|
||||
}
|
||||
14
snippets/dart_snippets/lib/receive_payment.dart
Normal file
14
snippets/dart_snippets/lib/receive_payment.dart
Normal file
@@ -0,0 +1,14 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<ReceivePaymentResponse> receivePayment() async {
|
||||
// ANCHOR: receive-payment
|
||||
ReceivePaymentRequest req = const ReceivePaymentRequest(
|
||||
amountMsat: 3000000,
|
||||
description: "Invoice for 3000 sats",
|
||||
);
|
||||
ReceivePaymentResponse resp = await BreezSDK().receivePayment(req: req);
|
||||
print(resp.lnInvoice);
|
||||
// ANCHOR_END: receive-payment
|
||||
return resp;
|
||||
}
|
||||
46
snippets/dart_snippets/lib/send_onchain.dart
Normal file
46
snippets/dart_snippets/lib/send_onchain.dart
Normal file
@@ -0,0 +1,46 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<ReverseSwapPairInfo> estimateCurrentFees() async {
|
||||
// ANCHOR: estimate-current-reverse-swap-total-fees
|
||||
ReverseSwapFeesRequest req = const ReverseSwapFeesRequest(sendAmountSat: 50000);
|
||||
ReverseSwapPairInfo currentFees = await BreezSDK().fetchReverseSwapFees(req: req);
|
||||
print("Total estimated fees for reverse swap: ${currentFees.totalEstimatedFees}");
|
||||
// ANCHOR_END: estimate-current-reverse-swap-total-fees
|
||||
return currentFees;
|
||||
}
|
||||
|
||||
void listCurrentFees({required ReverseSwapPairInfo currentFees}) {
|
||||
// ANCHOR: get-current-reverse-swap-min-max
|
||||
print("Minimum amount, in sats: ${currentFees.min}");
|
||||
print("Maximum amount, in sats: ${currentFees.max}");
|
||||
// ANCHOR_END: get-current-reverse-swap-min-max
|
||||
}
|
||||
|
||||
Future<SendOnchainResponse> startReverseSwap({
|
||||
required int amountSat,
|
||||
required String onchainRecipientAddress,
|
||||
required String pairHash,
|
||||
required int satPerVbyte,
|
||||
}) async {
|
||||
// ANCHOR: start-reverse-swap
|
||||
SendOnchainRequest req = SendOnchainRequest(
|
||||
amountSat: amountSat,
|
||||
onchainRecipientAddress: onchainRecipientAddress,
|
||||
pairHash: pairHash,
|
||||
satPerVbyte: satPerVbyte,
|
||||
);
|
||||
SendOnchainResponse resp = await BreezSDK().sendOnchain(req: req);
|
||||
// ANCHOR_END: start-reverse-swap
|
||||
return resp;
|
||||
}
|
||||
|
||||
Future<List<ReverseSwapInfo>> checkReverseSwapStatus() async {
|
||||
// ANCHOR: check-reverse-swaps-status
|
||||
List<ReverseSwapInfo> inProgRevSwapList = await BreezSDK().inProgressReverseSwaps();
|
||||
for (var inProgRevSwap in inProgRevSwapList) {
|
||||
print("Reverse swap ${inProgRevSwap.id} in progress, status is ${inProgRevSwap.status.name}");
|
||||
}
|
||||
// ANCHOR_END: check-reverse-swaps-status
|
||||
return inProgRevSwapList;
|
||||
}
|
||||
10
snippets/dart_snippets/lib/send_payment.dart
Normal file
10
snippets/dart_snippets/lib/send_payment.dart
Normal file
@@ -0,0 +1,10 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<SendPaymentResponse> buyBitcoin({required String bolt11}) async {
|
||||
// ANCHOR: send-payment
|
||||
SendPaymentRequest req = SendPaymentRequest(bolt11: bolt11);
|
||||
SendPaymentResponse resp = await BreezSDK().sendPayment(req: req);
|
||||
// ANCHOR_END: send-payment
|
||||
return resp;
|
||||
}
|
||||
15
snippets/dart_snippets/lib/send_spontaneous_payment.dart
Normal file
15
snippets/dart_snippets/lib/send_spontaneous_payment.dart
Normal file
@@ -0,0 +1,15 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<SendPaymentResponse> sendSpontaneousPayment({
|
||||
required String nodeId,
|
||||
}) async {
|
||||
// ANCHOR: send-spontaneous-payment
|
||||
SendSpontaneousPaymentRequest req = SendSpontaneousPaymentRequest(
|
||||
amountMsat: 3000000,
|
||||
nodeId: nodeId,
|
||||
);
|
||||
SendPaymentResponse resp = await BreezSDK().sendSpontaneousPayment(req: req);
|
||||
// ANCHOR_END: send-spontaneous-payment
|
||||
return resp;
|
||||
}
|
||||
10
snippets/dart_snippets/lib/static_channel_backup.dart
Normal file
10
snippets/dart_snippets/lib/static_channel_backup.dart
Normal file
@@ -0,0 +1,10 @@
|
||||
import 'package:breez_sdk/breez_sdk.dart';
|
||||
import 'package:breez_sdk/bridge_generated.dart';
|
||||
|
||||
Future<StaticBackupResponse> retrieveBackupFiles({required String workingDir}) async {
|
||||
// ANCHOR: static-channel-backup
|
||||
StaticBackupRequest req = StaticBackupRequest(workingDir: workingDir);
|
||||
StaticBackupResponse resp = await BreezSDK().staticBackup(req: req);
|
||||
// ANCHOR_END: static-channel-backup
|
||||
return resp;
|
||||
}
|
||||
Reference in New Issue
Block a user