@arkade-os/sdk 0.5.3 → 0.5.4

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 (88) hide show
  1. package/README.md +36 -34
  2. package/dist/adapters/expo.cjs +9 -5
  3. package/dist/adapters/expo.d.cts +11 -7
  4. package/dist/adapters/expo.d.ts +11 -7
  5. package/dist/adapters/expo.js +3 -3
  6. package/dist/{asyncStorageTaskQueue-B3U5gQ-i.d.ts → asyncStorageTaskQueue-DHMIxY04.d.ts} +2 -2
  7. package/dist/{asyncStorageTaskQueue-C9PkPcW_.d.cts → asyncStorageTaskQueue-DTBa8EH7.d.cts} +2 -2
  8. package/dist/{chunk-P7B4LQ3H.js → chunk-6CUP6ZIF.js} +4 -4
  9. package/dist/{chunk-P7B4LQ3H.js.map → chunk-6CUP6ZIF.js.map} +1 -1
  10. package/dist/{chunk-OPX2HRWM.js → chunk-AG4TFD6F.js} +137 -59
  11. package/dist/chunk-AG4TFD6F.js.map +1 -0
  12. package/dist/{chunk-5WRA66RV.cjs → chunk-B6VNKGIH.cjs} +10 -10
  13. package/dist/chunk-B6VNKGIH.cjs.map +1 -0
  14. package/dist/{chunk-6FL4N4S2.js → chunk-BTRCN4JJ.js} +22 -19
  15. package/dist/chunk-BTRCN4JJ.js.map +1 -0
  16. package/dist/{chunk-ZPF4I3K2.cjs → chunk-DNITZVNG.cjs} +28 -47
  17. package/dist/chunk-DNITZVNG.cjs.map +1 -0
  18. package/dist/{chunk-BYPBVHVA.cjs → chunk-E6OOJEHL.cjs} +49 -49
  19. package/dist/{chunk-BYPBVHVA.cjs.map → chunk-E6OOJEHL.cjs.map} +1 -1
  20. package/dist/{chunk-OUTWUYJ4.cjs → chunk-F3FAE7VJ.cjs} +769 -619
  21. package/dist/chunk-F3FAE7VJ.cjs.map +1 -0
  22. package/dist/{chunk-KW7ZEWYS.cjs → chunk-GHUUT54D.cjs} +140 -58
  23. package/dist/chunk-GHUUT54D.cjs.map +1 -0
  24. package/dist/{chunk-Y4BL3YYX.js → chunk-MWVAWFX6.js} +4 -4
  25. package/dist/chunk-MWVAWFX6.js.map +1 -0
  26. package/dist/{chunk-T7C3E2HL.js → chunk-TUOLZBNC.js} +19 -39
  27. package/dist/chunk-TUOLZBNC.js.map +1 -0
  28. package/dist/{chunk-ZMSM3NOH.cjs → chunk-WXNSISXK.cjs} +37 -34
  29. package/dist/chunk-WXNSISXK.cjs.map +1 -0
  30. package/dist/{chunk-HAQAWBYG.js → chunk-ZJHLLDBP.js} +283 -136
  31. package/dist/chunk-ZJHLLDBP.js.map +1 -0
  32. package/dist/contracts/handlers/index.cjs +9 -9
  33. package/dist/contracts/handlers/index.d.cts +3 -3
  34. package/dist/contracts/handlers/index.d.ts +3 -3
  35. package/dist/contracts/handlers/index.js +2 -2
  36. package/dist/{delegate-ByfKszb6.d.cts → delegate-f4_t864Z.d.cts} +1 -1
  37. package/dist/{delegate-Cd28gxpM.d.ts → delegate-xrSBNybC.d.ts} +1 -1
  38. package/dist/{index-DgH_0j14.d.cts → index-BJDz15ms.d.ts} +5 -5
  39. package/dist/{index-B6X2E7W_.d.ts → index-BjiVGtp8.d.cts} +5 -5
  40. package/dist/{index-BURzbRup.d.ts → index-DRwe0UDN.d.cts} +182 -114
  41. package/dist/{index-BURzbRup.d.cts → index-DRwe0UDN.d.ts} +182 -114
  42. package/dist/index.cjs +333 -313
  43. package/dist/index.d.cts +66 -44
  44. package/dist/index.d.ts +66 -44
  45. package/dist/index.js +4 -4
  46. package/dist/repositories/realm/index.cjs +65 -36
  47. package/dist/repositories/realm/index.cjs.map +1 -1
  48. package/dist/repositories/realm/index.d.cts +7 -3
  49. package/dist/repositories/realm/index.d.ts +7 -3
  50. package/dist/repositories/realm/index.js +35 -6
  51. package/dist/repositories/realm/index.js.map +1 -1
  52. package/dist/repositories/sqlite/index.cjs +176 -110
  53. package/dist/repositories/sqlite/index.cjs.map +1 -1
  54. package/dist/repositories/sqlite/index.d.cts +23 -13
  55. package/dist/repositories/sqlite/index.d.ts +23 -13
  56. package/dist/repositories/sqlite/index.js +148 -83
  57. package/dist/repositories/sqlite/index.js.map +1 -1
  58. package/dist/{taskRunner-i56-drQV.d.cts → taskRunner-BPPU-YHG.d.cts} +4 -4
  59. package/dist/{taskRunner-BaNCSxqK.d.ts → taskRunner-CDlNeth0.d.ts} +4 -4
  60. package/dist/wallet/expo/background.cjs +14 -14
  61. package/dist/wallet/expo/background.cjs.map +1 -1
  62. package/dist/wallet/expo/background.d.cts +3 -3
  63. package/dist/wallet/expo/background.d.ts +3 -3
  64. package/dist/wallet/expo/background.js +7 -7
  65. package/dist/wallet/expo/background.js.map +1 -1
  66. package/dist/wallet/expo/index.cjs +15 -15
  67. package/dist/wallet/expo/index.cjs.map +1 -1
  68. package/dist/wallet/expo/index.d.cts +6 -6
  69. package/dist/wallet/expo/index.d.ts +6 -6
  70. package/dist/wallet/expo/index.js +6 -6
  71. package/dist/wallet/expo/index.js.map +1 -1
  72. package/dist/{wallet-BjQugVUt.d.cts → wallet-Oc3Wd5gv.d.ts} +22 -18
  73. package/dist/{wallet-BnmhohgZ.d.ts → wallet-jVBDQl6R.d.cts} +22 -18
  74. package/dist/worker/expo/index.cjs +9 -9
  75. package/dist/worker/expo/index.d.cts +4 -4
  76. package/dist/worker/expo/index.d.ts +4 -4
  77. package/dist/worker/expo/index.js +5 -5
  78. package/package.json +1 -1
  79. package/dist/chunk-5WRA66RV.cjs.map +0 -1
  80. package/dist/chunk-6FL4N4S2.js.map +0 -1
  81. package/dist/chunk-HAQAWBYG.js.map +0 -1
  82. package/dist/chunk-KW7ZEWYS.cjs.map +0 -1
  83. package/dist/chunk-OPX2HRWM.js.map +0 -1
  84. package/dist/chunk-OUTWUYJ4.cjs.map +0 -1
  85. package/dist/chunk-T7C3E2HL.js.map +0 -1
  86. package/dist/chunk-Y4BL3YYX.js.map +0 -1
  87. package/dist/chunk-ZMSM3NOH.cjs.map +0 -1
  88. package/dist/chunk-ZPF4I3K2.cjs.map +0 -1
