@arkade-os/sdk 0.5.0-rc.2 → 0.5.0-rc.20

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 (126) hide show
  1. package/README.md +90 -83
  2. package/dist/adapters/expo.cjs +5 -6
  3. package/dist/adapters/expo.d.cts +4 -4
  4. package/dist/adapters/expo.d.ts +4 -4
  5. package/dist/adapters/expo.js +3 -4
  6. package/dist/{asyncStorageTaskQueue-C5rBYlru.d.ts → asyncStorageTaskQueue-aL7K14e4.d.ts} +2 -2
  7. package/dist/{asyncStorageTaskQueue-BuDvgWh6.d.cts → asyncStorageTaskQueue-x8ok3tJy.d.cts} +2 -2
  8. package/dist/{chunk-43FKNLX4.cjs → chunk-5SLUXXWQ.cjs} +357 -1114
  9. package/dist/chunk-5SLUXXWQ.cjs.map +1 -0
  10. package/dist/{chunk-HLCGYOIH.cjs → chunk-6YVGWOLG.cjs} +37 -36
  11. package/dist/chunk-6YVGWOLG.cjs.map +1 -0
  12. package/dist/{chunk-4PKLULWT.js → chunk-AARSVV3S.js} +109 -246
  13. package/dist/chunk-AARSVV3S.js.map +1 -0
  14. package/dist/{chunk-D25O4EGY.cjs → chunk-AFJSJACF.cjs} +12 -10
  15. package/dist/chunk-AFJSJACF.cjs.map +1 -0
  16. package/dist/{chunk-6DNR46C7.js → chunk-IM3J3T5P.js} +7 -5
  17. package/dist/chunk-IM3J3T5P.js.map +1 -0
  18. package/dist/{chunk-ISO4TI5J.js → chunk-NR4XYTN3.js} +566 -459
  19. package/dist/chunk-NR4XYTN3.js.map +1 -0
  20. package/dist/{chunk-ZRNQV6HV.js → chunk-O2ZZD5Z6.js} +4578 -4396
  21. package/dist/chunk-O2ZZD5Z6.js.map +1 -0
  22. package/dist/{chunk-ZOTXDOS5.js → chunk-P267BXL7.js} +30 -29
  23. package/dist/chunk-P267BXL7.js.map +1 -0
  24. package/dist/{chunk-NVZJSKZS.cjs → chunk-P42MGA4K.cjs} +121 -257
  25. package/dist/chunk-P42MGA4K.cjs.map +1 -0
  26. package/dist/{chunk-GMZZQXV5.cjs → chunk-QARA4IYT.cjs} +4961 -4767
  27. package/dist/chunk-QARA4IYT.cjs.map +1 -0
  28. package/dist/{chunk-JZWLXNHV.cjs → chunk-T6N6B7HK.cjs} +574 -464
  29. package/dist/chunk-T6N6B7HK.cjs.map +1 -0
  30. package/dist/{chunk-3R476TDV.js → chunk-TIVYJIIX.js} +293 -1071
  31. package/dist/chunk-TIVYJIIX.js.map +1 -0
  32. package/dist/contracts/handlers/index.cjs +9 -10
  33. package/dist/contracts/handlers/index.d.cts +5 -5
  34. package/dist/contracts/handlers/index.d.ts +5 -5
  35. package/dist/contracts/handlers/index.js +2 -3
  36. package/dist/{delegate-BAX5QftB.d.ts → delegate-BT5iON1T.d.ts} +1 -1
  37. package/dist/{delegate-1yp1HyP7.d.cts → delegate-u6kXTtWY.d.cts} +1 -1
  38. package/dist/index-BCnhItOQ.d.cts +639 -0
  39. package/dist/{index-DUxufw76.d.cts → index-CK5QbTmZ.d.cts} +1387 -2404
  40. package/dist/{index-DUxufw76.d.ts → index-CK5QbTmZ.d.ts} +1387 -2404
  41. package/dist/index-D1D4cR-G.d.ts +639 -0
  42. package/dist/index.cjs +375 -340
  43. package/dist/index.d.cts +784 -1197
  44. package/dist/index.d.ts +784 -1197
  45. package/dist/index.js +4 -5
  46. package/dist/repositories/realm/index.cjs +201 -106
  47. package/dist/repositories/realm/index.cjs.map +1 -1
  48. package/dist/repositories/realm/index.d.cts +28 -16
  49. package/dist/repositories/realm/index.d.ts +28 -16
  50. package/dist/repositories/realm/index.js +190 -95
  51. package/dist/repositories/realm/index.js.map +1 -1
  52. package/dist/repositories/sqlite/index.cjs +301 -189
  53. package/dist/repositories/sqlite/index.cjs.map +1 -1
  54. package/dist/repositories/sqlite/index.d.cts +32 -21
  55. package/dist/repositories/sqlite/index.d.ts +32 -21
  56. package/dist/repositories/sqlite/index.js +294 -182
  57. package/dist/repositories/sqlite/index.js.map +1 -1
  58. package/dist/{taskRunner-D_iPiZIi.d.ts → taskRunner-BeYR6NpQ.d.ts} +2 -2
  59. package/dist/{taskRunner-Dr3NStc0.d.cts → taskRunner-Csey3EYJ.d.cts} +2 -2
  60. package/dist/wallet/expo/background.cjs +14 -15
  61. package/dist/wallet/expo/background.cjs.map +1 -1
  62. package/dist/wallet/expo/background.d.cts +10 -16
  63. package/dist/wallet/expo/background.d.ts +10 -16
  64. package/dist/wallet/expo/background.js +6 -7
  65. package/dist/wallet/expo/background.js.map +1 -1
  66. package/dist/wallet/expo/index.cjs +16 -23
  67. package/dist/wallet/expo/index.cjs.map +1 -1
  68. package/dist/wallet/expo/index.d.cts +6 -9
  69. package/dist/wallet/expo/index.d.ts +6 -9
  70. package/dist/wallet/expo/index.js +8 -15
  71. package/dist/wallet/expo/index.js.map +1 -1
  72. package/dist/wallet-DG3Qmbmt.d.cts +1848 -0
  73. package/dist/wallet-DzSLMxBZ.d.ts +1848 -0
  74. package/dist/worker/expo/index.cjs +9 -10
  75. package/dist/worker/expo/index.cjs.map +1 -1
  76. package/dist/worker/expo/index.d.cts +6 -6
  77. package/dist/worker/expo/index.d.ts +6 -6
  78. package/dist/worker/expo/index.js +5 -6
  79. package/dist/worker/expo/index.js.map +1 -1
  80. package/package.json +12 -51
  81. package/dist/adapters/asyncStorage.cjs +0 -48
  82. package/dist/adapters/asyncStorage.cjs.map +0 -1
  83. package/dist/adapters/asyncStorage.d.cts +0 -16
  84. package/dist/adapters/asyncStorage.d.ts +0 -16
  85. package/dist/adapters/asyncStorage.js +0 -46
  86. package/dist/adapters/asyncStorage.js.map +0 -1
  87. package/dist/adapters/fileSystem.cjs +0 -116
  88. package/dist/adapters/fileSystem.cjs.map +0 -1
  89. package/dist/adapters/fileSystem.d.cts +0 -17
  90. package/dist/adapters/fileSystem.d.ts +0 -17
  91. package/dist/adapters/fileSystem.js +0 -93
  92. package/dist/adapters/fileSystem.js.map +0 -1
  93. package/dist/adapters/indexedDB.cjs +0 -103
  94. package/dist/adapters/indexedDB.cjs.map +0 -1
  95. package/dist/adapters/indexedDB.d.cts +0 -18
  96. package/dist/adapters/indexedDB.d.ts +0 -18
  97. package/dist/adapters/indexedDB.js +0 -101
  98. package/dist/adapters/indexedDB.js.map +0 -1
  99. package/dist/adapters/localStorage.cjs +0 -50
  100. package/dist/adapters/localStorage.cjs.map +0 -1
  101. package/dist/adapters/localStorage.d.cts +0 -14
  102. package/dist/adapters/localStorage.d.ts +0 -14
  103. package/dist/adapters/localStorage.js +0 -48
  104. package/dist/adapters/localStorage.js.map +0 -1
  105. package/dist/chunk-3R476TDV.js.map +0 -1
  106. package/dist/chunk-43FKNLX4.cjs.map +0 -1
  107. package/dist/chunk-4PKLULWT.js.map +0 -1
  108. package/dist/chunk-5BLDMQED.cjs +0 -18
  109. package/dist/chunk-5BLDMQED.cjs.map +0 -1
  110. package/dist/chunk-6DNR46C7.js.map +0 -1
  111. package/dist/chunk-D25O4EGY.cjs.map +0 -1
  112. package/dist/chunk-GMZZQXV5.cjs.map +0 -1
  113. package/dist/chunk-HLCGYOIH.cjs.map +0 -1
  114. package/dist/chunk-ISO4TI5J.js.map +0 -1
  115. package/dist/chunk-JZWLXNHV.cjs.map +0 -1
  116. package/dist/chunk-NSBPE2FW.js +0 -15
  117. package/dist/chunk-NSBPE2FW.js.map +0 -1
  118. package/dist/chunk-NVZJSKZS.cjs.map +0 -1
  119. package/dist/chunk-ZOTXDOS5.js.map +0 -1
  120. package/dist/chunk-ZRNQV6HV.js.map +0 -1
  121. package/dist/hdWalletCapable-CmEU0NP1.d.ts +0 -2232
  122. package/dist/hdWalletCapable-eJgaT-ec.d.cts +0 -2232
  123. package/dist/index-Bem5vKzX.d.ts +0 -850
  124. package/dist/index-C0IanN1m.d.cts +0 -11
  125. package/dist/index-C0IanN1m.d.ts +0 -11
  126. package/dist/index-W_oMcOmG.d.cts +0 -850
