diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f9aaacc76..677e875f1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -5,7 +5,7 @@ on: # Triggers the workflow on push events but only for the "main" branch push: branches: [ main ] - pull_request: + pull_request: # Allows you to run this workflow manually from the Actions tab workflow_dispatch: @@ -78,6 +78,72 @@ jobs: brew install kotlin ktlint swiftformat make react-native + - name: Check git status + env: + GIT_PAGER: cat + run: | + status=$(git status --porcelain) + if [[ -n "$status" ]]; then + echo "Git status has changes" + echo "$status" + git diff + exit 1 + else + echo "No changes in git status" + fi + + flutter: + name: Check Dart/Flutter bindings + runs-on: macOS-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Flutter + uses: subosito/flutter-action@v2 + with: + channel: stable + - run: flutter --version + + - name: Set up just + uses: extractions/setup-just@v2 + + + - name: Set up Melos + uses: bluefireteam/melos-action@v3 + with: + run-bootstrap: false + + - name: Initialize the workspace + working-directory: lib/bindings/bindings-flutter/ + run: | + just clean + just init + + - name: Install flutter_rust_bridge_codegen dependencies + working-directory: lib/bindings/bindings-flutter/ + run: just frb + + - name: Generate Dart/Flutter bindings + working-directory: lib/bindings/bindings-flutter/ + continue-on-error: true + run: | + just codegen + + - name: Generate FFI bindings + working-directory: lib/bindings/bindings-flutter/ + continue-on-error: true + run: | + just ffigen + + - name: Static Analysis + working-directory: lib/bindings/bindings-flutter/ + run: melos analyze + + - name: Check Formatting + working-directory: lib/bindings/bindings-flutter/ + run: melos check-format + - name: Check git status env: GIT_PAGER: cat diff --git a/.gitignore b/.gitignore index 4bc09e758..69d7d2f76 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,9 @@ **/.dart_tool # fenv **/.flutter-version +# symlink headers +packages/flutter/ios/Classes/breez_liquid_sdk.h +packages/flutter/macos/Classes/breez_liquid_sdk.h # Miscellaneous .DS_Store .idea/ diff --git a/cli/Cargo.lock b/cli/Cargo.lock index 887284181..5f1cbfc4a 100644 --- a/cli/Cargo.lock +++ b/cli/Cargo.lock @@ -789,9 +789,9 @@ dependencies = [ [[package]] name = "flutter_rust_bridge" -version = "2.0.0-dev.32" +version = "2.0.0-dev.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34014207992d96657886c50c90ab503bb4581cc9c2b1ea7ffad2ec12400032da" +checksum = "293c86d55bf9b6108482f8574517a8e7e032dd1d9260e1f4801c6180fdd2583c" dependencies = [ "allo-isolate", "android_logger", @@ -817,9 +817,9 @@ dependencies = [ [[package]] name = "flutter_rust_bridge_macros" -version = "2.0.0-dev.32" +version = "2.0.0-dev.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd250246955bb9548a99733859946a5721289ec152de5fcc6eb03da7d3143dd1" +checksum = "d852460bc16316c4491a60e1652612f717764d436f3a97f8f1cc7c3b54d9a0dc" dependencies = [ "hex", "quote", diff --git a/lib/Cargo.lock b/lib/Cargo.lock index 212ddad96..8fcd36e68 100644 --- a/lib/Cargo.lock +++ b/lib/Cargo.lock @@ -927,9 +927,9 @@ dependencies = [ [[package]] name = "flutter_rust_bridge" -version = "2.0.0-dev.32" +version = "2.0.0-dev.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34014207992d96657886c50c90ab503bb4581cc9c2b1ea7ffad2ec12400032da" +checksum = "293c86d55bf9b6108482f8574517a8e7e032dd1d9260e1f4801c6180fdd2583c" dependencies = [ "allo-isolate", "android_logger", @@ -955,9 +955,9 @@ dependencies = [ [[package]] name = "flutter_rust_bridge_macros" -version = "2.0.0-dev.32" +version = "2.0.0-dev.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd250246955bb9548a99733859946a5721289ec152de5fcc6eb03da7d3143dd1" +checksum = "d852460bc16316c4491a60e1652612f717764d436f3a97f8f1cc7c3b54d9a0dc" dependencies = [ "hex", "quote", diff --git a/lib/bindings/bindings-flutter/README.md b/lib/bindings/bindings-flutter/README.md index e601411a4..bc9498d43 100644 --- a/lib/bindings/bindings-flutter/README.md +++ b/lib/bindings/bindings-flutter/README.md @@ -2,17 +2,18 @@ Binding generation & build scripts for Dart/Flutter packages of Breez Liquid SDK. -Prerequisites: -- [just](https://github.com/casey/just) command runner. -- [Melos](https://github.com/invertase/melos) CLI tool. - -``` -just clean -just init -just gen -just link -just build -``` +## Prerequisites +- [just](https://github.com/casey/just?tab=readme-ov-file#installation) command runner. + +## Getting Started +Run `just bootstrap` to initialize your workspace. + +To see all available recipes, run `just`. + +## Troubleshooting +- [flutter_rust_bridge > Troubleshooting](https://cjycode.com/flutter_rust_bridge/manual/troubleshooting) +- [flutter_rust_bridge > Ffigen Troubleshooting](https://cjycode.com/flutter_rust_bridge/manual/ffigen-troubleshooting) + ## License diff --git a/lib/bindings/bindings-flutter/breez_liquid_sdk/include/breez_liquid_sdk.h b/lib/bindings/bindings-flutter/breez_liquid_sdk/include/breez_liquid_sdk.h index e69de29bb..a87a1b0be 100644 --- a/lib/bindings/bindings-flutter/breez_liquid_sdk/include/breez_liquid_sdk.h +++ b/lib/bindings/bindings-flutter/breez_liquid_sdk/include/breez_liquid_sdk.h @@ -0,0 +1,200 @@ +#include +#include +#include +// EXTRA BEGIN +typedef struct DartCObject *WireSyncRust2DartDco; +typedef struct WireSyncRust2DartSse { + uint8_t *ptr; + int32_t len; +} WireSyncRust2DartSse; + +typedef int64_t DartPort; +typedef bool (*DartPostCObjectFnType)(DartPort port_id, void *message); +void store_dart_post_cobject(DartPostCObjectFnType ptr); +// EXTRA END +typedef struct _Dart_Handle* Dart_Handle; + +/** + * Claim tx feerate for Receive, in sats per vbyte. + * Since the Liquid blocks are consistently empty for now, we hardcode the minimum feerate. + */ +#define LIQUID_CLAIM_TX_FEERATE 0.1 + +typedef struct wire_cst_list_prim_u_8_strict { + uint8_t *ptr; + int32_t len; +} wire_cst_list_prim_u_8_strict; + +typedef struct wire_cst_connect_request { + struct wire_cst_list_prim_u_8_strict *mnemonic; + struct wire_cst_list_prim_u_8_strict *data_dir; + int32_t network; +} wire_cst_connect_request; + +typedef struct wire_cst_get_info_request { + bool with_scan; +} wire_cst_get_info_request; + +typedef struct wire_cst_prepare_receive_request { + uint64_t payer_amount_sat; +} wire_cst_prepare_receive_request; + +typedef struct wire_cst_prepare_send_request { + struct wire_cst_list_prim_u_8_strict *invoice; +} wire_cst_prepare_send_request; + +typedef struct wire_cst_prepare_receive_response { + struct wire_cst_list_prim_u_8_strict *pair_hash; + uint64_t payer_amount_sat; + uint64_t fees_sat; +} wire_cst_prepare_receive_response; + +typedef struct wire_cst_restore_request { + struct wire_cst_list_prim_u_8_strict *backup_path; +} wire_cst_restore_request; + +typedef struct wire_cst_prepare_send_response { + struct wire_cst_list_prim_u_8_strict *id; + uint64_t payer_amount_sat; + uint64_t receiver_amount_sat; + uint64_t total_fees; + struct wire_cst_list_prim_u_8_strict *funding_address; + struct wire_cst_list_prim_u_8_strict *invoice; +} wire_cst_prepare_send_response; + +typedef struct wire_cst_payment { + struct wire_cst_list_prim_u_8_strict *id; + uint32_t *timestamp; + uint64_t amount_sat; + uint64_t *fees_sat; + int32_t payment_type; + struct wire_cst_list_prim_u_8_strict *invoice; +} wire_cst_payment; + +typedef struct wire_cst_list_payment { + struct wire_cst_payment *ptr; + int32_t len; +} wire_cst_list_payment; + +typedef struct wire_cst_get_info_response { + uint64_t balance_sat; + struct wire_cst_list_prim_u_8_strict *pubkey; +} wire_cst_get_info_response; + +typedef struct wire_cst_PaymentError_Generic { + struct wire_cst_list_prim_u_8_strict *err; +} wire_cst_PaymentError_Generic; + +typedef struct wire_cst_PaymentError_LwkError { + struct wire_cst_list_prim_u_8_strict *err; +} wire_cst_PaymentError_LwkError; + +typedef struct wire_cst_PaymentError_SendError { + struct wire_cst_list_prim_u_8_strict *err; +} wire_cst_PaymentError_SendError; + +typedef struct wire_cst_PaymentError_SignerError { + struct wire_cst_list_prim_u_8_strict *err; +} wire_cst_PaymentError_SignerError; + +typedef union PaymentErrorKind { + struct wire_cst_PaymentError_Generic Generic; + struct wire_cst_PaymentError_LwkError LwkError; + struct wire_cst_PaymentError_SendError SendError; + struct wire_cst_PaymentError_SignerError SignerError; +} PaymentErrorKind; + +typedef struct wire_cst_payment_error { + int32_t tag; + union PaymentErrorKind kind; +} wire_cst_payment_error; + +typedef struct wire_cst_receive_payment_response { + struct wire_cst_list_prim_u_8_strict *id; + struct wire_cst_list_prim_u_8_strict *invoice; +} wire_cst_receive_payment_response; + +typedef struct wire_cst_send_payment_response { + struct wire_cst_list_prim_u_8_strict *txid; +} wire_cst_send_payment_response; + +void frbgen_breez_liquid_wire_backup(int64_t port_); + +void frbgen_breez_liquid_wire_connect(int64_t port_, struct wire_cst_connect_request *req); + +void frbgen_breez_liquid_wire_empty_wallet_cache(int64_t port_); + +void frbgen_breez_liquid_wire_get_info(int64_t port_, struct wire_cst_get_info_request *req); + +void frbgen_breez_liquid_wire_list_payments(int64_t port_, bool with_scan, bool include_pending); + +void frbgen_breez_liquid_wire_prepare_receive_payment(int64_t port_, + struct wire_cst_prepare_receive_request *req); + +void frbgen_breez_liquid_wire_prepare_send_payment(int64_t port_, + struct wire_cst_prepare_send_request *req); + +void frbgen_breez_liquid_wire_receive_payment(int64_t port_, + struct wire_cst_prepare_receive_response *req); + +void frbgen_breez_liquid_wire_recover_funds(int64_t port_, uintptr_t recovery); + +void frbgen_breez_liquid_wire_restore(int64_t port_, struct wire_cst_restore_request *req); + +void frbgen_breez_liquid_wire_send_payment(int64_t port_, + struct wire_cst_prepare_send_response *req); + +void frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery(const void *ptr); + +void frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery(const void *ptr); + +struct wire_cst_connect_request *frbgen_breez_liquid_cst_new_box_autoadd_connect_request(void); + +struct wire_cst_get_info_request *frbgen_breez_liquid_cst_new_box_autoadd_get_info_request(void); + +struct wire_cst_prepare_receive_request *frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request(void); + +struct wire_cst_prepare_receive_response *frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_response(void); + +struct wire_cst_prepare_send_request *frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request(void); + +struct wire_cst_prepare_send_response *frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response(void); + +struct wire_cst_restore_request *frbgen_breez_liquid_cst_new_box_autoadd_restore_request(void); + +uint32_t *frbgen_breez_liquid_cst_new_box_autoadd_u_32(uint32_t value); + +uint64_t *frbgen_breez_liquid_cst_new_box_autoadd_u_64(uint64_t value); + +struct wire_cst_list_payment *frbgen_breez_liquid_cst_new_list_payment(int32_t len); + +struct wire_cst_list_prim_u_8_strict *frbgen_breez_liquid_cst_new_list_prim_u_8_strict(int32_t len); +static int64_t dummy_method_to_enforce_bundling(void) { + int64_t dummy_var = 0; + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_connect_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_get_info_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_response); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_restore_request); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_u_32); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_box_autoadd_u_64); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_list_payment); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_cst_new_list_prim_u_8_strict); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_backup); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_connect); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_empty_wallet_cache); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_get_info); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_list_payments); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_prepare_receive_payment); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_prepare_send_payment); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_receive_payment); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_recover_funds); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_restore); + dummy_var ^= ((int64_t) (void*) frbgen_breez_liquid_wire_send_payment); + dummy_var ^= ((int64_t) (void*) store_dart_post_cobject); + return dummy_var; +} diff --git a/lib/bindings/bindings-flutter/flutter_rust_bridge.yml b/lib/bindings/bindings-flutter/flutter_rust_bridge.yml index bd09e92c4..3c6ec32d8 100644 --- a/lib/bindings/bindings-flutter/flutter_rust_bridge.yml +++ b/lib/bindings/bindings-flutter/flutter_rust_bridge.yml @@ -2,8 +2,7 @@ rust_input: ../../core/src/bindings.rs dart_output: ../../../packages/dart/lib/src rust_output: ../../core/src/frb/bridge.rs c_output: breez_liquid_sdk/include/breez_liquid_sdk.h -duplicated_c_output: [../../../packages/flutter/macos/Classes/breez_liquid_sdk.h, ../../../packages/flutter/ios/Classes/breez_liquid_sdk.h] web: false full_dep: true add_mod_to_lib: false -deps_check: false \ No newline at end of file +dart_format_line_length: 80 \ No newline at end of file diff --git a/lib/bindings/bindings-flutter/justfile b/lib/bindings/bindings-flutter/justfile index 00e2af3dc..74512bb82 100644 --- a/lib/bindings/bindings-flutter/justfile +++ b/lib/bindings/bindings-flutter/justfile @@ -3,16 +3,41 @@ frb_bin := "flutter_rust_bridge_codegen generate" export CARGO_TERM_COLOR := "always" -# generate bindings +default: + just --list --unsorted + +# Initializes the workspace +bootstrap frb='true': + just clean + @if {{frb}} == true; then just frb; fi + just init + just gen + just build + just link + just check + +# Install flutter_rust_bridge_codegen dependencies +frb: + cargo install cargo-expand + cargo install flutter_rust_bridge_codegen --version 2.0.0-dev.33 + dart pub global activate ffigen + dart pub global activate ffi + cargo install cargo-xcode + +# Generate bindings gen: codegen && ffigen +# Generate Dart/Flutter bindings && softlink C headers codegen: {{frb_bin}} + -ln -sf $(pwd)/breez_liquid_sdk/include/breez_liquid_sdk.h ../../../packages/flutter/ios/Classes/breez_liquid_sdk.h + -ln -sf $(pwd)/breez_liquid_sdk/include/breez_liquid_sdk.h ../../../packages/flutter/macos/Classes/breez_liquid_sdk.h +# Generate FFI bindings ffigen: cd ../../../packages/flutter/ && flutter pub run ffigen --config ffigen.yaml && cd .. -# builds the local library for testing +# Builds the local library for testing build *args: cargo build --package breez-liquid-sdk --manifest-path ../../core/Cargo.toml --features frb {{args}} @@ -25,41 +50,46 @@ build-android profile='release': build-other *args: dart scripts/build_other.dart {{args}} -# (melos) -test: test-dart # test-flutter +# (melos) Run tests on packages in workspace +test build='false': + just test-dart {{build}} +# test-flutter {{build}} + +# (melos) Run tests on Dart packages in workspace +test-dart build='true': + @if {{build}} == true; then just build; fi + melos test-dart -# (melos) -test-dart: build - melos run test-dart +# (melos) Run integration tests on Flutter packages in workspace +#test-flutter build='true': +# @if {{build}} == true; then build; fi +# melos test-flutter -# softlinks library archives from platform-build to their expected locations +# Softlinks library archives from platform-build to their expected locations link: -ln -sf $(pwd)/platform-build/breez_liquid_sdk.xcframework.zip ../../../packages/flutter/macos/Frameworks/{{curr_version}}.zip -ln -sf $(pwd)/platform-build/breez_liquid_sdk.xcframework.zip ../../../packages/flutter/ios/Frameworks/{{curr_version}}.zip -ln -sf $(pwd)/platform-build/other.tar.gz ../../../packages/flutter/linux/{{curr_version}}.tar.gz -ln -sf $(pwd)/platform-build/other.tar.gz ../../../packages/flutter/windows/{{curr_version}}.tar.gz -ln -sf $(pwd)/platform-build/android.tar.gz ../../../packages/flutter/android/{{curr_version}}.tar.gz - -ln -sf $(pwd)/breez_liquid_sdk/include/breez_liquid_sdk.h ../../../packages/flutter/ios/Classes/breez_liquid_sdk.h - -ln -sf $(pwd)/breez_liquid_sdk/include/breez_liquid_sdk.h ../../../packages/flutter/macos/Classes/breez_liquid_sdk.h - -# (melos) -test-flutter: build-apple build-android build-other - melos run test-flutter # (melos) use instead of flutter pub get init *args: + dart pub global activate melos melos bootstrap {{args}} -# (melos) generate docs +# (melos) Generate docs for packages in workspace docs: - melos run docs + melos docs -# (melos) +# (melos) Cleans the current workspace and all its packages of temporary pub & generated Melos IDE files. clean: melos clean +# (melos) Analyze & check the format of packages in workspace check: - flutter analyze + melos analyze + melos check-format # Open melos.yaml melos: diff --git a/lib/bindings/bindings-flutter/melos.yaml b/lib/bindings/bindings-flutter/melos.yaml index 59077326e..a3f8be945 100644 --- a/lib/bindings/bindings-flutter/melos.yaml +++ b/lib/bindings/bindings-flutter/melos.yaml @@ -55,19 +55,19 @@ scripts: dirExists: integration_test analyze: - exec: flutter analyze . + exec: flutter analyze --fatal-infos . description: Analyze a specific package in this project. check-format: - exec: dart format --set-exit-if-changed . + exec: dart format -o none --set-exit-if-changed -l 80 . description: Check the format of a specific package in this project. format: - exec: dart format . + exec: dart format -l 80 . description: Format a specific package in this project. # TODO: deprecate when first version to pub.dev is published docs: - exec: dart doc -o ../../website/\$MELOS_PACKAGE_NAME + exec: dart doc -o website/\$MELOS_PACKAGE_NAME packageFilters: private: false diff --git a/lib/bindings/bindings-flutter/scripts/build_apple.dart b/lib/bindings/bindings-flutter/scripts/build_apple.dart index e66ad964b..3fdc80b9c 100755 --- a/lib/bindings/bindings-flutter/scripts/build_apple.dart +++ b/lib/bindings/bindings-flutter/scripts/build_apple.dart @@ -71,7 +71,8 @@ Future mainImpl(List args) async { for (final target in targets) { print(' Building target $target'); await run('rustup target add $target'); - await run('cargo build --package breez-liquid-sdk --target=$target $profileArg'); + await run( + 'cargo build --package breez-liquid-sdk --target=$target $profileArg'); } await run('mkdir -p mac-lipo ios-sim-lipo'); diff --git a/lib/bindings/bindings-flutter/scripts/build_other.dart b/lib/bindings/bindings-flutter/scripts/build_other.dart index 975d9921e..fc48c4b11 100755 --- a/lib/bindings/bindings-flutter/scripts/build_other.dart +++ b/lib/bindings/bindings-flutter/scripts/build_other.dart @@ -71,12 +71,14 @@ void main(List args) { enum Targets { linuxArm64('aarch64-unknown-linux-gnu', 'linux-arm64'), linuxX64('x86_64-unknown-linux-gnu', 'linux-x64'); + // TODO: Enable builds for Windows targets //windowsArm64('aarch64-pc-windows-msvc', 'windows-arm64', isWindows: true), //windowsX64('x86_64-pc-windows-msvc', 'windows-x64', isWindows: true); final String triple; final String flutterIdentifier; final bool isWindows; + // ignore: unused_element const Targets(this.triple, this.flutterIdentifier, {this.isWindows = false}); static Targets get host { diff --git a/lib/core/Cargo.toml b/lib/core/Cargo.toml index 614c98845..2e8770a56 100644 --- a/lib/core/Cargo.toml +++ b/lib/core/Cargo.toml @@ -11,7 +11,7 @@ crate-type = ["lib", "cdylib", "staticlib"] anyhow = { workspace = true } bip39 = { version = "2.0.0", features = ["serde"] } boltz-client = { git = "https://github.com/SatoshiPortal/boltz-rust", rev = "6f45fff8b87c7530c847eb05f018906c48785a6c" } -flutter_rust_bridge = { version = "=2.0.0-dev.32", features = ["chrono"], optional = true } +flutter_rust_bridge = { version = "=2.0.0-dev.33", features = ["chrono"], optional = true } log = "0.4.20" lwk_common = "0.3.0" lwk_signer = "0.3.0" @@ -28,4 +28,4 @@ uuid = { version = "1.8.0", features = ["v4"] } [features] default = ["frb"] -frb = ["dep:flutter_rust_bridge"] \ No newline at end of file +frb = ["dep:flutter_rust_bridge"] diff --git a/lib/core/src/frb/bridge.io.rs b/lib/core/src/frb/bridge.io.rs index 9df78cfeb..772f1dfae 100644 --- a/lib/core/src/frb/bridge.io.rs +++ b/lib/core/src/frb/bridge.io.rs @@ -1,5 +1,5 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.32. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.33. // Section: imports @@ -28,7 +28,7 @@ impl CstDecode for usize { fn cst_decode(self) -> LBtcReverseRecovery { CstDecode::< RustOpaqueNom< - flutter_rust_bridge::for_generated::rust_async::RwLock, + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, >, >::cst_decode(self) .rust_auto_opaque_decode_owned() @@ -36,13 +36,13 @@ impl CstDecode for usize { } impl CstDecode< - RustOpaqueNom>, + RustOpaqueNom>, > for usize { // Codec=Cst (C-struct based), see doc to use other codecs fn cst_decode( self, - ) -> RustOpaqueNom> + ) -> RustOpaqueNom> { unsafe { decode_rust_opaque_nom(self as _) } } @@ -513,20 +513,20 @@ pub extern "C" fn frbgen_breez_liquid_wire_send_payment( } #[no_mangle] -pub extern "C" fn frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( +pub extern "C" fn frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( ptr: *const std::ffi::c_void, ) { unsafe { - StdArc::>::increment_strong_count(ptr as _); + StdArc::>::increment_strong_count(ptr as _); } } #[no_mangle] -pub extern "C" fn frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( +pub extern "C" fn frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( ptr: *const std::ffi::c_void, ) { unsafe { - StdArc::>::decrement_strong_count(ptr as _); + StdArc::>::decrement_strong_count(ptr as _); } } diff --git a/lib/core/src/frb/bridge.rs b/lib/core/src/frb/bridge.rs index 70f3f8a8b..32ffddb3c 100644 --- a/lib/core/src/frb/bridge.rs +++ b/lib/core/src/frb/bridge.rs @@ -1,5 +1,5 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.32. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.33. #![allow( non_camel_case_types, @@ -31,7 +31,7 @@ flutter_rust_bridge::frb_generated_boilerplate!( default_rust_opaque = RustOpaqueNom, default_rust_auto_opaque = RustAutoOpaqueNom, ); -pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.0.0-dev.32"; +pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_VERSION: &str = "2.0.0-dev.33"; pub(crate) const FLUTTER_RUST_BRIDGE_CODEGEN_CONTENT_HASH: i32 = -1225779344; // Section: executor @@ -292,14 +292,14 @@ impl SseDecode for LBtcReverseRecovery { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { let mut inner = , + flutter_rust_bridge::for_generated::RustAutoOpaqueInner, >>::sse_decode(deserializer); return inner.rust_auto_opaque_decode_owned(); } } impl SseDecode - for RustOpaqueNom> + for RustOpaqueNom> { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { @@ -955,12 +955,12 @@ impl SseEncode for flutter_rust_bridge::for_generated::anyhow::Error { impl SseEncode for LBtcReverseRecovery { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, StdArc<_>>(self), serializer); + >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, StdArc<_>>(self), serializer); } } impl SseEncode - for RustOpaqueNom> + for RustOpaqueNom> { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { diff --git a/packages/dart/analysis_options.yaml b/packages/dart/analysis_options.yaml new file mode 100644 index 000000000..493d1b556 --- /dev/null +++ b/packages/dart/analysis_options.yaml @@ -0,0 +1,10 @@ +include: package:lints/recommended.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options + +analyzer: + exclude: + - '**.freezed.dart' + - '**.io.dart' + - 'lib/src/**/' \ No newline at end of file diff --git a/packages/dart/lib/breez_liquid.dart b/packages/dart/lib/breez_liquid.dart index 5c05cf792..d55f1c8ac 100644 --- a/packages/dart/lib/breez_liquid.dart +++ b/packages/dart/lib/breez_liquid.dart @@ -3,6 +3,7 @@ library; export 'src/bindings.dart'; export 'src/model.dart'; +export 'src/error.dart'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; import 'src/frb_generated.dart'; diff --git a/packages/dart/lib/src/bindings.dart b/packages/dart/lib/src/bindings.dart index 3f4ea942e..a8fc542d9 100644 --- a/packages/dart/lib/src/bindings.dart +++ b/packages/dart/lib/src/bindings.dart @@ -1,5 +1,5 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.32. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.33. // ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import @@ -47,7 +47,7 @@ Future backup({dynamic hint}) => RustLib.instance.api.backup(hint: hint); Future restore({required RestoreRequest req, dynamic hint}) => RustLib.instance.api.restore(req: req, hint: hint); -// Rust type: RustOpaqueNom> +// Rust type: RustOpaqueNom> @sealed class LBtcReverseRecovery extends RustOpaque { LBtcReverseRecovery.dcoDecode(List wire) diff --git a/packages/dart/lib/src/error.dart b/packages/dart/lib/src/error.dart index e1cbea978..4db5363a2 100644 --- a/packages/dart/lib/src/error.dart +++ b/packages/dart/lib/src/error.dart @@ -1,5 +1,5 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.32. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.33. // ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import diff --git a/packages/dart/lib/src/frb_generated.dart b/packages/dart/lib/src/frb_generated.dart index d173a3ccd..3edd9da24 100644 --- a/packages/dart/lib/src/frb_generated.dart +++ b/packages/dart/lib/src/frb_generated.dart @@ -1,5 +1,5 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.32. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.33. // ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field @@ -53,7 +53,7 @@ class RustLib extends BaseEntrypoint { kDefaultExternalLibraryLoaderConfig; @override - String get codegenVersion => '2.0.0-dev.32'; + String get codegenVersion => '2.0.0-dev.33'; @override int get rustContentHash => -1225779344; @@ -306,7 +306,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return handler.executeNormal(NormalTask( callFfi: (port_) { var arg0 = - cst_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + cst_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( recovery); return wire.wire_recover_funds(port_, arg0); }, @@ -375,11 +375,11 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_LBtcReverseRecovery => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery; + .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery; RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_LBtcReverseRecovery => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery; + .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery; @protected AnyhowException dco_decode_AnyhowException(dynamic raw) { @@ -389,7 +389,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { @protected LBtcReverseRecovery - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return LBtcReverseRecovery.dcoDecode(raw as List); @@ -397,7 +397,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { @protected LBtcReverseRecovery - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return LBtcReverseRecovery.dcoDecode(raw as List); @@ -733,7 +733,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { @protected LBtcReverseRecovery - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs return LBtcReverseRecovery.sseDecode( @@ -742,7 +742,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { @protected LBtcReverseRecovery - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs return LBtcReverseRecovery.sseDecode( @@ -1075,7 +1075,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } @protected - int cst_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + int cst_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( LBtcReverseRecovery raw) { // Codec=Cst (C-struct based), see doc to use other codecs // ignore: invalid_use_of_internal_member @@ -1083,7 +1083,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } @protected - int cst_encode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + int cst_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( LBtcReverseRecovery raw) { // Codec=Cst (C-struct based), see doc to use other codecs // ignore: invalid_use_of_internal_member @@ -1147,7 +1147,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { @protected void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( LBtcReverseRecovery self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_usize(self.sseEncode(move: true), serializer); @@ -1155,7 +1155,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { @protected void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( LBtcReverseRecovery self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_usize(self.sseEncode(move: null), serializer); diff --git a/packages/dart/lib/src/frb_generated.io.dart b/packages/dart/lib/src/frb_generated.io.dart index 9eedc7706..c52987dd4 100644 --- a/packages/dart/lib/src/frb_generated.io.dart +++ b/packages/dart/lib/src/frb_generated.io.dart @@ -1,5 +1,5 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.32. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.33. // ignore_for_file: unused_import, unused_element, unnecessary_import, duplicate_ignore, invalid_use_of_internal_member, annotate_overrides, non_constant_identifier_names, curly_braces_in_flow_control_structures, prefer_const_literals_to_create_immutables, unused_field @@ -22,19 +22,19 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_LBtcReverseRecoveryPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecoveryPtr; + ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecoveryPtr; @protected AnyhowException dco_decode_AnyhowException(dynamic raw); @protected LBtcReverseRecovery - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( dynamic raw); @protected LBtcReverseRecovery - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( dynamic raw); @protected @@ -152,12 +152,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected LBtcReverseRecovery - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( SseDeserializer deserializer); @protected LBtcReverseRecovery - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( SseDeserializer deserializer); @protected @@ -599,11 +599,11 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { } @protected - int cst_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + int cst_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( LBtcReverseRecovery raw); @protected - int cst_encode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + int cst_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( LBtcReverseRecovery raw); @protected @@ -636,12 +636,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( LBtcReverseRecovery self, SseSerializer serializer); @protected void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( LBtcReverseRecovery self, SseSerializer serializer); @protected @@ -1002,35 +1002,35 @@ class RustLibWire implements BaseWire { void Function(int, ffi.Pointer)>(); void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( ffi.Pointer ptr, ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( ptr, ); } - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecoveryPtr = + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecoveryPtr = _lookup)>>( - 'frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery'); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecoveryPtr + 'frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery'); + late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery = + _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecoveryPtr .asFunction)>(); void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( ffi.Pointer ptr, ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery( + return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( ptr, ); } - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecoveryPtr = + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecoveryPtr = _lookup)>>( - 'frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery'); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecovery = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedrust_asyncRwLockLBtcReverseRecoveryPtr + 'frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery'); + late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery = + _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecoveryPtr .asFunction)>(); ffi.Pointer cst_new_box_autoadd_connect_request() { @@ -1189,10 +1189,14 @@ class RustLibWire implements BaseWire { _dummy_method_to_enforce_bundlingPtr.asFunction(); } -typedef DartPostCObjectFnType = ffi.Pointer< - ffi.NativeFunction< - ffi.Bool Function(DartPort port_id, ffi.Pointer message)>>; +typedef DartPostCObjectFnType + = ffi.Pointer>; +typedef DartPostCObjectFnTypeFunction = ffi.Bool Function( + DartPort port_id, ffi.Pointer message); +typedef DartDartPostCObjectFnTypeFunction = bool Function( + DartDartPort port_id, ffi.Pointer message); typedef DartPort = ffi.Int64; +typedef DartDartPort = int; final class wire_cst_list_prim_u_8_strict extends ffi.Struct { external ffi.Pointer ptr; diff --git a/packages/dart/lib/src/model.dart b/packages/dart/lib/src/model.dart index bf039b88e..6d03b7349 100644 --- a/packages/dart/lib/src/model.dart +++ b/packages/dart/lib/src/model.dart @@ -1,5 +1,5 @@ // This file is automatically generated, so please do not edit it. -// Generated by `flutter_rust_bridge`@ 2.0.0-dev.32. +// Generated by `flutter_rust_bridge`@ 2.0.0-dev.33. // ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import diff --git a/packages/dart/pubspec.yaml b/packages/dart/pubspec.yaml index bd920fde0..0ed16d812 100644 --- a/packages/dart/pubspec.yaml +++ b/packages/dart/pubspec.yaml @@ -15,14 +15,14 @@ environment: sdk: '>=3.0.0 <4.0.0' dev_dependencies: - build_runner: ^2.3.3 - ffigen: ">=8.0.0 <10.0.0" - freezed: ^2.3.2 + build_runner: ^2.4.9 + ffigen: ">=8.0.0 <=11.0.0" + freezed: ^2.5.2 lints: ">=2.0.0 <4.0.0" - path: ^1.8.3 - test: ^1.16.0 + path: ^1.9.0 + test: ^1.25.4 dependencies: - ffi: ^2.0.1 - flutter_rust_bridge: 2.0.0-dev.32 - freezed_annotation: ^2.2.0 - meta: ^1.8.0 + ffi: ^2.1.2 + flutter_rust_bridge: ">=2.0.0-dev.0 <=2.0.0-dev.33" + freezed_annotation: ^2.4.1 + meta: ^1.11.0 diff --git a/packages/dart/test/breez_liquid_dart_test.dart b/packages/dart/test/breez_liquid_dart_test.dart index ee3a34a91..c442a0559 100644 --- a/packages/dart/test/breez_liquid_dart_test.dart +++ b/packages/dart/test/breez_liquid_dart_test.dart @@ -1,3 +1,4 @@ +import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; import 'package:test/test.dart'; import 'helpers.dart'; @@ -7,5 +8,18 @@ void main() { setUpAll(() async { await initApi(); }); + + test( + "after setting up, getInfo should throw exception with 'Not initialized' message", + () async { + GetInfoRequest req = GetInfoRequest(withScan: true); + try { + await getInfo(req: req); + } catch (e) { + if (e is AnyhowException) { + expect(e.message, "Not initialized"); + } + } + }); }); } diff --git a/packages/dart/test/helpers.io.dart b/packages/dart/test/helpers.io.dart index 87272b3db..0ae3aceeb 100644 --- a/packages/dart/test/helpers.io.dart +++ b/packages/dart/test/helpers.io.dart @@ -29,13 +29,13 @@ extension on String { String dylibPath(String profile) => Uri.base .resolve(p.joinAll([ - '../../target', + '../../lib/target', if (Platform.isMacOS && hostTriple.startsWith('aarch64')) hostTriple, profile, 'breez_liquid_sdk'.dylib, ])) .toFilePath(); -Future initApi({String profile = 'debug'}) { +Future initApi({String profile = 'frb-min'}) { return initialize(dylib: ExternalLibrary.open(dylibPath(profile))); } diff --git a/packages/flutter/example/lib/main.dart b/packages/flutter/example/lib/main.dart index 98e3bf56a..3ad0b6f09 100644 --- a/packages/flutter/example/lib/main.dart +++ b/packages/flutter/example/lib/main.dart @@ -122,13 +122,16 @@ class _MyAppState extends State { ), ), ListTile( - title: Text("Pair Hash: ${prepareReceiveResponse.pairHash}"), + title: Text( + "Pair Hash: ${prepareReceiveResponse.pairHash}"), ), ListTile( - title: Text("Payer Amount: ${prepareReceiveResponse.payerAmountSat} (in sats)"), + title: Text( + "Payer Amount: ${prepareReceiveResponse.payerAmountSat} (in sats)"), ), ListTile( - title: Text("Fees: ${prepareReceiveResponse.feesSat} (in sats)"), + title: Text( + "Fees: ${prepareReceiveResponse.feesSat} (in sats)"), ), const SizedBox(height: 16.0), FutureBuilder( @@ -148,23 +151,30 @@ class _MyAppState extends State { } final receivePaymentResponse = snapshot.data!; - debugPrint("Invoice ID: ${receivePaymentResponse.id}"); - debugPrint("Invoice: ${receivePaymentResponse.invoice}"); + debugPrint( + "Invoice ID: ${receivePaymentResponse.id}"); + debugPrint( + "Invoice: ${receivePaymentResponse.invoice}"); return Column( children: [ Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), + padding: const EdgeInsets.symmetric( + horizontal: 16.0), child: Text( "Invoice for receive payment of 1000 sats", - style: Theme.of(context).textTheme.headlineSmall, + style: Theme.of(context) + .textTheme + .headlineSmall, ), ), ListTile( - title: Text("Invoice ID: ${receivePaymentResponse.id}"), + title: Text( + "Invoice ID: ${receivePaymentResponse.id}"), ), ListTile( - title: Text("Invoice: ${receivePaymentResponse.invoice}"), + title: Text( + "Invoice: ${receivePaymentResponse.invoice}"), ), ], ); diff --git a/packages/flutter/example/pubspec.lock b/packages/flutter/example/pubspec.lock index c5d0bb67d..4fe1857a4 100644 --- a/packages/flutter/example/pubspec.lock +++ b/packages/flutter/example/pubspec.lock @@ -128,10 +128,10 @@ packages: dependency: transitive description: name: flutter_rust_bridge - sha256: d65dbdd271de6050d3204bab69a8ae25a291deb359403cd4f95a86055cab66c3 + sha256: "2bf072117fe975e18aa418234572aa6c60a0513141dc4239a5409eebd0a6a597" url: "https://pub.dev" source: hosted - version: "2.0.0-dev.32" + version: "2.0.0-dev.33" flutter_test: dependency: "direct dev" description: flutter @@ -394,10 +394,10 @@ packages: dependency: transitive description: name: win32 - sha256: "0a989dc7ca2bb51eac91e8fd00851297cfffd641aa7538b165c62637ca0eaa4a" + sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "5.5.0" xdg_directories: dependency: transitive description: @@ -418,10 +418,10 @@ packages: dependency: transitive description: name: yaml_edit - sha256: c566f4f804215d84a7a2c377667f546c6033d5b34b4f9e60dfb09d17c4e97826 + sha256: e9c1a3543d2da0db3e90270dbb1e4eebc985ee5e3ffe468d83224472b2194a5f url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.2.1" sdks: dart: ">=3.3.0 <4.0.0" flutter: ">=3.16.0" diff --git a/packages/flutter/example/pubspec.yaml b/packages/flutter/example/pubspec.yaml index 800fafe0d..97409101b 100644 --- a/packages/flutter/example/pubspec.yaml +++ b/packages/flutter/example/pubspec.yaml @@ -4,7 +4,8 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: '>=3.3.0 <4.0.0' + sdk: '>=3.0.0 <4.0.0' + flutter: ">=3.10.0" dependencies: flutter: diff --git a/packages/flutter/ios/Classes/breez_liquid_sdk.h b/packages/flutter/ios/Classes/breez_liquid_sdk.h deleted file mode 120000 index a07bf4868..000000000 --- a/packages/flutter/ios/Classes/breez_liquid_sdk.h +++ /dev/null @@ -1 +0,0 @@ -/Users/erdem/Documents/GitHub/breez-sdk-liquid/lib/bindings/bindings-flutter/breez_liquid_sdk/include/breez_liquid_sdk.h \ No newline at end of file diff --git a/packages/flutter/lib/flutter_breez_liquid_bindings_generated.dart b/packages/flutter/lib/flutter_breez_liquid_bindings_generated.dart index 3943ed812..a15dddeb2 100644 --- a/packages/flutter/lib/flutter_breez_liquid_bindings_generated.dart +++ b/packages/flutter/lib/flutter_breez_liquid_bindings_generated.dart @@ -6,3 +6,597 @@ // // Generated by `package:ffigen`. // ignore_for_file: type=lint +import 'dart:ffi' as ffi; + +/// Bindings for `src/flutter_breez_liquid.h`. +/// +/// Regenerate bindings with `flutter pub run ffigen --config ffigen.yaml`. +/// +class FlutterBreezLiquidBindings { + /// Holds the symbol lookup function. + final ffi.Pointer Function(String symbolName) + _lookup; + + /// The symbols are looked up in [dynamicLibrary]. + FlutterBreezLiquidBindings(ffi.DynamicLibrary dynamicLibrary) + : _lookup = dynamicLibrary.lookup; + + /// The symbols are looked up with [lookup]. + FlutterBreezLiquidBindings.fromLookup( + ffi.Pointer Function(String symbolName) + lookup) + : _lookup = lookup; + + void store_dart_post_cobject( + DartPostCObjectFnType ptr, + ) { + return _store_dart_post_cobject( + ptr, + ); + } + + late final _store_dart_post_cobjectPtr = + _lookup>( + 'store_dart_post_cobject'); + late final _store_dart_post_cobject = _store_dart_post_cobjectPtr + .asFunction(); + + void frbgen_breez_liquid_wire_backup( + int port_, + ) { + return _frbgen_breez_liquid_wire_backup( + port_, + ); + } + + late final _frbgen_breez_liquid_wire_backupPtr = + _lookup>( + 'frbgen_breez_liquid_wire_backup'); + late final _frbgen_breez_liquid_wire_backup = + _frbgen_breez_liquid_wire_backupPtr.asFunction(); + + void frbgen_breez_liquid_wire_connect( + int port_, + ffi.Pointer req, + ) { + return _frbgen_breez_liquid_wire_connect( + port_, + req, + ); + } + + late final _frbgen_breez_liquid_wire_connectPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_connect'); + late final _frbgen_breez_liquid_wire_connect = + _frbgen_breez_liquid_wire_connectPtr.asFunction< + void Function(int, ffi.Pointer)>(); + + void frbgen_breez_liquid_wire_empty_wallet_cache( + int port_, + ) { + return _frbgen_breez_liquid_wire_empty_wallet_cache( + port_, + ); + } + + late final _frbgen_breez_liquid_wire_empty_wallet_cachePtr = + _lookup>( + 'frbgen_breez_liquid_wire_empty_wallet_cache'); + late final _frbgen_breez_liquid_wire_empty_wallet_cache = + _frbgen_breez_liquid_wire_empty_wallet_cachePtr + .asFunction(); + + void frbgen_breez_liquid_wire_get_info( + int port_, + ffi.Pointer req, + ) { + return _frbgen_breez_liquid_wire_get_info( + port_, + req, + ); + } + + late final _frbgen_breez_liquid_wire_get_infoPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_get_info'); + late final _frbgen_breez_liquid_wire_get_info = + _frbgen_breez_liquid_wire_get_infoPtr.asFunction< + void Function(int, ffi.Pointer)>(); + + void frbgen_breez_liquid_wire_list_payments( + int port_, + bool with_scan, + bool include_pending, + ) { + return _frbgen_breez_liquid_wire_list_payments( + port_, + with_scan, + include_pending, + ); + } + + late final _frbgen_breez_liquid_wire_list_paymentsPtr = _lookup< + ffi.NativeFunction>( + 'frbgen_breez_liquid_wire_list_payments'); + late final _frbgen_breez_liquid_wire_list_payments = + _frbgen_breez_liquid_wire_list_paymentsPtr + .asFunction(); + + void frbgen_breez_liquid_wire_prepare_receive_payment( + int port_, + ffi.Pointer req, + ) { + return _frbgen_breez_liquid_wire_prepare_receive_payment( + port_, + req, + ); + } + + late final _frbgen_breez_liquid_wire_prepare_receive_paymentPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_prepare_receive_payment'); + late final _frbgen_breez_liquid_wire_prepare_receive_payment = + _frbgen_breez_liquid_wire_prepare_receive_paymentPtr.asFunction< + void Function(int, ffi.Pointer)>(); + + void frbgen_breez_liquid_wire_prepare_send_payment( + int port_, + ffi.Pointer req, + ) { + return _frbgen_breez_liquid_wire_prepare_send_payment( + port_, + req, + ); + } + + late final _frbgen_breez_liquid_wire_prepare_send_paymentPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_prepare_send_payment'); + late final _frbgen_breez_liquid_wire_prepare_send_payment = + _frbgen_breez_liquid_wire_prepare_send_paymentPtr.asFunction< + void Function(int, ffi.Pointer)>(); + + void frbgen_breez_liquid_wire_receive_payment( + int port_, + ffi.Pointer req, + ) { + return _frbgen_breez_liquid_wire_receive_payment( + port_, + req, + ); + } + + late final _frbgen_breez_liquid_wire_receive_paymentPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_receive_payment'); + late final _frbgen_breez_liquid_wire_receive_payment = + _frbgen_breez_liquid_wire_receive_paymentPtr.asFunction< + void Function(int, ffi.Pointer)>(); + + void frbgen_breez_liquid_wire_recover_funds( + int port_, + int recovery, + ) { + return _frbgen_breez_liquid_wire_recover_funds( + port_, + recovery, + ); + } + + late final _frbgen_breez_liquid_wire_recover_fundsPtr = + _lookup>( + 'frbgen_breez_liquid_wire_recover_funds'); + late final _frbgen_breez_liquid_wire_recover_funds = + _frbgen_breez_liquid_wire_recover_fundsPtr + .asFunction(); + + void frbgen_breez_liquid_wire_restore( + int port_, + ffi.Pointer req, + ) { + return _frbgen_breez_liquid_wire_restore( + port_, + req, + ); + } + + late final _frbgen_breez_liquid_wire_restorePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_restore'); + late final _frbgen_breez_liquid_wire_restore = + _frbgen_breez_liquid_wire_restorePtr.asFunction< + void Function(int, ffi.Pointer)>(); + + void frbgen_breez_liquid_wire_send_payment( + int port_, + ffi.Pointer req, + ) { + return _frbgen_breez_liquid_wire_send_payment( + port_, + req, + ); + } + + late final _frbgen_breez_liquid_wire_send_paymentPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + ffi.Int64, ffi.Pointer)>>( + 'frbgen_breez_liquid_wire_send_payment'); + late final _frbgen_breez_liquid_wire_send_payment = + _frbgen_breez_liquid_wire_send_paymentPtr.asFunction< + void Function(int, ffi.Pointer)>(); + + void + frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( + ffi.Pointer ptr, + ) { + return _frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( + ptr, + ); + } + + late final _frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecoveryPtr = + _lookup)>>( + 'frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery'); + late final _frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery = + _frbgen_breez_liquid_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecoveryPtr + .asFunction)>(); + + void + frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( + ffi.Pointer ptr, + ) { + return _frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery( + ptr, + ); + } + + late final _frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecoveryPtr = + _lookup)>>( + 'frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery'); + late final _frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecovery = + _frbgen_breez_liquid_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerLBtcReverseRecoveryPtr + .asFunction)>(); + + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_connect_request() { + return _frbgen_breez_liquid_cst_new_box_autoadd_connect_request(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_connect_requestPtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_connect_request'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_connect_request = + _frbgen_breez_liquid_cst_new_box_autoadd_connect_requestPtr + .asFunction Function()>(); + + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_get_info_request() { + return _frbgen_breez_liquid_cst_new_box_autoadd_get_info_request(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_get_info_requestPtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_get_info_request'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_get_info_request = + _frbgen_breez_liquid_cst_new_box_autoadd_get_info_requestPtr + .asFunction Function()>(); + + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request() { + return _frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_requestPtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_request = + _frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_requestPtr + .asFunction< + ffi.Pointer Function()>(); + + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_response() { + return _frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_response(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_responsePtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_response'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_response = + _frbgen_breez_liquid_cst_new_box_autoadd_prepare_receive_responsePtr + .asFunction< + ffi.Pointer Function()>(); + + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request() { + return _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_requestPtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_request = + _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_requestPtr + .asFunction Function()>(); + + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response() { + return _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_responsePtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_response = + _frbgen_breez_liquid_cst_new_box_autoadd_prepare_send_responsePtr + .asFunction Function()>(); + + ffi.Pointer + frbgen_breez_liquid_cst_new_box_autoadd_restore_request() { + return _frbgen_breez_liquid_cst_new_box_autoadd_restore_request(); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_restore_requestPtr = + _lookup< + ffi.NativeFunction< + ffi.Pointer Function()>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_restore_request'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_restore_request = + _frbgen_breez_liquid_cst_new_box_autoadd_restore_requestPtr + .asFunction Function()>(); + + ffi.Pointer frbgen_breez_liquid_cst_new_box_autoadd_u_32( + int value, + ) { + return _frbgen_breez_liquid_cst_new_box_autoadd_u_32( + value, + ); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_u_32Ptr = + _lookup Function(ffi.Uint32)>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_u_32'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_u_32 = + _frbgen_breez_liquid_cst_new_box_autoadd_u_32Ptr + .asFunction Function(int)>(); + + ffi.Pointer frbgen_breez_liquid_cst_new_box_autoadd_u_64( + int value, + ) { + return _frbgen_breez_liquid_cst_new_box_autoadd_u_64( + value, + ); + } + + late final _frbgen_breez_liquid_cst_new_box_autoadd_u_64Ptr = + _lookup Function(ffi.Uint64)>>( + 'frbgen_breez_liquid_cst_new_box_autoadd_u_64'); + late final _frbgen_breez_liquid_cst_new_box_autoadd_u_64 = + _frbgen_breez_liquid_cst_new_box_autoadd_u_64Ptr + .asFunction Function(int)>(); + + ffi.Pointer frbgen_breez_liquid_cst_new_list_payment( + int len, + ) { + return _frbgen_breez_liquid_cst_new_list_payment( + len, + ); + } + + late final _frbgen_breez_liquid_cst_new_list_paymentPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Int32)>>('frbgen_breez_liquid_cst_new_list_payment'); + late final _frbgen_breez_liquid_cst_new_list_payment = + _frbgen_breez_liquid_cst_new_list_paymentPtr + .asFunction Function(int)>(); + + ffi.Pointer + frbgen_breez_liquid_cst_new_list_prim_u_8_strict( + int len, + ) { + return _frbgen_breez_liquid_cst_new_list_prim_u_8_strict( + len, + ); + } + + late final _frbgen_breez_liquid_cst_new_list_prim_u_8_strictPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Int32)>>('frbgen_breez_liquid_cst_new_list_prim_u_8_strict'); + late final _frbgen_breez_liquid_cst_new_list_prim_u_8_strict = + _frbgen_breez_liquid_cst_new_list_prim_u_8_strictPtr.asFunction< + ffi.Pointer Function(int)>(); + + int dummy_method_to_enforce_bundling() { + return _dummy_method_to_enforce_bundling(); + } + + late final _dummy_method_to_enforce_bundlingPtr = + _lookup>( + 'dummy_method_to_enforce_bundling'); + late final _dummy_method_to_enforce_bundling = + _dummy_method_to_enforce_bundlingPtr.asFunction(); +} + +final class DartCObject extends ffi.Opaque {} + +final class WireSyncRust2DartSse extends ffi.Struct { + external ffi.Pointer ptr; + + @ffi.Int32() + external int len; +} + +typedef DartPostCObjectFnType + = ffi.Pointer>; +typedef DartPostCObjectFnTypeFunction = ffi.Bool Function( + DartPort port_id, ffi.Pointer message); +typedef DartDartPostCObjectFnTypeFunction = bool Function( + DartDartPort port_id, ffi.Pointer message); +typedef DartPort = ffi.Int64; +typedef DartDartPort = int; + +final class _Dart_Handle extends ffi.Opaque {} + +final class wire_cst_list_prim_u_8_strict extends ffi.Struct { + external ffi.Pointer ptr; + + @ffi.Int32() + external int len; +} + +final class wire_cst_connect_request extends ffi.Struct { + external ffi.Pointer mnemonic; + + external ffi.Pointer data_dir; + + @ffi.Int32() + external int network; +} + +final class wire_cst_get_info_request extends ffi.Struct { + @ffi.Bool() + external bool with_scan; +} + +final class wire_cst_prepare_receive_request extends ffi.Struct { + @ffi.Uint64() + external int payer_amount_sat; +} + +final class wire_cst_prepare_send_request extends ffi.Struct { + external ffi.Pointer invoice; +} + +final class wire_cst_prepare_receive_response extends ffi.Struct { + external ffi.Pointer pair_hash; + + @ffi.Uint64() + external int payer_amount_sat; + + @ffi.Uint64() + external int fees_sat; +} + +final class wire_cst_restore_request extends ffi.Struct { + external ffi.Pointer backup_path; +} + +final class wire_cst_prepare_send_response extends ffi.Struct { + external ffi.Pointer id; + + @ffi.Uint64() + external int payer_amount_sat; + + @ffi.Uint64() + external int receiver_amount_sat; + + @ffi.Uint64() + external int total_fees; + + external ffi.Pointer funding_address; + + external ffi.Pointer invoice; +} + +final class wire_cst_payment extends ffi.Struct { + external ffi.Pointer id; + + external ffi.Pointer timestamp; + + @ffi.Uint64() + external int amount_sat; + + external ffi.Pointer fees_sat; + + @ffi.Int32() + external int payment_type; + + external ffi.Pointer invoice; +} + +final class wire_cst_list_payment extends ffi.Struct { + external ffi.Pointer ptr; + + @ffi.Int32() + external int len; +} + +final class wire_cst_get_info_response extends ffi.Struct { + @ffi.Uint64() + external int balance_sat; + + external ffi.Pointer pubkey; +} + +final class wire_cst_PaymentError_Generic extends ffi.Struct { + external ffi.Pointer err; +} + +final class wire_cst_PaymentError_LwkError extends ffi.Struct { + external ffi.Pointer err; +} + +final class wire_cst_PaymentError_SendError extends ffi.Struct { + external ffi.Pointer err; +} + +final class wire_cst_PaymentError_SignerError extends ffi.Struct { + external ffi.Pointer err; +} + +final class PaymentErrorKind extends ffi.Union { + external wire_cst_PaymentError_Generic Generic; + + external wire_cst_PaymentError_LwkError LwkError; + + external wire_cst_PaymentError_SendError SendError; + + external wire_cst_PaymentError_SignerError SignerError; +} + +final class wire_cst_payment_error extends ffi.Struct { + @ffi.Int32() + external int tag; + + external PaymentErrorKind kind; +} + +final class wire_cst_receive_payment_response extends ffi.Struct { + external ffi.Pointer id; + + external ffi.Pointer invoice; +} + +final class wire_cst_send_payment_response extends ffi.Struct { + external ffi.Pointer txid; +} + +const double LIQUID_CLAIM_TX_FEERATE = 0.1; diff --git a/packages/flutter/macos/Classes/breez_liquid_sdk.h b/packages/flutter/macos/Classes/breez_liquid_sdk.h deleted file mode 120000 index a07bf4868..000000000 --- a/packages/flutter/macos/Classes/breez_liquid_sdk.h +++ /dev/null @@ -1 +0,0 @@ -/Users/erdem/Documents/GitHub/breez-sdk-liquid/lib/bindings/bindings-flutter/breez_liquid_sdk/include/breez_liquid_sdk.h \ No newline at end of file diff --git a/packages/flutter/pubspec.yaml b/packages/flutter/pubspec.yaml index 7dacfaa05..3769a9161 100644 --- a/packages/flutter/pubspec.yaml +++ b/packages/flutter/pubspec.yaml @@ -4,21 +4,21 @@ version: 0.1.0 homepage: https://breez.technology environment: - sdk: '>=2.18.6 <3.0.0' - flutter: ">=2.11.0" + sdk: '>=3.0.0 <4.0.0' + flutter: ">=3.10.0" dependencies: flutter: sdk: flutter breez_liquid: ^0.1.0 - ffigen: ^11.0.0 + ffigen: ">=8.0.0 <=11.0.0" dev_dependencies: flutter_test: sdk: flutter integration_test: sdk: flutter - flutter_lints: ^2.0.0 + flutter_lints: ^3.0.2 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec