@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.
- package/README.md +90 -83
- package/dist/adapters/expo.cjs +5 -6
- package/dist/adapters/expo.d.cts +4 -4
- package/dist/adapters/expo.d.ts +4 -4
- package/dist/adapters/expo.js +3 -4
- package/dist/{asyncStorageTaskQueue-C5rBYlru.d.ts → asyncStorageTaskQueue-aL7K14e4.d.ts} +2 -2
- package/dist/{asyncStorageTaskQueue-BuDvgWh6.d.cts → asyncStorageTaskQueue-x8ok3tJy.d.cts} +2 -2
- package/dist/{chunk-43FKNLX4.cjs → chunk-5SLUXXWQ.cjs} +357 -1114
- package/dist/chunk-5SLUXXWQ.cjs.map +1 -0
- package/dist/{chunk-HLCGYOIH.cjs → chunk-6YVGWOLG.cjs} +37 -36
- package/dist/chunk-6YVGWOLG.cjs.map +1 -0
- package/dist/{chunk-4PKLULWT.js → chunk-AARSVV3S.js} +109 -246
- package/dist/chunk-AARSVV3S.js.map +1 -0
- package/dist/{chunk-D25O4EGY.cjs → chunk-AFJSJACF.cjs} +12 -10
- package/dist/chunk-AFJSJACF.cjs.map +1 -0
- package/dist/{chunk-6DNR46C7.js → chunk-IM3J3T5P.js} +7 -5
- package/dist/chunk-IM3J3T5P.js.map +1 -0
- package/dist/{chunk-ISO4TI5J.js → chunk-NR4XYTN3.js} +566 -459
- package/dist/chunk-NR4XYTN3.js.map +1 -0
- package/dist/{chunk-ZRNQV6HV.js → chunk-O2ZZD5Z6.js} +4578 -4396
- package/dist/chunk-O2ZZD5Z6.js.map +1 -0
- package/dist/{chunk-ZOTXDOS5.js → chunk-P267BXL7.js} +30 -29
- package/dist/chunk-P267BXL7.js.map +1 -0
- package/dist/{chunk-NVZJSKZS.cjs → chunk-P42MGA4K.cjs} +121 -257
- package/dist/chunk-P42MGA4K.cjs.map +1 -0
- package/dist/{chunk-GMZZQXV5.cjs → chunk-QARA4IYT.cjs} +4961 -4767
- package/dist/chunk-QARA4IYT.cjs.map +1 -0
- package/dist/{chunk-JZWLXNHV.cjs → chunk-T6N6B7HK.cjs} +574 -464
- package/dist/chunk-T6N6B7HK.cjs.map +1 -0
- package/dist/{chunk-3R476TDV.js → chunk-TIVYJIIX.js} +293 -1071
- package/dist/chunk-TIVYJIIX.js.map +1 -0
- package/dist/contracts/handlers/index.cjs +9 -10
- package/dist/contracts/handlers/index.d.cts +5 -5
- package/dist/contracts/handlers/index.d.ts +5 -5
- package/dist/contracts/handlers/index.js +2 -3
- package/dist/{delegate-BAX5QftB.d.ts → delegate-BT5iON1T.d.ts} +1 -1
- package/dist/{delegate-1yp1HyP7.d.cts → delegate-u6kXTtWY.d.cts} +1 -1
- package/dist/index-BCnhItOQ.d.cts +639 -0
- package/dist/{index-DUxufw76.d.cts → index-CK5QbTmZ.d.cts} +1387 -2404
- package/dist/{index-DUxufw76.d.ts → index-CK5QbTmZ.d.ts} +1387 -2404
- package/dist/index-D1D4cR-G.d.ts +639 -0
- package/dist/index.cjs +375 -340
- package/dist/index.d.cts +784 -1197
- package/dist/index.d.ts +784 -1197
- package/dist/index.js +4 -5
- package/dist/repositories/realm/index.cjs +201 -106
- package/dist/repositories/realm/index.cjs.map +1 -1
- package/dist/repositories/realm/index.d.cts +28 -16
- package/dist/repositories/realm/index.d.ts +28 -16
- package/dist/repositories/realm/index.js +190 -95
- package/dist/repositories/realm/index.js.map +1 -1
- package/dist/repositories/sqlite/index.cjs +301 -189
- package/dist/repositories/sqlite/index.cjs.map +1 -1
- package/dist/repositories/sqlite/index.d.cts +32 -21
- package/dist/repositories/sqlite/index.d.ts +32 -21
- package/dist/repositories/sqlite/index.js +294 -182
- package/dist/repositories/sqlite/index.js.map +1 -1
- package/dist/{taskRunner-D_iPiZIi.d.ts → taskRunner-BeYR6NpQ.d.ts} +2 -2
- package/dist/{taskRunner-Dr3NStc0.d.cts → taskRunner-Csey3EYJ.d.cts} +2 -2
- package/dist/wallet/expo/background.cjs +14 -15
- package/dist/wallet/expo/background.cjs.map +1 -1
- package/dist/wallet/expo/background.d.cts +10 -16
- package/dist/wallet/expo/background.d.ts +10 -16
- package/dist/wallet/expo/background.js +6 -7
- package/dist/wallet/expo/background.js.map +1 -1
- package/dist/wallet/expo/index.cjs +16 -23
- package/dist/wallet/expo/index.cjs.map +1 -1
- package/dist/wallet/expo/index.d.cts +6 -9
- package/dist/wallet/expo/index.d.ts +6 -9
- package/dist/wallet/expo/index.js +8 -15
- package/dist/wallet/expo/index.js.map +1 -1
- package/dist/wallet-DG3Qmbmt.d.cts +1848 -0
- package/dist/wallet-DzSLMxBZ.d.ts +1848 -0
- package/dist/worker/expo/index.cjs +9 -10
- package/dist/worker/expo/index.cjs.map +1 -1
- package/dist/worker/expo/index.d.cts +6 -6
- package/dist/worker/expo/index.d.ts +6 -6
- package/dist/worker/expo/index.js +5 -6
- package/dist/worker/expo/index.js.map +1 -1
- package/package.json +12 -51
- package/dist/adapters/asyncStorage.cjs +0 -48
- package/dist/adapters/asyncStorage.cjs.map +0 -1
- package/dist/adapters/asyncStorage.d.cts +0 -16
- package/dist/adapters/asyncStorage.d.ts +0 -16
- package/dist/adapters/asyncStorage.js +0 -46
- package/dist/adapters/asyncStorage.js.map +0 -1
- package/dist/adapters/fileSystem.cjs +0 -116
- package/dist/adapters/fileSystem.cjs.map +0 -1
- package/dist/adapters/fileSystem.d.cts +0 -17
- package/dist/adapters/fileSystem.d.ts +0 -17
- package/dist/adapters/fileSystem.js +0 -93
- package/dist/adapters/fileSystem.js.map +0 -1
- package/dist/adapters/indexedDB.cjs +0 -103
- package/dist/adapters/indexedDB.cjs.map +0 -1
- package/dist/adapters/indexedDB.d.cts +0 -18
- package/dist/adapters/indexedDB.d.ts +0 -18
- package/dist/adapters/indexedDB.js +0 -101
- package/dist/adapters/indexedDB.js.map +0 -1
- package/dist/adapters/localStorage.cjs +0 -50
- package/dist/adapters/localStorage.cjs.map +0 -1
- package/dist/adapters/localStorage.d.cts +0 -14
- package/dist/adapters/localStorage.d.ts +0 -14
- package/dist/adapters/localStorage.js +0 -48
- package/dist/adapters/localStorage.js.map +0 -1
- package/dist/chunk-3R476TDV.js.map +0 -1
- package/dist/chunk-43FKNLX4.cjs.map +0 -1
- package/dist/chunk-4PKLULWT.js.map +0 -1
- package/dist/chunk-5BLDMQED.cjs +0 -18
- package/dist/chunk-5BLDMQED.cjs.map +0 -1
- package/dist/chunk-6DNR46C7.js.map +0 -1
- package/dist/chunk-D25O4EGY.cjs.map +0 -1
- package/dist/chunk-GMZZQXV5.cjs.map +0 -1
- package/dist/chunk-HLCGYOIH.cjs.map +0 -1
- package/dist/chunk-ISO4TI5J.js.map +0 -1
- package/dist/chunk-JZWLXNHV.cjs.map +0 -1
- package/dist/chunk-NSBPE2FW.js +0 -15
- package/dist/chunk-NSBPE2FW.js.map +0 -1
- package/dist/chunk-NVZJSKZS.cjs.map +0 -1
- package/dist/chunk-ZOTXDOS5.js.map +0 -1
- package/dist/chunk-ZRNQV6HV.js.map +0 -1
- package/dist/hdWalletCapable-CmEU0NP1.d.ts +0 -2232
- package/dist/hdWalletCapable-eJgaT-ec.d.cts +0 -2232
- package/dist/index-Bem5vKzX.d.ts +0 -850
- package/dist/index-C0IanN1m.d.cts +0 -11
- package/dist/index-C0IanN1m.d.ts +0 -11
- 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
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
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`,
|
|
1174
|
-
`@arkade-os/swap`) each
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
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 =
|
|
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 `
|
|
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
|
|
1175
|
+
import { DatabaseSync } from 'node:sqlite'
|
|
1201
1176
|
|
|
1202
|
-
const db = new
|
|
1203
|
-
db.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
1529
|
-
const utxos = await wallet.walletRepository
|
|
1530
|
-
const history = await wallet.walletRepository
|
|
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
|
|
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/
|
|
1548
|
-
pnpm -C packages/
|
|
1549
|
-
pnpm -C packages/
|
|
1550
|
-
pnpm -C packages/
|
|
1551
|
-
pnpm -C packages/
|
|
1552
|
-
pnpm -C packages/
|
|
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:
|
|
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
|
|
package/dist/adapters/expo.cjs
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
5
|
-
require('../chunk-
|
|
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
|
|
11
|
+
get: function () { return chunk6YVGWOLG_cjs.ExpoArkProvider; }
|
|
13
12
|
});
|
|
14
13
|
Object.defineProperty(exports, "ExpoIndexerProvider", {
|
|
15
14
|
enumerable: true,
|
|
16
|
-
get: function () { return
|
|
15
|
+
get: function () { return chunk6YVGWOLG_cjs.ExpoIndexerProvider; }
|
|
17
16
|
});
|
|
18
17
|
//# sourceMappingURL=expo.cjs.map
|
|
19
18
|
//# sourceMappingURL=expo.cjs.map
|
package/dist/adapters/expo.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { r as RestArkProvider, o as SettlementEvent, T as TxNotificationEvent, s as RestIndexerProvider, t as SubscriptionResponse } from '../index-
|
|
2
|
-
export { u as ArkProvider, v as IndexerProvider } from '../index-
|
|
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.
|
package/dist/adapters/expo.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { r as RestArkProvider, o as SettlementEvent, T as TxNotificationEvent, s as RestIndexerProvider, t as SubscriptionResponse } from '../index-
|
|
2
|
-
export { u as ArkProvider, v as IndexerProvider } from '../index-
|
|
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.
|
package/dist/adapters/expo.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
export { ExpoArkProvider, ExpoIndexerProvider } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
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 {
|
|
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 {
|
|
49
|
+
export { type AsyncStorageLike as A, AsyncStorageTaskQueue as a };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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 {
|
|
49
|
+
export { type AsyncStorageLike as A, AsyncStorageTaskQueue as a };
|