react-native-bdk-sdk 0.1.5 → 0.1.6

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.
Files changed (37) hide show
  1. package/cpp/generated/bdk_ffi.cpp +122 -0
  2. package/cpp/generated/bdk_ffi.hpp +6 -0
  3. package/lib/commonjs/generated/bdk_ffi-ffi.js.map +1 -1
  4. package/lib/commonjs/generated/bdk_ffi.js +132 -7
  5. package/lib/commonjs/generated/bdk_ffi.js.map +1 -1
  6. package/lib/commonjs/index.js +14 -0
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/wrapper.js +433 -0
  9. package/lib/commonjs/wrapper.js.map +1 -0
  10. package/lib/module/generated/bdk_ffi-ffi.js.map +1 -1
  11. package/lib/module/generated/bdk_ffi.js +128 -6
  12. package/lib/module/generated/bdk_ffi.js.map +1 -1
  13. package/lib/module/index.js +3 -0
  14. package/lib/module/index.js.map +1 -1
  15. package/lib/module/wrapper.js +427 -0
  16. package/lib/module/wrapper.js.map +1 -0
  17. package/lib/typescript/commonjs/src/generated/bdk_ffi-ffi.d.ts +6 -0
  18. package/lib/typescript/commonjs/src/generated/bdk_ffi-ffi.d.ts.map +1 -1
  19. package/lib/typescript/commonjs/src/generated/bdk_ffi.d.ts +61 -2
  20. package/lib/typescript/commonjs/src/generated/bdk_ffi.d.ts.map +1 -1
  21. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  22. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  23. package/lib/typescript/commonjs/src/wrapper.d.ts +168 -0
  24. package/lib/typescript/commonjs/src/wrapper.d.ts.map +1 -0
  25. package/lib/typescript/module/src/generated/bdk_ffi-ffi.d.ts +6 -0
  26. package/lib/typescript/module/src/generated/bdk_ffi-ffi.d.ts.map +1 -1
  27. package/lib/typescript/module/src/generated/bdk_ffi.d.ts +61 -2
  28. package/lib/typescript/module/src/generated/bdk_ffi.d.ts.map +1 -1
  29. package/lib/typescript/module/src/index.d.ts +1 -0
  30. package/lib/typescript/module/src/index.d.ts.map +1 -1
  31. package/lib/typescript/module/src/wrapper.d.ts +168 -0
  32. package/lib/typescript/module/src/wrapper.d.ts.map +1 -0
  33. package/package.json +3 -3
  34. package/src/generated/bdk_ffi-ffi.ts +20 -0
  35. package/src/generated/bdk_ffi.ts +232 -7
  36. package/src/index.tsx +3 -0
  37. package/src/wrapper.ts +614 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../../src/wrapper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-bdk-sdk",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "React Native language bindings for the Bitcoin Development Kit",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
@@ -79,8 +79,8 @@
79
79
  "access": "public"
80
80
  },
81
81
  "checksums": {
82
- "android": "25edd2b353574938337f1feca83efe62562fec0d3204d2b1e7c5e15f0a476db8",
83
- "ios": "e5b5264f2801ba48fde9e5ea888a46aa46a6a2884fed0d1f92fee2acac4fb110"
82
+ "android": "b736828274b93dd960ae74f1697eae10f6415931b5867093673081d4079b66de",
83
+ "ios": "a0f1b46325f6bd8dd4bf93621adf8ea70f2051d062da370a17482b74148d12bd"
84
84
  },
