Merge branch 'main' into typo-fixes

# Conflicts:
#	src/guide/send_onchain.md
This commit is contained in:
Ross Savage
2023-07-03 20:43:18 +02:00
7 changed files with 86 additions and 80 deletions

View File

@@ -75,21 +75,25 @@ The first step is to register a new node
## Registering a new node
```swift
do {
let seed = try mnemonicToSeed(phrase: "<mnemonics words>");
let invite_code = <your greenlight invite code>;
let seed = try mnemonicToSeed(phrase: "<mnemonics words>")
let inviteCode = ""
// register_node takes either greenlight credentials (certifate & key) or invite code.
// At this example we are using the invite code option.
let credentials = try registerNode(network: Network.bitcoin, seed: seed, inviteCode: inviteCode);
} catch SdkError.Error(let message) {
print(message)
// register_node takes either greenlight credentials (certifate & key) or invite code.
// At this example we are using the invite code option.
let credentials = try registerNode(network: Network.bitcoin, seed: seed, registerCredentials: nil, inviteCode: inviteCode)
} catch {
// handle error
}
```
## Recovering an existing node
```swift
let seed = try mnemonicToSeed(phrase: "<mnemonics words>");
let credentials = try recoverNode(network: Network.bitcoin, seed: seed);
do {
let seed = try mnemonicToSeed(phrase: "<mnemonics words>")
let credentials = try recoverNode(network: Network.bitcoin, seed: seed)
} catch {
// handle error
}
```
Once the credentials are retrieved they should be saved in a secured storage.
@@ -101,22 +105,22 @@ The next step is to initialize the SDK and start the node:
// SDK events listener
class SDKListener: EventListener {
func onEvent(e: BreezEvent) {
print("received event ", e);
print("received event ", e)
}
}
// Create the default config
let config = breez_sdk.defaultConfig(envType: EnvironmentType.production)
var config = defaultConfig(envType: EnvironmentType.production)
// Customize the config object according to your needs
config.apiKey = "your API key";
config.workingDir = "path to an existing directory";
do {
let sdkServices = try initServices(config: config, seed: seed, creds: credentials, listener: SDKListener());
try sdkServices.start();
} catch SdkError.Error(let message) {
print(message)
let sdk = try initServices(config: config, seed: seed, creds: credentials, listener: SDKListener());
try sdk.start();
} catch{
// handle error
}
```
@@ -124,11 +128,11 @@ At any point we can fetch our balance from the Greenlight node:
```swift
do {
let nodeInfo = try sdkServices.nodeInfo();
let lnBalance = nodeInfo.channelsBalanceMsat;
let onchainBalance = nodeInfo.onchainBalanceMsat;
} catch SdkError.Error(let message) {
print(message)
let nodeInfo = try sdk.nodeInfo()
let lnBalance = nodeInfo?.channelsBalanceMsat
let onchainBalance = nodeInfo?.onchainBalanceMsat
} catch {
// handle error
}
```

View File

@@ -31,21 +31,21 @@ if let Ok(LnUrlAuth{data: ad}) = parse(lnurl_auth_url).await {
```swift
// Endpoint can also be of the form:
// keyauth://domain.com/auth?key=val
let lnurlAuthUrl = "lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttvdankjm3lw3skw0tvdankjm3xdvcn6vtp8q6n2dfsx5mrjwtrxdjnqvtzv56rzcnyv3jrxv3sxqmkyenrvv6kve3exv6nqdtyv43nqcmzvdsnvdrzx33rsenxx5unqc3cxgeqgntfgu";
let lnurlAuthUrl = "lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttvdankjm3lw3skw0tvdankjm3xdvcn6vtp8q6n2dfsx5mrjwtrxdjnqvtzv56rzcnyv3jrxv3sxqmkyenrvv6kve3exv6nqdtyv43nqcmzvdsnvdrzx33rsenxx5unqc3cxgeqgntfgu"
do {
let inputType = try parseInput(s: lnurlAuthUrl)
if case .lnUrlAuth(data) = inputType {
let result = try sdk.lnurlAuth(data)
switch result {
case .ok:
print("Successfully authenticated")
case .errorStatus(data):
print("Failed to authenticate")
}
}
} catch SdkError.Error(let message) {
print(message)
let inputType = try parseInput(s: lnurlAuthUrl)
if case .lnUrlAuth(let data) = inputType {
let result = try sdk.lnurlAuth(reqData: data)
switch result {
case .ok:
print("Successfully authenticated")
case .errorStatus(let data):
print("Failed to authenticate")
}
}
} catch {
// handle error
}
```

View File

@@ -31,13 +31,13 @@ if let Ok(LnUrlPay{data: pd}) = parse(lnurl_pay_url).await {
// lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4excttsv9un7um9wdekjmmw84jxywf5x43rvv35xgmr2enrxanr2cfcvsmnwe3jxcukvde48qukgdec89snwde3vfjxvepjxpjnjvtpxd3kvdnxx5crxwpjvyunsephsz36jf
let lnurlPayUrl = "lightning@address.com";
do {
let inputType = try parseInput(s: input)
if case .lnUrlPay(data) = inputType {
let amountSats = inputType.minSendable;
try sdk.payLnurl(amountSats: amountSats, "comment", reqData: data)
let inputType = try parseInput(s: lnurlPayUrl)
if case .lnUrlPay(let data) = inputType {
let amountSats = data.minSendable;
try sdk.payLnurl(reqData: data, amountSats: amountSats, comment: "comment")
}
} catch SdkError.Error(let message) {
print(message)
} catch {
// handle error
}
```
</section>

