mirror of
https://github.com/aljazceru/breez-sdk-liquid.git
synced 2026-01-07 08:04:27 +01:00
Rename init() to connect() (#119)
* Rename init() to connect() * Shorten commit ID for secp256k1-zkp dependency * Update RN bindings * Rename the manually coded init function to connect * Update RN example app --------- Co-authored-by: Ross Savage <hello@satimoto.com> Co-authored-by: Ross Savage <551697+dangeross@users.noreply.github.com>
This commit is contained in:
4
cli/Cargo.lock
generated
4
cli/Cargo.lock
generated
@@ -1820,7 +1820,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "secp256k1-zkp"
|
||||
version = "0.10.0"
|
||||
source = "git+https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git?rev=60e631c24588a0c9e271badd61959294848c665d#60e631c24588a0c9e271badd61959294848c665d"
|
||||
source = "git+https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git?rev=60e631c24#60e631c24588a0c9e271badd61959294848c665d"
|
||||
dependencies = [
|
||||
"bitcoin-private",
|
||||
"rand",
|
||||
@@ -1832,7 +1832,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "secp256k1-zkp-sys"
|
||||
version = "0.9.1"
|
||||
source = "git+https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git?rev=60e631c24588a0c9e271badd61959294848c665d#60e631c24588a0c9e271badd61959294848c665d"
|
||||
source = "git+https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git?rev=60e631c24#60e631c24588a0c9e271badd61959294848c665d"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"secp256k1-sys 0.9.2",
|
||||
|
||||
@@ -18,4 +18,5 @@ serde = { version = "1.0.197", features = ["derive"] }
|
||||
serde_json = "1.0.115"
|
||||
|
||||
[patch.crates-io]
|
||||
secp256k1-zkp = {git = "https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git", rev = "60e631c24588a0c9e271badd61959294848c665d"}
|
||||
# https://github.com/BlockstreamResearch/rust-secp256k1-zkp/pull/48/commits
|
||||
secp256k1-zkp = {git = "https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git", rev = "60e631c24"}
|
||||
|
||||
@@ -71,7 +71,7 @@ fn main() -> Result<()> {
|
||||
}
|
||||
|
||||
let mnemonic = persistence.get_or_create_mnemonic()?;
|
||||
let wallet = Wallet::init(
|
||||
let wallet = Wallet::connect(
|
||||
&mnemonic.to_string(),
|
||||
Some(data_dir_str),
|
||||
Network::LiquidTestnet,
|
||||
|
||||
4
lib/Cargo.lock
generated
4
lib/Cargo.lock
generated
@@ -2143,7 +2143,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "secp256k1-zkp"
|
||||
version = "0.10.0"
|
||||
source = "git+https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git?rev=60e631c24588a0c9e271badd61959294848c665d#60e631c24588a0c9e271badd61959294848c665d"
|
||||
source = "git+https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git?rev=60e631c24#60e631c24588a0c9e271badd61959294848c665d"
|
||||
dependencies = [
|
||||
"bitcoin-private",
|
||||
"rand 0.8.5",
|
||||
@@ -2155,7 +2155,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "secp256k1-zkp-sys"
|
||||
version = "0.9.1"
|
||||
source = "git+https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git?rev=60e631c24588a0c9e271badd61959294848c665d#60e631c24588a0c9e271badd61959294848c665d"
|
||||
source = "git+https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git?rev=60e631c24#60e631c24588a0c9e271badd61959294848c665d"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"secp256k1-sys 0.9.2",
|
||||
|
||||
@@ -23,4 +23,5 @@ uniffi = "0.27.1"
|
||||
uniffi_macros = "0.27.1"
|
||||
|
||||
[patch.crates-io]
|
||||
secp256k1-zkp = {git = "https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git", rev = "60e631c24588a0c9e271badd61959294848c665d"}
|
||||
# https://github.com/BlockstreamResearch/rust-secp256k1-zkp/pull/48/commits
|
||||
secp256k1-zkp = {git = "https://github.com/BlockstreamResearch/rust-secp256k1-zkp.git", rev = "60e631c24"}
|
||||
|
||||
@@ -10,7 +10,7 @@ pub use uniffi_bindgen::bindings::kotlin::gen_kotlin::*;
|
||||
use crate::generator::RNConfig;
|
||||
|
||||
static IGNORED_FUNCTIONS: Lazy<HashSet<String>> = Lazy::new(|| {
|
||||
let list: Vec<&str> = vec!["init"];
|
||||
let list: Vec<&str> = vec!["connect"];
|
||||
HashSet::from_iter(list.into_iter().map(|s| s.to_string()))
|
||||
});
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ class LiquidSwapSDKModule(reactContext: ReactApplicationContext) : ReactContextB
|
||||
{%- endfor %}
|
||||
|
||||
@ReactMethod
|
||||
fun initBindingWallet(mnemonic: String, dataDir: String, network: String, promise: Promise) {
|
||||
fun connect(mnemonic: String, dataDir: String, network: String, promise: Promise) {
|
||||
if (bindingWallet != null) {
|
||||
promise.reject("Generic", "Already initialized")
|
||||
return
|
||||
@@ -60,7 +60,7 @@ class LiquidSwapSDKModule(reactContext: ReactApplicationContext) : ReactContextB
|
||||
try {
|
||||
val dataDirTmp = dataDir.takeUnless { it.isEmpty() } ?: run { reactApplicationContext.filesDir.toString() + "/lsSdk" }
|
||||
val networkTmp = asNetwork(network)
|
||||
bindingWallet = init(mnemonic, dataDirTmp, networkTmp)
|
||||
bindingWallet = connect(mnemonic, dataDirTmp, networkTmp)
|
||||
promise.resolve(readableMapOf("status" to "ok"))
|
||||
} catch (e: Exception) {
|
||||
promise.reject(e.javaClass.simpleName.replace("Exception", "Error"), e.message, e)
|
||||
|
||||
@@ -9,7 +9,7 @@ use crate::generator::RNConfig;
|
||||
pub use uniffi_bindgen::bindings::swift::gen_swift::*;
|
||||
|
||||
static IGNORED_FUNCTIONS: Lazy<HashSet<String>> = Lazy::new(|| {
|
||||
let list: Vec<&str> = vec!["init"];
|
||||
let list: Vec<&str> = vec!["connect"];
|
||||
HashSet::from_iter(list.into_iter().map(|s| s.to_string()))
|
||||
});
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
{% endif %}
|
||||
{%- endfor %}
|
||||
RCT_EXTERN_METHOD(
|
||||
initBindingWallet: (NSString*)mnemonic
|
||||
connect: (NSString*)mnemonic
|
||||
dataDir: (NSString*)dataDir
|
||||
network: (NSString*)network
|
||||
resolve: (RCTPromiseResolveBlock)resolve
|
||||
|
||||
@@ -57,8 +57,8 @@ class RNLiquidSwapSDK: RCTEventEmitter {
|
||||
{% include "TopLevelFunctionTemplate.swift" %}
|
||||
{% endif -%}
|
||||
{%- endfor %}
|
||||
@objc(initBindingWallet:dataDir:network:resolve:reject:)
|
||||
func initBindingWallet(_ mnemonic: String, dataDir: String, network: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
||||
@objc(connect:dataDir:network:resolve:reject:)
|
||||
func connect(_ mnemonic: String, dataDir: String, network: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
||||
if bindingWallet != nil {
|
||||
reject("Generic", "Already initialized", nil)
|
||||
return
|
||||
@@ -67,7 +67,7 @@ class RNLiquidSwapSDK: RCTEventEmitter {
|
||||
do {
|
||||
let dataDirTmp = dataDir.isEmpty ? RNLiquidSwapSDK.defaultDataDir.path : dataDir
|
||||
let networkTmp = try LiquidSwapSDKMapper.asNetwork(network: network)
|
||||
bindingWallet = try LiquidSwapSDK.`init`(mnemonic: mnemonic, dataDir: dataDirTmp, network: networkTmp)
|
||||
bindingWallet = try LiquidSwapSDK.connect(mnemonic: mnemonic, dataDir: dataDirTmp, network: networkTmp)
|
||||
resolve(["status": "ok"])
|
||||
} catch let err {
|
||||
rejectErr(err: err, reject: reject)
|
||||
|
||||
@@ -26,7 +26,7 @@ static KEYWORDS: Lazy<HashSet<String>> = Lazy::new(|| {
|
||||
});
|
||||
|
||||
static IGNORED_FUNCTIONS: Lazy<HashSet<String>> = Lazy::new(|| {
|
||||
let list: Vec<&str> = vec!["init"];
|
||||
let list: Vec<&str> = vec![];
|
||||
HashSet::from_iter(list.into_iter().map(|s| s.to_string()))
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
|
||||
export const init = async (mnemonic: string, dataDir: string = "", network: Network): Promise<void> => {
|
||||
const response = await LiquidSwapSDK.initBindingWallet(mnemonic, dataDir, network)
|
||||
return response
|
||||
}
|
||||
@@ -19,12 +19,12 @@ impl From<anyhow::Error> for LsSdkError {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn init(
|
||||
pub fn connect(
|
||||
mnemonic: String,
|
||||
data_dir: Option<String>,
|
||||
network: Network,
|
||||
) -> Result<Arc<BindingWallet>, LsSdkError> {
|
||||
let ln_sdk = Wallet::init(&mnemonic, data_dir, network)?;
|
||||
let ln_sdk = Wallet::connect(&mnemonic, data_dir, network)?;
|
||||
Ok(Arc::from(BindingWallet { ln_sdk }))
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ dictionary ReceivePaymentResponse {
|
||||
|
||||
namespace ls_sdk {
|
||||
[Throws=LsSdkError]
|
||||
BindingWallet init(string mnemonic, string? data_dir, Network network);
|
||||
BindingWallet connect(string mnemonic, string? data_dir, Network network);
|
||||
};
|
||||
|
||||
interface BindingWallet {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
try {
|
||||
var mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
|
||||
var sdk = ls_sdk.init(mnemonic, null, ls_sdk.Network.LIQUID_TESTNET)
|
||||
var sdk = ls_sdk.connect(mnemonic, null, ls_sdk.Network.LIQUID_TESTNET)
|
||||
var nodeInfo = sdk.getInfo(false)
|
||||
println("$nodeInfo")
|
||||
assert(nodeInfo.pubkey.equals("03d902f35f560e0470c63313c7369168d9d7df2d49bf295fd9fb7cb109ccee0494"))
|
||||
|
||||
@@ -2,7 +2,7 @@ import ls_sdk
|
||||
|
||||
def test():
|
||||
mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"
|
||||
sdk = ls_sdk.init(mnemonic, None, ls_sdk.Network.LIQUID_TESTNET)
|
||||
sdk = ls_sdk.connect(mnemonic, None, ls_sdk.Network.LIQUID_TESTNET)
|
||||
node_info = sdk.get_info(False)
|
||||
print(node_info)
|
||||
assert node_info.pubkey == "03d902f35f560e0470c63313c7369168d9d7df2d49bf295fd9fb7cb109ccee0494"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import ls_sdk
|
||||
|
||||
let mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
|
||||
let sdk = try ls_sdk.`init`(mnemonic: mnemonic, dataDir: nil, network: .liquidTestnet);
|
||||
let sdk = try ls_sdk.connect(mnemonic: mnemonic, dataDir: nil, network: .liquidTestnet);
|
||||
let nodeInfo = try sdk.getInfo(withScan: false);
|
||||
print(nodeInfo);
|
||||
assert(nodeInfo.pubkey == "03d902f35f560e0470c63313c7369168d9d7df2d49bf295fd9fb7cb109ccee0494", "nodeInfo.pubkey");
|
||||
@@ -16,7 +16,7 @@ The wallet provides the ability to `backup` and `restore` ongoing swaps via the
|
||||
let mnemonic = "...";
|
||||
let data_dir = None;
|
||||
let network = Network::Liquid;
|
||||
let breez_wallet = Wallet::init(mnemonic, data_dir, network)?;
|
||||
let breez_wallet = Wallet::connect(mnemonic, data_dir, network)?;
|
||||
|
||||
breez_wallet.backup()?; // Backs up the pending swaps under `{data_dir}/backup{-testnet}.sql`. Overwrites previous versions.
|
||||
let backup_path = None; // Can also be Some(String), a path pointing to the database. Default is `{data_dir}/backup{-testnet}.sql`
|
||||
|
||||
@@ -66,7 +66,8 @@ mod tests {
|
||||
#[test]
|
||||
fn normal_submarine_swap() -> Result<()> {
|
||||
let (_data_dir, data_dir_str) = create_temp_dir()?;
|
||||
let breez_wallet = Wallet::init(TEST_MNEMONIC, Some(data_dir_str), Network::LiquidTestnet)?;
|
||||
let breez_wallet =
|
||||
Wallet::connect(TEST_MNEMONIC, Some(data_dir_str), Network::LiquidTestnet)?;
|
||||
|
||||
let invoice = "lntb10u1pnqwkjrpp5j8ucv9mgww0ajk95yfpvuq0gg5825s207clrzl5thvtuzfn68h0sdqqcqzzsxqr23srzjqv8clnrfs9keq3zlg589jvzpw87cqh6rjks0f9g2t9tvuvcqgcl45f6pqqqqqfcqqyqqqqlgqqqqqqgq2qsp5jnuprlxrargr6hgnnahl28nvutj3gkmxmmssu8ztfhmmey3gq2ss9qyyssq9ejvcp6frwklf73xvskzdcuhnnw8dmxag6v44pffwqrxznsly4nqedem3p3zhn6u4ln7k79vk6zv55jjljhnac4gnvr677fyhfgn07qp4x6wrq";
|
||||
breez_wallet.prepare_send_payment(&invoice)?;
|
||||
@@ -78,7 +79,8 @@ mod tests {
|
||||
#[test]
|
||||
fn reverse_submarine_swap() -> Result<()> {
|
||||
let (_data_dir, data_dir_str) = create_temp_dir()?;
|
||||
let breez_wallet = Wallet::init(TEST_MNEMONIC, Some(data_dir_str), Network::LiquidTestnet)?;
|
||||
let breez_wallet =
|
||||
Wallet::connect(TEST_MNEMONIC, Some(data_dir_str), Network::LiquidTestnet)?;
|
||||
|
||||
let prepare_response = breez_wallet.prepare_receive_payment(&PrepareReceiveRequest {
|
||||
receiver_amount_sat: Some(1000),
|
||||
|
||||
@@ -47,7 +47,11 @@ pub struct Wallet {
|
||||
}
|
||||
|
||||
impl Wallet {
|
||||
pub fn init(mnemonic: &str, data_dir: Option<String>, network: Network) -> Result<Arc<Wallet>> {
|
||||
pub fn connect(
|
||||
mnemonic: &str,
|
||||
data_dir: Option<String>,
|
||||
network: Network,
|
||||
) -> Result<Arc<Wallet>> {
|
||||
let is_mainnet = network == Network::Liquid;
|
||||
let signer = SwSigner::new(mnemonic, is_mainnet)?;
|
||||
let descriptor = Wallet::get_descriptor(&signer, network)?;
|
||||
|
||||
@@ -40,7 +40,7 @@ class LiquidSwapSDKModule(reactContext: ReactApplicationContext) : ReactContextB
|
||||
fun removeListeners(count: Int) {}
|
||||
|
||||
@ReactMethod
|
||||
fun initBindingWallet(
|
||||
fun connect(
|
||||
mnemonic: String,
|
||||
dataDir: String,
|
||||
network: String,
|
||||
@@ -55,7 +55,7 @@ class LiquidSwapSDKModule(reactContext: ReactApplicationContext) : ReactContextB
|
||||
try {
|
||||
val dataDirTmp = dataDir.takeUnless { it.isEmpty() } ?: run { reactApplicationContext.filesDir.toString() + "/lsSdk" }
|
||||
val networkTmp = asNetwork(network)
|
||||
bindingWallet = init(mnemonic, dataDirTmp, networkTmp)
|
||||
bindingWallet = connect(mnemonic, dataDirTmp, networkTmp)
|
||||
promise.resolve(readableMapOf("status" to "ok"))
|
||||
} catch (e: Exception) {
|
||||
promise.reject(e.javaClass.simpleName.replace("Exception", "Error"), e.message, e)
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import React, { useState } from "react"
|
||||
import { SafeAreaView, ScrollView, StatusBar, Text, TouchableOpacity, View } from "react-native"
|
||||
import { Network, getInfo, init } from "@breeztech/react-native-liquid-swap-sdk"
|
||||
import { Network, getInfo, connect } from "@breeztech/react-native-liquid-swap-sdk"
|
||||
import { generateMnemonic } from "@dreson4/react-native-quick-bip39"
|
||||
import { getSecureItem, setSecureItem } from "./utils/storage"
|
||||
|
||||
@@ -43,8 +43,8 @@ const App = () => {
|
||||
setSecureItem(MNEMONIC_STORE, mnemonic)
|
||||
}
|
||||
|
||||
await init(mnemonic, undefined, Network.LIQUID)
|
||||
addLine("init", null)
|
||||
await connect(mnemonic, undefined, Network.LIQUID)
|
||||
addLine("connect", null)
|
||||
|
||||
let walletInfo = await getInfo(false)
|
||||
addLine("getInfo", JSON.stringify(walletInfo))
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
@interface RCT_EXTERN_MODULE(RNLiquidSwapSDK, RCTEventEmitter)
|
||||
|
||||
RCT_EXTERN_METHOD(
|
||||
initBindingWallet: (NSString*)mnemonic
|
||||
connect: (NSString*)mnemonic
|
||||
dataDir: (NSString*)dataDir
|
||||
network: (NSString*)network
|
||||
resolve: (RCTPromiseResolveBlock)resolve
|
||||
|
||||
@@ -51,8 +51,8 @@ class RNLiquidSwapSDK: RCTEventEmitter {
|
||||
throw LsSdkError.Generic(message: "Not initialized")
|
||||
}
|
||||
|
||||
@objc(initBindingWallet:dataDir:network:resolve:reject:)
|
||||
func initBindingWallet(_ mnemonic: String, dataDir: String, network: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
||||
@objc(connect:dataDir:network:resolve:reject:)
|
||||
func connect(_ mnemonic: String, dataDir: String, network: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
||||
if bindingWallet != nil {
|
||||
reject("Generic", "Already initialized", nil)
|
||||
return
|
||||
@@ -61,7 +61,7 @@ class RNLiquidSwapSDK: RCTEventEmitter {
|
||||
do {
|
||||
let dataDirTmp = dataDir.isEmpty ? RNLiquidSwapSDK.defaultDataDir.path : dataDir
|
||||
let networkTmp = try LiquidSwapSDKMapper.asNetwork(network: network)
|
||||
bindingWallet = try LiquidSwapSDK.`init`(mnemonic: mnemonic, dataDir: dataDirTmp, network: networkTmp)
|
||||
bindingWallet = try LiquidSwapSDK.connect(mnemonic: mnemonic, dataDir: dataDirTmp, network: networkTmp)
|
||||
resolve(["status": "ok"])
|
||||
} catch let err {
|
||||
rejectErr(err: err, reject: reject)
|
||||
|
||||
@@ -56,11 +56,12 @@ export enum Network {
|
||||
LIQUID_TESTNET = "liquidTestnet"
|
||||
}
|
||||
|
||||
export const init = async (mnemonic: string, dataDir: string = "", network: Network): Promise<void> => {
|
||||
const response = await LiquidSwapSDK.initBindingWallet(mnemonic, dataDir, network)
|
||||
export const connect = async (mnemonic: string, dataDir: string = "", network: Network): Promise<BindingWallet> => {
|
||||
const response = await LiquidSwapSDK.connect(mnemonic, dataDir, network)
|
||||
return response
|
||||
}
|
||||
|
||||
|
||||
export const getInfo = async (withScan: boolean): Promise<WalletInfo> => {
|
||||
const response = await LiquidSwapSDK.getInfo(withScan)
|
||||
return response
|
||||
|
||||
Reference in New Issue
Block a user