85
85
  "dependencies": {
86
86
  "uniffi-bindgen-react-native": "0.31.0-2"
@@ -523,6 +523,11 @@ interface NativeModuleInterface {
523
523
  index: number,
524
524
  uniffi_out_err: UniffiRustCallStatus
525
525
  ): number;
526
+ ubrn_uniffi_bdk_ffi_fn_func_address_from_script(
527
+ scriptHex: Uint8Array,
528
+ network: Uint8Array,
529
+ uniffi_out_err: UniffiRustCallStatus
530
+ ): Uint8Array;
526
531
  ubrn_uniffi_bdk_ffi_fn_func_create_descriptor(
527
532
  mnemonic: bigint,
528
533
  template: Uint8Array,
@@ -530,6 +535,13 @@ interface NativeModuleInterface {
530
535
  network: Uint8Array,
531
536
  uniffi_out_err: UniffiRustCallStatus
532
537
  ): Uint8Array;
538
+ ubrn_uniffi_bdk_ffi_fn_func_create_descriptor_from_string(
539
+ mnemonic: Uint8Array,
540
+ template: Uint8Array,
541
+ keychain: Uint8Array,
542
+ network: Uint8Array,
543
+ uniffi_out_err: UniffiRustCallStatus
544
+ ): Uint8Array;
533
545
  ubrn_uniffi_bdk_ffi_fn_func_create_public_descriptor(
534
546
  xpub: Uint8Array,
535
547
  template: Uint8Array,
@@ -560,6 +572,11 @@ interface NativeModuleInterface {
560
572
  network: Uint8Array,
561
573
  uniffi_out_err: UniffiRustCallStatus
562
574
  ): number;
575
+ ubrn_uniffi_bdk_ffi_fn_func_validate_descriptor(
576
+ descriptor: Uint8Array,
577
+ network: Uint8Array,
578
+ uniffi_out_err: UniffiRustCallStatus
579
+ ): number;
563
580
  ubrn_uniffi_bdk_ffi_fn_func_version(
564
581
  uniffi_out_err: UniffiRustCallStatus
565
582
  ): Uint8Array;
@@ -701,12 +718,15 @@ interface NativeModuleInterface {
701
718
  handle: bigint,
702
719
  uniffi_out_err: UniffiRustCallStatus
703
720
  ): void;
721
+ ubrn_uniffi_bdk_ffi_checksum_func_address_from_script(): number;
704
722
  ubrn_uniffi_bdk_ffi_checksum_func_create_descriptor(): number;
723
+ ubrn_uniffi_bdk_ffi_checksum_func_create_descriptor_from_string(): number;
705
724
  ubrn_uniffi_bdk_ffi_checksum_func_create_public_descriptor(): number;
706
725
  ubrn_uniffi_bdk_ffi_checksum_func_create_single_key_descriptor(): number;
707
726
  ubrn_uniffi_bdk_ffi_checksum_func_create_wallet(): number;
708
727
  ubrn_uniffi_bdk_ffi_checksum_func_export_wallet(): number;
709
728
  ubrn_uniffi_bdk_ffi_checksum_func_is_valid_address(): number;
729
+ ubrn_uniffi_bdk_ffi_checksum_func_validate_descriptor(): number;
710
730
  ubrn_uniffi_bdk_ffi_checksum_func_version(): number;
711
731
  ubrn_uniffi_bdk_ffi_checksum_func_wallet_name_from_descriptor(): number;
712
732
  ubrn_uniffi_bdk_ffi_checksum_method_mnemonic_language(): number;
@@ -76,6 +76,29 @@ const uniffiIsDebug =
76
76
  false;
77
77
  // Public interface members begin here.
78
78
 
79
+ /**
80
+ * Convert a scriptPubKey (hex) to an address string for the given network.
81
+ */
82
+ export function addressFromScript(
83
+ scriptHex: string,
84
+ network: Network
85
+ ): string /*throws*/ {
86
+ return FfiConverterString.lift(
87
+ uniffiCaller.rustCallWithError(
88
+ /*liftError:*/ FfiConverterTypeBdkError.lift.bind(
89
+ FfiConverterTypeBdkError
90
+ ),
91
+ /*caller:*/ (callStatus) => {
92
+ return nativeModule().ubrn_uniffi_bdk_ffi_fn_func_address_from_script(
93
+ FfiConverterString.lower(scriptHex),
94
+ FfiConverterTypeNetwork.lower(network),
95
+ callStatus
96
+ );
97
+ },
98
+ /*liftString:*/ FfiConverterString.lift
99
+ )
100
+ );
101
+ }
79
102
  /**
80
103
  * Generate an output descriptor string from a mnemonic using a standard BIP template.
81
104
  */
@@ -103,6 +126,33 @@ export function createDescriptor(
103
126
  )
104
127
  );
105
128
  }
129
+ /**
130
+ * Generate an output descriptor from a mnemonic string directly (convenience).
131
+ */
132
+ export function createDescriptorFromString(
133
+ mnemonic: string,
134
+ template: DescriptorTemplate,
135
+ keychain: KeychainKind,
136
+ network: Network
137
+ ): string /*throws*/ {
138
+ return FfiConverterString.lift(
139
+ uniffiCaller.rustCallWithError(
140
+ /*liftError:*/ FfiConverterTypeBdkError.lift.bind(
141
+ FfiConverterTypeBdkError
142
+ ),
143
+ /*caller:*/ (callStatus) => {
144
+ return nativeModule().ubrn_uniffi_bdk_ffi_fn_func_create_descriptor_from_string(
145
+ FfiConverterString.lower(mnemonic),
146
+ FfiConverterTypeDescriptorTemplate.lower(template),
147
+ FfiConverterTypeKeychainKind.lower(keychain),
148
+ FfiConverterTypeNetwork.lower(network),
149
+ callStatus
150
+ );
151
+ },
152
+ /*liftString:*/ FfiConverterString.lift
153
+ )
154
+ );
155
+ }
106
156
  /**
107
157
  * Generate a public (watch-only) descriptor from an xpub string.
108
158
  */
@@ -157,10 +207,11 @@ export function createSingleKeyDescriptor(
157
207
  }
158
208
  /**
159
209
  * Async wallet factory — creates or loads a wallet without blocking the JS thread.
210
+ * Pass null for change_descriptor to use the main descriptor for both keychains.
160
211
  */
161
212
  export async function createWallet(
162
213
  descriptor: string,
163
- changeDescriptor: string,
214
+ changeDescriptor: string | undefined,
164
215
  network: Network,
165
216
  dbPath: string,
166
217
  asyncOpts_?: { signal: AbortSignal }
@@ -172,7 +223,7 @@ export async function createWallet(
172
223
  /*rustFutureFunc:*/ () => {
173
224
  return nativeModule().ubrn_uniffi_bdk_ffi_fn_func_create_wallet(
174
225
  FfiConverterString.lower(descriptor),
175
- FfiConverterString.lower(changeDescriptor),
226
+ FfiConverterOptionalString.lower(changeDescriptor),
176
227
  FfiConverterTypeNetwork.lower(network),
177
228
  FfiConverterString.lower(dbPath)
178
229
  );
@@ -238,6 +289,26 @@ export function isValidAddress(address: string, network: Network): boolean {
238
289
  )
239
290
  );
240
291
  }
292
+ /**
293
+ * Validate a descriptor string for the given network without creating a wallet.
294
+ */
295
+ export function validateDescriptor(
296
+ descriptor: string,
297
+ network: Network
298
+ ): boolean {
299
+ return FfiConverterBool.lift(
300
+ uniffiCaller.rustCall(
301
+ /*caller:*/ (callStatus) => {
302
+ return nativeModule().ubrn_uniffi_bdk_ffi_fn_func_validate_descriptor(
303
+ FfiConverterString.lower(descriptor),
304
+ FfiConverterTypeNetwork.lower(network),
305
+ callStatus
306
+ );
307
+ },
308
+ /*liftString:*/ FfiConverterString.lift
309
+ )
310
+ );
311
+ }
241
312
  /**
242
313
  * Runtime version of the bdk_wallet crate.
243
314
  */
@@ -775,6 +846,10 @@ export type TxDetails = {
775
846
  balanceDelta: /*i64*/ bigint;
776
847
  confirmationBlockTime?: ConfirmationBlockTime;
777
848
  txHex: string;
849
+ version: /*i32*/ number;
850
+ locktime: /*u32*/ number;
851
+ inputs: Array<TxInput>;
852
+ outputs: Array<TxOutput>;
778
853
  };
779
854
 
780
855
  /**
@@ -806,6 +881,10 @@ const FfiConverterTypeTxDetails = (() => {
806
881
  confirmationBlockTime:
807
882
  FfiConverterOptionalTypeConfirmationBlockTime.read(from),
808
883
  txHex: FfiConverterString.read(from),
884
+ version: FfiConverterInt32.read(from),
885
+ locktime: FfiConverterUInt32.read(from),
886
+ inputs: FfiConverterArrayTypeTxInput.read(from),
887
+ outputs: FfiConverterArrayTypeTxOutput.read(from),
809
888
  };
810
889
  }
811
890
  write(value: TypeName, into: RustBuffer): void {
@@ -820,6 +899,10 @@ const FfiConverterTypeTxDetails = (() => {
820
899
  into
821
900
  );
822
901
  FfiConverterString.write(value.txHex, into);
902
+ FfiConverterInt32.write(value.version, into);
903
+ FfiConverterUInt32.write(value.locktime, into);
904
+ FfiConverterArrayTypeTxInput.write(value.inputs, into);
905
+ FfiConverterArrayTypeTxOutput.write(value.outputs, into);
823
906
  }
824
907
  allocationSize(value: TypeName): number {
825
908
  return (
@@ -832,7 +915,66 @@ const FfiConverterTypeTxDetails = (() => {
832
915
  FfiConverterOptionalTypeConfirmationBlockTime.allocationSize(
833
916
  value.confirmationBlockTime
834
917
  ) +
835
- FfiConverterString.allocationSize(value.txHex)
918
+ FfiConverterString.allocationSize(value.txHex) +
919
+ FfiConverterInt32.allocationSize(value.version) +
920
+ FfiConverterUInt32.allocationSize(value.locktime) +
921
+ FfiConverterArrayTypeTxInput.allocationSize(value.inputs) +
922
+ FfiConverterArrayTypeTxOutput.allocationSize(value.outputs)
923
+ );
924
+ }
925
+ }
926
+ return new FFIConverter();
927
+ })();
928
+
929
+ export type TxInput = {
930
+ previousTxid: string;
931
+ previousVout: /*u32*/ number;
932
+ sequence: /*u32*/ number;
933
+ scriptSigHex: string;
934
+ witness: Array<string>;
935
+ };
936
+
937
+ /**
938
+ * Generated factory for {@link TxInput} record objects.
939
+ */
940
+ export const TxInput = (() => {
941
+ const defaults = () => ({});
942
+ const create = (() => {
943
+ return uniffiCreateRecord<TxInput, ReturnType<typeof defaults>>(defaults);
944
+ })();
945
+ return Object.freeze({
946
+ create,
947
+ new: create,
948
+ defaults: () => Object.freeze(defaults()) as Partial<TxInput>,
949
+ });
950
+ })();
951
+
952
+ const FfiConverterTypeTxInput = (() => {
953
+ type TypeName = TxInput;
954
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
955
+ read(from: RustBuffer): TypeName {
956
+ return {
957
+ previousTxid: FfiConverterString.read(from),
958
+ previousVout: FfiConverterUInt32.read(from),
959
+ sequence: FfiConverterUInt32.read(from),
960
+ scriptSigHex: FfiConverterString.read(from),
961
+ witness: FfiConverterArrayString.read(from),
962
+ };
963
+ }
964
+ write(value: TypeName, into: RustBuffer): void {
965
+ FfiConverterString.write(value.previousTxid, into);
966
+ FfiConverterUInt32.write(value.previousVout, into);
967
+ FfiConverterUInt32.write(value.sequence, into);
968
+ FfiConverterString.write(value.scriptSigHex, into);
969
+ FfiConverterArrayString.write(value.witness, into);
970
+ }
971
+ allocationSize(value: TypeName): number {
972
+ return (
973
+ FfiConverterString.allocationSize(value.previousTxid) +
974
+ FfiConverterUInt32.allocationSize(value.previousVout) +
975
+ FfiConverterUInt32.allocationSize(value.sequence) +
976
+ FfiConverterString.allocationSize(value.scriptSigHex) +
977
+ FfiConverterArrayString.allocationSize(value.witness)
836
978
  );
837
979
  }
838
980
  }
@@ -882,6 +1024,53 @@ const FfiConverterTypeTxOut = (() => {
882
1024
  return new FFIConverter();
883
1025
  })();
884
1026
 
1027
+ export type TxOutput = {
1028
+ value: /*u64*/ bigint;
1029
+ scriptPubkeyHex: string;
1030
+ address?: string;
1031
+ };
1032
+
1033
+ /**
1034
+ * Generated factory for {@link TxOutput} record objects.
1035
+ */
1036
+ export const TxOutput = (() => {
1037
+ const defaults = () => ({});
1038
+ const create = (() => {
1039
+ return uniffiCreateRecord<TxOutput, ReturnType<typeof defaults>>(defaults);
1040
+ })();
1041
+ return Object.freeze({
1042
+ create,
1043
+ new: create,
1044
+ defaults: () => Object.freeze(defaults()) as Partial<TxOutput>,
1045
+ });
1046
+ })();
1047
+
1048
+ const FfiConverterTypeTxOutput = (() => {
1049
+ type TypeName = TxOutput;
1050
+ class FFIConverter extends AbstractFfiConverterByteArray<TypeName> {
1051
+ read(from: RustBuffer): TypeName {
1052
+ return {
1053
+ value: FfiConverterUInt64.read(from),
1054
+ scriptPubkeyHex: FfiConverterString.read(from),
1055
+ address: FfiConverterOptionalString.read(from),
1056
+ };
1057
+ }
1058
+ write(value: TypeName, into: RustBuffer): void {
1059
+ FfiConverterUInt64.write(value.value, into);
1060
+ FfiConverterString.write(value.scriptPubkeyHex, into);
1061
+ FfiConverterOptionalString.write(value.address, into);
1062
+ }
1063
+ allocationSize(value: TypeName): number {
1064
+ return (
1065
+ FfiConverterUInt64.allocationSize(value.value) +
1066
+ FfiConverterString.allocationSize(value.scriptPubkeyHex) +
1067
+ FfiConverterOptionalString.allocationSize(value.address)
1068
+ );
1069
+ }
1070
+ }
1071
+ return new FFIConverter();
1072
+ })();
1073
+
885
1074
  const stringConverter = {
886
1075
  stringToBytes: (s: string) =>
887
1076
  uniffiCaller.rustCall((status) =>
@@ -5574,7 +5763,7 @@ export class Wallet extends UniffiAbstractObject implements WalletLike {
5574
5763
  */
5575
5764
  constructor(
5576
5765
  descriptor: string,
5577
- changeDescriptor: string,
5766
+ changeDescriptor: string | undefined,
5578
5767
  network: Network,
5579
5768
  dbPath: string
5580
5769
  ) /*throws*/ {
@@ -5586,7 +5775,7 @@ export class Wallet extends UniffiAbstractObject implements WalletLike {
5586
5775
  /*caller:*/ (callStatus) => {
5587
5776
  return nativeModule().ubrn_uniffi_bdk_ffi_fn_constructor_wallet_new(
5588
5777
  FfiConverterString.lower(descriptor),
5589
- FfiConverterString.lower(changeDescriptor),
5778
+ FfiConverterOptionalString.lower(changeDescriptor),
5590
5779
  FfiConverterTypeNetwork.lower(network),
5591
5780
  FfiConverterString.lower(dbPath),
5592
5781
  callStatus
@@ -6730,6 +6919,16 @@ const FfiConverterArrayTypeTxDetails = new FfiConverterArray(
6730
6919
  FfiConverterTypeTxDetails
6731
6920
  );
6732
6921
 
6922
+ // FfiConverter for Array<TxInput>
6923
+ const FfiConverterArrayTypeTxInput = new FfiConverterArray(
6924
+ FfiConverterTypeTxInput
6925
+ );
6926
+
6927
+ // FfiConverter for Array<TxOutput>
6928
+ const FfiConverterArrayTypeTxOutput = new FfiConverterArray(
6929
+ FfiConverterTypeTxOutput
6930
+ );
6931
+
6733
6932
  // FfiConverter for Array<string>
6734
6933
  const FfiConverterArrayString = new FfiConverterArray(FfiConverterString);
6735
6934
 
@@ -6758,6 +6957,14 @@ function uniffiEnsureInitialized() {
6758
6957
  bindingsContractVersion
6759
6958
  );
6760
6959
  }
6960
+ if (
6961
+ nativeModule().ubrn_uniffi_bdk_ffi_checksum_func_address_from_script() !==
6962
+ 50547
6963
+ ) {
6964
+ throw new UniffiInternalError.ApiChecksumMismatch(
6965
+ "uniffi_bdk_ffi_checksum_func_address_from_script"
6966
+ );
6967
+ }
6761
6968
  if (
6762
6969
  nativeModule().ubrn_uniffi_bdk_ffi_checksum_func_create_descriptor() !== 166
6763
6970
  ) {
@@ -6765,6 +6972,14 @@ function uniffiEnsureInitialized() {
6765
6972
  "uniffi_bdk_ffi_checksum_func_create_descriptor"
6766
6973
  );
6767
6974
  }
6975
+ if (
6976
+ nativeModule().ubrn_uniffi_bdk_ffi_checksum_func_create_descriptor_from_string() !==
6977
+ 29727
6978
+ ) {
6979
+ throw new UniffiInternalError.ApiChecksumMismatch(
6980
+ "uniffi_bdk_ffi_checksum_func_create_descriptor_from_string"
6981
+ );
6982
+ }
6768
6983
  if (
6769
6984
  nativeModule().ubrn_uniffi_bdk_ffi_checksum_func_create_public_descriptor() !==
6770
6985
  10610
@@ -6782,7 +6997,7 @@ function uniffiEnsureInitialized() {
6782
6997
  );
6783
6998
  }
6784
6999
  if (
6785
- nativeModule().ubrn_uniffi_bdk_ffi_checksum_func_create_wallet() !== 63339
7000
+ nativeModule().ubrn_uniffi_bdk_ffi_checksum_func_create_wallet() !== 59494
6786
7001
  ) {
6787
7002
  throw new UniffiInternalError.ApiChecksumMismatch(
6788
7003
  "uniffi_bdk_ffi_checksum_func_create_wallet"
@@ -6803,6 +7018,14 @@ function uniffiEnsureInitialized() {
6803
7018
  "uniffi_bdk_ffi_checksum_func_is_valid_address"
6804
7019
  );
6805
7020
  }
7021
+ if (
7022
+ nativeModule().ubrn_uniffi_bdk_ffi_checksum_func_validate_descriptor() !==
7023
+ 44572
7024
+ ) {
7025
+ throw new UniffiInternalError.ApiChecksumMismatch(
7026
+ "uniffi_bdk_ffi_checksum_func_validate_descriptor"
7027
+ );
7028
+ }
6806
7029
  if (nativeModule().ubrn_uniffi_bdk_ffi_checksum_func_version() !== 5205) {
6807
7030
  throw new UniffiInternalError.ApiChecksumMismatch(
6808
7031
  "uniffi_bdk_ffi_checksum_func_version"
@@ -7563,7 +7786,7 @@ function uniffiEnsureInitialized() {
7563
7786
  }
7564
7787
  if (
7565
7788
  nativeModule().ubrn_uniffi_bdk_ffi_checksum_constructor_wallet_new() !==
7566
- 38801
7789
+ 64812
7567
7790
  ) {
7568
7791
  throw new UniffiInternalError.ApiChecksumMismatch(
7569
7792
  "uniffi_bdk_ffi_checksum_constructor_wallet_new"
@@ -7596,8 +7819,10 @@ export default Object.freeze({
7596
7819
  FfiConverterTypeSingleKeyDescriptorTemplate,
7597
7820
  FfiConverterTypeTxBuilder,
7598
7821
  FfiConverterTypeTxDetails,
7822
+ FfiConverterTypeTxInput,
7599
7823
  FfiConverterTypeTxOrdering,
7600
7824
  FfiConverterTypeTxOut,
7825
+ FfiConverterTypeTxOutput,
7601
7826
  FfiConverterTypeWallet,
7602
7827
  FfiConverterTypeWalletEvent,
7603
7828
  FfiConverterTypeWordCount,
package/src/index.tsx CHANGED
@@ -13,6 +13,9 @@ if (!rustInstalled) {
13
13
  // Export the generated bindings to the app.
14
14
  export * from './generated/bdk_ffi';
15
15
 
16
+ // Export number-friendly wrappers (lives outside generated/ so codegen won't overwrite).
17
+ export * from './wrapper';
18
+
16
19
  // Now import the bindings so we can:
17
20
  // - intialize them
18
21
  // - export them as namespaced objects as the default export.