package/README.md CHANGED
@@ -591,7 +591,6 @@ Access the `VtxoManager` from the wallet after configuring `settlementConfig`:
591
591
  const manager = await wallet.getVtxoManager()
592
592
  ```
593
593
 
594
- > **Migration from `renewalConfig`:** Directly initializing a `VtxoManager` with `renewalConfig` is still supported but deprecated. Prefer `settlementConfig` where `vtxoThreshold` is expressed in **seconds** instead of milliseconds.
595
594
 
596
595
  #### Renewal: Prevent Expiration
597
596
 
@@ -1109,78 +1108,50 @@ examples.
1109
1108
 
1110
1109
  ### Repositories (Storage)
1111
1110
 
1112
- The `StorageAdapter` API is deprecated. Use repositories instead. If you omit `storage`, the SDK uses IndexedDB repositories with the default database name.
1113
-
1114
- #### Migration from v1 StorageAdapter
1115
-
1116
- > [!WARNING]
1117
- > If you previously used the v1 `StorageAdapter`-based repositories, migrate
1118
- > data into the new IndexedDB repositories before use:
1119
- >
1120
- > ```typescript
1121
- > import {
1122
- > IndexedDBWalletRepository,
1123
- > IndexedDBContractRepository,
1124
- > getMigrationStatus,
1125
- > migrateWalletRepository,
1126
- > rollbackMigration,
1127
- > } from '@arkade-os/sdk'
1128
- > import { IndexedDBStorageAdapter } from '@arkade-os/sdk/adapters/indexedDB'
1129
- >
1130
- > const oldStorage = new IndexedDBStorageAdapter('legacy-wallet', 1)
1131
- > const newDbName = 'my-app-db'
1132
- > const walletRepository = new IndexedDBWalletRepository(newDbName)
1133
- >
1134
- > // Check migration status before running
1135
- > const status = await getMigrationStatus('wallet', oldStorage)
1136
- > // status: "not-needed" | "pending" | "in-progress" | "done"
1137
- >
1138
- > if (status === 'pending' || status === 'in-progress') {
1139
- > try {
1140
- > await migrateWalletRepository(oldStorage, walletRepository, {
1141
- > onchain: [ 'address-1', 'address-2' ],
1142
- > offchain: [ 'onboarding-address-1' ],
1143
- > })
1144
- > } catch (err) {
1145
- > // Reset migration flag so the next attempt starts clean
1146
- > await rollbackMigration('wallet', oldStorage)
1147
- > throw err
1148
- > }
1149
- > }
1150
- > ```
1151
- >
1152
- > **Migration status helpers:**
1153
- >
1154
- > | Helper | Description |
1155
- > |--------|-------------|
1156
- > | `getMigrationStatus(repoType, adapter)` | Returns `"not-needed"` (no legacy DB), `"pending"`, `"in-progress"` (interrupted), or `"done"` |
1157
- > | `requiresMigration(repoType, adapter)` | Returns `true` if status is `"pending"` or `"in-progress"` |
1158
- > | `rollbackMigration(repoType, adapter)` | Removes the migration flag so migration can re-run from scratch |
1159
- > | `MIGRATION_KEY(repoType)` | Returns the storage key used for the migration flag |
1160
- >
1161
- > `migrateWalletRepository` sets an `"in-progress"` flag before copying data.
1162
- > If the process crashes mid-way, the flag remains as `"in-progress"` so the
1163
- > next call to `getMigrationStatus` can detect the partial migration. Old data
1164
- > is never deleted — re-running migration after a rollback is safe.
1165
- >
1166
- > Anything related to contract repository migration must be handled by the
1167
- > package that created the contracts. The SDK doesn't manage external contracts
1168
- > in V1; data persisted by other packages remains untouched in its original
1169
- > location.
1111
+ Use repository implementations via `StorageConfig`. If you omit `storage`, the
1112
+ SDK uses IndexedDB repositories with the default database name.
1113
+
1114
+ #### Paged repository reads
1115
+
1116
+ Collection repositories expose `getVtxosPage`, `getVtxosForScriptPage`, `getUtxosPage`,
1117
+ `getTransactionHistoryPage`, `getContractsPage`, and `getIntentsPage`.
1118
+ Each accepts `{ limit, after? }` and returns
1119
+ `{ items, nextCursor? }`; pass `nextCursor` as `after` until it is absent.
1120
+ Limits must be 1–500. History pages are ordered by `(createdAt, transaction key)`;
1121
+ `since` is inclusive Unix milliseconds. Contract and intent pages are ordered
1122
+ by their script and intent transaction ID. Filters must stay the same across
1123
+ pages. Repository collection reads use pages directly; `collectVtxos`,
1124
+ `collectScriptVtxos`, `collectUtxos`, `collectTransactionHistory`, `collectContracts`, and
1125
+ `collectIntents` traverse all pages when a complete snapshot is required.
1126
+ Wallet spending paths consume every VTXO or UTXO page before coin selection.
1127
+ In `@arkade-os/swap`, RFQ page `since` values use Unix seconds instead.
1128
+
1129
+ ```ts
1130
+ let after;
1131
+ do {
1132
+ const page = await walletRepo.getTransactionHistoryPage(
1133
+ { address, since: Date.now() - 86_400_000 },
1134
+ { limit: 100, after },
1135
+ );
1136
+ for (const transaction of page.items) handle(transaction);
1137
+ after = page.nextCursor;
1138
+ } while (after);
1139
+ ```
1170
1140
 
1171
1141
  #### Repository Versioning
1172
1142
 
1173
- `WalletRepository`, `ContractRepository`, and `AssetSwapRepository` (in
1174
- `@arkade-os/swap`) each declare a `readonly version` field with a literal
1175
- type. All built-in implementations set this to the current version. If you
1176
- maintain a custom repository implementation, TypeScript will produce a compile
1177
- error when the version is bumped, signaling that a semantic update is required:
1143
+ `WalletRepository`, `ContractRepository`, `IntentRepository`,
1144
+ `VirtualTxRepository`, and `AssetSwapRepository` (in `@arkade-os/swap`) each
1145
+ declare a `readonly version` field with a literal type. All built-in
1146
+ implementations set this to the current version. If you maintain a custom
1147
+ repository implementation, TypeScript will produce a compile error when the
1148
+ version is bumped, signaling that a semantic update is required:
1178
1149
 
1179
1150
  ```typescript
