@bsv/wallet-toolbox 1.6.32 → 1.6.34
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/CHANGELOG.md +11 -0
- package/docs/client.md +340 -93
- package/docs/monitor.md +34 -12
- package/docs/storage.md +49 -1
- package/docs/wallet.md +340 -93
- package/mobile/out/src/monitor/Monitor.d.ts +8 -0
- package/mobile/out/src/monitor/Monitor.d.ts.map +1 -1
- package/mobile/out/src/monitor/Monitor.js +8 -0
- package/mobile/out/src/monitor/Monitor.js.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskReorg.d.ts +8 -12
- package/mobile/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
- package/mobile/out/src/monitor/tasks/TaskReorg.js +20 -73
- package/mobile/out/src/monitor/tasks/TaskReorg.js.map +1 -1
- package/mobile/out/src/sdk/WERR_errors.d.ts +8 -0
- package/mobile/out/src/sdk/WERR_errors.d.ts.map +1 -1
- package/mobile/out/src/sdk/WERR_errors.js +33 -0
- package/mobile/out/src/sdk/WERR_errors.js.map +1 -1
- package/mobile/out/src/sdk/WalletError.d.ts +19 -0
- package/mobile/out/src/sdk/WalletError.d.ts.map +1 -1
- package/mobile/out/src/sdk/WalletError.js +42 -1
- package/mobile/out/src/sdk/WalletError.js.map +1 -1
- package/mobile/out/src/sdk/WalletErrorFromJson.d.ts +12 -0
- package/mobile/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -0
- package/mobile/out/src/sdk/WalletErrorFromJson.js +69 -0
- package/mobile/out/src/sdk/WalletErrorFromJson.js.map +1 -0
- package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts +49 -0
- package/mobile/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/mobile/out/src/sdk/index.d.ts +1 -0
- package/mobile/out/src/sdk/index.d.ts.map +1 -1
- package/mobile/out/src/sdk/index.js +1 -0
- package/mobile/out/src/sdk/index.js.map +1 -1
- package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.js +1 -1
- package/mobile/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
- package/mobile/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +16 -9
- package/mobile/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
- package/mobile/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/mobile/out/src/storage/StorageProvider.js +4 -0
- package/mobile/out/src/storage/StorageProvider.js.map +1 -1
- package/mobile/out/src/storage/WalletStorageManager.d.ts +34 -2
- package/mobile/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/mobile/out/src/storage/WalletStorageManager.js +146 -0
- package/mobile/out/src/storage/WalletStorageManager.js.map +1 -1
- package/mobile/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/mobile/out/src/storage/remoting/StorageClient.js +3 -5
- package/mobile/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/mobile/package-lock.json +2 -2
- package/mobile/package.json +1 -1
- package/out/src/monitor/Monitor.d.ts +8 -0
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +8 -0
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.d.ts +8 -12
- package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.js +20 -73
- package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
- package/out/src/sdk/WERR_errors.d.ts +8 -0
- package/out/src/sdk/WERR_errors.d.ts.map +1 -1
- package/out/src/sdk/WERR_errors.js +33 -0
- package/out/src/sdk/WERR_errors.js.map +1 -1
- package/out/src/sdk/WalletError.d.ts +19 -0
- package/out/src/sdk/WalletError.d.ts.map +1 -1
- package/out/src/sdk/WalletError.js +42 -1
- package/out/src/sdk/WalletError.js.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.d.ts +12 -0
- package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -0
- package/out/src/sdk/WalletErrorFromJson.js +69 -0
- package/out/src/sdk/WalletErrorFromJson.js.map +1 -0
- package/out/src/sdk/WalletStorage.interfaces.d.ts +49 -0
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/sdk/__test/WalletError.test.d.ts +2 -0
- package/out/src/sdk/__test/WalletError.test.d.ts.map +1 -0
- package/out/src/sdk/__test/WalletError.test.js +255 -0
- package/out/src/sdk/__test/WalletError.test.js.map +1 -0
- package/out/src/sdk/index.d.ts +1 -0
- package/out/src/sdk/index.d.ts.map +1 -1
- package/out/src/sdk/index.js +1 -0
- package/out/src/sdk/index.js.map +1 -1
- package/out/src/services/__tests/verifyBeef.test.js +7 -0
- package/out/src/services/__tests/verifyBeef.test.js.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +16 -9
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +4 -0
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts +34 -2
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +146 -0
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/__test/getBeefForTransaction.test.js +10 -0
- package/out/src/storage/__test/getBeefForTransaction.test.js.map +1 -1
- package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +3 -5
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +12 -10
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +12 -0
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/test/Wallet/specOps/specOps.man.test.js +8 -6
- package/out/test/Wallet/specOps/specOps.man.test.js.map +1 -1
- package/out/tsconfig.all.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/monitor/Monitor.ts +8 -0
- package/src/monitor/tasks/TaskReorg.ts +20 -70
- package/src/sdk/WERR_errors.ts +34 -0
- package/src/sdk/WalletError.ts +42 -1
- package/src/sdk/WalletErrorFromJson.ts +80 -0
- package/src/sdk/WalletStorage.interfaces.ts +44 -0
- package/src/sdk/__test/WalletError.test.ts +318 -0
- package/src/sdk/index.ts +1 -0
- package/src/services/__tests/verifyBeef.test.ts +10 -1
- package/src/services/chaintracker/ChaintracksChainTracker.ts +1 -1
- package/src/services/chaintracker/chaintracks/util/ChaintracksFetch.ts +18 -11
- package/src/storage/StorageProvider.ts +4 -0
- package/src/storage/WalletStorageManager.ts +158 -0
- package/src/storage/__test/getBeefForTransaction.test.ts +11 -2
- package/src/storage/methods/internalizeAction.ts +1 -1
- package/src/storage/remoting/StorageClient.ts +4 -6
- package/src/storage/remoting/StorageServer.ts +13 -11
- package/src/storage/schema/KnexMigrations.ts +13 -0
- package/test/Wallet/specOps/specOps.man.test.ts +6 -4
package/docs/monitor.md
CHANGED
|
@@ -309,6 +309,18 @@ callOnProvenTransaction(txStatus: ProvenTransactionStatus): void
|
|
|
309
309
|
```
|
|
310
310
|
See also: [ProvenTransactionStatus](./client.md#interface-proventransactionstatus)
|
|
311
311
|
|
|
312
|
+
###### Method processHeader
|
|
313
|
+
|
|
314
|
+
Handler for new header events from Chaintracks.
|
|
315
|
+
|
|
316
|
+
To minimize reorg processing, new headers are aged before processing via TaskNewHeader.
|
|
317
|
+
Therefore this handler is intentionally a no-op.
|
|
318
|
+
|
|
319
|
+
```ts
|
|
320
|
+
processHeader(header: BlockHeader): void
|
|
321
|
+
```
|
|
322
|
+
See also: [BlockHeader](./client.md#interface-blockheader)
|
|
323
|
+
|
|
312
324
|
###### Method processNewBlockHeader
|
|
313
325
|
|
|
314
326
|
Process new chain header event received from Chaintracks
|
|
@@ -633,7 +645,7 @@ They must be shifted out as they are processed.
|
|
|
633
645
|
The current implementation ages deactivation notifications by 10 minutes with each retry.
|
|
634
646
|
If a successful proof update confirms original proof data after 3 retries, the original is retained.
|
|
635
647
|
|
|
636
|
-
In normal operation there should
|
|
648
|
+
In normal operation there should rarely be any work for this task to perform.
|
|
637
649
|
The most common result is that there are no matching proven_txs records because
|
|
638
650
|
generating new proven_txs records intentionally lags new block generation to
|
|
639
651
|
minimize this disruption.
|
|
@@ -643,17 +655,8 @@ It is very disruptive to update a proven_txs record because:
|
|
|
643
655
|
- Generated beefs are impacted.
|
|
644
656
|
- Updated proof data may be unavailable at the time a reorg is first reported.
|
|
645
657
|
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
createAction fails to verify against the chaintracker.
|
|
649
|
-
|
|
650
|
-
An alternate approach to processing these events is to revert the proven_txs record to a proven_tx_reqs record.
|
|
651
|
-
Pros:
|
|
652
|
-
- The same multiple attempt logic that already exists is reused.
|
|
653
|
-
- Failing to obtain a new proof already has transaction failure handling in place.
|
|
654
|
-
- Generated beefs automatically become one generation deeper, potentially allowing transaction outputs to be spent.
|
|
655
|
-
Cons:
|
|
656
|
-
- Transactions must revert to un-proven / un-mined.
|
|
658
|
+
Proper reorg handling also requires repairing invalid beefs for new transactions when
|
|
659
|
+
createAction fails to verify a generated beef against the chaintracker.
|
|
657
660
|
|
|
658
661
|
```ts
|
|
659
662
|
export class TaskReorg extends WalletMonitorTask {
|
|
@@ -669,6 +672,25 @@ export class TaskReorg extends WalletMonitorTask {
|
|
|
669
672
|
|
|
670
673
|
See also: [DeactivedHeader](./monitor.md#interface-deactivedheader), [Monitor](./monitor.md#class-monitor), [WalletMonitorTask](./monitor.md#class-walletmonitortask)
|
|
671
674
|
|
|
675
|
+
###### Method trigger
|
|
676
|
+
|
|
677
|
+
Shift aged deactivated headers onto `process` array.
|
|
678
|
+
|
|
679
|
+
```ts
|
|
680
|
+
trigger(nowMsecsSinceEpoch: number): {
|
|
681
|
+
run: boolean;
|
|
682
|
+
}
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
Returns
|
|
686
|
+
|
|
687
|
+
`run` true iff there are aged deactivated headers to process.
|
|
688
|
+
|
|
689
|
+
Argument Details
|
|
690
|
+
|
|
691
|
+
+ **nowMsecsSinceEpoch**
|
|
692
|
+
+ current time in milliseconds since epoch.
|
|
693
|
+
|
|
672
694
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
673
695
|
|
|
674
696
|
---
|
package/docs/storage.md
CHANGED
|
@@ -4335,6 +4335,9 @@ export class WalletStorageManager implements sdk.WalletStorage {
|
|
|
4335
4335
|
async findOutputBaskets(args: sdk.FindOutputBasketsArgs): Promise<TableOutputBasket[]>
|
|
4336
4336
|
async findOutputs(args: sdk.FindOutputsArgs): Promise<TableOutput[]>
|
|
4337
4337
|
async findProvenTxReqs(args: sdk.FindProvenTxReqsArgs): Promise<TableProvenTxReq[]>
|
|
4338
|
+
async reproveHeader(deactivatedHash: string): Promise<sdk.ReproveHeaderResult>
|
|
4339
|
+
async verifyAndRepairBeef(beef: Beef, allowTxidOnly?: boolean): Promise<boolean>
|
|
4340
|
+
async reproveProven(ptx: TableProvenTx, noUpdate?: boolean): Promise<sdk.ReproveProvenResult>
|
|
4338
4341
|
async syncFromReader(identityKey: string, reader: sdk.WalletStorageSyncReader, activeSync?: sdk.WalletStorageSync, log: string = ""): Promise<{
|
|
4339
4342
|
inserts: number;
|
|
4340
4343
|
updates: number;
|
|
@@ -4352,7 +4355,7 @@ export class WalletStorageManager implements sdk.WalletStorage {
|
|
|
4352
4355
|
}
|
|
4353
4356
|
```
|
|
4354
4357
|
|
|
4355
|
-
See also: [AuthId](./client.md#interface-authid), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindProvenTxReqsArgs](./client.md#interface-findproventxreqsargs), [StorageCreateActionResult](./client.md#interface-storagecreateactionresult), [StorageInternalizeActionResult](./client.md#interface-storageinternalizeactionresult), [StorageProcessActionArgs](./client.md#interface-storageprocessactionargs), [StorageProcessActionResults](./client.md#interface-storageprocessactionresults), [StorageProvider](./storage.md#class-storageprovider), [TableCertificate](./storage.md#interface-tablecertificate), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableUser](./storage.md#interface-tableuser), [ValidCreateActionArgs](./client.md#interface-validcreateactionargs), [ValidListActionsArgs](./client.md#interface-validlistactionsargs), [ValidListCertificatesArgs](./client.md#interface-validlistcertificatesargs), [ValidListOutputsArgs](./client.md#interface-validlistoutputsargs), [WalletServices](./client.md#interface-walletservices), [WalletStorage](./client.md#interface-walletstorage), [WalletStorageInfo](./client.md#interface-walletstorageinfo), [WalletStorageProvider](./client.md#interface-walletstorageprovider), [WalletStorageReader](./client.md#interface-walletstoragereader), [WalletStorageSync](./client.md#interface-walletstoragesync), [WalletStorageSyncReader](./client.md#interface-walletstoragesyncreader), [WalletStorageWriter](./client.md#interface-walletstoragewriter), [createAction](./storage.md#function-createaction), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [processAction](./storage.md#function-processaction)
|
|
4358
|
+
See also: [AuthId](./client.md#interface-authid), [FindCertificatesArgs](./client.md#interface-findcertificatesargs), [FindOutputBasketsArgs](./client.md#interface-findoutputbasketsargs), [FindOutputsArgs](./client.md#interface-findoutputsargs), [FindProvenTxReqsArgs](./client.md#interface-findproventxreqsargs), [ReproveHeaderResult](./client.md#interface-reproveheaderresult), [ReproveProvenResult](./client.md#interface-reproveprovenresult), [StorageCreateActionResult](./client.md#interface-storagecreateactionresult), [StorageInternalizeActionResult](./client.md#interface-storageinternalizeactionresult), [StorageProcessActionArgs](./client.md#interface-storageprocessactionargs), [StorageProcessActionResults](./client.md#interface-storageprocessactionresults), [StorageProvider](./storage.md#class-storageprovider), [TableCertificate](./storage.md#interface-tablecertificate), [TableCertificateX](./storage.md#interface-tablecertificatex), [TableOutput](./storage.md#interface-tableoutput), [TableOutputBasket](./storage.md#interface-tableoutputbasket), [TableProvenTx](./storage.md#interface-tableproventx), [TableProvenTxReq](./storage.md#interface-tableproventxreq), [TableSettings](./storage.md#interface-tablesettings), [TableUser](./storage.md#interface-tableuser), [ValidCreateActionArgs](./client.md#interface-validcreateactionargs), [ValidListActionsArgs](./client.md#interface-validlistactionsargs), [ValidListCertificatesArgs](./client.md#interface-validlistcertificatesargs), [ValidListOutputsArgs](./client.md#interface-validlistoutputsargs), [WalletServices](./client.md#interface-walletservices), [WalletStorage](./client.md#interface-walletstorage), [WalletStorageInfo](./client.md#interface-walletstorageinfo), [WalletStorageProvider](./client.md#interface-walletstorageprovider), [WalletStorageReader](./client.md#interface-walletstoragereader), [WalletStorageSync](./client.md#interface-walletstoragesync), [WalletStorageSyncReader](./client.md#interface-walletstoragesyncreader), [WalletStorageWriter](./client.md#interface-walletstoragewriter), [createAction](./storage.md#function-createaction), [internalizeAction](./storage.md#function-internalizeaction), [listActions](./storage.md#function-listactions), [listCertificates](./storage.md#function-listcertificates), [listOutputs](./storage.md#function-listoutputs), [processAction](./storage.md#function-processaction)
|
|
4356
4359
|
|
|
4357
4360
|
###### Constructor
|
|
4358
4361
|
|
|
@@ -4470,6 +4473,39 @@ Throws
|
|
|
4470
4473
|
|
|
4471
4474
|
WERR_INVALID_PARAMETER if canMakeAvailable returns false.
|
|
4472
4475
|
|
|
4476
|
+
###### Method reproveHeader
|
|
4477
|
+
|
|
4478
|
+
For each proven_txs record currently sourcing its transaction merkle proof from the given deactivated header,
|
|
4479
|
+
attempt to reprove the transaction against the current chain,
|
|
4480
|
+
updating the proven_txs record if a new valid proof is found.
|
|
4481
|
+
|
|
4482
|
+
```ts
|
|
4483
|
+
async reproveHeader(deactivatedHash: string): Promise<sdk.ReproveHeaderResult>
|
|
4484
|
+
```
|
|
4485
|
+
See also: [ReproveHeaderResult](./client.md#interface-reproveheaderresult)
|
|
4486
|
+
|
|
4487
|
+
Argument Details
|
|
4488
|
+
|
|
4489
|
+
+ **deactivatedHash**
|
|
4490
|
+
+ An orphaned header than may have served as a proof source for proven_txs records.
|
|
4491
|
+
|
|
4492
|
+
###### Method reproveProven
|
|
4493
|
+
|
|
4494
|
+
Attempt to reprove the transaction against the current chain,
|
|
4495
|
+
If a new valid proof is found and noUpdate is not true,
|
|
4496
|
+
update the proven_txs record with new block and merkle proof data.
|
|
4497
|
+
If noUpdate is true, the update to be applied is available in the returned result.
|
|
4498
|
+
|
|
4499
|
+
```ts
|
|
4500
|
+
async reproveProven(ptx: TableProvenTx, noUpdate?: boolean): Promise<sdk.ReproveProvenResult>
|
|
4501
|
+
```
|
|
4502
|
+
See also: [ReproveProvenResult](./client.md#interface-reproveprovenresult), [TableProvenTx](./storage.md#interface-tableproventx)
|
|
4503
|
+
|
|
4504
|
+
Argument Details
|
|
4505
|
+
|
|
4506
|
+
+ **ptx**
|
|
4507
|
+
+ proven_txs record to reprove
|
|
4508
|
+
|
|
4473
4509
|
###### Method runAsSync
|
|
4474
4510
|
|
|
4475
4511
|
```ts
|
|
@@ -4499,6 +4535,18 @@ Argument Details
|
|
|
4499
4535
|
+ **storageIdentityKey**
|
|
4500
4536
|
+ of current backup storage provider that is to become the new active provider.
|
|
4501
4537
|
|
|
4538
|
+
###### Method verifyAndRepairBeef
|
|
4539
|
+
|
|
4540
|
+
Extends the Beef `verify` function to handle BUMPs that have become invalid due to a chain reorg.
|
|
4541
|
+
|
|
4542
|
+
Any merkle root that fails `isValidRootForHeight` triggers a reprove attempt for that block header.
|
|
4543
|
+
This results in proven_txs with invalid proofs being updated with new valid proofs where possible.
|
|
4544
|
+
Finally, a new beef is generated and verified against the chaintracker.
|
|
4545
|
+
|
|
4546
|
+
```ts
|
|
4547
|
+
async verifyAndRepairBeef(beef: Beef, allowTxidOnly?: boolean): Promise<boolean>
|
|
4548
|
+
```
|
|
4549
|
+
|
|
4502
4550
|
Links: [API](#api), [Interfaces](#interfaces), [Classes](#classes), [Functions](#functions), [Types](#types), [Variables](#variables)
|
|
4503
4551
|
|
|
4504
4552
|
---
|