View File

@@ -27,17 +27,17 @@ if let Ok(LnUrlWithdraw{data: wd}) = parse(lnurl_withdraw_url).await {
```swift
// Endpoint can also be of the form:
// lnurlw://domain.com/lnurl-withdraw?key=val
let lnurlWithdrawUrl = "lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4exctthd96xserjv9mn7um9wdekjmmw843xxwpexdnxzen9vgunsvfexq6rvdecx93rgdmyxcuxverrvcursenpxvukzv3c8qunsdecx33nzwpnvg6ryc3hv93nzvecxgcxgwp3h33lxk";
let lnurlWithdrawUrl = "lnurl1dp68gurn8ghj7mr0vdskc6r0wd6z7mrww4exctthd96xserjv9mn7um9wdekjmmw843xxwpexdnxzen9vgunsvfexq6rvdecx93rgdmyxcuxverrvcursenpxvukzv3c8qunsdecx33nzwpnvg6ryc3hv93nzvecxgcxgwp3h33lxk"
do {
let inputType = try parseInput(s: input)
if case .lnUrlWithdraw(data) = inputType {
let amountSat = data.minWithdrawable;
let inputType = try parseInput(s: lnurlWithdrawUrl)
if case .lnUrlWithdraw(let data) = inputType {
let amountSat = data.minWithdrawable
let description = "Test withdraw"
try sdk.withdrawLnurl(amountSats: amountSat, description: "comment", reqData: data)
try sdk.withdrawLnurl(reqData: data, amountSats: amountSat, description: "comment")
}
} catch SdkError.Error(let message) {
print(message)
} catch {
// handle error
}
```

View File

@@ -35,8 +35,8 @@ Breez SDK automatically connects your node to the LSP peer and you can now recei
```swift
do {
let invoice = try sdk.receivePayment(amountSats: 3000, description: "Invoice for 3000 sats")
} catch SdkError.Error(let message) {
print(message)
} catch {
// handle error
}
```
@@ -45,8 +45,8 @@ do {
let bolt11 = "...";
do {
let payment = try sdk.sendPayment(bolt11: bolt11, amountSats: 3000)
} catch SdkError.Error(let message) {
print(message)
} catch {
// handle error
}
```
@@ -55,8 +55,8 @@ do {
let nodeId = "...";
do {
let payment = try sdk.sendSpontaneousPayment(nodeId: nodeId, amountSats: 3000)
} catch SdkError.Error(let message) {
print(message)
} catch {
// handle error
}
```
</section>

View File

@@ -42,12 +42,12 @@ sdk.refund(refundable.bitcoin_address, destination_address, sat_per_vbyte).await
```swift
do {
let swapInfo = try sdk.receiveOnchain();
let swapInfo = try sdk.receiveOnchain()
// Send your funds to the below bitcoin address
// Send your funds to the bellow bitcoin address
let address = swapInfo.bitcoinAddress;
} catch SdkError.Error(let message) {
print(message)
} catch {
// handle error
}
```
@@ -56,8 +56,8 @@ Once you've sent the funds to the above address, the SDK will monitor this addre
```swift
do {
let swapInfo = try sdk.inProgressSwap()
} catch SdkError.Error(let message) {
print(message)
} catch {
// handle error
}
```
@@ -71,8 +71,8 @@ In order to execute a refund, you need to supply an on-chain address to where th
```swift
do {
let refundables = try sdk.listRefundables()
} catch SdkError.Error(let message) {
print(message)
} catch {
// handle error
}
```
@@ -81,12 +81,14 @@ Once you have a refundable swap in hand, use the follwing code to execute a refu
```swift
let destinationAddress = "..."
let satPerVbyte = <refund tx fee rate>
do {
try sdk.refund(swapAddress: refundable.bitcoinAddress,
toAddress: destinationAddress,
satPerVbyte: satPerVbyte)
} catch SdkError.Error(let message) {
print(message)
try sdk.refund(
swapAddress: "",
toAddress: destinationAddress,
satPerVbyte: satPerVbyte)
} catch {
// handle error
}
```
</section>

View File

@@ -55,11 +55,11 @@ for rs in sdk.in_progress_reverse_swaps().await? {
try {
let currentFees = try sdk.fetchReverseSwapFees()
println("Percentage fee for the reverse swap service: \(currentFees.feesPercentage)");
println("Estimated miner fees in sats for locking up funds: \(currentFees.feesLockup)");
println("Estimated miner fees in sats for claiming funds: \(currentFees.feesClaim)");
} catch SdkError.Error(let message) {
print(message)
println("Percentage fee for the reverse swap service: \(currentFees.feesPercentage)")
println("Estimated miner fees in sats for locking up funds: \(currentFees.feesLockup)")
println("Estimated miner fees in sats for claiming funds: \(currentFees.feesClaim)")
} catch {
// handle error
}
```
@@ -70,20 +70,20 @@ of the total costs.
Fetching the fees also tells you what is the range of amounts you can send:
```swift
println("Minimum amount, in sats: \(currentFees.min)");
println("Maximum amount, in sats: \(currentFees.max)");
println("Minimum amount, in sats: \(current_fees.min)")
println("Maximum amount, in sats: \(current_fees.max)")
```
Once you checked the fees are acceptable, you can start the reverse swap:
```swift
let destinationAddress = "bc1..";
let amountSat = currentFees.min;
let destinationAddress = "bc1.."
let amountSat = currentFees.min
let satPerVbyte = <fee rate>
try {
try sdk.sendOnchain(amountSat: amountSat, onchainRecipientAddress: destinationAddress, pairHash: currentFees.feesHash, satPerVbyte: satPerVbyte)
} catch SdkError.Error(let message) {
print(message)
} catch {
// handle error
}
```
@@ -95,7 +95,7 @@ You can check its status with:
```swift
for rs in sdk.inProgressReverseSwaps() {
println("Reverse swap \(rs.id) in progress, status is \(rs.breezStatus)");
println("Reverse swap \(rs.id) in progress, status is \(rs.breezStatus)")
}
```
</section>
@@ -121,8 +121,8 @@ of the total costs.
Fetching the fees also tells you what is the range of amounts you can send:
```typescript
console.log(`Minimum amount, in sats: ${currentFees.min}`);
console.log(`Maximum amount, in sats: ${currentFees.max}`);
console.log(`Minimum amount, in sats: ${current_fees.min}`);
console.log(`Maximum amount, in sats: ${current_fees.max}`);
```
Once you checked the fees are acceptable, you can start the reverse swap: