react-native-bdk-sdk 0.1.4 → 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 +345 -12
  2. package/cpp/generated/bdk_ffi.hpp +17 -0
  3. package/lib/commonjs/generated/bdk_ffi-ffi.js.map +1 -1
  4. package/lib/commonjs/generated/bdk_ffi.js +1946 -1266
  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 +1941 -1266
  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 +21 -4
  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 +3372 -1829
  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 +21 -4
  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 +3372 -1829
  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 +63 -5
  35. package/src/generated/bdk_ffi.ts +2743 -1692
  36. package/src/index.tsx +3 -0
  37. package/src/wrapper.ts +614 -0
@@ -15,6 +15,9 @@ if (!rustInstalled) {
15
15
  // Export the generated bindings to the app.
16
16
  export * from "./generated/bdk_ffi.js";
17
17
 
18
+ // Export number-friendly wrappers (lives outside generated/ so codegen won't overwrite).
19
+ export * from "./wrapper.js";
20
+
18
21
  // Now import the bindings so we can:
19
22
  // - intialize them
20
23
  // - export them as namespaced objects as the default export.
@@ -1 +1 @@
1
- {"version":3,"names":["installer","rustInstalled","installRustCrate","bdk_ffi","initialized","default","initialize","uniffiInitAsync"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA,OAAOA,SAAS,MAAM,mBAAgB;;AAEtC;AACA;AACA;AACA,IAAIC,aAAa,GAAG,KAAK;AACzB,IAAI,CAACA,aAAa,EAAE;EAClBD,SAAS,CAACE,gBAAgB,CAAC,CAAC;EAC5BD,aAAa,GAAG,IAAI;AACtB;;AAEA;AACA,cAAc,wBAAqB;;AAEnC;AACA;AACA;AACA,OAAO,KAAKE,OAAO,MAAM,wBAAqB;;AAE9C;AACA;AACA;AACA,IAAIC,WAAW,GAAG,KAAK;AACvB,IAAI,CAACA,WAAW,EAAE;EAChBD,OAAO,CAACE,OAAO,CAACC,UAAU,CAAC,CAAC;EAC5BF,WAAW,GAAG,IAAI;AACpB;;AAEA;AACA;AACA;AACA,OAAO,eAAeG,eAAeA,CAAA,EAAG;EACtC;AAAA;;AAGF;AACA,eAAe;EACbJ;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["installer","rustInstalled","installRustCrate","bdk_ffi","initialized","default","initialize","uniffiInitAsync"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA,OAAOA,SAAS,MAAM,mBAAgB;;AAEtC;AACA;AACA;AACA,IAAIC,aAAa,GAAG,KAAK;AACzB,IAAI,CAACA,aAAa,EAAE;EAClBD,SAAS,CAACE,gBAAgB,CAAC,CAAC;EAC5BD,aAAa,GAAG,IAAI;AACtB;;AAEA;AACA,cAAc,wBAAqB;;AAEnC;AACA,cAAc,cAAW;;AAEzB;AACA;AACA;AACA,OAAO,KAAKE,OAAO,MAAM,wBAAqB;;AAE9C;AACA;AACA;AACA,IAAIC,WAAW,GAAG,KAAK;AACvB,IAAI,CAACA,WAAW,EAAE;EAChBD,OAAO,CAACE,OAAO,CAACC,UAAU,CAAC,CAAC;EAC5BF,WAAW,GAAG,IAAI;AACpB;;AAEA;AACA;AACA;AACA,OAAO,eAAeG,eAAeA,CAAA,EAAG;EACtC;AAAA;;AAGF;AACA,eAAe;EACbJ;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,427 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Number-friendly wrappers for react-native-bdk-sdk.
5
+ *
6
+ * The generated FFI bindings use `bigint` for all u64/i64 fields.
7
+ * These wrappers accept plain `number` for satoshi amounts and stop gaps,
8
+ * and return `number` in output types — for a more natural React Native DX.
9
+ *
10
+ * JS `number` safely handles up to 2^53 (~9 quadrillion), which covers
11
+ * the entire Bitcoin supply in satoshis (2.1 quadrillion).
12
+ */
13
+
14
+ import { ElectrumClient, TxBuilder, Wallet, createWallet as rawCreateWallet } from "./generated/bdk_ffi.js";
15
+
16
+ // ═══════════════════════════════════════════════════════════════════════════════
17
+ // Number-friendly output types
18
+ // ═══════════════════════════════════════════════════════════════════════════════
19
+
20
+ // ── Converters ───────────────────────────────────────────────────────────────
21
+
22
+ function toConfirmationN(c) {
23
+ if (!c) return undefined;
24
+ return {
25
+ height: c.height,
26
+ blockHash: c.blockHash,
27
+ timestamp: Number(c.timestamp)
28
+ };
29
+ }
30
+ function toBalanceN(b) {
31
+ return {
32
+ immature: Number(b.immature),
33
+ trustedPending: Number(b.trustedPending),
34
+ untrustedPending: Number(b.untrustedPending),
35
+ confirmed: Number(b.confirmed),
36
+ trustedSpendable: Number(b.trustedSpendable),
37
+ total: Number(b.total)
38
+ };
39
+ }
40
+ function toTxDetailsN(tx) {
41
+ return {
42
+ txid: tx.txid,
43
+ sent: Number(tx.sent),
44
+ received: Number(tx.received),
45
+ fee: tx.fee != null ? Number(tx.fee) : undefined,
46
+ feeRate: tx.feeRate ?? undefined,
47
+ balanceDelta: Number(tx.balanceDelta),
48
+ confirmationBlockTime: toConfirmationN(tx.confirmationBlockTime),
49
+ txHex: tx.txHex,
50
+ version: tx.version,
51
+ locktime: tx.locktime,
52
+ inputs: tx.inputs.map(inp => ({
53
+ previousTxid: inp.previousTxid,
54
+ previousVout: inp.previousVout,
55
+ sequence: inp.sequence,
56
+ scriptSigHex: inp.scriptSigHex,
57
+ witness: inp.witness
58
+ })),
59
+ outputs: tx.outputs.map(out => ({
60
+ value: Number(out.value),
61
+ scriptPubkeyHex: out.scriptPubkeyHex,
62
+ address: out.address ?? undefined
63
+ }))
64
+ };
65
+ }
66
+ function toSentAndReceivedN(s) {
67
+ return {
68
+ sent: Number(s.sent),
69
+ received: Number(s.received)
70
+ };
71
+ }
72
+ function toLocalOutputN(o) {
73
+ return {
74
+ outpoint: o.outpoint,
75
+ txout: {
76
+ value: Number(o.txout.value),
77
+ scriptPubkeyHex: o.txout.scriptPubkeyHex
78
+ },
79
+ keychain: o.keychain,
80
+ isSpent: o.isSpent,
81
+ derivationIndex: o.derivationIndex,
82
+ confirmationBlockTime: toConfirmationN(o.confirmationBlockTime)
83
+ };
84
+ }
85
+
86
+ // ═══════════════════════════════════════════════════════════════════════════════
87
+ // ElectrumClient wrapper
88
+ // ═══════════════════════════════════════════════════════════════════════════════
89
+
90
+ /** Pass a URL string (creates temp connection) or a BdkElectrumClient (reuses). */
91
+
92
+ export class BdkElectrumClient {
93
+ constructor(url) {
94
+ this.inner = new ElectrumClient(url);
95
+ }
96
+ get raw() {
97
+ return this.inner;
98
+ }
99
+ }
100
+ function resolveElectrum(input) {
101
+ if (typeof input === 'string') {
102
+ return new ElectrumClient(input);
103
+ }
104
+ return input.raw;
105
+ }
106
+
107
+ // ═══════════════════════════════════════════════════════════════════════════════
108
+ // Async wallet factory
109
+ // ═══════════════════════════════════════════════════════════════════════════════
110
+
111
+ export async function bdkCreateWallet(descriptor, changeDescriptor, network, dbPath) {
112
+ const inner = await rawCreateWallet(descriptor, changeDescriptor, network, dbPath);
113
+ return BdkWallet.fromRaw(inner);
114
+ }
115
+
116
+ // ═══════════════════════════════════════════════════════════════════════════════
117
+ // Wallet wrapper
118
+ // ═══════════════════════════════════════════════════════════════════════════════
119
+
120
+ export class BdkWallet {
121
+ constructor(descriptor, changeDescriptor, network, dbPath) {
122
+ this.inner = new Wallet(descriptor, changeDescriptor, network, dbPath);
123
+ }
124
+ static fromRaw(wallet) {
125
+ const instance = Object.create(BdkWallet.prototype);
126
+ instance.inner = wallet;
127
+ return instance;
128
+ }
129
+ get raw() {
130
+ return this.inner;
131
+ }
132
+
133
+ // ── Address management ──────────────────────────────────────────────────
134
+
135
+ nextUnusedAddress(keychain) {
136
+ return this.inner.nextUnusedAddress(keychain);
137
+ }
138
+ revealNextAddress(keychain) {
139
+ return this.inner.revealNextAddress(keychain);
140
+ }
141
+ revealAddressesTo(keychain, index) {
142
+ return this.inner.revealAddressesTo(keychain, index);
143
+ }
144
+ peekAddress(keychain, index) {
145
+ return this.inner.peekAddress(keychain, index);
146
+ }
147
+ listUnusedAddresses(keychain) {
148
+ return this.inner.listUnusedAddresses(keychain);
149
+ }
150
+ markUsed(keychain, index) {
151
+ return this.inner.markUsed(keychain, index);
152
+ }
153
+ unmarkUsed(keychain, index) {
154
+ return this.inner.unmarkUsed(keychain, index);
155
+ }
156
+
157
+ // ── Balance ─────────────────────────────────────────────────────────────
158
+
159
+ getBalance() {
160
+ return toBalanceN(this.inner.getBalance());
161
+ }
162
+
163
+ // ── UTXOs ───────────────────────────────────────────────────────────────
164
+
165
+ listUnspent() {
166
+ return this.inner.listUnspent().map(toLocalOutputN);
167
+ }
168
+ listOutput() {
169
+ return this.inner.listOutput().map(toLocalOutputN);
170
+ }
171
+ getUtxo(outpoint) {
172
+ const o = this.inner.getUtxo(outpoint);
173
+ return o ? toLocalOutputN(o) : undefined;
174
+ }
175
+ insertTxout(outpoint, txout) {
176
+ this.inner.insertTxout(outpoint, {
177
+ value: BigInt(txout.value),
178
+ scriptPubkeyHex: txout.scriptPubkeyHex
179
+ });
180
+ }
181
+
182
+ // ── Transactions ────────────────────────────────────────────────────────
183
+
184
+ transactions() {
185
+ return this.inner.transactions().map(toTxDetailsN);
186
+ }
187
+ txDetails(txid) {
188
+ const tx = this.inner.txDetails(txid);
189
+ return tx ? toTxDetailsN(tx) : undefined;
190
+ }
191
+ getTx(txid) {
192
+ return this.inner.getTx(txid);
193
+ }
194
+ sentAndReceived(txHex) {
195
+ return toSentAndReceivedN(this.inner.sentAndReceived(txHex));
196
+ }
197
+ calculateFee(txHex) {
198
+ return Number(this.inner.calculateFee(txHex));
199
+ }
200
+ calculateFeeRate(txHex) {
201
+ return this.inner.calculateFeeRate(txHex);
202
+ }
203
+ cancelTx(txHex) {
204
+ this.inner.cancelTx(txHex);
205
+ }
206
+
207
+ // ── PSBT / Signing ──────────────────────────────────────────────────────
208
+
209
+ sign(psbt) {
210
+ return this.inner.sign(psbt);
211
+ }
212
+ finalizePsbt(psbt) {
213
+ return this.inner.finalizePsbt(psbt);
214
+ }
215
+
216
+ // ── Sync (Esplora) ─────────────────────────────────────────────────────
217
+
218
+ fullScanWithEsplora(url, stopGap) {
219
+ return this.inner.fullScanWithEsplora(url, BigInt(stopGap));
220
+ }
221
+ syncWithEsplora(url, stopGap) {
222
+ return this.inner.syncWithEsplora(url, BigInt(stopGap));
223
+ }
224
+
225
+ // ── Sync (Electrum) ────────────────────────────────────────────────────
226
+
227
+ fullScanWithElectrum(client, stopGap) {
228
+ return this.inner.fullScanWithElectrum(resolveElectrum(client), BigInt(stopGap));
229
+ }
230
+ syncWithElectrum(client, stopGap) {
231
+ return this.inner.syncWithElectrum(resolveElectrum(client), BigInt(stopGap));
232
+ }
233
+
234
+ // ── Broadcast ───────────────────────────────────────────────────────────
235
+
236
+ broadcastWithEsplora(url, psbt) {
237
+ return this.inner.broadcastWithEsplora(url, psbt);
238
+ }
239
+ broadcastWithElectrum(client, psbt) {
240
+ return this.inner.broadcastWithElectrum(resolveElectrum(client), psbt);
241
+ }
242
+
243
+ // ── Convenience (Esplora) ───────────────────────────────────────────────
244
+
245
+ send(address, amountSats, feeRate, esploraUrl) {
246
+ return this.inner.send(address, BigInt(amountSats), feeRate, esploraUrl);
247
+ }
248
+ drain(address, feeRate, esploraUrl) {
249
+ return this.inner.drain(address, feeRate, esploraUrl);
250
+ }
251
+
252
+ // ── Convenience (Electrum) ──────────────────────────────────────────────
253
+
254
+ sendWithElectrum(address, amountSats, feeRate, client) {
255
+ return this.inner.sendWithElectrum(address, BigInt(amountSats), feeRate, resolveElectrum(client));
256
+ }
257
+ drainWithElectrum(address, feeRate, client) {
258
+ return this.inner.drainWithElectrum(address, feeRate, resolveElectrum(client));
259
+ }
260
+
261
+ // ── Fee bumping ─────────────────────────────────────────────────────────
262
+
263
+ buildFeeBump(txid, newFeeRate) {
264
+ return this.inner.buildFeeBump(txid, newFeeRate);
265
+ }
266
+
267
+ // ── Script / SPK queries ────────────────────────────────────────────────
268
+
269
+ isMine(scriptHex) {
270
+ return this.inner.isMine(scriptHex);
271
+ }
272
+ derivationOfSpk(scriptHex) {
273
+ return this.inner.derivationOfSpk(scriptHex);
274
+ }
275
+
276
+ // ── Descriptor / keychain info ──────────────────────────────────────────
277
+
278
+ publicDescriptor(keychain) {
279
+ return this.inner.publicDescriptor(keychain);
280
+ }
281
+ descriptorChecksum(keychain) {
282
+ return this.inner.descriptorChecksum(keychain);
283
+ }
284
+ keychains() {
285
+ return this.inner.keychains();
286
+ }
287
+ policies(keychain) {
288
+ return this.inner.policies(keychain);
289
+ }
290
+ derivationIndex(keychain) {
291
+ return this.inner.derivationIndex(keychain);
292
+ }
293
+ nextDerivationIndex(keychain) {
294
+ return this.inner.nextDerivationIndex(keychain);
295
+ }
296
+
297
+ // ── Chain state ─────────────────────────────────────────────────────────
298
+
299
+ latestCheckpoint() {
300
+ return this.inner.latestCheckpoint();
301
+ }
302
+ checkpoints() {
303
+ return this.inner.checkpoints();
304
+ }
305
+
306
+ // ── Persistence ─────────────────────────────────────────────────────────
307
+
308
+ persist() {
309
+ return this.inner.persist();
310
+ }
311
+
312
+ // ── Accessors ───────────────────────────────────────────────────────────
313
+
314
+ network() {
315
+ return this.inner.network();
316
+ }
317
+ }
318
+
319
+ // ═══════════════════════════════════════════════════════════════════════════════
320
+ // TxBuilder wrapper
321
+ // ═══════════════════════════════════════════════════════════════════════════════
322
+
323
+ export class BdkTxBuilder {
324
+ constructor() {
325
+ this.inner = new TxBuilder();
326
+ }
327
+ get raw() {
328
+ return this.inner;
329
+ }
330
+ addRecipient(address, amountSats) {
331
+ this.inner.addRecipient(address, BigInt(amountSats));
332
+ }
333
+ setRecipients(recipients) {
334
+ this.inner.setRecipients(recipients.map(r => ({
335
+ address: r.address,
336
+ amountSats: BigInt(r.amountSats)
337
+ })));
338
+ }
339
+ addData(data) {
340
+ this.inner.addData(data);
341
+ }
342
+ feeRate(satPerVbyte) {
343
+ this.inner.feeRate(satPerVbyte);
344
+ }
345
+ feeAbsolute(feeSats) {
346
+ this.inner.feeAbsolute(BigInt(feeSats));
347
+ }
348
+ drainWallet() {
349
+ this.inner.drainWallet();
350
+ }
351
+ drainTo(address) {
352
+ this.inner.drainTo(address);
353
+ }
354
+ manuallySelectedOnly() {
355
+ this.inner.manuallySelectedOnly();
356
+ }
357
+ addUtxo(outpoint) {
358
+ this.inner.addUtxo(outpoint);
359
+ }
360
+ addUtxos(outpoints) {
361
+ this.inner.addUtxos(outpoints);
362
+ }
363
+ unspendable(outpoints) {
364
+ this.inner.unspendable(outpoints);
365
+ }
366
+ addUnspendable(outpoint) {
367
+ this.inner.addUnspendable(outpoint);
368
+ }
369
+ excludeBelowConfirmations(minConfirms) {
370
+ this.inner.excludeBelowConfirmations(minConfirms);
371
+ }
372
+ excludeUnconfirmed() {
373
+ this.inner.excludeUnconfirmed();
374
+ }
375
+ doNotSpendChange() {
376
+ this.inner.doNotSpendChange();
377
+ }
378
+ onlySpendChange() {
379
+ this.inner.onlySpendChange();
380
+ }
381
+ changePolicy(policy) {
382
+ this.inner.changePolicy(policy);
383
+ }
384
+ enableRbf() {
385
+ this.inner.enableRbf();
386
+ }
387
+ enableRbfWithSequence(nsequence) {
388
+ this.inner.enableRbfWithSequence(nsequence);
389
+ }
390
+ setExactSequence(nsequence) {
391
+ this.inner.setExactSequence(nsequence);
392
+ }
393
+ ordering(ordering) {
394
+ this.inner.ordering(ordering);
395
+ }
396
+ nlocktime(lockHeight) {
397
+ this.inner.nlocktime(lockHeight);
398
+ }
399
+ txVersion(version) {
400
+ this.inner.txVersion(version);
401
+ }
402
+ allowDust(allow) {
403
+ this.inner.allowDust(allow);
404
+ }
405
+ currentHeight(height) {
406
+ this.inner.currentHeight(height);
407
+ }
408
+ onlyWitnessUtxo() {
409
+ this.inner.onlyWitnessUtxo();
410
+ }
411
+ includeOutputRedeemWitnessScript() {
412
+ this.inner.includeOutputRedeemWitnessScript();
413
+ }
414
+ addGlobalXpubs() {
415
+ this.inner.addGlobalXpubs();
416
+ }
417
+ sighash(sighashType) {
418
+ this.inner.sighash(sighashType);
419
+ }
420
+ policyPath(pathMapJson, keychain) {
421
+ this.inner.policyPath(pathMapJson, keychain);
422
+ }
423
+ async finish(wallet) {
424
+ return this.inner.finish(wallet.raw);
425
+ }
426
+ }
427
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ElectrumClient","TxBuilder","Wallet","createWallet","rawCreateWallet","toConfirmationN","c","undefined","height","blockHash","timestamp","Number","toBalanceN","b","immature","trustedPending","untrustedPending","confirmed","trustedSpendable","total","toTxDetailsN","tx","txid","sent","received","fee","feeRate","balanceDelta","confirmationBlockTime","txHex","version","locktime","inputs","map","inp","previousTxid","previousVout","sequence","scriptSigHex","witness","outputs","out","value","scriptPubkeyHex","address","toSentAndReceivedN","s","toLocalOutputN","o","outpoint","txout","keychain","isSpent","derivationIndex","BdkElectrumClient","constructor","url","inner","raw","resolveElectrum","input","bdkCreateWallet","descriptor","changeDescriptor","network","dbPath","BdkWallet","fromRaw","wallet","instance","Object","create","prototype","nextUnusedAddress","revealNextAddress","revealAddressesTo","index","peekAddress","listUnusedAddresses","markUsed","unmarkUsed","getBalance","listUnspent","listOutput","getUtxo","insertTxout","BigInt","transactions","txDetails","getTx","sentAndReceived","calculateFee","calculateFeeRate","cancelTx","sign","psbt","finalizePsbt","fullScanWithEsplora","stopGap","syncWithEsplora","fullScanWithElectrum","client","syncWithElectrum","broadcastWithEsplora","broadcastWithElectrum","send","amountSats","esploraUrl","drain","sendWithElectrum","drainWithElectrum","buildFeeBump","newFeeRate","isMine","scriptHex","derivationOfSpk","publicDescriptor","descriptorChecksum","keychains","policies","nextDerivationIndex","latestCheckpoint","checkpoints","persist","BdkTxBuilder","addRecipient","setRecipients","recipients","r","addData","data","satPerVbyte","feeAbsolute","feeSats","drainWallet","drainTo","manuallySelectedOnly","addUtxo","addUtxos","outpoints","unspendable","addUnspendable","excludeBelowConfirmations","minConfirms","excludeUnconfirmed","doNotSpendChange","onlySpendChange","changePolicy","policy","enableRbf","enableRbfWithSequence","nsequence","setExactSequence","ordering","nlocktime","lockHeight","txVersion","allowDust","allow","currentHeight","onlyWitnessUtxo","includeOutputRedeemWitnessScript","addGlobalXpubs","sighash","sighashType","policyPath","pathMapJson","finish"],"sourceRoot":"../../src","sources":["wrapper.ts"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,9 @@ interface NativeModuleInterface {
3
3
  ubrn_uniffi_internal_fn_func_ffi__string_to_byte_length(string: string, uniffi_out_err: UniffiRustCallStatus): number;
4
4
  ubrn_uniffi_internal_fn_func_ffi__string_to_arraybuffer(string: string, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
5
5
  ubrn_uniffi_internal_fn_func_ffi__arraybuffer_to_string(buffer: Uint8Array, uniffi_out_err: UniffiRustCallStatus): string;
6
+ ubrn_uniffi_bdk_ffi_fn_clone_electrumclient(handle: bigint, uniffi_out_err: UniffiRustCallStatus): bigint;
7
+ ubrn_uniffi_bdk_ffi_fn_free_electrumclient(handle: bigint, uniffi_out_err: UniffiRustCallStatus): void;
8
+ ubrn_uniffi_bdk_ffi_fn_constructor_electrumclient_new(url: Uint8Array, uniffi_out_err: UniffiRustCallStatus): bigint;
6
9
  ubrn_uniffi_bdk_ffi_fn_clone_mnemonic(handle: bigint, uniffi_out_err: UniffiRustCallStatus): bigint;
7
10
  ubrn_uniffi_bdk_ffi_fn_free_mnemonic(handle: bigint, uniffi_out_err: UniffiRustCallStatus): void;
8
11
  ubrn_uniffi_bdk_ffi_fn_constructor_mnemonic_from_entropy(entropy: Uint8Array, uniffi_out_err: UniffiRustCallStatus): bigint;
@@ -45,7 +48,7 @@ interface NativeModuleInterface {
45
48
  ubrn_uniffi_bdk_ffi_fn_method_txbuilder_exclude_unconfirmed(ptr: bigint, uniffi_out_err: UniffiRustCallStatus): void;
46
49
  ubrn_uniffi_bdk_ffi_fn_method_txbuilder_fee_absolute(ptr: bigint, feeSats: bigint, uniffi_out_err: UniffiRustCallStatus): void;
47
50
  ubrn_uniffi_bdk_ffi_fn_method_txbuilder_fee_rate(ptr: bigint, satPerVbyte: number, uniffi_out_err: UniffiRustCallStatus): void;
48
- ubrn_uniffi_bdk_ffi_fn_method_txbuilder_finish(ptr: bigint, wallet: bigint, uniffi_out_err: UniffiRustCallStatus): bigint;
51
+ ubrn_uniffi_bdk_ffi_fn_method_txbuilder_finish(ptr: bigint, wallet: bigint): bigint;
49
52
  ubrn_uniffi_bdk_ffi_fn_method_txbuilder_include_output_redeem_witness_script(ptr: bigint, uniffi_out_err: UniffiRustCallStatus): void;
50
53
  ubrn_uniffi_bdk_ffi_fn_method_txbuilder_manually_selected_only(ptr: bigint, uniffi_out_err: UniffiRustCallStatus): void;
51
54
  ubrn_uniffi_bdk_ffi_fn_method_txbuilder_nlocktime(ptr: bigint, lockHeight: number, uniffi_out_err: UniffiRustCallStatus): void;
@@ -61,7 +64,7 @@ interface NativeModuleInterface {
61
64
  ubrn_uniffi_bdk_ffi_fn_clone_wallet(handle: bigint, uniffi_out_err: UniffiRustCallStatus): bigint;
62
65
  ubrn_uniffi_bdk_ffi_fn_free_wallet(handle: bigint, uniffi_out_err: UniffiRustCallStatus): void;
63
66
  ubrn_uniffi_bdk_ffi_fn_constructor_wallet_new(descriptor: Uint8Array, changeDescriptor: Uint8Array, network: Uint8Array, dbPath: Uint8Array, uniffi_out_err: UniffiRustCallStatus): bigint;
64
- ubrn_uniffi_bdk_ffi_fn_method_wallet_broadcast_with_electrum(ptr: bigint, url: Uint8Array, psbt: bigint): bigint;
67
+ ubrn_uniffi_bdk_ffi_fn_method_wallet_broadcast_with_electrum(ptr: bigint, client: bigint, psbt: bigint): bigint;
65
68
  ubrn_uniffi_bdk_ffi_fn_method_wallet_broadcast_with_esplora(ptr: bigint, url: Uint8Array, psbt: bigint): bigint;
66
69
  ubrn_uniffi_bdk_ffi_fn_method_wallet_build_fee_bump(ptr: bigint, txid: Uint8Array, newFeeRate: number, uniffi_out_err: UniffiRustCallStatus): bigint;
67
70
  ubrn_uniffi_bdk_ffi_fn_method_wallet_calculate_fee(ptr: bigint, txHex: Uint8Array, uniffi_out_err: UniffiRustCallStatus): bigint;
@@ -72,8 +75,9 @@ interface NativeModuleInterface {
72
75
  ubrn_uniffi_bdk_ffi_fn_method_wallet_derivation_of_spk(ptr: bigint, scriptHex: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
73
76
  ubrn_uniffi_bdk_ffi_fn_method_wallet_descriptor_checksum(ptr: bigint, keychain: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
74
77
  ubrn_uniffi_bdk_ffi_fn_method_wallet_drain(ptr: bigint, address: Uint8Array, feeRate: number, esploraUrl: Uint8Array): bigint;
78
+ ubrn_uniffi_bdk_ffi_fn_method_wallet_drain_with_electrum(ptr: bigint, address: Uint8Array, feeRate: number, client: bigint): bigint;
75
79
  ubrn_uniffi_bdk_ffi_fn_method_wallet_finalize_psbt(ptr: bigint, psbt: bigint, uniffi_out_err: UniffiRustCallStatus): number;
76
- ubrn_uniffi_bdk_ffi_fn_method_wallet_full_scan_with_electrum(ptr: bigint, url: Uint8Array, stopGap: bigint): bigint;
80
+ ubrn_uniffi_bdk_ffi_fn_method_wallet_full_scan_with_electrum(ptr: bigint, client: bigint, stopGap: bigint): bigint;
77
81
  ubrn_uniffi_bdk_ffi_fn_method_wallet_full_scan_with_esplora(ptr: bigint, url: Uint8Array, stopGap: bigint): bigint;
78
82
  ubrn_uniffi_bdk_ffi_fn_method_wallet_get_balance(ptr: bigint, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
79
83
  ubrn_uniffi_bdk_ffi_fn_method_wallet_get_tx(ptr: bigint, txid: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
@@ -96,18 +100,23 @@ interface NativeModuleInterface {
96
100
  ubrn_uniffi_bdk_ffi_fn_method_wallet_reveal_addresses_to(ptr: bigint, keychain: Uint8Array, index: number, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
97
101
  ubrn_uniffi_bdk_ffi_fn_method_wallet_reveal_next_address(ptr: bigint, keychain: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
98
102
  ubrn_uniffi_bdk_ffi_fn_method_wallet_send(ptr: bigint, address: Uint8Array, amountSats: bigint, feeRate: number, esploraUrl: Uint8Array): bigint;
103
+ ubrn_uniffi_bdk_ffi_fn_method_wallet_send_with_electrum(ptr: bigint, address: Uint8Array, amountSats: bigint, feeRate: number, client: bigint): bigint;
99
104
  ubrn_uniffi_bdk_ffi_fn_method_wallet_sent_and_received(ptr: bigint, txHex: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
100
105
  ubrn_uniffi_bdk_ffi_fn_method_wallet_sign(ptr: bigint, psbt: bigint, uniffi_out_err: UniffiRustCallStatus): number;
101
- ubrn_uniffi_bdk_ffi_fn_method_wallet_sync_with_electrum(ptr: bigint, url: Uint8Array, stopGap: bigint): bigint;
106
+ ubrn_uniffi_bdk_ffi_fn_method_wallet_sync_with_electrum(ptr: bigint, client: bigint, stopGap: bigint): bigint;
102
107
  ubrn_uniffi_bdk_ffi_fn_method_wallet_sync_with_esplora(ptr: bigint, url: Uint8Array, stopGap: bigint): bigint;
103
108
  ubrn_uniffi_bdk_ffi_fn_method_wallet_transactions(ptr: bigint, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
104
109
  ubrn_uniffi_bdk_ffi_fn_method_wallet_tx_details(ptr: bigint, txid: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
105
110
  ubrn_uniffi_bdk_ffi_fn_method_wallet_unmark_used(ptr: bigint, keychain: Uint8Array, index: number, uniffi_out_err: UniffiRustCallStatus): number;
111
+ ubrn_uniffi_bdk_ffi_fn_func_address_from_script(scriptHex: Uint8Array, network: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
106
112
  ubrn_uniffi_bdk_ffi_fn_func_create_descriptor(mnemonic: bigint, template: Uint8Array, keychain: Uint8Array, network: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
113
+ ubrn_uniffi_bdk_ffi_fn_func_create_descriptor_from_string(mnemonic: Uint8Array, template: Uint8Array, keychain: Uint8Array, network: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
107
114
  ubrn_uniffi_bdk_ffi_fn_func_create_public_descriptor(xpub: Uint8Array, template: Uint8Array, keychain: Uint8Array, network: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
108
115
  ubrn_uniffi_bdk_ffi_fn_func_create_single_key_descriptor(key: Uint8Array, template: Uint8Array, network: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
116
+ ubrn_uniffi_bdk_ffi_fn_func_create_wallet(descriptor: Uint8Array, changeDescriptor: Uint8Array, network: Uint8Array, dbPath: Uint8Array): bigint;
109
117
  ubrn_uniffi_bdk_ffi_fn_func_export_wallet(wallet: bigint, label: Uint8Array, includeBlockHeight: number, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
110
118
  ubrn_uniffi_bdk_ffi_fn_func_is_valid_address(address: Uint8Array, network: Uint8Array, uniffi_out_err: UniffiRustCallStatus): number;
119
+ ubrn_uniffi_bdk_ffi_fn_func_validate_descriptor(descriptor: Uint8Array, network: Uint8Array, uniffi_out_err: UniffiRustCallStatus): number;
111
120
  ubrn_uniffi_bdk_ffi_fn_func_version(uniffi_out_err: UniffiRustCallStatus): Uint8Array;
112
121
  ubrn_uniffi_bdk_ffi_fn_func_wallet_name_from_descriptor(descriptor: Uint8Array, changeDescriptor: Uint8Array, network: Uint8Array, uniffi_out_err: UniffiRustCallStatus): Uint8Array;
113
122
  ubrn_ffi_bdk_ffi_rust_future_poll_u8(handle: bigint, callback: UniffiRustFutureContinuationCallback, callbackData: bigint): void;
@@ -158,11 +167,15 @@ interface NativeModuleInterface {
158
167
  ubrn_ffi_bdk_ffi_rust_future_cancel_void(handle: bigint): void;
159
168
  ubrn_ffi_bdk_ffi_rust_future_free_void(handle: bigint): void;
160
169
  ubrn_ffi_bdk_ffi_rust_future_complete_void(handle: bigint, uniffi_out_err: UniffiRustCallStatus): void;
170
+ ubrn_uniffi_bdk_ffi_checksum_func_address_from_script(): number;
161
171
  ubrn_uniffi_bdk_ffi_checksum_func_create_descriptor(): number;
172
+ ubrn_uniffi_bdk_ffi_checksum_func_create_descriptor_from_string(): number;
162
173
  ubrn_uniffi_bdk_ffi_checksum_func_create_public_descriptor(): number;
163
174
  ubrn_uniffi_bdk_ffi_checksum_func_create_single_key_descriptor(): number;
175
+ ubrn_uniffi_bdk_ffi_checksum_func_create_wallet(): number;
164
176
  ubrn_uniffi_bdk_ffi_checksum_func_export_wallet(): number;
165
177
  ubrn_uniffi_bdk_ffi_checksum_func_is_valid_address(): number;
178
+ ubrn_uniffi_bdk_ffi_checksum_func_validate_descriptor(): number;
166
179
  ubrn_uniffi_bdk_ffi_checksum_func_version(): number;
167
180
  ubrn_uniffi_bdk_ffi_checksum_func_wallet_name_from_descriptor(): number;
168
181
  ubrn_uniffi_bdk_ffi_checksum_method_mnemonic_language(): number;
@@ -218,6 +231,7 @@ interface NativeModuleInterface {
218
231
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_derivation_of_spk(): number;
219
232
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_descriptor_checksum(): number;
220
233
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_drain(): number;
234
+ ubrn_uniffi_bdk_ffi_checksum_method_wallet_drain_with_electrum(): number;
221
235
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_finalize_psbt(): number;
222
236
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_full_scan_with_electrum(): number;
223
237
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_full_scan_with_esplora(): number;
@@ -242,6 +256,7 @@ interface NativeModuleInterface {
242
256
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_reveal_addresses_to(): number;
243
257
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_reveal_next_address(): number;
244
258
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_send(): number;
259
+ ubrn_uniffi_bdk_ffi_checksum_method_wallet_send_with_electrum(): number;
245
260
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_sent_and_received(): number;
246
261
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_sign(): number;
247
262
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_sync_with_electrum(): number;
@@ -249,6 +264,7 @@ interface NativeModuleInterface {
249
264
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_transactions(): number;
250
265
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_tx_details(): number;
251
266
  ubrn_uniffi_bdk_ffi_checksum_method_wallet_unmark_used(): number;
267
+ ubrn_uniffi_bdk_ffi_checksum_constructor_electrumclient_new(): number;
252
268
  ubrn_uniffi_bdk_ffi_checksum_constructor_mnemonic_from_entropy(): number;
253
269
  ubrn_uniffi_bdk_ffi_checksum_constructor_mnemonic_from_entropy_in(): number;
254
270
  ubrn_uniffi_bdk_ffi_checksum_constructor_mnemonic_from_string(): number;
@@ -258,6 +274,7 @@ interface NativeModuleInterface {
258
274
  ubrn_uniffi_bdk_ffi_checksum_constructor_txbuilder_new(): number;
259
275
  ubrn_uniffi_bdk_ffi_checksum_constructor_wallet_new(): number;
260
276
  ubrn_ffi_bdk_ffi_uniffi_contract_version(): number;
277
+ ubrn_uniffi_internal_fn_method_electrumclient_ffi__bless_pointer(pointer: bigint, uniffi_out_err: UniffiRustCallStatus): UniffiGcObject;
261
278
  ubrn_uniffi_internal_fn_method_mnemonic_ffi__bless_pointer(pointer: bigint, uniffi_out_err: UniffiRustCallStatus): UniffiGcObject;
262
279
  ubrn_uniffi_internal_fn_method_psbt_ffi__bless_pointer(pointer: bigint, uniffi_out_err: UniffiRustCallStatus): UniffiGcObject;
263
280
  ubrn_uniffi_internal_fn_method_txbuilder_ffi__bless_pointer(pointer: bigint, uniffi_out_err: UniffiRustCallStatus): UniffiGcObject;