mirror of
https://github.com/aljazceru/breez-sdk-docs.git
synced 2025-12-17 13:54:20 +01:00
Add React Native snippets
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -3,4 +3,5 @@ book
|
|||||||
.idea
|
.idea
|
||||||
|
|
||||||
# Sub-projects with code snippets
|
# Sub-projects with code snippets
|
||||||
|
snippets/react-native/node_modules
|
||||||
snippets/rust/target
|
snippets/rust/target
|
||||||
8
snippets/react-native/.prettierrc
Normal file
8
snippets/react-native/.prettierrc
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"endOfLine": "lf",
|
||||||
|
"printWidth": 80,
|
||||||
|
"semi": false,
|
||||||
|
"singleQuote": false,
|
||||||
|
"tabWidth": 4,
|
||||||
|
"trailingComma": "none"
|
||||||
|
}
|
||||||
12
snippets/react-native/buy_btc.ts
Normal file
12
snippets/react-native/buy_btc.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import {
|
||||||
|
buyBitcoin,
|
||||||
|
BuyBitcoinProvider
|
||||||
|
} from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleBuyBtc = async () => {
|
||||||
|
// ANCHOR: buy-btc
|
||||||
|
const buyBitcoinResponse = await buyBitcoin({
|
||||||
|
provider: BuyBitcoinProvider.MOONPAY
|
||||||
|
})
|
||||||
|
// ANCHOR_END: buy-btc
|
||||||
|
}
|
||||||
15
snippets/react-native/connecting_lsp.ts
Normal file
15
snippets/react-native/connecting_lsp.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import { connectLsp, lspId, lspInfo } from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleAutoConnect = async () => {
|
||||||
|
// ANCHOR: get-lsp-info
|
||||||
|
const id = await lspId()
|
||||||
|
const info = await lspInfo()
|
||||||
|
// ANCHOR_END: get-lsp-info
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleManualConnect = async () => {
|
||||||
|
// ANCHOR: connect-lsp
|
||||||
|
const id = "your selected lsp id"
|
||||||
|
await connectLsp(id)
|
||||||
|
// ANCHOR_END: connect-lsp
|
||||||
|
}
|
||||||
22
snippets/react-native/fiat_currencies.ts
Normal file
22
snippets/react-native/fiat_currencies.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import {
|
||||||
|
listFiatCurrencies,
|
||||||
|
fetchFiatRates
|
||||||
|
} from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleListCurrencies = async () => {
|
||||||
|
// ANCHOR: list-fiat-currencies
|
||||||
|
const fiatCurrencies = await listFiatCurrencies()
|
||||||
|
// ANCHOR_END: list-fiat-currencies
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleFetchRates = async () => {
|
||||||
|
// ANCHOR: fetch-fiat-rates
|
||||||
|
const fiatRates = await fetchFiatRates()
|
||||||
|
// ANCHOR_END: fetch-fiat-rates
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleListCurrenciesAndRates = async () => {
|
||||||
|
// ANCHOR: get-fiat-currencies-and-rates
|
||||||
|
// TODO
|
||||||
|
// ANCHOR_END: get-fiat-currencies-and-rates
|
||||||
|
}
|
||||||
47
snippets/react-native/getting_started.ts
Normal file
47
snippets/react-native/getting_started.ts
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
import {
|
||||||
|
BreezEvent,
|
||||||
|
connect,
|
||||||
|
defaultConfig,
|
||||||
|
EnvironmentType,
|
||||||
|
mnemonicToSeed,
|
||||||
|
NodeConfig,
|
||||||
|
NodeConfigVariant,
|
||||||
|
nodeInfo
|
||||||
|
} from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleGettingStarted = async () => {
|
||||||
|
// ANCHOR: init-sdk
|
||||||
|
// SDK events listener
|
||||||
|
const onBreezEvent = (e: BreezEvent) => {
|
||||||
|
console.log(`Received event ${e.type}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create the default config
|
||||||
|
const seed = await mnemonicToSeed("<mnemonics words>")
|
||||||
|
const inviteCode = "<invite code>"
|
||||||
|
const apiKey = "<api key>"
|
||||||
|
const nodeConfig: NodeConfig = {
|
||||||
|
type: NodeConfigVariant.GREENLIGHT,
|
||||||
|
config: {
|
||||||
|
inviteCode
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const config = await defaultConfig(
|
||||||
|
EnvironmentType.PRODUCTION,
|
||||||
|
apiKey,
|
||||||
|
nodeConfig
|
||||||
|
)
|
||||||
|
|
||||||
|
// Connect to the Breez SDK make it ready for use
|
||||||
|
await connect(config, seed, onBreezEvent)
|
||||||
|
// ANCHOR_END: init-sdk
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleFetchNodeInfo = async () => {
|
||||||
|
// ANCHOR: fetch-balance
|
||||||
|
const nodeState = await nodeInfo()
|
||||||
|
const balanceLn = nodeState.channelsBalanceMsat
|
||||||
|
const balanceOnchain = nodeState.onchainBalanceMsat
|
||||||
|
// ANCHOR_END: fetch-balance
|
||||||
|
}
|
||||||
20
snippets/react-native/list_payments.ts
Normal file
20
snippets/react-native/list_payments.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import {
|
||||||
|
listPayments,
|
||||||
|
PaymentTypeFilter
|
||||||
|
} from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleListPayments = async () => {
|
||||||
|
// ANCHOR: list-payments
|
||||||
|
const payments = listPayments({ filter: PaymentTypeFilter.ALL })
|
||||||
|
// ANCHOR_END: list-payments
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleListPaymentsFiltered = async () => {
|
||||||
|
// ANCHOR: list-payments-filtered
|
||||||
|
const payments = listPayments({
|
||||||
|
filter: PaymentTypeFilter.SENT,
|
||||||
|
fromTimestamp: 1696880000,
|
||||||
|
includeFailures: true
|
||||||
|
})
|
||||||
|
// ANCHOR_END: list-payments-filtered
|
||||||
|
}
|
||||||
25
snippets/react-native/lnurl_auth.ts
Normal file
25
snippets/react-native/lnurl_auth.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import {
|
||||||
|
InputTypeVariant,
|
||||||
|
lnurlAuth,
|
||||||
|
LnUrlCallbackStatusVariant,
|
||||||
|
parseInput
|
||||||
|
} from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleLnurlAuth = async () => {
|
||||||
|
// ANCHOR: lnurl-auth
|
||||||
|
// Endpoint can also be of the form:
|
||||||
|
// keyauth://domain.com/auth?key=val
|
||||||
|
const lnurlAuthUrl =
|
||||||
|
"lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttvdankjm3lw3skw0tvdankjm3xdvcn6vtp8q6n2dfsx5mrjwtrxdjnqvtzv56rzcnyv3jrxv3sxqmkyenrvv6kve3exv6nqdtyv43nqcmzvdsnvdrzx33rsenxx5unqc3cxgeqgntfgu"
|
||||||
|
|
||||||
|
const input = await parseInput(lnurlAuthUrl)
|
||||||
|
if (input.type === InputTypeVariant.LN_URL_AUTH) {
|
||||||
|
const result = await lnurlAuth(input.data)
|
||||||
|
if (result.type === LnUrlCallbackStatusVariant.OK) {
|
||||||
|
console.log("Successfully authenticated")
|
||||||
|
} else {
|
||||||
|
console.log("Failed to authenticate")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ANCHOR_END: lnurl-auth
|
||||||
|
}
|
||||||
24
snippets/react-native/lnurl_pay.ts
Normal file
24
snippets/react-native/lnurl_pay.ts
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import {
|
||||||
|
InputTypeVariant,
|
||||||
|
parseInput,
|
||||||
|
payLnurl
|
||||||
|
} from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleLnurlPay = async () => {
|
||||||
|
// ANCHOR: lnurl-pay
|
||||||
|
// Endpoint can also be of the
|
||||||
|
// lnurlp://domain.com/lnurl-pay?key=val
|
||||||
|
// lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttsv9un7um9wdekjmmw84jxywf5x43rvv35xgmr2enrxanr2cfcvsmnwe3jxcukvde48qukgdec89snwde3vfjxvepjxpjnjvtpxd3kvdnxx5crxwpjvyunsephsz36jf
|
||||||
|
const lnurlPayUrl = "lightning@address.com"
|
||||||
|
|
||||||
|
const input = await parseInput(lnurlPayUrl)
|
||||||
|
if (input.type === InputTypeVariant.LN_URL_PAY) {
|
||||||
|
const amountMsat = input.data.minSendable
|
||||||
|
const lnUrlPayResult = await payLnurl({
|
||||||
|
data: input.data,
|
||||||
|
amountMsat,
|
||||||
|
comment: "comment"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// ANCHOR_END: lnurl-pay
|
||||||
|
}
|
||||||
24
snippets/react-native/lnurl_withdraw.ts
Normal file
24
snippets/react-native/lnurl_withdraw.ts
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
import {
|
||||||
|
InputTypeVariant,
|
||||||
|
parseInput,
|
||||||
|
withdrawLnurl
|
||||||
|
} from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleLnurlWithdraw = async () => {
|
||||||
|
// ANCHOR: lnurl-withdraw
|
||||||
|
// Endpoint can also be of the form:
|
||||||
|
// lnurlw://domain.com/lnurl-withdraw?key=val
|
||||||
|
const lnurlWithdrawUrl =
|
||||||
|
"lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4exctthd96xserjv9mn7um9wdekjmmw843xxwpexdnxzen9vgunsvfexq6rvdecx93rgdmyxcuxverrvcursenpxvukzv3c8qunsdecx33nzwpnvg6ryc3hv93nzvecxgcxgwp3h33lxk"
|
||||||
|
|
||||||
|
const input = await parseInput(lnurlWithdrawUrl)
|
||||||
|
if (input.type === InputTypeVariant.LN_URL_WITHDRAW) {
|
||||||
|
const amountMsat = input.data.minWithdrawable
|
||||||
|
const lnUrlWithdrawResult = await withdrawLnurl({
|
||||||
|
data: input.data,
|
||||||
|
amountMsat,
|
||||||
|
description: "comment"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// ANCHOR_END: lnurl-withdraw
|
||||||
|
}
|
||||||
19
snippets/react-native/package.json
Normal file
19
snippets/react-native/package.json
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "snippets",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "React Native Snippets",
|
||||||
|
"main": "index.ts",
|
||||||
|
"license": "MIT",
|
||||||
|
"scripts": {
|
||||||
|
"lint": "eslint . --ext .js,.jsx,.ts,.tsx"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@breeztech/react-native-breez-sdk": "0.2.7",
|
||||||
|
"react": "18.1.0",
|
||||||
|
"react-native": "0.70.6"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"tsx": "^3.12.7"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
52
snippets/react-native/receive_onchain.ts
Normal file
52
snippets/react-native/receive_onchain.ts
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import {
|
||||||
|
inProgressSwap,
|
||||||
|
listRefundables,
|
||||||
|
openChannelFee,
|
||||||
|
receiveOnchain,
|
||||||
|
refund
|
||||||
|
} from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleReceiveOnchain = async () => {
|
||||||
|
// ANCHOR: generate-receive-onchain-address
|
||||||
|
const swapInfo = await receiveOnchain({})
|
||||||
|
|
||||||
|
// Send your funds to the below bitcoin address
|
||||||
|
const address = swapInfo.bitcoinAddress
|
||||||
|
// ANCHOR_END: generate-receive-onchain-address
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleInProgressSwap = async () => {
|
||||||
|
// ANCHOR: in-progress-swap
|
||||||
|
const swapInfo = await inProgressSwap()
|
||||||
|
// ANCHOR_END: in-progress-swap
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleListRefundables = async () => {
|
||||||
|
// ANCHOR: list-refundables
|
||||||
|
const refundables = await listRefundables()
|
||||||
|
// ANCHOR_END: list-refundables
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleRefund = async () => {
|
||||||
|
// ANCHOR: execute-refund
|
||||||
|
const refundables = await listRefundables()
|
||||||
|
const toAddress = "..."
|
||||||
|
const satPerVbyte = 5
|
||||||
|
|
||||||
|
const refundResponse = await refund({
|
||||||
|
swapAddress: refundables[0].bitcoinAddress,
|
||||||
|
toAddress,
|
||||||
|
satPerVbyte
|
||||||
|
})
|
||||||
|
// ANCHOR_END: execute-refund
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleOpenChannelFee = async () => {
|
||||||
|
// ANCHOR: get-channel-opening-fees
|
||||||
|
const amountMsat = 10000
|
||||||
|
|
||||||
|
const openChannelFeeResponse = await openChannelFee({
|
||||||
|
amountMsat: amountMsat
|
||||||
|
})
|
||||||
|
// ANCHOR_END: get-channel-opening-fees
|
||||||
|
}
|
||||||
10
snippets/react-native/receive_payment.ts
Normal file
10
snippets/react-native/receive_payment.ts
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import { receivePayment } from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleReceiveLightningPayment = async () => {
|
||||||
|
// ANCHOR: receive-payment
|
||||||
|
const invoice = await receivePayment({
|
||||||
|
amountMsat: 3000000,
|
||||||
|
description: "Invoice for 3000 sats"
|
||||||
|
})
|
||||||
|
// ANCHOR: receive-payment
|
||||||
|
}
|
||||||
49
snippets/react-native/send_onchain.ts
Normal file
49
snippets/react-native/send_onchain.ts
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
import {
|
||||||
|
ReverseSwapPairInfo,
|
||||||
|
fetchReverseSwapFees,
|
||||||
|
inProgressReverseSwaps,
|
||||||
|
sendOnchain
|
||||||
|
} from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleFetchReverseSwapFees = async () => {
|
||||||
|
// ANCHOR: estimate-current-reverse-swap-total-fees
|
||||||
|
const currentFees = await fetchReverseSwapFees({ sendAmountSat: 50000 })
|
||||||
|
|
||||||
|
console.log(
|
||||||
|
`Total estimated fees for reverse swap: ${currentFees.totalEstimatedFees}`
|
||||||
|
)
|
||||||
|
// ANCHOR_END: estimate-current-reverse-swap-total-fees
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleListCurrentFees = (currentFees: ReverseSwapPairInfo) => {
|
||||||
|
// ANCHOR: get-current-reverse-swap-min-max
|
||||||
|
console.log(`Minimum amount, in sats: ${currentFees.min}`)
|
||||||
|
console.log(`Maximum amount, in sats: ${currentFees.max}`)
|
||||||
|
// ANCHOR_END: get-current-reverse-swap-min-max
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleSendOnchain = async (currentFees: ReverseSwapPairInfo) => {
|
||||||
|
// ANCHOR: start-reverse-swap
|
||||||
|
const onchainRecipientAddress = "bc1.."
|
||||||
|
const amountSat = currentFees.min
|
||||||
|
const satPerVbyte = 5
|
||||||
|
|
||||||
|
const reverseSwapInfo = await sendOnchain({
|
||||||
|
amountSat,
|
||||||
|
onchainRecipientAddress,
|
||||||
|
pairHash: currentFees.feesHash,
|
||||||
|
satPerVbyte
|
||||||
|
})
|
||||||
|
// ANCHOR_END: start-reverse-swap
|
||||||
|
}
|
||||||
|
|
||||||
|
const exampleInProgressReverseSwaps = async () => {
|
||||||
|
// ANCHOR: check-reverse-swaps-status
|
||||||
|
const swaps = await inProgressReverseSwaps()
|
||||||
|
for (const swap of swaps) {
|
||||||
|
console.log(
|
||||||
|
`Reverse swap ${swap.id} in progress, status is ${swap.status}`
|
||||||
|
)
|
||||||
|
}
|
||||||
|
// ANCHOR_END: check-reverse-swaps-status
|
||||||
|
}
|
||||||
12
snippets/react-native/send_payment.ts
Normal file
12
snippets/react-native/send_payment.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { sendPayment } from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleSendLightningPayment = async () => {
|
||||||
|
// ANCHOR: send-payment
|
||||||
|
const bolt11 = "..."
|
||||||
|
|
||||||
|
const sendPaymentResponse = await sendPayment({
|
||||||
|
bolt11,
|
||||||
|
amountMsat: 3000000
|
||||||
|
})
|
||||||
|
// ANCHOR_END: send-payment
|
||||||
|
}
|
||||||
12
snippets/react-native/send_spontaneous_payment.ts
Normal file
12
snippets/react-native/send_spontaneous_payment.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { sendSpontaneousPayment } from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleSendSpontaneousPayment = async () => {
|
||||||
|
// ANCHOR: send-spontaneous-payment
|
||||||
|
const nodeId = "..."
|
||||||
|
|
||||||
|
const sendPaymentResponse = await sendSpontaneousPayment({
|
||||||
|
nodeId,
|
||||||
|
amountMsat: 3000000
|
||||||
|
})
|
||||||
|
// ANCHOR_END: send-spontaneous-payment
|
||||||
|
}
|
||||||
7
snippets/react-native/static_channel_backup.ts
Normal file
7
snippets/react-native/static_channel_backup.ts
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import { staticBackup } from "@breeztech/react-native-breez-sdk"
|
||||||
|
|
||||||
|
const exampleStaticBackup = async () => {
|
||||||
|
// ANCHOR: static-channel-backup
|
||||||
|
let backupData = await staticBackup({ workingDir: "<working directory>" })
|
||||||
|
// ANCHOR_END: static-channel-backup
|
||||||
|
}
|
||||||
3842
snippets/react-native/yarn.lock
Normal file
3842
snippets/react-native/yarn.lock
Normal file
File diff suppressed because it is too large
Load Diff
@@ -50,11 +50,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/buy_btc.ts:buy-btc}}
|
||||||
let buyBitcoinResponse = await buyBitcoin({provider: BuyBitcoinProvider.MOONPAY})
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -45,12 +45,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/connecting_lsp.ts:get-lsp-info}}
|
||||||
const lspId = await lspId()
|
|
||||||
const lspInfo = await lspInfo()
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -149,11 +144,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/connecting_lsp.ts:connect-lsp}}
|
||||||
await connectLsp(lspId)
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -27,11 +27,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/fiat_currencies.ts:list-fiat-currencies}}
|
||||||
const fiatCurrencyList = await listFiatCurrencies()
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -112,11 +108,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/fiat_currencies.ts:fetch-fiat-rates}}
|
||||||
const fiatRatesMap = await fetchFiatRates()
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -217,7 +209,7 @@ fun fiatCurrenciesAndRate(): Map<FiatCurrency, Rate> = try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
// TODO
|
{{#include ../../snippets/react-native/fiat_currencies.ts:get-fiat-currencies-and-rates}}
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -113,32 +113,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
// SDK events listener
|
{{#include ../../snippets/react-native/getting_started.ts:init-sdk}}
|
||||||
const onBreezEvent = (event: BreezEvent) => {
|
|
||||||
console.log(`received event ${event.type}`)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Create the default config
|
|
||||||
const seed = await mnemonicToSeed("<mnemonic words>")
|
|
||||||
const inviteCode = "<invite code>"
|
|
||||||
const apiKey = "<api key>"
|
|
||||||
const nodeConfig : NodeConfig = {
|
|
||||||
type: NodeConfigVariant.GREENLIGHT,
|
|
||||||
config: {
|
|
||||||
inviteCode: inviteCode
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let config = await defaultConfig(EnvironmentType.PRODUCTION, apiKey, nodeConfig)
|
|
||||||
|
|
||||||
// Customize the config object according to your needs
|
|
||||||
config.workingDir = "path to an existing directory"
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Connect to the Breez SDK make it ready for use
|
|
||||||
const sdkServices = await connect(config, seed, onBreezEvent)
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
@@ -332,13 +307,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/getting_started.ts:fetch-balance}}
|
||||||
const nodeInfo = await nodeInfo();
|
|
||||||
const lnBalance = nodeInfo.channelsBalanceMsat;
|
|
||||||
const onchainBalance = nodeInfo.onchainBalanceMsat;
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -39,11 +39,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/list_payments.ts:list-payments}}
|
||||||
const payments = await listPayments({filter: PaymentTypeFilter.ALL})
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -143,15 +139,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/list_payments.ts:list-payments-filtered}}
|
||||||
const payments = await listPayments({
|
|
||||||
filter: PaymentTypeFilter.SENT,
|
|
||||||
fromTimestamp: 1696880000,
|
|
||||||
includeFailures: true
|
|
||||||
})
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -61,23 +61,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
// Endpoint can also be of the form:
|
{{#include ../../snippets/react-native/lnurl_auth.ts:lnurl-auth}}
|
||||||
// keyauth://domain.com/auth?key=val
|
|
||||||
let lnurlAuthUrl = "lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttvdankjm3lw3skw0tvdankjm3xdvcn6vtp8q6n2dfsx5mrjwtrxdjnqvtzv56rzcnyv3jrxv3sxqmkyenrvv6kve3exv6nqdtyv43nqcmzvdsnvdrzx33rsenxx5unqc3cxgeqgntfgu"
|
|
||||||
|
|
||||||
try {
|
|
||||||
const input = await parseInput(lnurlAuthUrl)
|
|
||||||
if (input.type === InputTypeVariant.LN_URL_AUTH) {
|
|
||||||
const result = await lnurlAuth(input.data)
|
|
||||||
if (result.type === LnUrlCallbackStatusVariant.OK) {
|
|
||||||
console.log("Successfully authanticated")
|
|
||||||
} else {
|
|
||||||
console.log("Failed to authenticate")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -57,20 +57,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
// Endpoint can also be of the form:
|
{{#include ../../snippets/react-native/lnurl_pay.ts:lnurl-pay}}
|
||||||
// lnurlp://domain.com/lnurl-pay?key=val
|
|
||||||
// lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttsv9un7um9wdekjmmw84jxywf5x43rvv35xgmr2enrxanr2cfcvsmnwe3jxcukvde48qukgdec89snwde3vfjxvepjxpjnjvtpxd3kvdnxx5crxwpjvyunsephsz36jf
|
|
||||||
let lnurlPayUrl = "lightning@address.com"
|
|
||||||
|
|
||||||
try {
|
|
||||||
const input = await parseInput(lnurlPayUrl)
|
|
||||||
if (input.type === InputTypeVariant.LN_URL_PAY) {
|
|
||||||
const amountSats = input.data.minSendable
|
|
||||||
const result = await payLnurl(input.data, amountSats, "comment")
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -59,19 +59,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
// Endpoint can also be of the form:
|
{{#include ../../snippets/react-native/lnurl_withdraw.ts:lnurl-withdraw}}
|
||||||
// lnurlw://domain.com/lnurl-withdraw?key=val
|
|
||||||
let lnurlWithdrawUrl = "lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4exctthd96xserjv9mn7um9wdekjmmw843xxwpexdnxzen9vgunsvfexq6rvdecx93rgdmyxcuxverrvcursenpxvukzv3c8qunsdecx33nzwpnvg6ryc3hv93nzvecxgcxgwp3h33lxk"
|
|
||||||
|
|
||||||
try {
|
|
||||||
const input = await parseInput(lnurlWithdrawUrl)
|
|
||||||
if (input.type === InputTypeVariant.LN_URL_WITHDRAW) {
|
|
||||||
const amountSats = input.data.minWithdrawable
|
|
||||||
const result = await withdrawLnurl(input.data, amountSats, "comment")
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -47,14 +47,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/receive_onchain.ts:generate-receive-onchain-address}}
|
||||||
const swapInfo = await receiveOnchain({})
|
|
||||||
|
|
||||||
// Send your funds to the below bitcoin address
|
|
||||||
const address = swapInfo.bitcoinAddress
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -159,11 +152,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/receive_onchain.ts:in-progress-swap}}
|
||||||
const swapInfo = await inProgressSwap()
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -260,11 +249,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/receive_onchain.ts:list-refundables}}
|
||||||
const refundables = await listRefundables()
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -365,13 +350,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
const destinationAddress = "..."
|
{{#include ../../snippets/react-native/receive_onchain.ts:execute-refund}}
|
||||||
const satPerVbyte = <refund tx fee rate>
|
|
||||||
try {
|
|
||||||
const result = await refund(refundable.bitcoinAddress, destinationAddress, satPerVbyte)
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -483,12 +462,7 @@ do {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
const amountMsat = <amount msat>
|
{{#include ../../snippets/react-native/receive_onchain.ts:get-channel-opening-fees}}
|
||||||
try {
|
|
||||||
const channelFees = await openChannelFee({amountMsat: amountMsat})
|
|
||||||
} catch (error) {
|
|
||||||
// handle error
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -46,14 +46,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/receive_payment.ts:receive-payment}}
|
||||||
const invoice = await receivePayment({
|
|
||||||
amountSats: 3000,
|
|
||||||
description: "Invoice for 3000 sats"
|
|
||||||
})
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -45,13 +45,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/send_onchain.ts:estimate-current-reverse-swap-total-fees}}
|
||||||
const currentFees = await fetchReverseSwapFees({sendAmountSat: 50000})
|
|
||||||
|
|
||||||
console.log(`Total estimated fees for reverse swap: ${currentFees.totalEstimatedFees}`)
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -155,8 +149,7 @@ Log.v("Breez", "Maximum amount, in sats: ${fees.max}")
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
console.log(`Minimum amount, in sats: ${currentFees.min}`)
|
{{#include ../../snippets/react-native/send_onchain.ts:get-current-reverse-swap-min-max}}
|
||||||
console.log(`Maximum amount, in sats: ${currentFees.max}`)
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -246,14 +239,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
const destinationAddress = "bc1.."
|
{{#include ../../snippets/react-native/send_onchain.ts:start-reverse-swap}}
|
||||||
const amountSat = currentFees.min
|
|
||||||
const satPerVbyte = <fee rate>
|
|
||||||
try {
|
|
||||||
const reverseSwapInfo = await sendOnchain(amountSat, destinationAddress, currentFees.feesHash, satPerVbyte)
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -369,14 +355,7 @@ for (rs in sdk.inProgressReverseSwaps()) {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/send_onchain.ts:check-reverse-swaps-status}}
|
||||||
const swaps = await inProgressReverseSwaps()
|
|
||||||
for (const swap of swaps) {
|
|
||||||
console.log(`Reverse swap ${swap.id} in progress, status is ${swap.status}`)
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -43,12 +43,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
const bolt11 = "..."
|
{{#include ../../snippets/react-native/send_payment.ts:send-payment}}
|
||||||
try {
|
|
||||||
const payment = await sendPayment(bolt11, 3000)
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -41,12 +41,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
const nodeId = "..."
|
{{#include ../../snippets/react-native/send_spontaneous_payment.ts:send-spontaneous-payment}}
|
||||||
try {
|
|
||||||
const payment = await sendSpontaneousPayment(nodeId, 3000)
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -47,11 +47,7 @@ try {
|
|||||||
<section>
|
<section>
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
try {
|
{{#include ../../snippets/react-native/static_channel_backup.ts:static-channel-backup}}
|
||||||
let backupData = await staticBackup({workingDir: "<working directory>"})
|
|
||||||
} catch (error) {
|
|
||||||
console.log(error)
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user