@arkade-os/sdk 0.5.2 → 0.5.3

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 (75) hide show
  1. package/dist/adapters/expo.cjs +5 -5
  2. package/dist/adapters/expo.d.cts +2 -2
  3. package/dist/adapters/expo.d.ts +2 -2
  4. package/dist/adapters/expo.js +3 -3
  5. package/dist/{asyncStorageTaskQueue-DIn7bTqN.d.ts → asyncStorageTaskQueue-B3U5gQ-i.d.ts} +1 -1
  6. package/dist/{asyncStorageTaskQueue-BtEc3Qca.d.cts → asyncStorageTaskQueue-C9PkPcW_.d.cts} +1 -1
  7. package/dist/{chunk-PVFQFQBY.cjs → chunk-5WRA66RV.cjs} +10 -10
  8. package/dist/{chunk-PVFQFQBY.cjs.map → chunk-5WRA66RV.cjs.map} +1 -1
  9. package/dist/{chunk-U5XG7SWA.js → chunk-6FL4N4S2.js} +3 -3
  10. package/dist/{chunk-U5XG7SWA.js.map → chunk-6FL4N4S2.js.map} +1 -1
  11. package/dist/{chunk-OM6FJ76H.cjs → chunk-BYPBVHVA.cjs} +48 -48
  12. package/dist/{chunk-OM6FJ76H.cjs.map → chunk-BYPBVHVA.cjs.map} +1 -1
  13. package/dist/{chunk-AJWXVQYG.js → chunk-HAQAWBYG.js} +95 -47
  14. package/dist/chunk-HAQAWBYG.js.map +1 -0
  15. package/dist/{chunk-GGKR4O5X.cjs → chunk-KW7ZEWYS.cjs} +6 -3
  16. package/dist/chunk-KW7ZEWYS.cjs.map +1 -0
  17. package/dist/{chunk-HKG26NUT.js → chunk-OPX2HRWM.js} +6 -3
  18. package/dist/chunk-OPX2HRWM.js.map +1 -0
  19. package/dist/{chunk-2OCYL6BJ.cjs → chunk-OUTWUYJ4.cjs} +589 -541
  20. package/dist/chunk-OUTWUYJ4.cjs.map +1 -0
  21. package/dist/{chunk-LWRMSC4M.js → chunk-P7B4LQ3H.js} +3 -3
  22. package/dist/{chunk-LWRMSC4M.js.map → chunk-P7B4LQ3H.js.map} +1 -1
  23. package/dist/{chunk-2QRUQXLS.js → chunk-T7C3E2HL.js} +4 -4
  24. package/dist/{chunk-2QRUQXLS.js.map → chunk-T7C3E2HL.js.map} +1 -1
  25. package/dist/{chunk-MOBDJ7U2.js → chunk-Y4BL3YYX.js} +4 -4
  26. package/dist/{chunk-MOBDJ7U2.js.map → chunk-Y4BL3YYX.js.map} +1 -1
  27. package/dist/{chunk-64R7CRKN.cjs → chunk-ZMSM3NOH.cjs} +18 -18
  28. package/dist/{chunk-64R7CRKN.cjs.map → chunk-ZMSM3NOH.cjs.map} +1 -1
  29. package/dist/{chunk-TAIWH3HG.cjs → chunk-ZPF4I3K2.cjs} +16 -16
  30. package/dist/{chunk-TAIWH3HG.cjs.map → chunk-ZPF4I3K2.cjs.map} +1 -1
  31. package/dist/contracts/handlers/index.cjs +9 -9
  32. package/dist/contracts/handlers/index.d.cts +3 -3
  33. package/dist/contracts/handlers/index.d.ts +3 -3
  34. package/dist/contracts/handlers/index.js +2 -2
  35. package/dist/{delegate-CaL8EN4Q.d.cts → delegate-ByfKszb6.d.cts} +1 -1
  36. package/dist/{delegate-Jd4zs88Q.d.ts → delegate-Cd28gxpM.d.ts} +1 -1
  37. package/dist/{index-D-xqVzf8.d.ts → index-B6X2E7W_.d.ts} +2 -2
  38. package/dist/{index-DdKxfC29.d.cts → index-BURzbRup.d.cts} +12 -0
  39. package/dist/{index-DdKxfC29.d.ts → index-BURzbRup.d.ts} +12 -0
  40. package/dist/{index-BwdGzNSn.d.cts → index-DgH_0j14.d.cts} +2 -2
  41. package/dist/index.cjs +313 -313
  42. package/dist/index.d.cts +22 -9
  43. package/dist/index.d.ts +22 -9
  44. package/dist/index.js +4 -4
  45. package/dist/repositories/realm/index.cjs +35 -35
  46. package/dist/repositories/realm/index.d.cts +2 -2
  47. package/dist/repositories/realm/index.d.ts +2 -2
  48. package/dist/repositories/realm/index.js +5 -5
  49. package/dist/repositories/sqlite/index.cjs +33 -33
  50. package/dist/repositories/sqlite/index.d.cts +2 -2
  51. package/dist/repositories/sqlite/index.d.ts +2 -2
  52. package/dist/repositories/sqlite/index.js +5 -5
  53. package/dist/{taskRunner-ZyGGjtIq.d.ts → taskRunner-BaNCSxqK.d.ts} +1 -1
  54. package/dist/{taskRunner-67YSEpsz.d.cts → taskRunner-i56-drQV.d.cts} +1 -1
  55. package/dist/wallet/expo/background.cjs +14 -14
  56. package/dist/wallet/expo/background.d.cts +3 -3
  57. package/dist/wallet/expo/background.d.ts +3 -3
  58. package/dist/wallet/expo/background.js +6 -6
  59. package/dist/wallet/expo/index.cjs +18 -15
  60. package/dist/wallet/expo/index.cjs.map +1 -1
  61. package/dist/wallet/expo/index.d.cts +5 -4
  62. package/dist/wallet/expo/index.d.ts +5 -4
  63. package/dist/wallet/expo/index.js +8 -5
  64. package/dist/wallet/expo/index.js.map +1 -1
  65. package/dist/{wallet-B8LW7cV1.d.cts → wallet-BjQugVUt.d.cts} +7 -3
  66. package/dist/{wallet-bFS7VybL.d.ts → wallet-BnmhohgZ.d.ts} +7 -3
  67. package/dist/worker/expo/index.cjs +9 -9
  68. package/dist/worker/expo/index.d.cts +4 -4
  69. package/dist/worker/expo/index.d.ts +4 -4
  70. package/dist/worker/expo/index.js +5 -5
  71. package/package.json +1 -1
  72. package/dist/chunk-2OCYL6BJ.cjs.map +0 -1
  73. package/dist/chunk-AJWXVQYG.js.map +0 -1
  74. package/dist/chunk-GGKR4O5X.cjs.map +0 -1
  75. package/dist/chunk-HKG26NUT.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var chunk2OCYL6BJ_cjs = require('../../chunk-2OCYL6BJ.cjs');
4
- require('../../chunk-64R7CRKN.cjs');
5
- require('../../chunk-OM6FJ76H.cjs');
6
- var chunkGGKR4O5X_cjs = require('../../chunk-GGKR4O5X.cjs');
3
+ var chunkOUTWUYJ4_cjs = require('../../chunk-OUTWUYJ4.cjs');
4
+ require('../../chunk-ZMSM3NOH.cjs');
5
+ require('../../chunk-BYPBVHVA.cjs');
6
+ var chunkKW7ZEWYS_cjs = require('../../chunk-KW7ZEWYS.cjs');
7
7
 
8
8
  // src/repositories/sqlite/transaction.ts
9
9
  var writeChains = /* @__PURE__ */ new WeakMap();