1180
1151
  import { WalletRepository } from '@arkade-os/sdk'
1181
1152
 
1182
1153
  class MyWalletRepository implements WalletRepository {
1183
- readonly version = 1 // must match the interface's literal type
1154
+ readonly version = 2 // must match the interface's literal type
1184
1155
  // ...
1185
1156
  }
1186
1157
  ```
@@ -1190,17 +1161,21 @@ class MyWalletRepository implements WalletRepository {
1190
1161
  For Node.js or React Native environments, use the SQLite repository with any
1191
1162
  SQLite driver. The SDK accepts a `SQLExecutor` interface — you provide the
1192
1163
  driver, the SDK handles the schema.
1164
+ Paged wallet reads require SQLite 3.15.0 or newer because they use
1165
+ [row-value comparisons](https://sqlite.org/rowvalue.html#backwards_compatibility).
1166
+ The built-in `node:sqlite` module is experimental in Node.js 22.12.x and stable
1167
+ from Node.js 22.13.0 onward.
1193
1168
 
1194
1169
  See [examples/node/multiple-wallets.ts](examples/node/multiple-wallets.ts) for
1195
- a full working example using `better-sqlite3`.
1170
+ a full working example using `node:sqlite`.
1196
1171
 
1197
1172
  ```typescript
1198
1173
  import { MnemonicIdentity, Wallet } from '@arkade-os/sdk'
