From 89676dd2ce3981d5664f8d0d288e33d26de8bd16 Mon Sep 17 00:00:00 2001 From: ethicnology Date: Tue, 14 Jan 2025 11:34:55 -0500 Subject: [PATCH 1/9] docs: update example --- example/lib/main.dart | 57 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/example/lib/main.dart b/example/lib/main.dart index 8065a45..0fd2b0c 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,19 +1,54 @@ -import 'package:boltz/boltz.dart' as bltz; +import 'package:boltz/boltz.dart'; import 'package:flutter/material.dart'; void main() async { - await test(); - runApp(MaterialApp(home: Scaffold(body: Container(color: Colors.red)))); + await LibBoltz.init(); + runApp(const MyApp()); } -Future test() async { - try { - await bltz.LibBoltz.init(); +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + appBar: AppBar(title: const Text('Fees Display')), + body: const FeesWidget(), + ), + ); + } +} + +class FeesWidget extends StatelessWidget { + const FeesWidget({Key? key}) : super(key: key); + + Future fetchFees() async { const boltzUrl = 'https://api.testnet.boltz.exchange/v2'; - // const amount = 100000; - final fees = await const bltz.Fees(boltzUrl: boltzUrl).chain(); - print('FEES:$fees'); - } catch (e) { - print('\n\nERRRR: $e\n\n'); + try { + final fees = await const Fees(boltzUrl: boltzUrl).chain(); + return fees.toString(); + } catch (e) { + return 'Error: $e'; + } + } + + @override + Widget build(BuildContext context) { + return FutureBuilder( + future: fetchFees(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } else if (snapshot.hasError || !snapshot.hasData) { + return const Center(child: Text('Failed to load fees.')); + } else { + return SingleChildScrollView( + padding: const EdgeInsets.all(16), + child: Text(snapshot.data!, style: const TextStyle(fontSize: 16)), + ); + } + }, + ); } } From dac143423705613cf4d2e6ef10a3b6bac6cdf473 Mon Sep 17 00:00:00 2001 From: ethicnology Date: Tue, 14 Jan 2025 11:35:45 -0500 Subject: [PATCH 2/9] chore: upgrade dependencies --- pubspec.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pubspec.yaml b/pubspec.yaml index e6caf5d..9aeb55c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -18,17 +18,17 @@ dependencies: dio: ^5.4.0 freezed_annotation: ^2.4.1 json_annotation: ^4.8.1 - archive: ^3.4.10 + archive: ^4.0.2 http: ^1.2.0 - web_socket_channel: ^2.1.0 + web_socket_channel: ^3.0.1 # rust_lib_boltz: # path: rust_builder dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^3.0.0 - ffigen: ^9.0.1 + flutter_lints: ^5.0.0 + ffigen: ^15.0.0 test: ^1.24.3 build_runner: ^2.4.6 freezed: ^2.4.6 From 69602d4d156d08134d55811b22113648c9a0ec17 Mon Sep 17 00:00:00 2001 From: ethicnology Date: Tue, 14 Jan 2025 11:46:13 -0500 Subject: [PATCH 3/9] chore: flutter pub upgrade --major-versions except freezed --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 9aeb55c..3538f16 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -28,7 +28,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^5.0.0 - ffigen: ^15.0.0 + ffigen: ^16.0.0 test: ^1.24.3 build_runner: ^2.4.6 freezed: ^2.4.6 From 5715b8c8d37b60bc798f3f59ec3ee3c852da499a Mon Sep 17 00:00:00 2001 From: ethicnology Date: Tue, 14 Jan 2025 11:52:48 -0500 Subject: [PATCH 4/9] chore: rename --- rust/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/Cargo.toml b/rust/Cargo.toml index c2ed356..0d98489 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "boltz_dart" +name = "boltz" authors = [ "i5hi , mocodesmo ", ] @@ -7,7 +7,7 @@ version = "0.1.6" edition = "2021" [lib] -name = "boltz_dart" +name = "boltz" doctest = false crate-type = ["staticlib", "cdylib"] From d1b77e2b1f261b4eec1fe10ec6ecd2eaa4a5435f Mon Sep 17 00:00:00 2001 From: ethicnology Date: Tue, 14 Jan 2025 11:36:03 -0500 Subject: [PATCH 5/9] chore: ./codegen.sh --- lib/boltz.dart | 2 +- lib/src/generated/frb_generated.dart | 2 +- lib/src/generated/frb_generated.io.dart | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/boltz.dart b/lib/boltz.dart index bdc0812..ced12aa 100644 --- a/lib/boltz.dart +++ b/lib/boltz.dart @@ -1,4 +1,4 @@ -library boltz; +library; export './src/generated/frb_generated.dart'; export './src/generated/api/btc_ln.dart'; diff --git a/lib/src/generated/frb_generated.dart b/lib/src/generated/frb_generated.dart index d069fc2..1a00cd9 100644 --- a/lib/src/generated/frb_generated.dart +++ b/lib/src/generated/frb_generated.dart @@ -66,7 +66,7 @@ class BoltzCore static const kDefaultExternalLibraryLoaderConfig = ExternalLibraryLoaderConfig( - stem: 'boltz_dart', + stem: 'boltz', ioDirectory: 'rust/target/release/', webPrefix: 'pkg/', ); diff --git a/lib/src/generated/frb_generated.io.dart b/lib/src/generated/frb_generated.io.dart index 155aaad..f4db8dc 100644 --- a/lib/src/generated/frb_generated.io.dart +++ b/lib/src/generated/frb_generated.io.dart @@ -2330,10 +2330,14 @@ class BoltzCoreWire implements BaseWire { _dummy_method_to_enforce_bundlingPtr.asFunction(); } -typedef DartPostCObjectFnType = ffi.Pointer< - ffi.NativeFunction< - ffi.Bool Function(DartPort port_id, ffi.Pointer message)>>; typedef DartPort = ffi.Int64; +typedef DartDartPort = int; +typedef DartPostCObjectFnTypeFunction = ffi.Bool Function( + DartPort port_id, ffi.Pointer message); +typedef DartDartPostCObjectFnTypeFunction = bool Function( + DartDartPort port_id, ffi.Pointer message); +typedef DartPostCObjectFnType + = ffi.Pointer>; final class wire_cst_list_prim_u_8_strict extends ffi.Struct { external ffi.Pointer ptr; From c97a3fc27dad3ca9b6e72a21c2b41b6d534e8d52 Mon Sep 17 00:00:00 2001 From: ethicnology Date: Wed, 15 Jan 2025 12:43:18 -0500 Subject: [PATCH 6/9] docs: bump version --- CHANGELOG.md | 6 +++++- pubspec.yaml | 2 +- rust/README.md | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b3dd1c..f2906ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ # 0.1.7 -Initial version +- Initial version + +# 0.1.8 + +- fix libboltz.a not found diff --git a/pubspec.yaml b/pubspec.yaml index 3538f16..ed48b70 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: boltz description: A dart/flutter library for boltz swaps -version: 0.1.7 +version: 0.1.8 homepage: https://github.com/SatoshiPortal/boltz-dart environment: diff --git a/rust/README.md b/rust/README.md index 12fba5d..a5c4de4 100644 --- a/rust/README.md +++ b/rust/README.md @@ -10,7 +10,7 @@ m/purpose/network/21/0/* ```dart -import 'package:boltz_client_flutter/boltz_client_flutter.dart'; +import 'package:boltz/boltz.dart'; final network = BitcoinNetwork.Mainnet; final electrumUrl = 'electrum.bullbitcoin.com:50002' From c88f666fb49450da426b0989b81db22005132ff1 Mon Sep 17 00:00:00 2001 From: ethicnology Date: Wed, 22 Jan 2025 18:39:03 -0500 Subject: [PATCH 7/9] ci: improve architecture coverage for precompiled_binaries --- .github/workflows/precompiled_binaries.yml | 37 +++++++++++++++------- rust/Cargo.toml | 6 ++++ 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/.github/workflows/precompiled_binaries.yml b/.github/workflows/precompiled_binaries.yml index 95db273..7194656 100644 --- a/.github/workflows/precompiled_binaries.yml +++ b/.github/workflows/precompiled_binaries.yml @@ -1,6 +1,6 @@ on: push: - branches: [ main ] + branches: [ develop ] name: Precompile Binaries jobs: @@ -16,28 +16,43 @@ jobs: steps: - uses: actions/checkout@v4 - uses: dart-lang/setup-dart@v1 + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + override: true + + - name: Set RUSTFLAGS for macOS + if: (matrix.os == 'macOS-latest') + run: | + echo "RUSTFLAGS=-C link-arg=-undefined -C link-arg=dynamic_lookup" >> $GITHUB_ENV + echo "MACOSX_DEPLOYMENT_TARGET=17.5" >> $GITHUB_ENV + echo "IPHONEOS_DEPLOYMENT_TARGET=17.5" >> $GITHUB_ENV + + - name: Install Xcode Tools + if: (matrix.os == 'macOS-latest') + run: xcode-select --install || echo "Xcode tools already installed" - - name: Install GTK - if: (matrix.os == 'ubuntu-latest') - run: sudo apt-get update && sudo apt-get install libgtk-3-dev - name: Set up Android SDK if: (matrix.os == 'ubuntu-20.04') - uses: android-actions/setup-android@v2 + uses: android-actions/setup-android@v2 - name: Install Specific NDK if: (matrix.os == 'ubuntu-20.04') - run: sdkmanager --install "ndk;24.0.8215888" - - name: Precompile - if: (matrix.os == 'macOS-latest') || (matrix.os == 'windows-latest') + run: sdkmanager --install "ndk;25.1.8937393" + - name: Precompile (with iOS) + if: (matrix.os == 'macOS-latest') run: dart run build_tool precompile-binaries -v --manifest-dir=../../rust --repository=SatoshiPortal/boltz-dart working-directory: cargokit/build_tool env: GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} PRIVATE_KEY: ${{ secrets.RELEASE_PRIVATE_KEY }} - + - name: Precompile (with Android) - if: (matrix.os == 'ubuntu-latest') - run: dart run build_tool precompile-binaries -v --manifest-dir=../../rust --repository=SatoshiPortal/boltz-dart --android-sdk-location=/usr/local/lib/android/sdk --android-ndk-version=24.0.8215888 --android-min-sdk-version=23 + if: (matrix.os == 'ubuntu-20.04') + run: dart run build_tool precompile-binaries -v --manifest-dir=../../rust --repository=SatoshiPortal/boltz-dart --android-sdk-location=/usr/local/lib/android/sdk --android-ndk-version=25.1.8937393 --android-min-sdk-version=23 working-directory: cargokit/build_tool env: GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }} diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 0d98489..bb01caa 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -35,3 +35,9 @@ opt-level = "z" lto = true codegen-units = 1 panic = "abort" + +[target.'cfg(target_os = "macos")'] +rustflags = [ + "-C", "link-arg=-undefined", + "-C", "link-arg=dynamic_lookup", +] From 5a5999158c74fcdf8f779957c9dcdd88360daea5 Mon Sep 17 00:00:00 2001 From: ethicnology Date: Wed, 22 Jan 2025 19:34:46 -0500 Subject: [PATCH 8/9] ci: comment out windows pipeline in await of fix --- .github/workflows/precompiled_binaries.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/precompiled_binaries.yml b/.github/workflows/precompiled_binaries.yml index 7194656..31d3f27 100644 --- a/.github/workflows/precompiled_binaries.yml +++ b/.github/workflows/precompiled_binaries.yml @@ -12,7 +12,7 @@ jobs: os: - ubuntu-20.04 - macOS-latest - - windows-latest + # - windows-latest steps: - uses: actions/checkout@v4 - uses: dart-lang/setup-dart@v1 From f9cbfc4c6617af59c11a9612a8016596a4ecaffc Mon Sep 17 00:00:00 2001 From: ethicnology Date: Wed, 22 Jan 2025 20:48:57 -0500 Subject: [PATCH 9/9] ci: target main --- .github/workflows/precompiled_binaries.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/precompiled_binaries.yml b/.github/workflows/precompiled_binaries.yml index 31d3f27..5eb0c47 100644 --- a/.github/workflows/precompiled_binaries.yml +++ b/.github/workflows/precompiled_binaries.yml @@ -1,6 +1,6 @@ on: push: - branches: [ develop ] + branches: [ main ] name: Precompile Binaries jobs: