@bennyblader/ddk-rn 1.0.0-rc4 → 1.0.0-rc6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/DdkRn.podspec CHANGED
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
17
17
 
18
18
  s.source_files = "ios/**/*.{h,m,mm,swift}", "ios/generated/**/*.{h,m,mm}", "cpp/**/*.{hpp,cpp,c,h}", "cpp/**/*.{hpp,cpp,c,h}"
19
19
  s.vendored_frameworks = "ios/DdkRn.xcframework"
20
- s.dependency "uniffi-bindgen-react-native", "0.31.0-3"
20
+ s.dependency "uniffi-bindgen-react-native", "0.31.0-5"
21
21
 
22
22
  # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
23
23
  # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
package/README.md CHANGED
@@ -74,7 +74,7 @@ const offer = createOffer({
74
74
  // signContractCet / signContractRefund
75
75
  ```
76
76
 
77
- Bytes cross the JSI boundary as `ArrayBuffer` (`ddk-ts` uses `Buffer`).
77
+ Bytes cross the JSI boundary as `Uint8Array`, as they do in `@bennyblader/ddk`.
78
78
 
79
79
  `example/src/App.tsx` runs the complete flow on device — offline, deterministic,
80
80
  and asserted by the Maestro E2E.
@@ -112,7 +112,7 @@ just build
112
112
  ### Just Commands
113
113
 
114
114
  ```bash
115
- # JSI + TurboModule bindings, the iOS XCFramework, and ddk-ts
115
+ # JSI + TurboModule bindings, the iOS XCFramework, and @bennyblader/ddk (N-API)
116
116
  just build
117
117
 
118
118
  # Generate JSI bindings only (TypeScript + C++)
@@ -192,8 +192,8 @@ bindings can't execute under Node, so it asserts instead that generation was
192
192
  complete — every function, record, and constructor present in both the
193
193
  TypeScript surface and the native symbol layer. It catches the classic
194
194
  regression where `ddk-ffi` changed but `ddk-rn` wasn't regenerated. Runtime
195
- behavior is covered by the shared Rust (`ddk-ffi` unit tests and the `ddk-ts`
196
- suite exercise the same functions).
195
+ behavior is covered by the shared Rust (`ddk-ffi` unit tests and the `ddk`
196
+ suites exercise the same functions).
197
197
 
198
198
  ### End-to-end, on a device
199
199
 
@@ -255,7 +255,7 @@ npx react-native run-android
255
255
 
256
256
  ### Release Process
257
257
 
258
- `ddk-ts` and `ddk-rn` are versioned and released together, from the repo root:
258
+ `ddk` and `ddk-rn` are versioned and released together, from the repo root:
259
259
 
260
260
  ```bash
261
261
  just release 0.5.0
@@ -264,7 +264,7 @@ just release 0.5.0
264
264
  This will:
265
265
 
266
266
  1. Check the working directory is clean
267
- 2. Set the version in `ddk-ts/package.json`, `ddk-rn/package.json` and `ddk-ffi/Cargo.toml`
267
+ 2. Set the version in `typescript/package.json`, `ddk-rn/package.json` and `ddk-ffi/Cargo.toml`
268
268
  3. Commit, tag as `v0.5.0` and push
269
269
 
270
270
  Publishing happens in CI — pushing the tag is what publishes. The iOS
@@ -284,11 +284,10 @@ All bindings are generated from the compiled `ddk-ffi` library, whose Rust
284
284
  source — annotated with UniFFI proc-macros, with no `.udl` file — is the single
285
285
  source of truth for the interface.
286
286
 
287
- `@bennyblader/ddk-ts` is hand-written NAPI over the same crates and is kept in
288
- parity by CI. Two differences to know: bytes are `ArrayBuffer` here and `Buffer`
289
- there, and a dozen transaction operations are methods on a record here
290
- (`TxOutput.isDust`, `Transaction.signCet`, …) but free functions there. See the
291
- [comparison table](../README.md#where-the-two-packages-differ).
287
+ `@bennyblader/ddk` (Node and browsers) is generated from the same library by the
288
+ same bindgen, so it has the same names, the same argument lists and the same
289
+ `Uint8Array` byte type. The one difference: its browser build needs
290
+ `await init()` before the first call.
292
291
 
293
292
  ### Known Issues
294
293
 
@@ -296,19 +295,6 @@ there, and a dozen transaction operations are methods on a record here
296
295
  - iOS: Set `RCT_NEW_ARCH_ENABLED=1`
297
296
  - Android: Set `newArchEnabled=true` in `gradle.properties`
298
297
 
299
- 2. **Android C++ builds need an unreleased ubrn fix.** The generated
300
- `android/CMakeLists.txt` resolves the ubrn package with
301
- `require.resolve('uniffi-bindgen-react-native/package.json')`, which throws
302
- `ERR_PACKAGE_PATH_NOT_EXPORTED` because ubrn's `exports` map doesn't expose
303
- that subpath. The include dir silently becomes `/cpp/includes` and the build
304
- dies with `'UniffiCallInvoker.h' file not found`. This repo patches it
305
- (`patches/uniffi-bindgen-react-native@0.31.0-3.patch`, applied by
306
- `pnpm install`), but a pnpm patch only applies to this repo — building an
307
- Android app against the published package hits the original error until ubrn
308
- ships the fix ([#404](https://github.com/jhugman/uniffi-bindgen-react-native/issues/404),
309
- fixed on `main`, release tracked in
310
- [#421](https://github.com/jhugman/uniffi-bindgen-react-native/issues/421)).
311
-
312
298
  ## Troubleshooting
313
299
 
314
300
  ### iOS Build Issues
@@ -1,14 +1,14 @@
1
1
  // Generated by uniffi-bindgen-react-native
2
2
  package com.ddkrn
3
3
 
4
- import com.facebook.react.TurboReactPackage
4
+ import com.facebook.react.BaseReactPackage
5
5
  import com.facebook.react.bridge.NativeModule
6
6
  import com.facebook.react.bridge.ReactApplicationContext
7
7
  import com.facebook.react.module.model.ReactModuleInfo
8
8
  import com.facebook.react.module.model.ReactModuleInfoProvider
9
9
  import java.util.HashMap
10
10
 
11
- class DdkRnPackage : TurboReactPackage() {
11
+ class DdkRnPackage : BaseReactPackage() {
12
12
  override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
13
13
  return if (name == DdkRnModule.NAME) {
14
14
  DdkRnModule(reactContext)
package/cpp/ddk_ffi.cpp CHANGED
@@ -312,6 +312,19 @@ extern "C" {
312
312
  uint8_t contract_flags,
313
313
  RustCallStatus *uniffi_out_err
314
314
  );
315
+ RustBuffer uniffi_ddk_ffi_fn_func_create_dlc_transactions_with_fee_rule(
316
+ RustBuffer outcomes,
317
+ RustBuffer local_params,
318
+ RustBuffer remote_params,
319
+ uint32_t refund_locktime,
320
+ uint64_t fee_rate,
321
+ uint32_t fund_lock_time,
322
+ uint32_t cet_lock_time,
323
+ uint64_t fund_output_serial_id,
324
+ uint8_t contract_flags,
325
+ RustBuffer fee_rule,
326
+ RustCallStatus *uniffi_out_err
327
+ );
315
328
  RustBuffer uniffi_ddk_ffi_fn_func_create_extkey_from_parent_path(
316
329
  RustBuffer extkey,
317
330
  RustBuffer path,
@@ -349,6 +362,19 @@ extern "C" {
349
362
  uint8_t contract_flags,
350
363
  RustCallStatus *uniffi_out_err
351
364
  );
365
+ RustBuffer uniffi_ddk_ffi_fn_func_create_spliced_dlc_transactions_with_fee_rule(
366
+ RustBuffer outcomes,
367
+ RustBuffer local_params,
368
+ RustBuffer remote_params,
369
+ uint32_t refund_locktime,
370
+ uint64_t fee_rate,
371
+ uint32_t fund_lock_time,
372
+ uint32_t cet_lock_time,
373
+ uint64_t fund_output_serial_id,
374
+ uint8_t contract_flags,
375
+ RustBuffer fee_rule,
376
+ RustCallStatus *uniffi_out_err
377
+ );
352
378
  RustBuffer uniffi_ddk_ffi_fn_func_create_xpriv_from_parent_path(
353
379
  RustBuffer seed_or_xpriv,
354
380
  RustBuffer base_derivation_path,
@@ -410,6 +436,7 @@ extern "C" {
410
436
  RustBuffer uniffi_ddk_ffi_fn_func_create_dlc_splice_input(
411
437
  RustBuffer prev_offer,
412
438
  RustBuffer prev_accept,
439
+ RustBuffer prev_sign,
413
440
  RustBuffer local_party,
414
441
  RustBuffer input_serial_id,
415
442
  uint16_t max_witness_len,
@@ -431,6 +458,12 @@ extern "C" {
431
458
  RustBuffer accept,
432
459
  RustCallStatus *uniffi_out_err
433
460
  );
461
+ RustBuffer uniffi_ddk_ffi_fn_func_dlc_transactions_from_signed_messages(
462
+ RustBuffer offer,
463
+ RustBuffer accept,
464
+ RustBuffer sign,
465
+ RustCallStatus *uniffi_out_err
466
+ );
434
467
  RustBuffer uniffi_ddk_ffi_fn_func_finalize_sign(
435
468
  RustBuffer offer,
436
469
  RustBuffer accept,
@@ -507,6 +540,7 @@ extern "C" {
507
540
  RustBuffer offer,
508
541
  uint32_t min_timeout_interval,
509
542
  uint32_t max_timeout_interval,
543
+ uint64_t now_unix,
510
544
  RustCallStatus *uniffi_out_err
511
545
  );
512
546
  void uniffi_ddk_ffi_fn_func_validate_sign(
@@ -726,6 +760,8 @@ extern "C" {
726
760
  );
727
761
  uint16_t uniffi_ddk_ffi_checksum_func_create_dlc_transactions(
728
762
  );
763
+ uint16_t uniffi_ddk_ffi_checksum_func_create_dlc_transactions_with_fee_rule(
764
+ );
729
765
  uint16_t uniffi_ddk_ffi_checksum_func_create_extkey_from_parent_path(
730
766
  );
731
767
  uint16_t uniffi_ddk_ffi_checksum_func_create_extkey_from_seed(
@@ -736,6 +772,8 @@ extern "C" {
736
772
  );
737
773
  uint16_t uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions(
738
774
  );
775
+ uint16_t uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions_with_fee_rule(
776
+ );
739
777
  uint16_t uniffi_ddk_ffi_checksum_func_create_xpriv_from_parent_path(
740
778
  );
741
779
  uint16_t uniffi_ddk_ffi_checksum_func_extract_ecdsa_signature_from_oracle_signatures(
@@ -768,6 +806,8 @@ extern "C" {
768
806
  );
769
807
  uint16_t uniffi_ddk_ffi_checksum_func_dlc_transactions_from_messages(
770
808
  );
809
+ uint16_t uniffi_ddk_ffi_checksum_func_dlc_transactions_from_signed_messages(
810
+ );
771
811
  uint16_t uniffi_ddk_ffi_checksum_func_finalize_sign(
772
812
  );
773
813
  uint16_t uniffi_ddk_ffi_checksum_func_finalize_sign_spliced(
@@ -862,18 +902,58 @@ template <> struct Bridging<RustBuffer> {
862
902
  static RustBuffer fromJs(jsi::Runtime &rt, std::shared_ptr<CallInvoker>,
863
903
  const jsi::Value &value) {
864
904
  try {
905
+ auto obj = value.asObject(rt);
906
+
907
+ // Adoption vs copy. Two kinds of view arrive here:
908
+ //
909
+ // * Library-owned views from `rustbuffer_alloc`. Codegen allocates one,
910
+ // fills it in place, and ships it as an argument — and never frees a
911
+ // lowered argument, while the view's backing `CMutableBuffer` is
912
+ // non-owning (its destructor leaves `data` alone). Such a view carries
913
+ // a capacity hint (stamped by `rustbuffer_alloc` in the wrapper). We
914
+ // *adopt* it: hand the existing allocation to the callee, which frees
915
+ // it. Copying instead would orphan the allocation and leak one whole
916
+ // payload per call.
917
+ // * Ordinary JS-owned arrays, which carry no hint. These are *copied*
918
+ // into a fresh library allocation — they are not ours to give away.
919
+ //
920
+ // On adoption we reset the hint to 0 so a later `rustbuffer_free(view)` is
921
+ // a no-op rather than a double free.
922
+ if (obj.hasProperty(rt, uniffi_jsi::kUbrnRustCapacity)) {
923
+ auto capacity = static_cast<uint64_t>(
924
+ obj.getProperty(rt, uniffi_jsi::kUbrnRustCapacity).asNumber());
925
+ if (capacity == 0) {
926
+ // Hint present but zeroed: the view was already adopted by a previous
927
+ // call and its memory has been freed. Reading it would be a
928
+ // use-after-free, so refuse rather than hand over a dangling pointer.
929
+ throw jsi::JSError(
930
+ rt,
931
+ "RustBuffer argument was already consumed by a previous FFI call");
932
+ }
933
+ auto arrayBuffer =
934
+ obj.getPropertyAsObject(rt, "buffer").getArrayBuffer(rt);
935
+ auto byteOffset =
936
+ static_cast<size_t>(obj.getProperty(rt, "byteOffset").asNumber());
937
+ auto byteLength =
938
+ static_cast<size_t>(obj.getProperty(rt, "byteLength").asNumber());
939
+ obj.setProperty(rt, uniffi_jsi::kUbrnRustCapacity, jsi::Value(0));
940
+ return RustBuffer{
941
+ .capacity = capacity,
942
+ .len = static_cast<uint64_t>(byteLength),
943
+ .data = arrayBuffer.data(rt) + byteOffset,
944
+ };
945
+ }
946
+
865
947
  auto buffer = uniffi_jsi::Bridging<jsi::ArrayBuffer>::value_to_arraybuffer(rt, value);
866
948
  auto bytes = ForeignBytes{
867
949
  .len = static_cast<int32_t>(buffer.length(rt)),
868
950
  .data = buffer.data(rt),
869
951
  };
870
952
 
871
- // This buffer is constructed from foreign bytes. Rust scaffolding copies
872
- // the bytes, to make the RustBuffer.
953
+ // No hint: an ordinary JS-owned array. Rust scaffolding copies the bytes
954
+ // to make the RustBuffer; the copy is destroyed when the callee
955
+ // deserializes its arguments.
873
956
  auto buf = rustbuffer_from_bytes(bytes);
874
- // Once it leaves this function, the buffer is immediately passed back
875
- // into Rust, where it's used to deserialize into the Rust versions of the
876
- // arguments. At that point, the copy is destroyed.
877
957
  return buf;
878
958
  } catch (const std::logic_error &e) {
879
959
  throw jsi::JSError(rt, e.what());
@@ -2468,6 +2548,14 @@ NativeDdkFfi::NativeDdkFfi(
2468
2548
  return this->cpp_uniffi_ddk_ffi_fn_func_create_dlc_transactions(rt, thisVal, args, count);
2469
2549
  }
2470
2550
  );
2551
+ props["ubrn_uniffi_ddk_ffi_fn_func_create_dlc_transactions_with_fee_rule"] = jsi::Function::createFromHostFunction(
2552
+ rt,
2553
+ jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_fn_func_create_dlc_transactions_with_fee_rule"),
2554
+ 10,
2555
+ [this](jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args, size_t count) -> jsi::Value {
2556
+ return this->cpp_uniffi_ddk_ffi_fn_func_create_dlc_transactions_with_fee_rule(rt, thisVal, args, count);
2557
+ }
2558
+ );
2471
2559
  props["ubrn_uniffi_ddk_ffi_fn_func_create_extkey_from_parent_path"] = jsi::Function::createFromHostFunction(
2472
2560
  rt,
2473
2561
  jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_fn_func_create_extkey_from_parent_path"),
@@ -2508,6 +2596,14 @@ NativeDdkFfi::NativeDdkFfi(
2508
2596
  return this->cpp_uniffi_ddk_ffi_fn_func_create_spliced_dlc_transactions(rt, thisVal, args, count);
2509
2597
  }
2510
2598
  );
2599
+ props["ubrn_uniffi_ddk_ffi_fn_func_create_spliced_dlc_transactions_with_fee_rule"] = jsi::Function::createFromHostFunction(
2600
+ rt,
2601
+ jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_fn_func_create_spliced_dlc_transactions_with_fee_rule"),
2602
+ 10,
2603
+ [this](jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args, size_t count) -> jsi::Value {
2604
+ return this->cpp_uniffi_ddk_ffi_fn_func_create_spliced_dlc_transactions_with_fee_rule(rt, thisVal, args, count);
2605
+ }
2606
+ );
2511
2607
  props["ubrn_uniffi_ddk_ffi_fn_func_create_xpriv_from_parent_path"] = jsi::Function::createFromHostFunction(
2512
2608
  rt,
2513
2609
  jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_fn_func_create_xpriv_from_parent_path"),
@@ -2599,7 +2695,7 @@ NativeDdkFfi::NativeDdkFfi(
2599
2695
  props["ubrn_uniffi_ddk_ffi_fn_func_create_dlc_splice_input"] = jsi::Function::createFromHostFunction(
2600
2696
  rt,
2601
2697
  jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_fn_func_create_dlc_splice_input"),
2602
- 5,
2698
+ 6,
2603
2699
  [this](jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args, size_t count) -> jsi::Value {
2604
2700
  return this->cpp_uniffi_ddk_ffi_fn_func_create_dlc_splice_input(rt, thisVal, args, count);
2605
2701
  }
@@ -2636,6 +2732,14 @@ NativeDdkFfi::NativeDdkFfi(
2636
2732
  return this->cpp_uniffi_ddk_ffi_fn_func_dlc_transactions_from_messages(rt, thisVal, args, count);
2637
2733
  }
2638
2734
  );
2735
+ props["ubrn_uniffi_ddk_ffi_fn_func_dlc_transactions_from_signed_messages"] = jsi::Function::createFromHostFunction(
2736
+ rt,
2737
+ jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_fn_func_dlc_transactions_from_signed_messages"),
2738
+ 3,
2739
+ [this](jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args, size_t count) -> jsi::Value {
2740
+ return this->cpp_uniffi_ddk_ffi_fn_func_dlc_transactions_from_signed_messages(rt, thisVal, args, count);
2741
+ }
2742
+ );
2639
2743
  props["ubrn_uniffi_ddk_ffi_fn_func_finalize_sign"] = jsi::Function::createFromHostFunction(
2640
2744
  rt,
2641
2745
  jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_fn_func_finalize_sign"),
@@ -2711,7 +2815,7 @@ NativeDdkFfi::NativeDdkFfi(
2711
2815
  props["ubrn_uniffi_ddk_ffi_fn_func_validate_offer"] = jsi::Function::createFromHostFunction(
2712
2816
  rt,
2713
2817
  jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_fn_func_validate_offer"),
2714
- 3,
2818
+ 4,
2715
2819
  [this](jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args, size_t count) -> jsi::Value {
2716
2820
  return this->cpp_uniffi_ddk_ffi_fn_func_validate_offer(rt, thisVal, args, count);
2717
2821
  }
@@ -2780,6 +2884,14 @@ NativeDdkFfi::NativeDdkFfi(
2780
2884
  return this->cpp_uniffi_ddk_ffi_checksum_func_create_dlc_transactions(rt, thisVal, args, count);
2781
2885
  }
2782
2886
  );
2887
+ props["ubrn_uniffi_ddk_ffi_checksum_func_create_dlc_transactions_with_fee_rule"] = jsi::Function::createFromHostFunction(
2888
+ rt,
2889
+ jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_checksum_func_create_dlc_transactions_with_fee_rule"),
2890
+ 0,
2891
+ [this](jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args, size_t count) -> jsi::Value {
2892
+ return this->cpp_uniffi_ddk_ffi_checksum_func_create_dlc_transactions_with_fee_rule(rt, thisVal, args, count);
2893
+ }
2894
+ );
2783
2895
  props["ubrn_uniffi_ddk_ffi_checksum_func_create_extkey_from_parent_path"] = jsi::Function::createFromHostFunction(
2784
2896
  rt,
2785
2897
  jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_checksum_func_create_extkey_from_parent_path"),
@@ -2820,6 +2932,14 @@ NativeDdkFfi::NativeDdkFfi(
2820
2932
  return this->cpp_uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions(rt, thisVal, args, count);
2821
2933
  }
2822
2934
  );
2935
+ props["ubrn_uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions_with_fee_rule"] = jsi::Function::createFromHostFunction(
2936
+ rt,
2937
+ jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions_with_fee_rule"),
2938
+ 0,
2939
+ [this](jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args, size_t count) -> jsi::Value {
2940
+ return this->cpp_uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions_with_fee_rule(rt, thisVal, args, count);
2941
+ }
2942
+ );
2823
2943
  props["ubrn_uniffi_ddk_ffi_checksum_func_create_xpriv_from_parent_path"] = jsi::Function::createFromHostFunction(
2824
2944
  rt,
2825
2945
  jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_checksum_func_create_xpriv_from_parent_path"),
@@ -2948,6 +3068,14 @@ NativeDdkFfi::NativeDdkFfi(
2948
3068
  return this->cpp_uniffi_ddk_ffi_checksum_func_dlc_transactions_from_messages(rt, thisVal, args, count);
2949
3069
  }
2950
3070
  );
3071
+ props["ubrn_uniffi_ddk_ffi_checksum_func_dlc_transactions_from_signed_messages"] = jsi::Function::createFromHostFunction(
3072
+ rt,
3073
+ jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_checksum_func_dlc_transactions_from_signed_messages"),
3074
+ 0,
3075
+ [this](jsi::Runtime &rt, const jsi::Value &thisVal, const jsi::Value *args, size_t count) -> jsi::Value {
3076
+ return this->cpp_uniffi_ddk_ffi_checksum_func_dlc_transactions_from_signed_messages(rt, thisVal, args, count);
3077
+ }
3078
+ );
2951
3079
  props["ubrn_uniffi_ddk_ffi_checksum_func_finalize_sign"] = jsi::Function::createFromHostFunction(
2952
3080
  rt,
2953
3081
  jsi::PropNameID::forAscii(rt, "ubrn_uniffi_ddk_ffi_checksum_func_finalize_sign"),
@@ -3117,14 +3245,24 @@ NativeDdkFfi::NativeDdkFfi(
3117
3245
  throw jsi::JSError(rt, "rustbuffer_alloc failed: alloc returned null");
3118
3246
  }
3119
3247
  // Non-owning view over Rust-allocated memory; CMutableBuffer's destructor
3120
- // is the default and does not free `rb.data`. JS must call rustbuffer_free
3121
- // explicitly before dropping the reference.
3248
+ // is the default and does not free `rb.data`. The allocation is released
3249
+ // either by an explicit `rustbuffer_free(view)` or by being adopted when
3250
+ // the view is lowered as an FFI argument.
3122
3251
  auto payload = std::make_shared<uniffi_jsi::CMutableBuffer>(
3123
3252
  rb.data, static_cast<size_t>(rb.capacity));
3124
3253
  // Wrap as Uint8Array so JS can index/assign bytes directly.
3125
- return jsi::Value(
3126
- rt, uniffi_jsi::arraybufferToUint8Array(
3127
- rt, jsi::ArrayBuffer(rt, payload)));
3254
+ auto view = uniffi_jsi::arraybufferToUint8Array(
3255
+ rt, jsi::ArrayBuffer(rt, payload));
3256
+ // Stamp the capacity so the argument-lowering path
3257
+ // (`Bridging<RustBuffer>::fromJs`) recognises this view as
3258
+ // library-owned and adopts the allocation instead of copying it.
3259
+ // Without the stamp, a lowered argument is copied and this
3260
+ // allocation is orphaned — one leaked payload per call.
3261
+ if (rb.capacity > 0) {
3262
+ view.setProperty(rt, uniffi_jsi::kUbrnRustCapacity,
3263
+ jsi::Value(static_cast<double>(rb.capacity)));
3264
+ }
3265
+ return jsi::Value(rt, view);
3128
3266
  }
3129
3267
  );
3130
3268
 
@@ -3158,6 +3296,12 @@ NativeDdkFfi::NativeDdkFfi(
3158
3296
  capacity = static_cast<size_t>(
3159
3297
  view.getProperty(rt, uniffi_jsi::kUbrnRustCapacity).asNumber());
3160
3298
  }
3299
+ // A zero capacity marks a view already adopted as an FFI argument
3300
+ // (its hint was reset to 0) and freed by the callee. Freeing again
3301
+ // would be a double free, so this is a no-op.
3302
+ if (capacity == 0) {
3303
+ return jsi::Value::undefined();
3304
+ }
3161
3305
  auto buffer = view.getPropertyAsObject(rt, "buffer").getArrayBuffer(rt);
3162
3306
  auto byteOffset =
3163
3307
  static_cast<size_t>(view.getProperty(rt, "byteOffset").asNumber());
@@ -3499,6 +3643,16 @@ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_create_dlc_transactions(jsi:
3499
3643
  uniffi::ddk_ffi::Bridging<RustCallStatus>::copyIntoJs(rt, callInvoker, status, args[count - 1]);
3500
3644
 
3501
3645
 
3646
+ return uniffi::ddk_ffi::Bridging<RustBuffer>::toJs(rt, callInvoker, value);
3647
+ }
3648
+ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_create_dlc_transactions_with_fee_rule(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
3649
+ RustCallStatus status = uniffi::ddk_ffi::Bridging<RustCallStatus>::rustSuccess(rt);
3650
+ auto value = uniffi_ddk_ffi_fn_func_create_dlc_transactions_with_fee_rule(uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[0]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[1]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[2]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[3]), uniffi_jsi::Bridging<uint64_t>::fromJs(rt, callInvoker, args[4]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[5]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[6]), uniffi_jsi::Bridging<uint64_t>::fromJs(rt, callInvoker, args[7]), uniffi_jsi::Bridging<uint8_t>::fromJs(rt, callInvoker, args[8]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[9]),
3651
+ &status
3652
+ );
3653
+ uniffi::ddk_ffi::Bridging<RustCallStatus>::copyIntoJs(rt, callInvoker, status, args[count - 1]);
3654
+
3655
+
3502
3656
  return uniffi::ddk_ffi::Bridging<RustBuffer>::toJs(rt, callInvoker, value);
3503
3657
  }
3504
3658
  jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_create_extkey_from_parent_path(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
@@ -3549,6 +3703,16 @@ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_create_spliced_dlc_transacti
3549
3703
  uniffi::ddk_ffi::Bridging<RustCallStatus>::copyIntoJs(rt, callInvoker, status, args[count - 1]);
3550
3704
 
3551
3705
 
3706
+ return uniffi::ddk_ffi::Bridging<RustBuffer>::toJs(rt, callInvoker, value);
3707
+ }
3708
+ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_create_spliced_dlc_transactions_with_fee_rule(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
3709
+ RustCallStatus status = uniffi::ddk_ffi::Bridging<RustCallStatus>::rustSuccess(rt);
3710
+ auto value = uniffi_ddk_ffi_fn_func_create_spliced_dlc_transactions_with_fee_rule(uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[0]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[1]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[2]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[3]), uniffi_jsi::Bridging<uint64_t>::fromJs(rt, callInvoker, args[4]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[5]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[6]), uniffi_jsi::Bridging<uint64_t>::fromJs(rt, callInvoker, args[7]), uniffi_jsi::Bridging<uint8_t>::fromJs(rt, callInvoker, args[8]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[9]),
3711
+ &status
3712
+ );
3713
+ uniffi::ddk_ffi::Bridging<RustCallStatus>::copyIntoJs(rt, callInvoker, status, args[count - 1]);
3714
+
3715
+
3552
3716
  return uniffi::ddk_ffi::Bridging<RustBuffer>::toJs(rt, callInvoker, value);
3553
3717
  }
3554
3718
  jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_create_xpriv_from_parent_path(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
@@ -3662,7 +3826,7 @@ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_contract_info_payouts(jsi::R
3662
3826
  }
3663
3827
  jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_create_dlc_splice_input(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
3664
3828
  RustCallStatus status = uniffi::ddk_ffi::Bridging<RustCallStatus>::rustSuccess(rt);
3665
- auto value = uniffi_ddk_ffi_fn_func_create_dlc_splice_input(uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[0]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[1]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[2]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[3]), uniffi_jsi::Bridging<uint16_t>::fromJs(rt, callInvoker, args[4]),
3829
+ auto value = uniffi_ddk_ffi_fn_func_create_dlc_splice_input(uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[0]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[1]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[2]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[3]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[4]), uniffi_jsi::Bridging<uint16_t>::fromJs(rt, callInvoker, args[5]),
3666
3830
  &status
3667
3831
  );
3668
3832
  uniffi::ddk_ffi::Bridging<RustCallStatus>::copyIntoJs(rt, callInvoker, status, args[count - 1]);
@@ -3707,6 +3871,16 @@ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_dlc_transactions_from_messag
3707
3871
  uniffi::ddk_ffi::Bridging<RustCallStatus>::copyIntoJs(rt, callInvoker, status, args[count - 1]);
3708
3872
 
3709
3873
 
3874
+ return uniffi::ddk_ffi::Bridging<RustBuffer>::toJs(rt, callInvoker, value);
3875
+ }
3876
+ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_dlc_transactions_from_signed_messages(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
3877
+ RustCallStatus status = uniffi::ddk_ffi::Bridging<RustCallStatus>::rustSuccess(rt);
3878
+ auto value = uniffi_ddk_ffi_fn_func_dlc_transactions_from_signed_messages(uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[0]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[1]), uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[2]),
3879
+ &status
3880
+ );
3881
+ uniffi::ddk_ffi::Bridging<RustCallStatus>::copyIntoJs(rt, callInvoker, status, args[count - 1]);
3882
+
3883
+
3710
3884
  return uniffi::ddk_ffi::Bridging<RustBuffer>::toJs(rt, callInvoker, value);
3711
3885
  }
3712
3886
  jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_finalize_sign(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
@@ -3801,7 +3975,7 @@ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_validate_accept(jsi::Runtime
3801
3975
  }
3802
3976
  jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_fn_func_validate_offer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
3803
3977
  RustCallStatus status = uniffi::ddk_ffi::Bridging<RustCallStatus>::rustSuccess(rt);
3804
- uniffi_ddk_ffi_fn_func_validate_offer(uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[0]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[1]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[2]),
3978
+ uniffi_ddk_ffi_fn_func_validate_offer(uniffi::ddk_ffi::Bridging<RustBuffer>::fromJs(rt, callInvoker, args[0]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[1]), uniffi_jsi::Bridging<uint32_t>::fromJs(rt, callInvoker, args[2]), uniffi_jsi::Bridging<uint64_t>::fromJs(rt, callInvoker, args[3]),
3805
3979
  &status
3806
3980
  );
3807
3981
  uniffi::ddk_ffi::Bridging<RustCallStatus>::copyIntoJs(rt, callInvoker, status, args[count - 1]);
@@ -3866,6 +4040,13 @@ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_checksum_func_create_dlc_transaction
3866
4040
  );
3867
4041
 
3868
4042
 
4043
+ return uniffi_jsi::Bridging<uint16_t>::toJs(rt, callInvoker, value);
4044
+ }
4045
+ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_checksum_func_create_dlc_transactions_with_fee_rule(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
4046
+ auto value = uniffi_ddk_ffi_checksum_func_create_dlc_transactions_with_fee_rule(
4047
+ );
4048
+
4049
+
3869
4050
  return uniffi_jsi::Bridging<uint16_t>::toJs(rt, callInvoker, value);
3870
4051
  }
3871
4052
  jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_checksum_func_create_extkey_from_parent_path(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
@@ -3901,6 +4082,13 @@ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_checksum_func_create_spliced_dlc_tra
3901
4082
  );
3902
4083
 
3903
4084
 
4085
+ return uniffi_jsi::Bridging<uint16_t>::toJs(rt, callInvoker, value);
4086
+ }
4087
+ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions_with_fee_rule(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
4088
+ auto value = uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions_with_fee_rule(
4089
+ );
4090
+
4091
+
3904
4092
  return uniffi_jsi::Bridging<uint16_t>::toJs(rt, callInvoker, value);
3905
4093
  }
3906
4094
  jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_checksum_func_create_xpriv_from_parent_path(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
@@ -4013,6 +4201,13 @@ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_checksum_func_dlc_transactions_from_
4013
4201
  );
4014
4202
 
4015
4203
 
4204
+ return uniffi_jsi::Bridging<uint16_t>::toJs(rt, callInvoker, value);
4205
+ }
4206
+ jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_checksum_func_dlc_transactions_from_signed_messages(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
4207
+ auto value = uniffi_ddk_ffi_checksum_func_dlc_transactions_from_signed_messages(
4208
+ );
4209
+
4210
+
4016
4211
  return uniffi_jsi::Bridging<uint16_t>::toJs(rt, callInvoker, value);
4017
4212
  }
4018
4213
  jsi::Value NativeDdkFfi::cpp_uniffi_ddk_ffi_checksum_func_finalize_sign(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count) {
package/cpp/ddk_ffi.hpp CHANGED
@@ -48,11 +48,13 @@ class NativeDdkFfi : public jsi::HostObject {
48
48
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_cet_adaptor_sigs_from_points(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
49
49
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_cets(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
50
50
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_dlc_transactions(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
51
+ jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_dlc_transactions_with_fee_rule(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
51
52
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_extkey_from_parent_path(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
52
53
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_extkey_from_seed(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
53
54
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_fund_tx_locking_script(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
54
55
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_refund_transaction(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
55
56
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_spliced_dlc_transactions(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
57
+ jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_spliced_dlc_transactions_with_fee_rule(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
56
58
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_xpriv_from_parent_path(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
57
59
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_extract_ecdsa_signature_from_oracle_signatures(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
58
60
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_get_pubkey_from_extkey(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
@@ -69,6 +71,7 @@ class NativeDdkFfi : public jsi::HostObject {
69
71
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_create_offer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
70
72
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_dlc_input_max_witness_len(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
71
73
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_dlc_transactions_from_messages(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
74
+ jsi::Value cpp_uniffi_ddk_ffi_fn_func_dlc_transactions_from_signed_messages(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
72
75
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_finalize_sign(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
73
76
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_finalize_sign_spliced(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
74
77
  jsi::Value cpp_uniffi_ddk_ffi_fn_func_funding_input(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
@@ -87,11 +90,13 @@ class NativeDdkFfi : public jsi::HostObject {
87
90
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_cet_adaptor_sigs_from_points(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
88
91
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_cets(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
89
92
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_dlc_transactions(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
93
+ jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_dlc_transactions_with_fee_rule(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
90
94
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_extkey_from_parent_path(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
91
95
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_extkey_from_seed(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
92
96
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_fund_tx_locking_script(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
93
97
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_refund_transaction(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
94
98
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
99
+ jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_spliced_dlc_transactions_with_fee_rule(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
95
100
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_xpriv_from_parent_path(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
96
101
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_extract_ecdsa_signature_from_oracle_signatures(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
97
102
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_get_pubkey_from_extkey(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
@@ -108,6 +113,7 @@ class NativeDdkFfi : public jsi::HostObject {
108
113
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_create_offer(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
109
114
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_dlc_input_max_witness_len(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
110
115
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_dlc_transactions_from_messages(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
116
+ jsi::Value cpp_uniffi_ddk_ffi_checksum_func_dlc_transactions_from_signed_messages(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
111
117
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_finalize_sign(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
112
118
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_finalize_sign_spliced(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
113
119
  jsi::Value cpp_uniffi_ddk_ffi_checksum_func_funding_input(jsi::Runtime& rt, const jsi::Value& thisVal, const jsi::Value* args, size_t count);
@@ -8,7 +8,7 @@
8
8
  <key>BinaryPath</key>
9
9
  <string>libddk_ffi.a</string>
10
10
  <key>LibraryIdentifier</key>
11
- <string>ios-arm64</string>
11
+ <string>ios-arm64-simulator</string>
12
12
  <key>LibraryPath</key>
13
13
  <string>libddk_ffi.a</string>
14
14
  <key>SupportedArchitectures</key>
@@ -17,12 +17,14 @@
17
17
  </array>
18
18
  <key>SupportedPlatform</key>
19
19
  <string>ios</string>
20
+ <key>SupportedPlatformVariant</key>
21
+ <string>simulator</string>
20
22
  </dict>
21
23
  <dict>
22
24
  <key>BinaryPath</key>
23
25
  <string>libddk_ffi.a</string>
24
26
  <key>LibraryIdentifier</key>
25
- <string>ios-arm64-simulator</string>
27
+ <string>ios-arm64</string>
26
28
  <key>LibraryPath</key>
27
29
  <string>libddk_ffi.a</string>
28
30
  <key>SupportedArchitectures</key>
@@ -31,8 +33,6 @@
31
33
  </array>
32
34
  <key>SupportedPlatform</key>
33
35
  <string>ios</string>
34
- <key>SupportedPlatformVariant</key>
35
- <string>simulator</string>
36
36
  </dict>
37
37
  </array>
38
38
  <key>CFBundlePackageType</key>
@@ -1 +1 @@
1
- {"version":3,"names":["getter","globalThis","NativeDdkFfi","_default","exports","default","isRustFutureContinuationCallbackTypeCompatible"],"sourceRoot":"../../src","sources":["ddk_ffi-ffi.ts"],"mappings":";;;;;;AAAA;AACA;;AAEA;AACA;AACA;;AA8lBA,MAAMA,MAAmC,GAAGA,CAAA,KACzCC,UAAU,CAASC,YAAY;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACpBL,MAAM,EAErB;AAWA;AACA;AACA;AACA;AACA,MAAMM,8CAGL,GAAG,IAAI","ignoreList":[]}
1
+ {"version":3,"names":["getter","globalThis","NativeDdkFfi","_default","exports","default","isRustFutureContinuationCallbackTypeCompatible"],"sourceRoot":"../../src","sources":["ddk_ffi-ffi.ts"],"mappings":";;;;;;AAAA;AACA;;AAEA;AACA;AACA;;AAmoBA,MAAMA,MAAmC,GAAGA,CAAA,KACzCC,UAAU,CAASC,YAAY;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACpBL,MAAM,EAErB;AAWA;AACA;AACA;AACA;AACA,MAAMM,8CAGL,GAAG,IAAI","ignoreList":[]}