1199
1174
  import { SQLiteWalletRepository, SQLiteContractRepository, SQLExecutor } from '@arkade-os/sdk/repositories/sqlite'
1200
- import Database from 'better-sqlite3'
1175
+ import { DatabaseSync } from 'node:sqlite'
1201
1176
 
1202
- const db = new Database('my-wallet.sqlite')
1203
- db.pragma('journal_mode = WAL')
1177
+ const db = new DatabaseSync('my-wallet.sqlite')
1178
+ db.exec('PRAGMA journal_mode = WAL')
1204
1179
 
1205
1180
  const executor: SQLExecutor = {
1206
1181
  run: async (sql, params) => { db.prepare(sql).run(...(params ?? [])) },
@@ -1283,6 +1258,7 @@ const wallet = await Wallet.create({
1283
1258
  })
1284
1259
  ```
1285
1260
 
1261
+ ### Using with Node.js
1286
1262
  ### Using with Node.js
1287
1263
 
1288
1264
  Node.js does not provide a global `EventSource` implementation (24.x has one behind `--experimental-eventsource`). The SDK relies on `EventSource` for Server-Sent Events during settlement (onboarding/offboarding) and contract watching, so tell it which one to use:
@@ -1406,7 +1382,7 @@ When you call `wallet.notifyIncomingFunds()` or use `waitForIncomingFunds()`, it
1406
1382
 
1407
1383
  HD wallets (`walletMode: 'hd'`, or an explicit HD `DescriptorProvider`) also watch a band of *unused* offchain receive scripts around their allocation watermark, so a payment to an address that some other party issued from the same seed — a merchant backend such as BTCPay Server, or the .NET SDK driving the same wallet — arrives without the user calling `restore()`. `lookAheadWindow` (default `20`) is the per-side width of that band: the wallet watches `[watermark - N, watermark + N]`. Speculative entries are subscription-only; they become contract rows, and enter balances, only once funded.
1408
1384
 
1409
- The issuer, not the wallet, picks the contract shape, so each index is watched at *every* variant the wallet could own there: `default` and `delegate`, crossed with the unilateral-exit timelock matrix and the operator's current plus deprecated signers. That is the candidate set `restore()` probes too, so watching and restoring cover identical scripts.
1385
+ The issuer, not the wallet, picks the contract shape, so each index is watched at *every* variant the wallet could own there: `default` and `delegate`, crossed with the unilateral-exit timelock matrix and the operator's active plus retired signers. That is the candidate set `restore()` probes too, so watching and restoring cover identical scripts.
1410
1386
 
1411
1387
  ```typescript
1412
1388
  const wallet = await Wallet.create({
@@ -1426,6 +1402,35 @@ const swWallet = await ServiceWorkerWallet.setup({
1426
1402
 
1427
1403
  Raise it when the external issuer is expected to burn more than `N` consecutive addresses without any of them being paid — every index in such a run is a miss, and the funded one sits past the band. When that happens the funds are invisible until a `restore()` whose `gapLimit` is large enough to cross the run (`wallet.restore({ gapLimit: 200 })`); a default restore closes its gap window before reaching the funded index. Keep the value modest: the band adds up to `2N + 1` indices × the candidate matrix (typically 1-4 scripts each) to the wallet's subscription.
1428
1404
 
1405
+ #### Restoring plugin state
1406
+
1407
+ `wallet.restore()` is the explicit imported-wallet recovery boundary. It first restores the
1408
+ wallet's own addresses, contracts, history, and balances, then runs every restore hook registered
1409
+ for that wallet instance. `Wallet` and `ServiceWorkerWallet` both follow this ordering, and
1410
+ concurrent calls coalesce until the hooks finish.
1411
+
1412
+ ```typescript
1413
+ import { registerWalletRestoreHook } from '@arkade-os/sdk'
1414
+
1415
+ const unregister = registerWalletRestoreHook(wallet, {
1416
+ id: 'my-plugin',
1417
+ restore: async (restoredWallet) => {
1418
+ await rebuildPluginState(await restoredWallet.getTransactionHistory())
1419
+ },
1420
+ })
1421
+
1422
+ await wallet.restore()
1423
+ ```
1424
+
1425
+ Registering the same `id` again replaces that hook without changing its position. A run uses a
1426
+ stable snapshot, attempts every hook in registration order, and throws an `AggregateError` after
1427
+ all failures have been collected. If core recovery fails, hooks do not run. The returned function
1428
+ removes only that exact registration and is safe to call more than once.
1429
+
1430
+ Hooks do not run during `Wallet.create()`, `ServiceWorkerWallet.setup()`, or ordinary startup. A
1431
+ plugin should register before an application calls `restore()` and keep its normal incremental
1432
+ reconciliation for state that arrives later.
1433
+
1429
1434
  For advanced use cases, you can access the ContractManager directly to register external contracts:
1430
1435
 
1431
1436
  ```typescript
@@ -1471,7 +1476,7 @@ const paths = manager.getSpendablePaths({
1471
1476
  contractScript: contract.script,
1472
1477
  vtxo,
1473
1478
  collaborative: true,
1474
- walletPubKey: myPubKey,
1479
+ walletDescriptor: myDescriptor,
1475
1480
  })
1476
1481
  if (paths.length > 0) {
1477
1482
  console.log('Contract is spendable via:', paths[0].leaf)
@@ -1481,7 +1486,7 @@ if (paths.length > 0) {
1481
1486
  const allPaths = await manager.getAllSpendingPaths({
1482
1487
  contractScript: contract.script,
1483
1488
  collaborative: true,
1484
- walletPubKey: myPubKey,
1489
+ walletDescriptor: myDescriptor,
1485
1490
  })
1486
1491
 
1487
1492
  // Fetch contracts together with their current virtual outputs
@@ -1523,14 +1528,16 @@ versions keep the coverage they have today.
1523
1528
  Most users don't need to touch repositories directly — `Wallet` reads through them and `ContractManager` owns VTXO/contract synchronization into them. They are documented here for advanced integrations (custom storage backends, offline-first apps, repository inspection).
1524
1529
 
1525
1530
  ```typescript
1531
+ import { collectContracts, collectTransactionHistory, collectUtxos, collectVtxos } from '@arkade-os/sdk'
1532
+
1526
1533
  // Wallet repository — VTXOs, UTXOs, transaction history, settings
1527
1534
  const addr = await wallet.getAddress()
1528
- const vtxos = await wallet.walletRepository.getVtxos(addr)
1529
- const utxos = await wallet.walletRepository.getUtxos(addr)
1530
- const history = await wallet.walletRepository.getTransactionHistory(addr)
1535
+ const vtxos = await collectVtxos(wallet.walletRepository, addr)
1536
+ const utxos = await collectUtxos(wallet.walletRepository, addr)
1537
+ const history = await collectTransactionHistory(wallet.walletRepository, addr)
1531
1538
 
1532
1539
  // Contract repository — script-keyed contracts (default address, VHTLCs, etc.)
1533
- const contracts = await wallet.contractRepository.getContracts({ type: 'vhtlc' })
1540
+ const contracts = await collectContracts(wallet.contractRepository, { type: 'vhtlc' })
1534
1541
  await wallet.contractRepository.saveContract(myContract)
1535
1542
  await wallet.contractRepository.deleteContract(myContract.script)
1536
1543
  ```
@@ -1544,15 +1551,15 @@ This package is developed inside the [arkade-os/ts-sdk](../..) monorepo. See the
1544
1551
  Common package-local commands (run from the repo root):
1545
1552
 
1546
1553
  ```bash
1547
- pnpm -C packages/ts-sdk run typecheck # Type-check the SDK
1548
- pnpm -C packages/ts-sdk test:unit # Unit tests, excluding e2e
1549
- pnpm -C packages/ts-sdk test:watch # Vitest watch mode
1550
- pnpm -C packages/ts-sdk test:coverage # Coverage report
1551
- pnpm -C packages/ts-sdk docs:build # Build TypeDoc API docs
1552
- pnpm -C packages/ts-sdk docs:open # Open API docs in the browser
1554
+ pnpm -C packages/sdk run typecheck # Type-check the SDK
1555
+ pnpm -C packages/sdk test:unit # Unit tests, excluding e2e
1556
+ pnpm -C packages/sdk test:watch # Vitest watch mode
1557
+ pnpm -C packages/sdk test:coverage # Coverage report
1558
+ pnpm -C packages/sdk docs:build # Build TypeDoc API docs
1559
+ pnpm -C packages/sdk docs:open # Open API docs in the browser
1553
1560
  ```
1554
1561
 
1555
- For integration tests, use the root commands (`pnpm run test:integration:ts-sdk` and the `regtest:*:ts-sdk` family) — see the root README.
1562
+ For integration tests, use the root commands (`pnpm run test:integration:sdk` and the `regtest:*:sdk` family) — see the root README.
1556
1563
 
1557
1564
  ### Releasing
1558
1565
 
@@ -1,19 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var chunkHLCGYOIH_cjs = require('../chunk-HLCGYOIH.cjs');
4
- require('../chunk-NVZJSKZS.cjs');
5
- require('../chunk-JZWLXNHV.cjs');
6
- require('../chunk-5BLDMQED.cjs');
3
+ var chunk6YVGWOLG_cjs = require('../chunk-6YVGWOLG.cjs');
4
+ require('../chunk-P42MGA4K.cjs');
5
+ require('../chunk-T6N6B7HK.cjs');
7
6
 
8
7
 
9
8
 
10
9
  Object.defineProperty(exports, "ExpoArkProvider", {
11
10
  enumerable: true,
12
- get: function () { return chunkHLCGYOIH_cjs.ExpoArkProvider; }
11
+ get: function () { return chunk6YVGWOLG_cjs.ExpoArkProvider; }
13
12
  });
14
13
  Object.defineProperty(exports, "ExpoIndexerProvider", {
15
14
  enumerable: true,
16
- get: function () { return chunkHLCGYOIH_cjs.ExpoIndexerProvider; }
15
+ get: function () { return chunk6YVGWOLG_cjs.ExpoIndexerProvider; }
17
16
  });
18
17
  //# sourceMappingURL=expo.cjs.map
19
18
  //# sourceMappingURL=expo.cjs.map
@@ -1,9 +1,9 @@
1
- import { r as RestArkProvider, o as SettlementEvent, T as TxNotificationEvent, s as RestIndexerProvider, t as SubscriptionResponse } from '../index-DUxufw76.cjs';
2
- export { u as ArkProvider, v as IndexerProvider } from '../index-DUxufw76.cjs';
1
+ import { r as RestArkProvider, o as SettlementEvent, T as TxNotificationEvent, s as RestIndexerProvider, t as SubscriptionResponse } from '../index-CK5QbTmZ.cjs';
2
+ export { u as ArkProvider, v as IndexerProvider } from '../index-CK5QbTmZ.cjs';
3
3
  import '@scure/btc-signer/utils.js';
4
- import '@scure/btc-signer/transaction.js';
5
- import '@scure/btc-signer';
6
4
  import '@scure/btc-signer/psbt.js';
5
+ import '@scure/btc-signer';
6
+ import '@scure/btc-signer/transaction.js';
7
7
 
8
8
  /**
9
9
  * Expo-compatible Arkade provider implementation using expo/fetch for SSE support.
@@ -1,9 +1,9 @@
1
- import { r as RestArkProvider, o as SettlementEvent, T as TxNotificationEvent, s as RestIndexerProvider, t as SubscriptionResponse } from '../index-DUxufw76.js';
2
- export { u as ArkProvider, v as IndexerProvider } from '../index-DUxufw76.js';
1
+ import { r as RestArkProvider, o as SettlementEvent, T as TxNotificationEvent, s as RestIndexerProvider, t as SubscriptionResponse } from '../index-CK5QbTmZ.js';
2
+ export { u as ArkProvider, v as IndexerProvider } from '../index-CK5QbTmZ.js';
3
3
  import '@scure/btc-signer/utils.js';
4
- import '@scure/btc-signer/transaction.js';
5
- import '@scure/btc-signer';
6
4
  import '@scure/btc-signer/psbt.js';
5
+ import '@scure/btc-signer';
6
+ import '@scure/btc-signer/transaction.js';
7
7
 
8
8
  /**
9
9
  * Expo-compatible Arkade provider implementation using expo/fetch for SSE support.
@@ -1,6 +1,5 @@
1
- export { ExpoArkProvider, ExpoIndexerProvider } from '../chunk-ZOTXDOS5.js';
2
- import '../chunk-4PKLULWT.js';
3
- import '../chunk-ISO4TI5J.js';
4
- import '../chunk-NSBPE2FW.js';
1
+ export { ExpoArkProvider, ExpoIndexerProvider } from '../chunk-P267BXL7.js';
2
+ import '../chunk-AARSVV3S.js';
3
+ import '../chunk-NR4XYTN3.js';
5
4
  //# sourceMappingURL=expo.js.map
6
5
  //# sourceMappingURL=expo.js.map
@@ -1,4 +1,4 @@
1
- import { a as TaskQueue, c as TaskItem, d as TaskResult } from './taskRunner-D_iPiZIi.js';
1
+ import { c as TaskQueue, b as TaskItem, d as TaskResult } from './taskRunner-BeYR6NpQ.js';
2
2
 
3
3
  /**
4
4
  * Minimal async key-value storage interface.
@@ -46,4 +46,4 @@ declare class AsyncStorageTaskQueue implements TaskQueue {
46
46
  private writeList;
47
47
  }
48
48
 
49
- export { AsyncStorageTaskQueue as A, type AsyncStorageLike as a };
49
+ export { type AsyncStorageLike as A, AsyncStorageTaskQueue as a };
@@ -1,4 +1,4 @@
1
- import { a as TaskQueue, c as TaskItem, d as TaskResult } from './taskRunner-Dr3NStc0.cjs';
1
+ import { c as TaskQueue, b as TaskItem, d as TaskResult } from './taskRunner-Csey3EYJ.cjs';
2
2
 
3
3
  /**
4
4
  * Minimal async key-value storage interface.
@@ -46,4 +46,4 @@ declare class AsyncStorageTaskQueue implements TaskQueue {
46
46
  private writeList;
47
47
  }
48
48
 
49
- export { AsyncStorageTaskQueue as A, type AsyncStorageLike as a };
49
+ export { type AsyncStorageLike as A, AsyncStorageTaskQueue as a };