@@ -200,7 +200,7 @@ var SQLiteWalletRepository = class {
200
200
  for (const row of nullRows) {
201
201
  await this.db.run(
202
202
  `UPDATE ${this.tables.vtxos} SET script = ? WHERE txid = ? AND vout = ?`,
203
- [chunk2OCYL6BJ_cjs.scriptFromArkAddress(row.address), row.txid, row.vout]
203
+ [chunkOUTWUYJ4_cjs.scriptFromArkAddress(row.address), row.txid, row.vout]
204
204
  );
205
205
  }
206
206
  const tempName = `${this.tables.vtxos}__migrate_tmp`;
@@ -241,7 +241,7 @@ var SQLiteWalletRepository = class {
241
241
  WHERE virtual_status_json IS NOT NULL AND is_swept IS NULL`
242
242
  );
243
243
  for (const row of rows) {
244
- const facts = chunk2OCYL6BJ_cjs.legacyVtxoFacts(row.virtual_status_json);
244
+ const facts = chunkOUTWUYJ4_cjs.legacyVtxoFacts(row.virtual_status_json);
245
245
  if (!facts) continue;
246
246
  await this.db.run(
247
247
  `UPDATE ${this.tables.vtxos}
@@ -333,7 +333,7 @@ var SQLiteWalletRepository = class {
333
333
  expires_at, expires_at_height,
334
334
  spent_by, settled_by, ark_tx_id, extra_witness_json, assets_json, script`,
335
335
  vtxos.map((vtxo) => {
336
- const s = chunk2OCYL6BJ_cjs.serializeVtxo(vtxo);
336
+ const s = chunkOUTWUYJ4_cjs.serializeVtxo(vtxo);
337
337
  return [
338
338
  s.txid,
339
339
  s.vout,
@@ -345,7 +345,7 @@ var SQLiteWalletRepository = class {
345
345
  s.intentTapLeafScript.cb,
346
346
  s.intentTapLeafScript.s,
347
347
  JSON.stringify(s.status),
348
- chunk2OCYL6BJ_cjs.createdAtToIso(s.createdAt),
348
+ chunkOUTWUYJ4_cjs.createdAtToIso(s.createdAt),
349
349
  s.isUnrolled ? 1 : 0,
350
350
  s.isSpent === void 0 ? null : s.isSpent ? 1 : 0,
351
351
  s.isSwept === void 0 ? null : s.isSwept ? 1 : 0,
@@ -368,7 +368,7 @@ var SQLiteWalletRepository = class {
368
368
  await this.db.run(`DELETE FROM ${this.tables.vtxos} WHERE address = ?`, [address]);
369
369
  }
370
370
  async getVtxosForScriptPage(script, page, options) {
371
- chunk2OCYL6BJ_cjs.assertPageRequest(page);
371
+ chunkOUTWUYJ4_cjs.assertPageRequest(page);
372
372
  await this.ensureInit();
373
373
  const after = page.after;
374
374
  const rows = await this.db.all(
@@ -386,15 +386,15 @@ var SQLiteWalletRepository = class {
386
386
  page.limit + 1
387
387
  ] : [script, page.limit + 1]
388
388
  );
389
- const result = chunk2OCYL6BJ_cjs.pageResult(
389
+ const result = chunkOUTWUYJ4_cjs.pageResult(
390
390
  rows.map((row) => ({ address: row.address, vtxo: vtxoRowToDomain(row) })),
391
391
  page.limit,
392
392
  (row) => ({ address: row.address, txid: row.vtxo.txid, vout: row.vtxo.vout })
393
393
  );
394
- return options?.unspentOnly ? { ...result, items: result.items.filter((row) => !chunkGGKR4O5X_cjs.isVtxoSpent(row.vtxo)) } : result;
394
+ return options?.unspentOnly ? { ...result, items: result.items.filter((row) => !chunkKW7ZEWYS_cjs.isVtxoSpent(row.vtxo)) } : result;
395
395
  }
396
396
  async saveVtxosForScript(key, vtxos) {
397
- return this.saveVtxos(chunk2OCYL6BJ_cjs.checkSaveVtxosForScript("SQLiteWalletRepository", key, vtxos), vtxos);
397
+ return this.saveVtxos(chunkOUTWUYJ4_cjs.checkSaveVtxosForScript("SQLiteWalletRepository", key, vtxos), vtxos);
398
398
  }
399
399
  async deleteVtxosForScript(script) {
400
400
  await this.ensureInit();
@@ -405,21 +405,21 @@ var SQLiteWalletRepository = class {
405
405
  return this.pageByAddress(this.tables.utxos, address, page, utxoRowToDomain);
406
406
  }
407
407
  async pageByAddress(table, address, page, deserialize) {
408
- chunk2OCYL6BJ_cjs.assertPageRequest(page);
408
+ chunkOUTWUYJ4_cjs.assertPageRequest(page);
409
409
  await this.ensureInit();
410
410
  const rows = await this.db.all(
411
411
  `SELECT * FROM ${table} WHERE address = ? AND (txid, vout) > (?, ?)
412
412
  ORDER BY txid, vout LIMIT ?`,
413
413
  [address, page.after?.txid ?? "", page.after?.vout ?? -1, page.limit + 1]
414
414
  );
415
- const result = chunk2OCYL6BJ_cjs.pageResult(rows, page.limit, ({ txid, vout }) => ({ txid, vout }));
415
+ const result = chunkOUTWUYJ4_cjs.pageResult(rows, page.limit, ({ txid, vout }) => ({ txid, vout }));
416
416
  return { items: result.items.map(deserialize), nextCursor: result.nextCursor };
417
417
  }
418
418
  async saveUtxos(addressOrBatch, utxos) {
419
419
  await this.ensureInit();
420
- const rows = chunk2OCYL6BJ_cjs.utxoEntries(addressOrBatch, utxos).flatMap(
420
+ const rows = chunkOUTWUYJ4_cjs.utxoEntries(addressOrBatch, utxos).flatMap(
421
421
  ([address, list]) => list.map((utxo) => {
422
- const s = chunk2OCYL6BJ_cjs.serializeUtxo(utxo);
422
+ const s = chunkOUTWUYJ4_cjs.serializeUtxo(utxo);
423
423
  return [
424
424
  s.txid,
425
425
  s.vout,
@@ -449,8 +449,8 @@ var SQLiteWalletRepository = class {
449
449
  }
450
450
  // ── Transaction history ────────────────────────────────────────────
451
451
  async getTransactionHistoryPage(filter, page) {
452
- chunk2OCYL6BJ_cjs.assertPageRequest(page);
453
- chunk2OCYL6BJ_cjs.assertHistoryPageFilter(filter);
452
+ chunkOUTWUYJ4_cjs.assertPageRequest(page);
453
+ chunkOUTWUYJ4_cjs.assertHistoryPageFilter(filter);
454
454
  await this.ensureInit();
455
455
  const conditions = ["address = ?"];
456
456
  const params = [filter.address];
@@ -474,7 +474,7 @@ var SQLiteWalletRepository = class {
474
474
  ORDER BY created_at, boarding_txid, commitment_txid, ark_txid LIMIT ?`,
475
475
  [...params, page.limit + 1]
476
476
  );
477
- return chunk2OCYL6BJ_cjs.pageResult(rows.map(txRowToDomain), page.limit, (tx) => ({
477
+ return chunkOUTWUYJ4_cjs.pageResult(rows.map(txRowToDomain), page.limit, (tx) => ({
478
478
  createdAt: tx.createdAt,
479
479
  key: tx.key
480
480
  }));
@@ -494,7 +494,7 @@ var SQLiteWalletRepository = class {
494
494
  tx.amount,
495
495
  tx.settled ? 1 : 0,
496
496
  tx.createdAt,
497
- tx.assets ? JSON.stringify(chunk2OCYL6BJ_cjs.serializeAssets(tx.assets)) : null
497
+ tx.assets ? JSON.stringify(chunkOUTWUYJ4_cjs.serializeAssets(tx.assets)) : null
498
498
  ])
499
499
  );
500
500
  }
@@ -563,9 +563,9 @@ function vtxoRowToDomain(row) {
563
563
  // Post-migration every row has `script`, but the backfill is
564
564
  // idempotent: derive from `address` if the legacy column is still
565
565
  // null (e.g. the migration hasn't run yet on this handle).
566
- script: row.script ?? chunk2OCYL6BJ_cjs.scriptFromArkAddress(row.address)
566
+ script: row.script ?? chunkOUTWUYJ4_cjs.scriptFromArkAddress(row.address)
567
567
  };
568
- return chunk2OCYL6BJ_cjs.deserializeVtxo(serialized);
568
+ return chunkOUTWUYJ4_cjs.deserializeVtxo(serialized);
569
569
  }
570
570
  function utxoRowToDomain(row) {
571
571
  const serialized = {
@@ -584,7 +584,7 @@ function utxoRowToDomain(row) {
584
584
  status: JSON.parse(row.status_json),
585
585
  extraWitness: row.extra_witness_json ? JSON.parse(row.extra_witness_json) : void 0
586
586
  };
587
- return chunk2OCYL6BJ_cjs.deserializeUtxo(serialized);
587
+ return chunkOUTWUYJ4_cjs.deserializeUtxo(serialized);
588
588
  }
589
589
  function txRowToDomain(row) {
590
590
  const tx = {
@@ -599,7 +599,7 @@ function txRowToDomain(row) {
599
599
  createdAt: row.created_at
600
600
  };
601
601
  if (row.assets_json) {
602
- tx.assets = chunk2OCYL6BJ_cjs.deserializeAssets(JSON.parse(row.assets_json));
602
+ tx.assets = chunkOUTWUYJ4_cjs.deserializeAssets(JSON.parse(row.assets_json));
603
603
  }
604
604
  return tx;
605
605
  }
@@ -667,9 +667,9 @@ var SQLiteContractRepository = class {
667
667
  }
668
668
  // ── Contract management ────────────────────────────────────────────
669
669
  async getContractsPage(filter, page) {
670
- chunk2OCYL6BJ_cjs.assertPageRequest(page);
670
+ chunkOUTWUYJ4_cjs.assertPageRequest(page);
671
671
  await this.ensureInit();
672
- if (chunk2OCYL6BJ_cjs.contractFilterMatchesNothing(filter)) return { items: [] };
672
+ if (chunkOUTWUYJ4_cjs.contractFilterMatchesNothing(filter)) return { items: [] };
673
673
  const conditions = [];
674
674
  const params = [];
675
675
  if (filter) {
@@ -687,7 +687,7 @@ var SQLiteContractRepository = class {
687
687
  `SELECT * FROM ${this.table}${where} ORDER BY script LIMIT ?`,
688
688
  [...params, page.limit + 1]
689
689
  );
690
- return chunk2OCYL6BJ_cjs.pageResult(rows.map(contractRowToDomain), page.limit, (contract) => contract.script);
690
+ return chunkOUTWUYJ4_cjs.pageResult(rows.map(contractRowToDomain), page.limit, (contract) => contract.script);
691
691
  }
692
692
  async saveContract(contract) {
693
693
  await this.ensureInit();
@@ -850,7 +850,7 @@ var SQLiteIntentRepository = class {
850
850
  });
851
851
  }
852
852
  async getIntentsPage(filter, page) {
853
- chunk2OCYL6BJ_cjs.assertPageRequest(page);
853
+ chunkOUTWUYJ4_cjs.assertPageRequest(page);
854
854
  await this.ensureInit();
855
855
  if (filter?.states?.length === 0) return { items: [] };
856
856
  const stateSql = filter?.states ? ` AND state IN (${filter.states.map(() => "?").join(", ")})` : "";
@@ -867,19 +867,19 @@ var SQLiteIntentRepository = class {
867
867
  for (const row of batch) {
868
868
  after = row.intent_tx_id;
869
869
  const intent = rowToIntent(row);
870
- if (!filter || chunk2OCYL6BJ_cjs.intentMatchesFilter(intent, filter)) rows.push(intent);
870
+ if (!filter || chunkOUTWUYJ4_cjs.intentMatchesFilter(intent, filter)) rows.push(intent);
871
871
  if (rows.length > page.limit) break;
872
872
  }
873
873
  if (batch.length < batchSize) break;
874
874
  }
875
- return chunk2OCYL6BJ_cjs.pageResult(rows, page.limit, (intent) => intent.intentTxId);
875
+ return chunkOUTWUYJ4_cjs.pageResult(rows, page.limit, (intent) => intent.intentTxId);
876
876
  }
877
877
  async getLockedVtxoOutpoints() {
878
878
  await this.ensureInit();
879
879
  const rows = await this.db.all(`SELECT * FROM ${this.t}`);
880
880
  const out = [];
881
881
  for (const r of rows) {
882
- if (chunk2OCYL6BJ_cjs.isTerminalIntentState(r.state)) continue;
882
+ if (chunkOUTWUYJ4_cjs.isTerminalIntentState(r.state)) continue;
883
883
  for (const o of JSON.parse(r.intent_vtxos_json)) out.push(o);
884
884
  }
885
885
  return out;
@@ -966,7 +966,7 @@ var SQLiteVirtualTxRepository = class {
966
966
  const prev = prevByTxid.get(t.txid);
967
967
  const psbt = t.psbt ?? prev?.psbt ?? null;
968
968
  const expires = t.expiresAt ?? prev?.expires_at ?? null;
969
- const type = chunk2OCYL6BJ_cjs.mergeChainedTxType(t.type, prev?.type);
969
+ const type = chunkOUTWUYJ4_cjs.mergeChainedTxType(t.type, prev?.type);
970
970
  await this.db.run(
971
971
  `INSERT OR REPLACE INTO ${this.tTx} (txid, psbt, expires_at, type) VALUES (?, ?, ?, ?)`,
972
972
  [t.txid, psbt, expires, type]
@@ -1052,7 +1052,7 @@ function rowToTx(r) {
1052
1052
 
1053
1053
  Object.defineProperty(exports, "ChainedTxType", {
1054
1054
  enumerable: true,
1055
- get: function () { return chunk2OCYL6BJ_cjs.ChainedTxType; }
1055
+ get: function () { return chunkOUTWUYJ4_cjs.ChainedTxType; }
1056
1056
  });
1057
1057
  exports.SQLiteContractRepository = SQLiteContractRepository;
1058
1058
  exports.SQLiteIntentRepository = SQLiteIntentRepository;
@@ -1,5 +1,5 @@
1
- import { W as WalletRepository, P as PageRequest, O as Outpoint, F as PageResult, D as ExtendedVirtualCoin, H as ScriptVtxoCursor, J as ScriptVtxoPageOptions, K as StoredVtxo, L as VtxoRepositoryKey, E as ExtendedCoin, M as TransactionHistoryPageFilter, Q as TransactionHistoryPageCursor, h as ArkTransaction, U as WalletState, C as ContractRepository, X as ContractFilter, B as Contract, Y as IntentRepository, Z as ArkIntent, _ as IntentPageFilter, $ as VirtualTxRepository, a0 as VirtualTx, a1 as VtxoBranch } from '../../index-DdKxfC29.cjs';
2
- export { a2 as ChainedTxType } from '../../index-DdKxfC29.cjs';
1
+ import { W as WalletRepository, P as PageRequest, O as Outpoint, F as PageResult, D as ExtendedVirtualCoin, H as ScriptVtxoCursor, J as ScriptVtxoPageOptions, K as StoredVtxo, L as VtxoRepositoryKey, E as ExtendedCoin, M as TransactionHistoryPageFilter, Q as TransactionHistoryPageCursor, h as ArkTransaction, U as WalletState, C as ContractRepository, X as ContractFilter, B as Contract, Y as IntentRepository, Z as ArkIntent, _ as IntentPageFilter, $ as VirtualTxRepository, a0 as VirtualTx, a1 as VtxoBranch } from '../../index-BURzbRup.cjs';
2
+ export { a2 as ChainedTxType } from '../../index-BURzbRup.cjs';
3
3
  import '@scure/btc-signer/utils.js';
4
4
  import '@scure/btc-signer/psbt.js';
5
5
  import '@scure/btc-signer';
@@ -1,5 +1,5 @@
1
- import { W as WalletRepository, P as PageRequest, O as Outpoint, F as PageResult, D as ExtendedVirtualCoin, H as ScriptVtxoCursor, J as ScriptVtxoPageOptions, K as StoredVtxo, L as VtxoRepositoryKey, E as ExtendedCoin, M as TransactionHistoryPageFilter, Q as TransactionHistoryPageCursor, h as ArkTransaction, U as WalletState, C as ContractRepository, X as ContractFilter, B as Contract, Y as IntentRepository, Z as ArkIntent, _ as IntentPageFilter, $ as VirtualTxRepository, a0 as VirtualTx, a1 as VtxoBranch } from '../../index-DdKxfC29.js';
2
- export { a2 as ChainedTxType } from '../../index-DdKxfC29.js';
1
+ import { W as WalletRepository, P as PageRequest, O as Outpoint, F as PageResult, D as ExtendedVirtualCoin, H as ScriptVtxoCursor, J as ScriptVtxoPageOptions, K as StoredVtxo, L as VtxoRepositoryKey, E as ExtendedCoin, M as TransactionHistoryPageFilter, Q as TransactionHistoryPageCursor, h as ArkTransaction, U as WalletState, C as ContractRepository, X as ContractFilter, B as Contract, Y as IntentRepository, Z as ArkIntent, _ as IntentPageFilter, $ as VirtualTxRepository, a0 as VirtualTx, a1 as VtxoBranch } from '../../index-BURzbRup.js';
2
+ export { a2 as ChainedTxType } from '../../index-BURzbRup.js';
3
3
  import '@scure/btc-signer/utils.js';
4
4
  import '@scure/btc-signer/psbt.js';
5
5
  import '@scure/btc-signer';
@@ -1,8 +1,8 @@
1
- import { scriptFromArkAddress, legacyVtxoFacts, serializeVtxo, createdAtToIso, assertPageRequest, pageResult, checkSaveVtxosForScript, utxoEntries, serializeUtxo, assertHistoryPageFilter, serializeAssets, deserializeVtxo, deserializeUtxo, deserializeAssets, contractFilterMatchesNothing, intentMatchesFilter, isTerminalIntentState, mergeChainedTxType } from '../../chunk-AJWXVQYG.js';
2
- export { ChainedTxType } from '../../chunk-AJWXVQYG.js';
3
- import '../../chunk-U5XG7SWA.js';
4
- import '../../chunk-LWRMSC4M.js';
5
- import { isVtxoSpent } from '../../chunk-HKG26NUT.js';
1
+ import { scriptFromArkAddress, legacyVtxoFacts, serializeVtxo, createdAtToIso, assertPageRequest, pageResult, checkSaveVtxosForScript, utxoEntries, serializeUtxo, assertHistoryPageFilter, serializeAssets, deserializeVtxo, deserializeUtxo, deserializeAssets, contractFilterMatchesNothing, intentMatchesFilter, isTerminalIntentState, mergeChainedTxType } from '../../chunk-HAQAWBYG.js';
2
+ export { ChainedTxType } from '../../chunk-HAQAWBYG.js';
3
+ import '../../chunk-6FL4N4S2.js';
4
+ import '../../chunk-P7B4LQ3H.js';
5
+ import { isVtxoSpent } from '../../chunk-OPX2HRWM.js';
6
6
 
7
7
  // src/repositories/sqlite/transaction.ts
8
8
  var writeChains = /* @__PURE__ */ new WeakMap();
@@ -1,4 +1,4 @@
1
- import { W as WalletRepository, C as ContractRepository, w as IndexerProvider, v as ArkProvider, z as VirtualCoin, B as Contract, D as ExtendedVirtualCoin } from './index-DdKxfC29.js';
1
+ import { W as WalletRepository, C as ContractRepository, w as IndexerProvider, v as ArkProvider, z as VirtualCoin, B as Contract, D as ExtendedVirtualCoin } from './index-BURzbRup.js';
2
2
 
3
3
  /**
4
4
  * A task item represents a unit of work in the inbox.
@@ -1,4 +1,4 @@
1
- import { W as WalletRepository, C as ContractRepository, w as IndexerProvider, v as ArkProvider, z as VirtualCoin, B as Contract, D as ExtendedVirtualCoin } from './index-DdKxfC29.cjs';
1
+ import { W as WalletRepository, C as ContractRepository, w as IndexerProvider, v as ArkProvider, z as VirtualCoin, B as Contract, D as ExtendedVirtualCoin } from './index-BURzbRup.cjs';
2
2
 
3
3
  /**
4
4
  * A task item represents a unit of work in the inbox.
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkTAIWH3HG_cjs = require('../../chunk-TAIWH3HG.cjs');
4
- var chunkPVFQFQBY_cjs = require('../../chunk-PVFQFQBY.cjs');
5
- var chunk2OCYL6BJ_cjs = require('../../chunk-2OCYL6BJ.cjs');
6
- require('../../chunk-64R7CRKN.cjs');
7
- require('../../chunk-OM6FJ76H.cjs');
8
- require('../../chunk-GGKR4O5X.cjs');
3
+ var chunkZPF4I3K2_cjs = require('../../chunk-ZPF4I3K2.cjs');
4
+ var chunk5WRA66RV_cjs = require('../../chunk-5WRA66RV.cjs');
5
+ var chunkOUTWUYJ4_cjs = require('../../chunk-OUTWUYJ4.cjs');
6
+ require('../../chunk-ZMSM3NOH.cjs');
7
+ require('../../chunk-BYPBVHVA.cjs');
8
+ require('../../chunk-KW7ZEWYS.cjs');
9
9
  var TaskManager = require('expo-task-manager');
10
10
  var BackgroundTask = require('expo-background-task');
11
11
 
@@ -35,7 +35,7 @@ function defineExpoBackgroundTask(taskName, options) {
35
35
  taskQueue,
36
36
  walletRepository,
37
37
  contractRepository,
38
- processors = [chunkPVFQFQBY_cjs.contractPollProcessor]
38
+ processors = [chunk5WRA66RV_cjs.contractPollProcessor]
39
39
  } = options;
40
40
  TaskManager__namespace.defineTask(taskName, async () => {
41
41
  try {
@@ -43,24 +43,24 @@ function defineExpoBackgroundTask(taskName, options) {
43
43
  if (!config) {
44
44
  return BackgroundTask__namespace.BackgroundTaskResult.Success;
45
45
  }
46
- const indexerProvider = new chunkTAIWH3HG_cjs.ExpoIndexerProvider(config.arkServerUrl);
47
- const arkProvider = new chunkTAIWH3HG_cjs.ExpoArkProvider(config.arkServerUrl);
48
- const deps = chunkPVFQFQBY_cjs.createTaskDependencies({
46
+ const indexerProvider = new chunkZPF4I3K2_cjs.ExpoIndexerProvider(config.arkServerUrl);
47
+ const arkProvider = new chunkZPF4I3K2_cjs.ExpoArkProvider(config.arkServerUrl);
48
+ const deps = chunk5WRA66RV_cjs.createTaskDependencies({
49
49
  walletRepository,
50
50
  contractRepository,
51
51
  indexerProvider,
52
52
  arkProvider
53
53
  });
54
- await chunkPVFQFQBY_cjs.runTasks(taskQueue, processors, deps);
54
+ await chunk5WRA66RV_cjs.runTasks(taskQueue, processors, deps);
55
55
  const results = await taskQueue.getResults();
56
56
  if (results.length > 0) {
57
57
  await taskQueue.acknowledgeResults(results.map((r) => r.id));
58
58
  }
59
- const existing = await taskQueue.getTasks(chunkPVFQFQBY_cjs.CONTRACT_POLL_TASK_TYPE);
59
+ const existing = await taskQueue.getTasks(chunk5WRA66RV_cjs.CONTRACT_POLL_TASK_TYPE);
60
60
  if (existing.length === 0) {
61
61
  const task = {
62
- id: chunk2OCYL6BJ_cjs.getRandomId(),
63
- type: chunkPVFQFQBY_cjs.CONTRACT_POLL_TASK_TYPE,
62
+ id: chunkOUTWUYJ4_cjs.getRandomId(),
63
+ type: chunk5WRA66RV_cjs.CONTRACT_POLL_TASK_TYPE,
64
64
  data: {},
65
65
  createdAt: Date.now()
66
66
  };
@@ -1,6 +1,6 @@
1
- import { W as WalletRepository, C as ContractRepository } from '../../index-DdKxfC29.cjs';
2
- import { A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-BtEc3Qca.cjs';
3
- import { T as TaskProcessor } from '../../taskRunner-67YSEpsz.cjs';
1
+ import { W as WalletRepository, C as ContractRepository } from '../../index-BURzbRup.cjs';
2
+ import { A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-C9PkPcW_.cjs';
3
+ import { T as TaskProcessor } from '../../taskRunner-i56-drQV.cjs';
4
4
  import '@scure/btc-signer/utils.js';
5
5
  import '@scure/btc-signer/psbt.js';
6
6
  import '@scure/btc-signer';
@@ -1,6 +1,6 @@
1
- import { W as WalletRepository, C as ContractRepository } from '../../index-DdKxfC29.js';
2
- import { A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-DIn7bTqN.js';
3
- import { T as TaskProcessor } from '../../taskRunner-ZyGGjtIq.js';
1
+ import { W as WalletRepository, C as ContractRepository } from '../../index-BURzbRup.js';
2
+ import { A as AsyncStorageTaskQueue } from '../../asyncStorageTaskQueue-B3U5gQ-i.js';
3
+ import { T as TaskProcessor } from '../../taskRunner-BaNCSxqK.js';
4
4
  import '@scure/btc-signer/utils.js';
5
5
  import '@scure/btc-signer/psbt.js';
6
6
  import '@scure/btc-signer';
@@ -1,9 +1,9 @@
1
- import { ExpoIndexerProvider, ExpoArkProvider } from '../../chunk-2QRUQXLS.js';
2
- import { contractPollProcessor, createTaskDependencies, runTasks, CONTRACT_POLL_TASK_TYPE } from '../../chunk-MOBDJ7U2.js';
3
- import { getRandomId } from '../../chunk-AJWXVQYG.js';
4
- import '../../chunk-U5XG7SWA.js';
5
- import '../../chunk-LWRMSC4M.js';
6
- import '../../chunk-HKG26NUT.js';
1
+ import { ExpoIndexerProvider, ExpoArkProvider } from '../../chunk-T7C3E2HL.js';
2
+ import { contractPollProcessor, createTaskDependencies, runTasks, CONTRACT_POLL_TASK_TYPE } from '../../chunk-Y4BL3YYX.js';
3
+ import { getRandomId } from '../../chunk-HAQAWBYG.js';
4
+ import '../../chunk-6FL4N4S2.js';
5
+ import '../../chunk-P7B4LQ3H.js';
6
+ import '../../chunk-OPX2HRWM.js';
7
7
  import * as TaskManager from 'expo-task-manager';
8
8
  import * as BackgroundTask from 'expo-background-task';
9
9
 
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkPVFQFQBY_cjs = require('../../chunk-PVFQFQBY.cjs');
4
- var chunk2OCYL6BJ_cjs = require('../../chunk-2OCYL6BJ.cjs');
5
- require('../../chunk-64R7CRKN.cjs');
6
- require('../../chunk-OM6FJ76H.cjs');
7
- var chunkGGKR4O5X_cjs = require('../../chunk-GGKR4O5X.cjs');
3
+ var chunk5WRA66RV_cjs = require('../../chunk-5WRA66RV.cjs');
4
+ var chunkOUTWUYJ4_cjs = require('../../chunk-OUTWUYJ4.cjs');
5
+ require('../../chunk-ZMSM3NOH.cjs');
6
+ require('../../chunk-BYPBVHVA.cjs');
7
+ var chunkKW7ZEWYS_cjs = require('../../chunk-KW7ZEWYS.cjs');
8
8
  var base = require('@scure/base');
9
9
 
10
10
  function warnOnRemovedBackgroundFields(bg) {
@@ -56,20 +56,20 @@ var ExpoWallet = class _ExpoWallet {
56
56
  * by the consumer.
57
57
  */
58
58
  static async setup(config) {
59
- chunkGGKR4O5X_cjs.assertTimerMs("foregroundIntervalMs", config.background.foregroundIntervalMs);
59
+ chunkKW7ZEWYS_cjs.assertTimerMs("foregroundIntervalMs", config.background.foregroundIntervalMs);
60
60
  warnOnRemovedBackgroundFields(config.background);
61
- const wallet = await chunk2OCYL6BJ_cjs.Wallet.create(config);
62
- const processors = config.background.processors ?? [chunkPVFQFQBY_cjs.contractPollProcessor];
61
+ const wallet = await chunkOUTWUYJ4_cjs.Wallet.create(config);
62
+ const processors = config.background.processors ?? [chunk5WRA66RV_cjs.contractPollProcessor];
63
63
  const deps = {
64
64
  walletRepository: wallet.walletRepository,
65
65
  contractRepository: wallet.contractRepository,
66
66
  indexerProvider: wallet.indexerProvider,
67
67
  arkProvider: wallet.arkProvider,
68
- extendVtxo: (vtxo, contract) => chunk2OCYL6BJ_cjs.extendVirtualCoinForContract(vtxo, contract)
68
+ extendVtxo: (vtxo, contract) => chunkOUTWUYJ4_cjs.extendVirtualCoinForContract(vtxo, contract)
69
69
  };
70
70
  const { taskQueue } = config.background;
71
71
  if ("persistConfig" in taskQueue) {
72
- const arkServerUrl = chunk2OCYL6BJ_cjs.extractArkProviderUrl(wallet.arkProvider);
72
+ const arkServerUrl = chunkOUTWUYJ4_cjs.extractArkProviderUrl(wallet.arkProvider);
73
73
  if (typeof arkServerUrl === "string" && arkServerUrl.length > 0) {
74
74
  const timelock = wallet.offchainTapscript.options.csvTimelock;
75
75
  const bgConfig = {
@@ -100,7 +100,7 @@ var ExpoWallet = class _ExpoWallet {
100
100
  }
101
101
  async runForegroundPoll() {
102
102
  if (this.cleared) return;
103
- await chunkPVFQFQBY_cjs.runTasks(this.taskQueue, this.processors, this.deps);
103
+ await chunk5WRA66RV_cjs.runTasks(this.taskQueue, this.processors, this.deps);
104
104
  const results = await this.taskQueue.getResults();
105
105
  if (results.length > 0) {
106
106
  await this.taskQueue.acknowledgeResults(results.map((r) => r.id));
@@ -109,18 +109,18 @@ var ExpoWallet = class _ExpoWallet {
109
109
  await this.seedContractPollTask();
110
110
  }
111
111
  async seedContractPollTask() {
112
- const existing = await this.taskQueue.getTasks(chunkPVFQFQBY_cjs.CONTRACT_POLL_TASK_TYPE);
112
+ const existing = await this.taskQueue.getTasks(chunk5WRA66RV_cjs.CONTRACT_POLL_TASK_TYPE);
113
113
  if (existing.length > 0) return;
114
114
  const task = {
115
- id: chunk2OCYL6BJ_cjs.getRandomId(),
116
- type: chunkPVFQFQBY_cjs.CONTRACT_POLL_TASK_TYPE,
115
+ id: chunkOUTWUYJ4_cjs.getRandomId(),
116
+ type: chunk5WRA66RV_cjs.CONTRACT_POLL_TASK_TYPE,
117
117
  data: {},
118
118
  createdAt: Date.now()
119
119
  };
120
120
  await this.taskQueue.addTask(task);
121
121
  }
122
122
  async removeContractPollTasks() {
123
- const tasks = await this.taskQueue.getTasks(chunkPVFQFQBY_cjs.CONTRACT_POLL_TASK_TYPE);
123
+ const tasks = await this.taskQueue.getTasks(chunk5WRA66RV_cjs.CONTRACT_POLL_TASK_TYPE);
124
124
  for (const task of tasks) {
125
125
  await this.taskQueue.removeTask(task.id);
126
126
  }
@@ -171,6 +171,9 @@ var ExpoWallet = class _ExpoWallet {
171
171
  getArkadeBroadcaster() {
172
172
  return this.wallet.getArkadeBroadcaster();
173
173
  }
174
+ get oneShotSubmit() {
175
+ return this.wallet.oneShotSubmit;
176
+ }
174
177
  getBalance() {
175
178
  return this.wallet.getBalance();
176
179
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/wallet/expo/wallet.ts"],"names":["assertTimerMs","Wallet","contractPollProcessor","extendVirtualCoinForContract","extractArkProviderUrl","hex","runTasks","CONTRACT_POLL_TASK_TYPE","getRandomId"],"mappings":"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","file":"index.cjs","sourcesContent":["import { hex } from \"@scure/base\";\nimport { assertTimerMs } from \"../../utils/time\";\nimport { Wallet, extractArkProviderUrl, type ProviderConnectionState } from \"../wallet\";\nimport type { Activity, ActivityRegistry } from \"../activity\";\nimport type {\n ArkadeBroadcaster,\n ArkadeReader,\n GetArkadeInfoOptions,\n IWallet,\n IAssetManager,\n WalletBalance,\n WalletConfig,\n SettleParams,\n GetVtxosFilter,\n GetSpendableVtxosFilter,\n GetNewAddressesOptions,\n NewAddress,\n ArkTransaction,\n ExtendedCoin,\n Recipient,\n SendParams,\n} from \"..\";\nimport type { ArkadeInfo, SettlementEvent } from \"../../providers/ark\";\nimport type { Identity } from \"../../identity\";\nimport type {\n AddressAllocationCapable,\n HDAllocationCapable,\n HDWalletCapable,\n} from \"../hdWalletCapable\";\nimport type { IContractManager } from \"../../contracts/contractManager\";\nimport type { IDelegateManager } from \"../delegate\";\nimport type { TaskQueue, TaskItem } from \"../../worker/expo/taskQueue\";\nimport type { TaskProcessor, TaskDependencies } from \"../../worker/expo/taskRunner\";\nimport { runTasks } from \"../../worker/expo/taskRunner\";\nimport { contractPollProcessor, CONTRACT_POLL_TASK_TYPE } from \"../../worker/expo/processors\";\nimport { extendVirtualCoinForContract, getRandomId } from \"../utils\";\nimport type { PersistedBackgroundConfig } from \"./background\";\nimport type { AsyncStorageTaskQueue } from \"../../worker/expo/asyncStorageTaskQueue\";\nimport type { NormalizedExtendedVirtualCoin } from \"../vtxo\";\n\n/**\n * Background processing configuration for @see ExpoWallet.\n *\n * OS-level task registration is **not** part of this config — call\n * `registerExpoBackgroundTask` from `@arkade-os/sdk/wallet/expo/background`\n * explicitly. Splitting that step out keeps `/wallet/expo` free of the\n * `expo-task-manager` / `expo-background-task` dependencies, so\n * react-native-web and Node consumers can use `ExpoWallet` without\n * those native packages. See\n * https://github.com/arkade-os/ts-sdk/issues/486 for details.\n */\nexport interface ExpoBackgroundConfig {\n /** Persistence layer for foreground ↔ background handoff. */\n taskQueue: TaskQueue;\n /** Processors to run on each tick. Defaults to `[contractPollProcessor]`. */\n processors?: TaskProcessor[];\n /** If set, automatically polls at this interval (ms) while the app is in the foreground. */\n foregroundIntervalMs?: number;\n}\n\n/**\n * Configuration for @see ExpoWallet.setup.\n */\nexport interface ExpoWalletConfig extends WalletConfig {\n background: ExpoBackgroundConfig;\n}\n\n/**\n * Catches JS callers still passing the pre-fix-#486 fields: TypeScript\n * blocks these at compile time, but compiled JS silently dropped them\n * and consumers would never realize the OS task wasn't scheduled.\n *\n * @internal Exported for tests; not part of the public API surface.\n */\nexport function warnOnRemovedBackgroundFields(bg: unknown): void {\n if (!bg || typeof bg !== \"object\") return;\n const removed: string[] = [];\n if (\"taskName\" in bg) removed.push(\"taskName\");\n if (\"minimumBackgroundInterval\" in bg) {\n removed.push(\"minimumBackgroundInterval\");\n }\n if (removed.length === 0) return;\n console.warn(\n `[ark-sdk] ExpoWallet.setup: ignoring removed background field(s): ${removed.join(\", \")}. ` +\n 'OS-task registration moved to \"@arkade-os/sdk/wallet/expo/background\". ' +\n \"See https://github.com/arkade-os/ts-sdk/issues/486\",\n );\n}\n\n/**\n * Expo/React Native wallet with built-in background task processing.\n *\n * Wraps a standard @see Wallet and adds a lightweight task queue\n * for keeping contract/VTXO state fresh while the app is active and\n * across Expo BackgroundTask wakes.\n *\n * OS-level task registration is the consumer's responsibility — call\n * `registerExpoBackgroundTask` from\n * `@arkade-os/sdk/wallet/expo/background` after `setup()`. Keeping\n * registration out of `setup()` lets this entrypoint avoid pulling\n * `expo-task-manager` / `expo-background-task` into the `/wallet/expo`\n * bundle.\n *\n * @example\n * ```ts\n * import { ExpoWallet } from \"@arkade-os/sdk/wallet/expo\";\n * import { registerExpoBackgroundTask } from \"@arkade-os/sdk/wallet/expo/background\";\n * import { AsyncStorageTaskQueue } from \"@arkade-os/sdk/worker/expo\";\n *\n * const wallet = await ExpoWallet.setup({\n * identity: MnemonicIdentity.fromMnemonic('abandon abandon...'),\n * arkProvider: new RestArkProvider(),\n * onchainProvider: new EsploraProvider(),\n * storage: { ... },\n * background: {\n * taskQueue: new AsyncStorageTaskQueue(AsyncStorage),\n * foregroundIntervalMs: 20_000,\n * },\n * });\n *\n * // Activate the OS scheduler (Expo Android/iOS only)\n * await registerExpoBackgroundTask(\"ark-background-poll\", { minimumInterval: 15 });\n *\n * const balance = await wallet.getBalance();\n * ```\n */\nexport class ExpoWallet\n implements IWallet, HDWalletCapable, HDAllocationCapable, AddressAllocationCapable\n{\n readonly identity: Identity;\n readonly arkProvider: Wallet[\"arkProvider\"];\n readonly indexerProvider: Wallet[\"indexerProvider\"];\n\n private foregroundIntervalId?: ReturnType<typeof setInterval>;\n private foregroundPollChain: Promise<void> = Promise.resolve();\n private cleared = false;\n\n private constructor(\n private readonly wallet: Wallet,\n private readonly taskQueue: TaskQueue,\n private readonly processors: TaskProcessor[],\n private readonly deps: TaskDependencies,\n foregroundIntervalMs?: number,\n ) {\n this.identity = wallet.identity;\n this.arkProvider = wallet.arkProvider;\n this.indexerProvider = wallet.indexerProvider;\n\n if (foregroundIntervalMs && foregroundIntervalMs > 0) {\n this.startForegroundPolling(foregroundIntervalMs);\n }\n }\n\n /**\n * Create an ExpoWallet with foreground/background queue handoff.\n *\n * 1. Creates the inner @see Wallet via `Wallet.create()`.\n * 2. Wires up processors (defaults to @see contractPollProcessor).\n * 3. Persists background config for the background handler (if the queue supports it).\n * 4. Seeds the task queue with a `contract-poll` task.\n * 5. Starts the foreground interval if `foregroundIntervalMs` is set.\n *\n * OS-level scheduling lives in\n * `@arkade-os/sdk/wallet/expo/background` and is invoked separately\n * by the consumer.\n */\n static async setup(config: ExpoWalletConfig): Promise<ExpoWallet> {\n assertTimerMs(\"foregroundIntervalMs\", config.background.foregroundIntervalMs);\n warnOnRemovedBackgroundFields(config.background);\n\n const wallet = await Wallet.create(config);\n\n const processors = config.background.processors ?? [contractPollProcessor];\n\n const deps: TaskDependencies = {\n walletRepository: wallet.walletRepository,\n contractRepository: wallet.contractRepository,\n indexerProvider: wallet.indexerProvider,\n arkProvider: wallet.arkProvider,\n extendVtxo: (vtxo, contract) => extendVirtualCoinForContract(vtxo, contract),\n };\n\n const { taskQueue } = config.background;\n\n // Persist wallet params so the background handler can rehydrate\n // without a network call. Only works with AsyncStorageTaskQueue.\n if (\"persistConfig\" in taskQueue) {\n const arkServerUrl = extractArkProviderUrl(wallet.arkProvider);\n\n if (typeof arkServerUrl === \"string\" && arkServerUrl.length > 0) {\n const timelock = wallet.offchainTapscript.options.csvTimelock;\n\n const bgConfig: PersistedBackgroundConfig = {\n arkServerUrl,\n pubkeyHex: hex.encode(wallet.offchainTapscript.options.pubKey),\n serverPubKeyHex: hex.encode(wallet.offchainTapscript.options.serverPubKey),\n exitTimelockValue: timelock.value.toString(),\n exitTimelockType: timelock.type,\n };\n\n await (taskQueue as AsyncStorageTaskQueue).persistConfig(bgConfig);\n }\n }\n\n const expoWallet = new ExpoWallet(\n wallet,\n taskQueue,\n processors,\n deps,\n config.background.foregroundIntervalMs,\n );\n\n // Seed the queue so the first tick (or background wake) has work to do\n await expoWallet.seedContractPollTask();\n\n return expoWallet;\n }\n\n // ── Foreground polling ───────────────────────────────────────────\n\n private startForegroundPolling(intervalMs: number): void {\n this.foregroundIntervalId = setInterval(() => {\n // Serialize polls so clear() can await the in-flight one before wiping.\n this.foregroundPollChain = this.foregroundPollChain\n .then(() => this.runForegroundPoll())\n .catch(console.error);\n }, intervalMs);\n }\n\n private async runForegroundPoll(): Promise<void> {\n if (this.cleared) return;\n\n await runTasks(this.taskQueue, this.processors, this.deps);\n\n // Consume results immediately (no background handoff needed)\n const results = await this.taskQueue.getResults();\n if (results.length > 0) {\n await this.taskQueue.acknowledgeResults(results.map((r) => r.id));\n }\n\n if (this.cleared) return;\n\n // Re-seed for the next tick\n await this.seedContractPollTask();\n }\n\n private async seedContractPollTask(): Promise<void> {\n const existing = await this.taskQueue.getTasks(CONTRACT_POLL_TASK_TYPE);\n if (existing.length > 0) return;\n\n const task: TaskItem = {\n id: getRandomId(),\n type: CONTRACT_POLL_TASK_TYPE,\n data: {},\n createdAt: Date.now(),\n };\n await this.taskQueue.addTask(task);\n }\n\n private async removeContractPollTasks(): Promise<void> {\n const tasks = await this.taskQueue.getTasks(CONTRACT_POLL_TASK_TYPE);\n for (const task of tasks) {\n await this.taskQueue.removeTask(task.id);\n }\n }\n\n // ── Lifecycle ────────────────────────────────────────────────────\n\n /**\n * Stop foreground polling and dispose the inner wallet.\n *\n * Does **not** unregister the OS background task — call\n * `unregisterExpoBackgroundTask` from\n * `@arkade-os/sdk/wallet/expo/background` yourself, matching the\n * explicit `register` step.\n */\n async dispose(): Promise<void> {\n if (this.foregroundIntervalId) {\n clearInterval(this.foregroundIntervalId);\n this.foregroundIntervalId = undefined;\n }\n\n await this.wallet.dispose();\n }\n\n /**\n * Stop foreground polling and wipe all locally persisted wallet data.\n * Does not unregister the OS background task or persisted queue config.\n */\n async clear(): Promise<void> {\n this.cleared = true;\n\n if (this.foregroundIntervalId) {\n clearInterval(this.foregroundIntervalId);\n this.foregroundIntervalId = undefined;\n }\n\n await this.foregroundPollChain;\n await this.wallet.clear();\n await this.removeContractPollTasks();\n }\n\n // ── IWallet delegation ───────────────────────────────────────────\n\n getAddress(): Promise<string> {\n return this.wallet.getAddress();\n }\n\n getBoardingAddress(): Promise<string> {\n return this.wallet.getBoardingAddress();\n }\n\n getArkadeInfo(opts?: GetArkadeInfoOptions): Promise<ArkadeInfo> {\n return this.wallet.getArkadeInfo(opts);\n }\n\n getArkadeReader(): Promise<ArkadeReader> {\n return this.wallet.getArkadeReader();\n }\n\n getArkadeBroadcaster(): Promise<ArkadeBroadcaster> {\n return this.wallet.getArkadeBroadcaster();\n }\n\n getBalance(): Promise<WalletBalance> {\n return this.wallet.getBalance();\n }\n\n getVtxos(filter?: GetVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]> {\n return this.wallet.getVtxos(filter);\n }\n\n getSpendableVtxos(filter?: GetSpendableVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]> {\n return this.wallet.getSpendableVtxos(filter);\n }\n\n getBoardingUtxos(): Promise<ExtendedCoin[]> {\n return this.wallet.getBoardingUtxos();\n }\n\n getTransactionHistory(): Promise<ArkTransaction[]> {\n return this.wallet.getTransactionHistory();\n }\n\n get activity(): ActivityRegistry {\n return this.wallet.activity;\n }\n\n getActivityHistory(): Promise<Activity[]> {\n return this.wallet.getActivityHistory();\n }\n\n getContractManager(): Promise<IContractManager> {\n return this.wallet.getContractManager();\n }\n\n // Descriptor surface, delegated like everything else here. Without these\n // the structural probes see a wallet with no HD state, so an Expo wallet\n // running `walletMode: 'hd'` would bind every artifact to its baseline\n // identity key — reusing one key across swaps while its receive addresses\n // rotate, and never allocating the indices a restore scan looks for.\n\n getCurrentSigningDescriptor(): Promise<string | undefined> {\n return this.wallet.getCurrentSigningDescriptor();\n }\n\n getNextSigningDescriptor(): Promise<string | undefined> {\n return this.wallet.getNextSigningDescriptor();\n }\n\n /** @see Wallet.getNewAddresses */\n getNewAddresses(opts?: GetNewAddressesOptions): Promise<NewAddress[]> {\n return this.wallet.getNewAddresses(opts);\n }\n\n getUsedSigningDescriptors(opts?: { lookAhead?: number }): Promise<string[]> {\n return this.wallet.getUsedSigningDescriptors(opts);\n }\n\n advanceSigningDescriptorWatermark(descriptor: string): Promise<void> {\n return this.wallet.advanceSigningDescriptorWatermark(descriptor);\n }\n\n signerForDescriptor(descriptor: string): Promise<Identity> {\n return this.wallet.signerForDescriptor(descriptor);\n }\n\n /**\n * Wallet-level provider-connection freshness, delegated to the wrapped\n * in-process wallet. Synchronous because the Expo foreground wallet is\n * in-process (no worker boundary). Foreground-only: it does not imply any\n * background task can read live foreground state.\n */\n getProviderConnectionState(): ProviderConnectionState {\n return this.wallet.getProviderConnectionState();\n }\n\n getDelegateManager(): Promise<IDelegateManager | undefined> {\n return this.wallet.getDelegateManager();\n }\n\n settle(\n params?: SettleParams,\n eventCallback?: (event: SettlementEvent) => void,\n ): Promise<string> {\n return this.wallet.settle(params, eventCallback);\n }\n\n send(...args: [SendParams] | [Recipient, ...Recipient[]]): Promise<string> {\n return this.wallet.send(...args);\n }\n\n get assetManager(): IAssetManager {\n return this.wallet.assetManager;\n }\n\n /** @see WalletConfig.concurrentSpending */\n get concurrentSpending(): boolean {\n return this.wallet.concurrentSpending;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../../src/wallet/expo/wallet.ts"],"names":["assertTimerMs","Wallet","contractPollProcessor","extendVirtualCoinForContract","extractArkProviderUrl","hex","runTasks","CONTRACT_POLL_TASK_TYPE","getRandomId"],"mappings":"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","file":"index.cjs","sourcesContent":["import { hex } from \"@scure/base\";\nimport { assertTimerMs } from \"../../utils/time\";\nimport { Wallet, extractArkProviderUrl, type ProviderConnectionState } from \"../wallet\";\nimport type { Activity, ActivityRegistry } from \"../activity\";\nimport type {\n ArkadeBroadcaster,\n ArkadeReader,\n GetArkadeInfoOptions,\n IWallet,\n IAssetManager,\n WalletBalance,\n WalletConfig,\n SettleParams,\n GetVtxosFilter,\n GetSpendableVtxosFilter,\n GetNewAddressesOptions,\n NewAddress,\n ArkTransaction,\n ExtendedCoin,\n Recipient,\n SendParams,\n} from \"..\";\nimport type { ArkadeInfo, SettlementEvent } from \"../../providers/ark\";\nimport type { Identity } from \"../../identity\";\nimport type {\n AddressAllocationCapable,\n HDAllocationCapable,\n HDWalletCapable,\n} from \"../hdWalletCapable\";\nimport type { IContractManager } from \"../../contracts/contractManager\";\nimport type { IDelegateManager } from \"../delegate\";\nimport type { TaskQueue, TaskItem } from \"../../worker/expo/taskQueue\";\nimport type { TaskProcessor, TaskDependencies } from \"../../worker/expo/taskRunner\";\nimport { runTasks } from \"../../worker/expo/taskRunner\";\nimport { contractPollProcessor, CONTRACT_POLL_TASK_TYPE } from \"../../worker/expo/processors\";\nimport { extendVirtualCoinForContract, getRandomId } from \"../utils\";\nimport type { PersistedBackgroundConfig } from \"./background\";\nimport type { AsyncStorageTaskQueue } from \"../../worker/expo/asyncStorageTaskQueue\";\nimport type { NormalizedExtendedVirtualCoin } from \"../vtxo\";\n\n/**\n * Background processing configuration for @see ExpoWallet.\n *\n * OS-level task registration is **not** part of this config — call\n * `registerExpoBackgroundTask` from `@arkade-os/sdk/wallet/expo/background`\n * explicitly. Splitting that step out keeps `/wallet/expo` free of the\n * `expo-task-manager` / `expo-background-task` dependencies, so\n * react-native-web and Node consumers can use `ExpoWallet` without\n * those native packages. See\n * https://github.com/arkade-os/ts-sdk/issues/486 for details.\n */\nexport interface ExpoBackgroundConfig {\n /** Persistence layer for foreground ↔ background handoff. */\n taskQueue: TaskQueue;\n /** Processors to run on each tick. Defaults to `[contractPollProcessor]`. */\n processors?: TaskProcessor[];\n /** If set, automatically polls at this interval (ms) while the app is in the foreground. */\n foregroundIntervalMs?: number;\n}\n\n/**\n * Configuration for @see ExpoWallet.setup.\n */\nexport interface ExpoWalletConfig extends WalletConfig {\n background: ExpoBackgroundConfig;\n}\n\n/**\n * Catches JS callers still passing the pre-fix-#486 fields: TypeScript\n * blocks these at compile time, but compiled JS silently dropped them\n * and consumers would never realize the OS task wasn't scheduled.\n *\n * @internal Exported for tests; not part of the public API surface.\n */\nexport function warnOnRemovedBackgroundFields(bg: unknown): void {\n if (!bg || typeof bg !== \"object\") return;\n const removed: string[] = [];\n if (\"taskName\" in bg) removed.push(\"taskName\");\n if (\"minimumBackgroundInterval\" in bg) {\n removed.push(\"minimumBackgroundInterval\");\n }\n if (removed.length === 0) return;\n console.warn(\n `[ark-sdk] ExpoWallet.setup: ignoring removed background field(s): ${removed.join(\", \")}. ` +\n 'OS-task registration moved to \"@arkade-os/sdk/wallet/expo/background\". ' +\n \"See https://github.com/arkade-os/ts-sdk/issues/486\",\n );\n}\n\n/**\n * Expo/React Native wallet with built-in background task processing.\n *\n * Wraps a standard @see Wallet and adds a lightweight task queue\n * for keeping contract/VTXO state fresh while the app is active and\n * across Expo BackgroundTask wakes.\n *\n * OS-level task registration is the consumer's responsibility — call\n * `registerExpoBackgroundTask` from\n * `@arkade-os/sdk/wallet/expo/background` after `setup()`. Keeping\n * registration out of `setup()` lets this entrypoint avoid pulling\n * `expo-task-manager` / `expo-background-task` into the `/wallet/expo`\n * bundle.\n *\n * @example\n * ```ts\n * import { ExpoWallet } from \"@arkade-os/sdk/wallet/expo\";\n * import { registerExpoBackgroundTask } from \"@arkade-os/sdk/wallet/expo/background\";\n * import { AsyncStorageTaskQueue } from \"@arkade-os/sdk/worker/expo\";\n *\n * const wallet = await ExpoWallet.setup({\n * identity: MnemonicIdentity.fromMnemonic('abandon abandon...'),\n * arkProvider: new RestArkProvider(),\n * onchainProvider: new EsploraProvider(),\n * storage: { ... },\n * background: {\n * taskQueue: new AsyncStorageTaskQueue(AsyncStorage),\n * foregroundIntervalMs: 20_000,\n * },\n * });\n *\n * // Activate the OS scheduler (Expo Android/iOS only)\n * await registerExpoBackgroundTask(\"ark-background-poll\", { minimumInterval: 15 });\n *\n * const balance = await wallet.getBalance();\n * ```\n */\nexport class ExpoWallet\n implements IWallet, HDWalletCapable, HDAllocationCapable, AddressAllocationCapable\n{\n readonly identity: Identity;\n readonly arkProvider: Wallet[\"arkProvider\"];\n readonly indexerProvider: Wallet[\"indexerProvider\"];\n\n private foregroundIntervalId?: ReturnType<typeof setInterval>;\n private foregroundPollChain: Promise<void> = Promise.resolve();\n private cleared = false;\n\n private constructor(\n private readonly wallet: Wallet,\n private readonly taskQueue: TaskQueue,\n private readonly processors: TaskProcessor[],\n private readonly deps: TaskDependencies,\n foregroundIntervalMs?: number,\n ) {\n this.identity = wallet.identity;\n this.arkProvider = wallet.arkProvider;\n this.indexerProvider = wallet.indexerProvider;\n\n if (foregroundIntervalMs && foregroundIntervalMs > 0) {\n this.startForegroundPolling(foregroundIntervalMs);\n }\n }\n\n /**\n * Create an ExpoWallet with foreground/background queue handoff.\n *\n * 1. Creates the inner @see Wallet via `Wallet.create()`.\n * 2. Wires up processors (defaults to @see contractPollProcessor).\n * 3. Persists background config for the background handler (if the queue supports it).\n * 4. Seeds the task queue with a `contract-poll` task.\n * 5. Starts the foreground interval if `foregroundIntervalMs` is set.\n *\n * OS-level scheduling lives in\n * `@arkade-os/sdk/wallet/expo/background` and is invoked separately\n * by the consumer.\n */\n static async setup(config: ExpoWalletConfig): Promise<ExpoWallet> {\n assertTimerMs(\"foregroundIntervalMs\", config.background.foregroundIntervalMs);\n warnOnRemovedBackgroundFields(config.background);\n\n const wallet = await Wallet.create(config);\n\n const processors = config.background.processors ?? [contractPollProcessor];\n\n const deps: TaskDependencies = {\n walletRepository: wallet.walletRepository,\n contractRepository: wallet.contractRepository,\n indexerProvider: wallet.indexerProvider,\n arkProvider: wallet.arkProvider,\n extendVtxo: (vtxo, contract) => extendVirtualCoinForContract(vtxo, contract),\n };\n\n const { taskQueue } = config.background;\n\n // Persist wallet params so the background handler can rehydrate\n // without a network call. Only works with AsyncStorageTaskQueue.\n if (\"persistConfig\" in taskQueue) {\n const arkServerUrl = extractArkProviderUrl(wallet.arkProvider);\n\n if (typeof arkServerUrl === \"string\" && arkServerUrl.length > 0) {\n const timelock = wallet.offchainTapscript.options.csvTimelock;\n\n const bgConfig: PersistedBackgroundConfig = {\n arkServerUrl,\n pubkeyHex: hex.encode(wallet.offchainTapscript.options.pubKey),\n serverPubKeyHex: hex.encode(wallet.offchainTapscript.options.serverPubKey),\n exitTimelockValue: timelock.value.toString(),\n exitTimelockType: timelock.type,\n };\n\n await (taskQueue as AsyncStorageTaskQueue).persistConfig(bgConfig);\n }\n }\n\n const expoWallet = new ExpoWallet(\n wallet,\n taskQueue,\n processors,\n deps,\n config.background.foregroundIntervalMs,\n );\n\n // Seed the queue so the first tick (or background wake) has work to do\n await expoWallet.seedContractPollTask();\n\n return expoWallet;\n }\n\n // ── Foreground polling ───────────────────────────────────────────\n\n private startForegroundPolling(intervalMs: number): void {\n this.foregroundIntervalId = setInterval(() => {\n // Serialize polls so clear() can await the in-flight one before wiping.\n this.foregroundPollChain = this.foregroundPollChain\n .then(() => this.runForegroundPoll())\n .catch(console.error);\n }, intervalMs);\n }\n\n private async runForegroundPoll(): Promise<void> {\n if (this.cleared) return;\n\n await runTasks(this.taskQueue, this.processors, this.deps);\n\n // Consume results immediately (no background handoff needed)\n const results = await this.taskQueue.getResults();\n if (results.length > 0) {\n await this.taskQueue.acknowledgeResults(results.map((r) => r.id));\n }\n\n if (this.cleared) return;\n\n // Re-seed for the next tick\n await this.seedContractPollTask();\n }\n\n private async seedContractPollTask(): Promise<void> {\n const existing = await this.taskQueue.getTasks(CONTRACT_POLL_TASK_TYPE);\n if (existing.length > 0) return;\n\n const task: TaskItem = {\n id: getRandomId(),\n type: CONTRACT_POLL_TASK_TYPE,\n data: {},\n createdAt: Date.now(),\n };\n await this.taskQueue.addTask(task);\n }\n\n private async removeContractPollTasks(): Promise<void> {\n const tasks = await this.taskQueue.getTasks(CONTRACT_POLL_TASK_TYPE);\n for (const task of tasks) {\n await this.taskQueue.removeTask(task.id);\n }\n }\n\n // ── Lifecycle ────────────────────────────────────────────────────\n\n /**\n * Stop foreground polling and dispose the inner wallet.\n *\n * Does **not** unregister the OS background task — call\n * `unregisterExpoBackgroundTask` from\n * `@arkade-os/sdk/wallet/expo/background` yourself, matching the\n * explicit `register` step.\n */\n async dispose(): Promise<void> {\n if (this.foregroundIntervalId) {\n clearInterval(this.foregroundIntervalId);\n this.foregroundIntervalId = undefined;\n }\n\n await this.wallet.dispose();\n }\n\n /**\n * Stop foreground polling and wipe all locally persisted wallet data.\n * Does not unregister the OS background task or persisted queue config.\n */\n async clear(): Promise<void> {\n this.cleared = true;\n\n if (this.foregroundIntervalId) {\n clearInterval(this.foregroundIntervalId);\n this.foregroundIntervalId = undefined;\n }\n\n await this.foregroundPollChain;\n await this.wallet.clear();\n await this.removeContractPollTasks();\n }\n\n // ── IWallet delegation ───────────────────────────────────────────\n\n getAddress(): Promise<string> {\n return this.wallet.getAddress();\n }\n\n getBoardingAddress(): Promise<string> {\n return this.wallet.getBoardingAddress();\n }\n\n getArkadeInfo(opts?: GetArkadeInfoOptions): Promise<ArkadeInfo> {\n return this.wallet.getArkadeInfo(opts);\n }\n\n getArkadeReader(): Promise<ArkadeReader> {\n return this.wallet.getArkadeReader();\n }\n\n getArkadeBroadcaster(): Promise<ArkadeBroadcaster> {\n return this.wallet.getArkadeBroadcaster();\n }\n\n get oneShotSubmit(): boolean {\n return this.wallet.oneShotSubmit;\n }\n\n getBalance(): Promise<WalletBalance> {\n return this.wallet.getBalance();\n }\n\n getVtxos(filter?: GetVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]> {\n return this.wallet.getVtxos(filter);\n }\n\n getSpendableVtxos(filter?: GetSpendableVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]> {\n return this.wallet.getSpendableVtxos(filter);\n }\n\n getBoardingUtxos(): Promise<ExtendedCoin[]> {\n return this.wallet.getBoardingUtxos();\n }\n\n getTransactionHistory(): Promise<ArkTransaction[]> {\n return this.wallet.getTransactionHistory();\n }\n\n get activity(): ActivityRegistry {\n return this.wallet.activity;\n }\n\n getActivityHistory(): Promise<Activity[]> {\n return this.wallet.getActivityHistory();\n }\n\n getContractManager(): Promise<IContractManager> {\n return this.wallet.getContractManager();\n }\n\n // Descriptor surface, delegated like everything else here. Without these\n // the structural probes see a wallet with no HD state, so an Expo wallet\n // running `walletMode: 'hd'` would bind every artifact to its baseline\n // identity key — reusing one key across swaps while its receive addresses\n // rotate, and never allocating the indices a restore scan looks for.\n\n getCurrentSigningDescriptor(): Promise<string | undefined> {\n return this.wallet.getCurrentSigningDescriptor();\n }\n\n getNextSigningDescriptor(): Promise<string | undefined> {\n return this.wallet.getNextSigningDescriptor();\n }\n\n /** @see Wallet.getNewAddresses */\n getNewAddresses(opts?: GetNewAddressesOptions): Promise<NewAddress[]> {\n return this.wallet.getNewAddresses(opts);\n }\n\n getUsedSigningDescriptors(opts?: { lookAhead?: number }): Promise<string[]> {\n return this.wallet.getUsedSigningDescriptors(opts);\n }\n\n advanceSigningDescriptorWatermark(descriptor: string): Promise<void> {\n return this.wallet.advanceSigningDescriptorWatermark(descriptor);\n }\n\n signerForDescriptor(descriptor: string): Promise<Identity> {\n return this.wallet.signerForDescriptor(descriptor);\n }\n\n /**\n * Wallet-level provider-connection freshness, delegated to the wrapped\n * in-process wallet. Synchronous because the Expo foreground wallet is\n * in-process (no worker boundary). Foreground-only: it does not imply any\n * background task can read live foreground state.\n */\n getProviderConnectionState(): ProviderConnectionState {\n return this.wallet.getProviderConnectionState();\n }\n\n getDelegateManager(): Promise<IDelegateManager | undefined> {\n return this.wallet.getDelegateManager();\n }\n\n settle(\n params?: SettleParams,\n eventCallback?: (event: SettlementEvent) => void,\n ): Promise<string> {\n return this.wallet.settle(params, eventCallback);\n }\n\n send(...args: [SendParams] | [Recipient, ...Recipient[]]): Promise<string> {\n return this.wallet.send(...args);\n }\n\n get assetManager(): IAssetManager {\n return this.wallet.assetManager;\n }\n\n /** @see WalletConfig.concurrentSpending */\n get concurrentSpending(): boolean {\n return this.wallet.concurrentSpending;\n }\n}\n"]}
@@ -1,9 +1,9 @@
1
- import { H as HDWalletCapable, a as HDAllocationCapable, A as AddressAllocationCapable, W as Wallet, P as ProviderConnectionState } from '../../wallet-B8LW7cV1.cjs';
2
- import { I as IWallet, a as Identity, b as WalletConfig, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, d as ArkadeBroadcaster, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, E as ExtendedCoin, h as ArkTransaction, i as ActivityRegistry, j as Activity, k as IContractManager, l as GetNewAddressesOptions, m as NewAddress, n as IDelegateManager, S as SettleParams, o as SettlementEvent, p as SendParams, R as Recipient, q as IAssetManager } from '../../index-DdKxfC29.cjs';
3
- import { a as TaskQueue, T as TaskProcessor } from '../../taskRunner-67YSEpsz.cjs';
1
+ import { H as HDWalletCapable, a as HDAllocationCapable, A as AddressAllocationCapable, W as Wallet, P as ProviderConnectionState } from '../../wallet-BjQugVUt.cjs';
2
+ import { I as IWallet, a as Identity, b as WalletConfig, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, d as ArkadeBroadcaster, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, E as ExtendedCoin, h as ArkTransaction, i as ActivityRegistry, j as Activity, k as IContractManager, l as GetNewAddressesOptions, m as NewAddress, n as IDelegateManager, S as SettleParams, o as SettlementEvent, p as SendParams, R as Recipient, q as IAssetManager } from '../../index-BURzbRup.cjs';
3
+ import { a as TaskQueue, T as TaskProcessor } from '../../taskRunner-i56-drQV.cjs';
4
4
  import '@scure/btc-signer/psbt.js';
5
5
  import '@scure/btc-signer/utils.js';
6
- import '../../delegate-CaL8EN4Q.cjs';
6
+ import '../../delegate-ByfKszb6.cjs';
7
7
  import '@scure/btc-signer';
8
8
  import '@scure/btc-signer/transaction.js';
9
9
 
@@ -118,6 +118,7 @@ declare class ExpoWallet implements IWallet, HDWalletCapable, HDAllocationCapabl
118
118
  getArkadeInfo(opts?: GetArkadeInfoOptions): Promise<ArkadeInfo>;
119
119
  getArkadeReader(): Promise<ArkadeReader>;
120
120
  getArkadeBroadcaster(): Promise<ArkadeBroadcaster>;
121
+ get oneShotSubmit(): boolean;
121
122
  getBalance(): Promise<WalletBalance>;
122
123
  getVtxos(filter?: GetVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]>;
123
124
  getSpendableVtxos(filter?: GetSpendableVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]>;
@@ -1,9 +1,9 @@
1
- import { H as HDWalletCapable, a as HDAllocationCapable, A as AddressAllocationCapable, W as Wallet, P as ProviderConnectionState } from '../../wallet-bFS7VybL.js';
2
- import { I as IWallet, a as Identity, b as WalletConfig, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, d as ArkadeBroadcaster, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, E as ExtendedCoin, h as ArkTransaction, i as ActivityRegistry, j as Activity, k as IContractManager, l as GetNewAddressesOptions, m as NewAddress, n as IDelegateManager, S as SettleParams, o as SettlementEvent, p as SendParams, R as Recipient, q as IAssetManager } from '../../index-DdKxfC29.js';
3
- import { a as TaskQueue, T as TaskProcessor } from '../../taskRunner-ZyGGjtIq.js';
1
+ import { H as HDWalletCapable, a as HDAllocationCapable, A as AddressAllocationCapable, W as Wallet, P as ProviderConnectionState } from '../../wallet-BnmhohgZ.js';
2
+ import { I as IWallet, a as Identity, b as WalletConfig, G as GetArkadeInfoOptions, A as ArkadeInfo, c as ArkadeReader, d as ArkadeBroadcaster, e as WalletBalance, f as GetVtxosFilter, N as NormalizedExtendedVirtualCoin, g as GetSpendableVtxosFilter, E as ExtendedCoin, h as ArkTransaction, i as ActivityRegistry, j as Activity, k as IContractManager, l as GetNewAddressesOptions, m as NewAddress, n as IDelegateManager, S as SettleParams, o as SettlementEvent, p as SendParams, R as Recipient, q as IAssetManager } from '../../index-BURzbRup.js';
3
+ import { a as TaskQueue, T as TaskProcessor } from '../../taskRunner-BaNCSxqK.js';
4
4
  import '@scure/btc-signer/psbt.js';
5
5
  import '@scure/btc-signer/utils.js';
6
- import '../../delegate-Jd4zs88Q.js';
6
+ import '../../delegate-Cd28gxpM.js';
7
7
  import '@scure/btc-signer';
8
8
  import '@scure/btc-signer/transaction.js';
9
9
 
@@ -118,6 +118,7 @@ declare class ExpoWallet implements IWallet, HDWalletCapable, HDAllocationCapabl
118
118
  getArkadeInfo(opts?: GetArkadeInfoOptions): Promise<ArkadeInfo>;
119
119
  getArkadeReader(): Promise<ArkadeReader>;
120
120
  getArkadeBroadcaster(): Promise<ArkadeBroadcaster>;
121
+ get oneShotSubmit(): boolean;
121
122
  getBalance(): Promise<WalletBalance>;
122
123
  getVtxos(filter?: GetVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]>;
123
124
  getSpendableVtxos(filter?: GetSpendableVtxosFilter): Promise<NormalizedExtendedVirtualCoin[]>;