@@ -1,14 +1,18 @@
1
1
  'use strict';
2
2
 
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');
3
+ var chunkF3FAE7VJ_cjs = require('../../chunk-F3FAE7VJ.cjs');
4
+ require('../../chunk-WXNSISXK.cjs');
5
+ require('../../chunk-E6OOJEHL.cjs');
6
+ var chunkGHUUT54D_cjs = require('../../chunk-GHUUT54D.cjs');
7
7
 
8
8
  // src/repositories/realm/walletRepository.ts
9
9
  var RealmWalletRepository = class {
10
- constructor(realm) {
10
+ /** persistentWalletState is the caller's backing-store assertion, not adapter detection. */
11
+ constructor(realm, options) {
11
12
  this.realm = realm;
13
+ if (options?.persistentWalletState === true) {
14
+ this.atomicWalletState = { ...this.atomicWalletState, persistent: true };
15
+ }
12
16
  }
13
17
  realm;
14
18
  version = 2;
@@ -35,7 +39,7 @@ var RealmWalletRepository = class {
35
39
  await this.ensureInit();
36
40
  this.realm.write(() => {
37
41
  for (const vtxo of vtxos) {
38
- const s = chunkOUTWUYJ4_cjs.serializeVtxo(vtxo);
42
+ const s = chunkF3FAE7VJ_cjs.serializeVtxo(vtxo);
39
43
  this.realm.create(
40
44
  "ArkVtxo",
41
45
  {
@@ -50,7 +54,7 @@ var RealmWalletRepository = class {
50
54
  intentCb: s.intentTapLeafScript.cb,
51
55
  intentS: s.intentTapLeafScript.s,
52
56
  statusJson: JSON.stringify(s.status),
53
- createdAt: chunkOUTWUYJ4_cjs.createdAtToIso(s.createdAt),
57
+ createdAt: chunkF3FAE7VJ_cjs.createdAtToIso(s.createdAt),
54
58
  isUnrolled: s.isUnrolled ?? false,
55
59
  isSpent: s.isSpent === void 0 ? null : s.isSpent,
56
60
  isSwept: s.isSwept === void 0 ? null : s.isSwept,
@@ -74,7 +78,7 @@ var RealmWalletRepository = class {
74
78
  return this.deleteWhere("ArkVtxo", "address", address);
75
79
  }
76
80
  async getVtxosForScriptPage(script, page, options) {
77
- chunkOUTWUYJ4_cjs.assertPageRequest(page);
81
+ chunkF3FAE7VJ_cjs.assertPageRequest(page);
78
82
  await this.ensureInit();
79
83
  let results = this.realm.objects("ArkVtxo").filtered("script == $0", script);
80
84
  if (options?.unspentOnly) {
@@ -101,15 +105,15 @@ var RealmWalletRepository = class {
101
105
  rows.push({ address: row.address, vtxo: vtxoObjectToDomain(row) });
102
106
  if (rows.length > page.limit) break;
103
107
  }
104
- const result = chunkOUTWUYJ4_cjs.pageResult(rows, page.limit, (row) => ({
108
+ const result = chunkF3FAE7VJ_cjs.pageResult(rows, page.limit, (row) => ({
105
109
  address: row.address,
106
110
  txid: row.vtxo.txid,
107
111
  vout: row.vtxo.vout
108
112
  }));
109
- return options?.unspentOnly ? { ...result, items: result.items.filter((row) => !chunkKW7ZEWYS_cjs.isVtxoSpent(row.vtxo)) } : result;
113
+ return options?.unspentOnly ? { ...result, items: result.items.filter((row) => !chunkGHUUT54D_cjs.isVtxoSpent(row.vtxo)) } : result;
110
114
  }
111
115
  async saveVtxosForScript(key, vtxos) {
112
- return this.saveVtxos(chunkOUTWUYJ4_cjs.checkSaveVtxosForScript("RealmWalletRepository", key, vtxos), vtxos);
116
+ return this.saveVtxos(chunkF3FAE7VJ_cjs.checkSaveVtxosForScript("RealmWalletRepository", key, vtxos), vtxos);
113
117
  }
114
118
  async deleteVtxosForScript(script) {
115
119
  return this.deleteWhere("ArkVtxo", "script", script);
@@ -119,7 +123,7 @@ var RealmWalletRepository = class {
119
123
  return this.pageByAddress("ArkUtxo", address, page, utxoObjectToDomain);
120
124
  }
121
125
  async pageByAddress(schema, address, page, deserialize) {
122
- chunkOUTWUYJ4_cjs.assertPageRequest(page);
126
+ chunkF3FAE7VJ_cjs.assertPageRequest(page);
123
127
  await this.ensureInit();
124
128
  let results = this.realm.objects(schema).filtered("address == $0", address);
125
129
  if (page.after) {
@@ -137,18 +141,18 @@ var RealmWalletRepository = class {
137
141
  rows.push({ key: { txid: row.txid, vout: row.vout }, item: deserialize(row) });
138
142
  if (rows.length > page.limit) break;
139
143
  }
140
- const result = chunkOUTWUYJ4_cjs.pageResult(rows, page.limit, (row) => row.key);
144
+ const result = chunkF3FAE7VJ_cjs.pageResult(rows, page.limit, (row) => row.key);
141
145
  return { items: result.items.map((row) => row.item), nextCursor: result.nextCursor };
142
146
  }
143
147
  async saveUtxos(addressOrBatch, utxos) {
144
148
  await this.ensureInit();
145
- const rows = chunkOUTWUYJ4_cjs.utxoEntries(addressOrBatch, utxos).flatMap(
149
+ const rows = chunkF3FAE7VJ_cjs.utxoEntries(addressOrBatch, utxos).flatMap(
146
150
  ([address, list]) => list.map((utxo) => ({ address, utxo }))
147
151
  );
148
152
  if (rows.length === 0) return;
149
153
  this.realm.write(() => {
150
154
  for (const { address, utxo } of rows) {
151
- const s = chunkOUTWUYJ4_cjs.serializeUtxo(utxo);
155
+ const s = chunkF3FAE7VJ_cjs.serializeUtxo(utxo);
152
156
  this.realm.create(
153
157
  "ArkUtxo",
154
158
  {
@@ -175,8 +179,8 @@ var RealmWalletRepository = class {
175
179
  }
176
180
  // ── Transaction history ────────────────────────────────────────────
177
181
  async getTransactionHistoryPage(filter, page) {
178
- chunkOUTWUYJ4_cjs.assertPageRequest(page);
179
- chunkOUTWUYJ4_cjs.assertHistoryPageFilter(filter);
182
+ chunkF3FAE7VJ_cjs.assertPageRequest(page);
183
+ chunkF3FAE7VJ_cjs.assertHistoryPageFilter(filter);
180
184
  let results = this.realm.objects("ArkTransaction").filtered("address == $0", filter.address);
181
185
  results = results.filtered(
182
186
  "createdAt >= $0",
@@ -190,12 +194,12 @@ var RealmWalletRepository = class {
190
194
  ["arkTxid", false]
191
195
  ])) {
192
196
  const tx = txObjectToDomain(row);
193
- if (page.after !== void 0 && chunkOUTWUYJ4_cjs.compareHistoryCursors({ createdAt: tx.createdAt, key: tx.key }, page.after) <= 0)
197
+ if (page.after !== void 0 && chunkF3FAE7VJ_cjs.compareHistoryCursors({ createdAt: tx.createdAt, key: tx.key }, page.after) <= 0)
194
198
  continue;
195
199
  rows.push(tx);
196
200
  if (rows.length > page.limit) break;
197
201
  }
198
- return chunkOUTWUYJ4_cjs.pageResult(rows, page.limit, (tx) => ({ createdAt: tx.createdAt, key: tx.key }));
202
+ return chunkF3FAE7VJ_cjs.pageResult(rows, page.limit, (tx) => ({ createdAt: tx.createdAt, key: tx.key }));
199
203
  }
200
204
  async saveTransactions(address, txs) {
201
205
  await this.ensureInit();
@@ -213,7 +217,7 @@ var RealmWalletRepository = class {
213
217
  amount: tx.amount,
214
218
  settled: tx.settled,
215
219
  createdAt: tx.createdAt,
216
- assetsJson: tx.assets ? JSON.stringify(chunkOUTWUYJ4_cjs.serializeAssets(tx.assets)) : null
220
+ assetsJson: tx.assets ? JSON.stringify(chunkF3FAE7VJ_cjs.serializeAssets(tx.assets)) : null
217
221
  },
218
222
  "modified"
219
223
  );
@@ -231,6 +235,31 @@ var RealmWalletRepository = class {
231
235
  });
232
236
  }
233
237
  // ── Wallet state ───────────────────────────────────────────────────
238
+ atomicWalletState = {
239
+ version: 1,
240
+ update: async (updater) => {
241
+ await this.ensureInit();
242
+ this.realm.write(() => {
243
+ const row = [
244
+ ...this.realm.objects("ArkWalletState").filtered("key == $0", "state")
245
+ ][0];
246
+ const current = row ? {
247
+ settings: row.settingsJson ? JSON.parse(row.settingsJson) : void 0,
248
+ lastSyncTime: row.lastSyncTime ?? void 0
249
+ } : {};
250
+ const state = chunkF3FAE7VJ_cjs.applyWalletStateUpdate(current, updater);
251
+ this.realm.create(
252
+ "ArkWalletState",
253
+ {
254
+ key: "state",
255
+ lastSyncTime: state.lastSyncTime,
256
+ settingsJson: state.settings ? JSON.stringify(state.settings) : null
257
+ },
258
+ "modified"
259
+ );
260
+ });
261
+ }
262
+ };
234
263
  async getWalletState() {
235
264
  await this.ensureInit();
236
265
  const results = this.realm.objects("ArkWalletState").filtered("key == $0", "state");
@@ -290,9 +319,9 @@ function vtxoObjectToDomain(obj) {
290
319
  // Post-migration every row has `script`, but the backfill is
291
320
  // idempotent: derive from `address` if the legacy column is still
292
321
  // null (e.g. the migration hasn't run yet on this handle).
293
- script: obj.script ?? chunkOUTWUYJ4_cjs.scriptFromArkAddress(obj.address)
322
+ script: obj.script ?? chunkF3FAE7VJ_cjs.scriptFromArkAddress(obj.address)
294
323
  };
295
- return chunkOUTWUYJ4_cjs.deserializeVtxo(serialized);
324
+ return chunkF3FAE7VJ_cjs.deserializeVtxo(serialized);
296
325
  }
297
326
  function utxoObjectToDomain(obj) {
298
327
  const serialized = {
@@ -311,7 +340,7 @@ function utxoObjectToDomain(obj) {
311
340
  status: JSON.parse(obj.statusJson),
312
341
  extraWitness: obj.extraWitnessJson ? JSON.parse(obj.extraWitnessJson) : void 0
313
342
  };
314
- return chunkOUTWUYJ4_cjs.deserializeUtxo(serialized);
343
+ return chunkF3FAE7VJ_cjs.deserializeUtxo(serialized);
315
344
  }
316
345
  function txObjectToDomain(obj) {
317
346
  const tx = {
@@ -326,7 +355,7 @@ function txObjectToDomain(obj) {
326
355
  createdAt: obj.createdAt
327
356
  };
328
357
  if (obj.assetsJson) {
329
- tx.assets = chunkOUTWUYJ4_cjs.deserializeAssets(JSON.parse(obj.assetsJson));
358
+ tx.assets = chunkF3FAE7VJ_cjs.deserializeAssets(JSON.parse(obj.assetsJson));
330
359
  }
331
360
  return tx;
332
361
  }
@@ -352,9 +381,9 @@ var RealmContractRepository = class {
352
381
  }
353
382
  // ── Contract management ────────────────────────────────────────────
354
383
  async getContractsPage(filter, page) {
355
- chunkOUTWUYJ4_cjs.assertPageRequest(page);
356
- if (chunkOUTWUYJ4_cjs.contractFilterMatchesNothing(filter)) return { items: [] };
357
- const toPage = (rows) => chunkOUTWUYJ4_cjs.pageResult(rows.map(contractObjectToDomain), page.limit, (contract) => contract.script);
384
+ chunkF3FAE7VJ_cjs.assertPageRequest(page);
385
+ if (chunkF3FAE7VJ_cjs.contractFilterMatchesNothing(filter)) return { items: [] };
386
+ const toPage = (rows) => chunkF3FAE7VJ_cjs.pageResult(rows.map(contractObjectToDomain), page.limit, (contract) => contract.script);
358
387
  if (filter?.watch === void 0 || filter.script !== void 0) {
359
388
  return toPage(this.readRows(filter, page));
360
389
  }
@@ -512,7 +541,7 @@ var RealmIntentRepository = class {
512
541
  const clashes = [
513
542
  ...this.realm.objects("ArkIntent").filtered("intentId == $0", intent.intentId)
514
543
  ].map(toIntent);
515
- chunkOUTWUYJ4_cjs.assertIntentIdUnique(intent, clashes);
544
+ chunkF3FAE7VJ_cjs.assertIntentIdUnique(intent, clashes);
516
545
  }
517
546
  this.realm.create(
518
547
  "ArkIntent",
@@ -540,22 +569,22 @@ var RealmIntentRepository = class {
540
569
  });
541
570
  }
542
571
  async getIntentsPage(filter, page) {
543
- chunkOUTWUYJ4_cjs.assertPageRequest(page);
572
+ chunkF3FAE7VJ_cjs.assertPageRequest(page);
544
573
  let results = this.realm.objects("ArkIntent");
545
574
  if (page.after !== void 0) results = results.filtered("intentTxId > $0", page.after);
546
575
  const rows = [];
547
576
  for (const row of results.sorted("intentTxId")) {
548
577
  const intent = toIntent(row);
549
- if (filter && !chunkOUTWUYJ4_cjs.intentMatchesFilter(intent, filter)) continue;
578
+ if (filter && !chunkF3FAE7VJ_cjs.intentMatchesFilter(intent, filter)) continue;
550
579
  rows.push(intent);
551
580
  if (rows.length > page.limit) break;
552
581
  }
553
- return chunkOUTWUYJ4_cjs.pageResult(rows, page.limit, (intent) => intent.intentTxId);
582
+ return chunkF3FAE7VJ_cjs.pageResult(rows, page.limit, (intent) => intent.intentTxId);
554
583
  }
555
584
  async getLockedVtxoOutpoints() {
556
585
  const out = [];
557
586
  for (const o of [...this.realm.objects("ArkIntent")].map(toIntent))
558
- if (!chunkOUTWUYJ4_cjs.isTerminalIntentState(o.state)) out.push(...o.intentVtxos);
587
+ if (!chunkF3FAE7VJ_cjs.isTerminalIntentState(o.state)) out.push(...o.intentVtxos);
559
588
  return out;
560
589
  }
561
590
  async [Symbol.asyncDispose]() {
@@ -597,7 +626,7 @@ var RealmVirtualTxRepository = class {
597
626
  txid: t.txid,
598
627
  psbt: t.psbt ?? prev?.psbt ?? null,
599
628
  expiresAt: t.expiresAt ?? prev?.expiresAt ?? null,
600
- type: chunkOUTWUYJ4_cjs.mergeChainedTxType(t.type, prev?.type)
629
+ type: chunkF3FAE7VJ_cjs.mergeChainedTxType(t.type, prev?.type)
601
630
  },
602
631
  "modified"
603
632
  );
@@ -842,9 +871,9 @@ function runArkRealmMigrations(oldRealm, newRealm) {
842
871
  for (let i = 0; i < newVtxos.length; i++) {
843
872
  const newVtxo = newVtxos[i];
844
873
  if (!newVtxo.script) {
845
- newVtxo.script = chunkOUTWUYJ4_cjs.scriptFromArkAddress(newVtxo.address);
874
+ newVtxo.script = chunkF3FAE7VJ_cjs.scriptFromArkAddress(newVtxo.address);
846
875
  }
847
- const facts = chunkOUTWUYJ4_cjs.legacyVtxoFacts(legacyByPk.get(newVtxo.pk));
876
+ const facts = chunkF3FAE7VJ_cjs.legacyVtxoFacts(legacyByPk.get(newVtxo.pk));
848
877
  if (facts) {
849
878
  if (newVtxo.isSpent == null) newVtxo.isSpent = facts.isSpent;
850
879
  if (newVtxo.isSwept == null) newVtxo.isSwept = facts.isSwept;
@@ -874,7 +903,7 @@ function runArkRealmMigrations(oldRealm, newRealm) {
874
903
 
875
904
  Object.defineProperty(exports, "ChainedTxType", {
876
905
  enumerable: true,
877
- get: function () { return chunkOUTWUYJ4_cjs.ChainedTxType; }
906
+ get: function () { return chunkF3FAE7VJ_cjs.ChainedTxType; }
878
907
  });
879
908
  exports.ARK_REALM_SCHEMA_VERSION = ARK_REALM_SCHEMA_VERSION;
880
909
  exports.ArkExperimentalRealmSchemas = ArkExperimentalRealmSchemas;