@bsv/wallet-toolbox 2.13.0 → 2.13.2
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 +283 -1
- package/README.md +403 -5
- package/docs/README.md +8 -1
- package/docs/client.md +13057 -4632
- package/docs/identity-verification.md +196 -0
- package/docs/monitor.md +505 -190
- package/docs/services.md +4013 -1153
- package/docs/setup.md +98 -58
- package/docs/storage.md +5780 -1609
- package/docs/wallet.md +10155 -10871
- package/out/src/CWIStyleWalletManager.d.ts +6 -8
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/out/src/CWIStyleWalletManager.js +170 -125
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/Setup.d.ts +2 -0
- package/out/src/Setup.d.ts.map +1 -1
- package/out/src/Setup.js +3 -2
- package/out/src/Setup.js.map +1 -1
- package/out/src/ShamirWalletManager.d.ts.map +1 -1
- package/out/src/ShamirWalletManager.js +34 -19
- package/out/src/ShamirWalletManager.js.map +1 -1
- package/out/src/SimpleWalletManager.d.ts.map +1 -1
- package/out/src/SimpleWalletManager.js +7 -6
- package/out/src/SimpleWalletManager.js.map +1 -1
- package/out/src/Wallet.d.ts +50 -11
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +183 -107
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
- package/out/src/WalletAuthenticationManager.js +282 -26
- package/out/src/WalletAuthenticationManager.js.map +1 -1
- package/out/src/WalletLogger.js +1 -1
- package/out/src/WalletLogger.js.map +1 -1
- package/out/src/WalletPermissionsManager.d.ts +30 -17
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +540 -312
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/WalletSettingsManager.d.ts +3 -2
- package/out/src/WalletSettingsManager.d.ts.map +1 -1
- package/out/src/WalletSettingsManager.js +141 -6
- package/out/src/WalletSettingsManager.js.map +1 -1
- package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
- package/out/src/entropy/EntropyCollector.js +3 -2
- package/out/src/entropy/EntropyCollector.js.map +1 -1
- package/out/src/fundWalletP2PKH.d.ts.map +1 -1
- package/out/src/fundWalletP2PKH.js +143 -44
- package/out/src/fundWalletP2PKH.js.map +1 -1
- package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
- package/out/src/mockchain/MockChainTracker.js +5 -5
- package/out/src/mockchain/MockChainTracker.js.map +1 -1
- package/out/src/mockchain/MockServices.d.ts.map +1 -1
- package/out/src/mockchain/MockServices.js +32 -8
- package/out/src/mockchain/MockServices.js.map +1 -1
- package/out/src/monitor/Monitor.d.ts +17 -0
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +206 -42
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
- package/out/src/monitor/MonitorDaemon.js +64 -16
- package/out/src/monitor/MonitorDaemon.js.map +1 -1
- package/out/src/monitor/monitorValidation.d.ts +12 -0
- package/out/src/monitor/monitorValidation.d.ts.map +1 -0
- package/out/src/monitor/monitorValidation.js +133 -0
- package/out/src/monitor/monitorValidation.js.map +1 -0
- package/out/src/monitor/tasks/TaskArcSSE.d.ts +2 -0
- package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskArcSSE.js +28 -12
- package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +5 -0
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +29 -24
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js +11 -3
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js +9 -4
- package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +3 -1
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +9 -3
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.js +4 -4
- package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +17 -7
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +18 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js +99 -21
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +4 -4
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js +41 -13
- package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js +52 -11
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -0
- package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.js +26 -8
- package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.js +3 -2
- package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.js +112 -2
- package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +17 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
- package/out/src/services/Services.d.ts +4 -0
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +260 -117
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.d.ts +21 -4
- package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.js +267 -66
- package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +25 -3
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js +188 -53
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/LocalChainTracker.d.ts +26 -0
- package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -1
- package/out/src/services/chaintracker/LocalChainTracker.js +180 -10
- package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +59 -7
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +6 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +7 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +9 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +19 -0
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +237 -61
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +16 -0
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +150 -26
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +30 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +346 -30
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +32 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +375 -43
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +28 -3
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +33 -9
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +4 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +17 -4
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +40 -20
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +14 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +6 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +56 -9
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +6 -3
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +4 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +27 -9
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +8 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +49 -5
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +90 -21
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +185 -38
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +59 -6
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +89 -39
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +10 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +225 -24
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +265 -96
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +225 -86
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +121 -35
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +2 -2
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -7
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -7
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -7
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +18 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +204 -14
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +6 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +486 -82
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +17 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +12 -2
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +99 -30
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +23 -15
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +7 -0
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +90 -24
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +57 -11
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +9 -0
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +100 -14
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +104 -8
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +1 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +79 -15
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +15 -0
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +6 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +311 -93
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts +4 -0
- package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js +33 -0
- package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
- package/out/src/services/classifyOutputUtxo.d.ts.map +1 -1
- package/out/src/services/classifyOutputUtxo.js +19 -10
- package/out/src/services/classifyOutputUtxo.js.map +1 -1
- package/out/src/services/fiatRateValidation.d.ts +12 -0
- package/out/src/services/fiatRateValidation.d.ts.map +1 -0
- package/out/src/services/fiatRateValidation.js +138 -0
- package/out/src/services/fiatRateValidation.js.map +1 -0
- package/out/src/services/getCanonicalMerklePath.d.ts +15 -0
- package/out/src/services/getCanonicalMerklePath.d.ts.map +1 -0
- package/out/src/services/getCanonicalMerklePath.js +90 -0
- package/out/src/services/getCanonicalMerklePath.js.map +1 -0
- package/out/src/services/providers/ARC.d.ts +3 -16
- package/out/src/services/providers/ARC.d.ts.map +1 -1
- package/out/src/services/providers/ARC.js +36 -37
- package/out/src/services/providers/ARC.js.map +1 -1
- package/out/src/services/providers/ArcSSEClient.d.ts +25 -19
- package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
- package/out/src/services/providers/ArcSSEClient.js +352 -85
- package/out/src/services/providers/ArcSSEClient.js.map +1 -1
- package/out/src/services/providers/Arcade.d.ts +1 -0
- package/out/src/services/providers/Arcade.d.ts.map +1 -1
- package/out/src/services/providers/Arcade.js +56 -41
- package/out/src/services/providers/Arcade.js.map +1 -1
- package/out/src/services/providers/Bitails.d.ts +3 -0
- package/out/src/services/providers/Bitails.d.ts.map +1 -1
- package/out/src/services/providers/Bitails.js +79 -12
- package/out/src/services/providers/Bitails.js.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts +8 -2
- package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.js +83 -10
- package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
- package/out/src/services/providers/WhatsOnChain.d.ts +3 -0
- package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/WhatsOnChain.js +221 -69
- package/out/src/services/providers/WhatsOnChain.js.map +1 -1
- package/out/src/services/providers/arcProviderConfig.d.ts +27 -0
- package/out/src/services/providers/arcProviderConfig.d.ts.map +1 -0
- package/out/src/services/providers/arcProviderConfig.js +83 -0
- package/out/src/services/providers/arcProviderConfig.js.map +1 -0
- package/out/src/services/providers/arcTxDataValidation.d.ts +4 -0
- package/out/src/services/providers/arcTxDataValidation.d.ts.map +1 -0
- package/out/src/services/providers/arcTxDataValidation.js +92 -0
- package/out/src/services/providers/arcTxDataValidation.js.map +1 -0
- package/out/src/services/providers/exchangeRates.d.ts +3 -3
- package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
- package/out/src/services/providers/exchangeRates.js +153 -226
- package/out/src/services/providers/exchangeRates.js.map +1 -1
- package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
- package/out/src/services/providers/getBeefForTxid.js.map +1 -1
- package/out/src/services/providers/whatsOnChainHelpers.d.ts +2 -2
- package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -1
- package/out/src/services/providers/whatsOnChainHelpers.js +11 -8
- package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
- package/out/src/services/validateMerklePathResult.d.ts +30 -0
- package/out/src/services/validateMerklePathResult.d.ts.map +1 -0
- package/out/src/services/validateMerklePathResult.js +272 -0
- package/out/src/services/validateMerklePathResult.js.map +1 -0
- package/out/src/services/validatePostBeefResult.d.ts +17 -0
- package/out/src/services/validatePostBeefResult.d.ts.map +1 -0
- package/out/src/services/validatePostBeefResult.js +334 -0
- package/out/src/services/validatePostBeefResult.js.map +1 -0
- package/out/src/services/validateRawTxResult.d.ts +6 -0
- package/out/src/services/validateRawTxResult.d.ts.map +1 -0
- package/out/src/services/validateRawTxResult.js +77 -0
- package/out/src/services/validateRawTxResult.js.map +1 -0
- package/out/src/services/validateScriptHashHistoryResult.d.ts +5 -0
- package/out/src/services/validateScriptHashHistoryResult.d.ts.map +1 -0
- package/out/src/services/validateScriptHashHistoryResult.js +99 -0
- package/out/src/services/validateScriptHashHistoryResult.js.map +1 -0
- package/out/src/services/validateStatusForTxidsResult.d.ts +8 -0
- package/out/src/services/validateStatusForTxidsResult.d.ts.map +1 -0
- package/out/src/services/validateStatusForTxidsResult.js +181 -0
- package/out/src/services/validateStatusForTxidsResult.js.map +1 -0
- package/out/src/services/validateUtxoStatusResult.d.ts +6 -0
- package/out/src/services/validateUtxoStatusResult.d.ts.map +1 -0
- package/out/src/services/validateUtxoStatusResult.js +126 -0
- package/out/src/services/validateUtxoStatusResult.js.map +1 -0
- package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +3 -2
- package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchPlanner.js +4 -3
- package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +6 -5
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js +70 -76
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
- package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +2 -2
- package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -1
- package/out/src/signer/actionBatch/actionBatchBootstrap.js +3 -3
- package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -1
- package/out/src/signer/methods/acquireDirectCertificate.d.ts +3 -2
- package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
- package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.d.ts +6 -5
- package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.js +6 -11
- package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
- package/out/src/signer/methods/createAction.d.ts +4 -3
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +4 -2
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/createNoSendExpiryAction.d.ts +3 -3
- package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -1
- package/out/src/signer/methods/createNoSendExpiryAction.js +9 -4
- package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -1
- package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/signer/methods/internalizeAction.js +2 -2
- package/out/src/signer/methods/internalizeAction.js.map +1 -1
- package/out/src/signer/methods/proveCertificate.d.ts +3 -2
- package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
- package/out/src/signer/methods/proveCertificate.js.map +1 -1
- package/out/src/signer/methods/signAction.d.ts.map +1 -1
- package/out/src/signer/methods/signAction.js +3 -2
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.js +12 -17
- package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
- package/out/src/storage/StorageIdb.d.ts +5 -3
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +15 -20
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +5 -3
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +143 -93
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +19 -9
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +229 -145
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReader.d.ts +1 -1
- package/out/src/storage/StorageReader.d.ts.map +1 -1
- package/out/src/storage/StorageReader.js +9 -42
- package/out/src/storage/StorageReader.js.map +1 -1
- package/out/src/storage/StorageReaderWriter.d.ts +1 -0
- package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
- package/out/src/storage/StorageReaderWriter.js +37 -36
- package/out/src/storage/StorageReaderWriter.js.map +1 -1
- package/out/src/storage/StorageSyncReader.d.ts +1 -1
- package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
- package/out/src/storage/StorageSyncReader.js +3 -36
- package/out/src/storage/StorageSyncReader.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts +8 -7
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +38 -65
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/adminServer/adminServer.d.ts +1 -1
- package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
- package/out/src/storage/adminServer/adminServer.js +16 -44
- package/out/src/storage/adminServer/adminServer.js.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.d.ts +2 -2
- package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts +7 -4
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.js +1 -0
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
- package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
- package/out/src/storage/methods/actionBatch.js +3 -2
- package/out/src/storage/methods/actionBatch.js.map +1 -1
- package/out/src/storage/methods/actionBatchBlobs.d.ts +2 -0
- package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -1
- package/out/src/storage/methods/actionBatchBlobs.js +40 -22
- package/out/src/storage/methods/actionBatchBlobs.js.map +1 -1
- package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -1
- package/out/src/storage/methods/actionBatchValidation.js +22 -30
- package/out/src/storage/methods/actionBatchValidation.js.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +7 -2
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +57 -44
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts +7 -6
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +7 -5
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +12 -11
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +5 -7
- package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts +3 -3
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +134 -129
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
- package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
- package/out/src/storage/methods/listActionsIdb.js +2 -2
- package/out/src/storage/methods/listActionsIdb.js.map +1 -1
- package/out/src/storage/methods/listActionsKnex.d.ts +3 -2
- package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listActionsKnex.js +10 -9
- package/out/src/storage/methods/listActionsKnex.js.map +1 -1
- package/out/src/storage/methods/listCertificates.d.ts +3 -2
- package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
- package/out/src/storage/methods/listCertificates.js.map +1 -1
- package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
- package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsIdb.js +11 -11
- package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.d.ts +3 -2
- package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.js +15 -23
- package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
- package/out/src/storage/methods/noSendExpiry.d.ts +3 -3
- package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -1
- package/out/src/storage/methods/noSendExpiry.js +10 -8
- package/out/src/storage/methods/noSendExpiry.js.map +1 -1
- package/out/src/storage/methods/preparedBeef.d.ts.map +1 -1
- package/out/src/storage/methods/preparedBeef.js +13 -14
- package/out/src/storage/methods/preparedBeef.js.map +1 -1
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +37 -6
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +1 -1
- package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -1
- package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -1
- package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
- package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
- package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
- package/out/src/storage/methods/reviewUtxoOutputs.d.ts +1 -0
- package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -1
- package/out/src/storage/methods/reviewUtxoOutputs.js +51 -4
- package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -1
- package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -1
- package/out/src/storage/methods/validateSyncProof.js +3 -3
- package/out/src/storage/methods/validateSyncProof.js.map +1 -1
- package/out/src/storage/portable/index.d.ts.map +1 -1
- package/out/src/storage/portable/index.js +21 -13
- package/out/src/storage/portable/index.js.map +1 -1
- package/out/src/storage/remoting/BinaryJson.d.ts +11 -0
- package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
- package/out/src/storage/remoting/BinaryJson.js +37 -0
- package/out/src/storage/remoting/BinaryJson.js.map +1 -1
- package/out/src/storage/remoting/KnexSessionManager.d.ts +26 -2
- package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
- package/out/src/storage/remoting/KnexSessionManager.js +222 -30
- package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
- package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -1
- package/out/src/storage/remoting/KnexSyncTransferStore.js +3 -4
- package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -1
- package/out/src/storage/remoting/StorageClient.d.ts +6 -1
- package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +63 -6
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts +23 -6
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.js +148 -19
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
- package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
- package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageMobile.js +11 -9
- package/out/src/storage/remoting/StorageMobile.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts +5 -1
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +95 -19
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -1
- package/out/src/storage/remoting/SyncTransfer.js +3 -2
- package/out/src/storage/remoting/SyncTransfer.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts +1 -0
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +28 -6
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.js +11 -4
- package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +2 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +93 -39
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
- package/out/src/storage/schema/tables/TableCertificate.d.ts +1 -1
- package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
- package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
- package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
- package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutput.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
- package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +1 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableSettings.d.ts +1 -1
- package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
- package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTransaction.d.ts +1 -1
- package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
- package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
- package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
- package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.js +8 -7
- package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
- package/out/src/utility/actionBatchDigest.d.ts.map +1 -1
- package/out/src/utility/actionBatchDigest.js +9 -7
- package/out/src/utility/actionBatchDigest.js.map +1 -1
- package/out/src/utility/actionBatchPack.d.ts.map +1 -1
- package/out/src/utility/actionBatchPack.js +7 -12
- package/out/src/utility/actionBatchPack.js.map +1 -1
- package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
- package/out/src/utility/brc153ReferenceLabels.js +4 -4
- package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
- package/out/src/utility/brc177NoSendExpiry.d.ts +2 -2
- package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -1
- package/out/src/utility/canonicalizeAtomicBeef.js +2 -2
- package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -1
- package/out/src/utility/exactActionSpend.d.ts +11 -0
- package/out/src/utility/exactActionSpend.d.ts.map +1 -0
- package/out/src/utility/exactActionSpend.js +11 -0
- package/out/src/utility/exactActionSpend.js.map +1 -0
- package/out/src/utility/identityUtils.d.ts +44 -4
- package/out/src/utility/identityUtils.d.ts.map +1 -1
- package/out/src/utility/identityUtils.js +376 -61
- package/out/src/utility/identityUtils.js.map +1 -1
- package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
- package/out/src/utility/parseTxScriptOffsets.js +1 -19
- package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
- package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
- package/out/src/utility/tscProofToMerklePath.js +35 -4
- package/out/src/utility/tscProofToMerklePath.js.map +1 -1
- package/out/src/utility/utilityHelpers.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.js +8 -6
- package/out/src/utility/utilityHelpers.js.map +1 -1
- package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.noBuffer.js +6 -6
- package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
- package/out/src/utility/verifyOverlayOutput.d.ts +12 -0
- package/out/src/utility/verifyOverlayOutput.d.ts.map +1 -0
- package/out/src/utility/verifyOverlayOutput.js +22 -0
- package/out/src/utility/verifyOverlayOutput.js.map +1 -0
- package/out/src/utility/walletResultGuards.d.ts +14 -0
- package/out/src/utility/walletResultGuards.d.ts.map +1 -0
- package/out/src/utility/walletResultGuards.js +28 -0
- package/out/src/utility/walletResultGuards.js.map +1 -0
- package/out/src/wab-client/WABClient.d.ts +3 -17
- package/out/src/wab-client/WABClient.d.ts.map +1 -1
- package/out/src/wab-client/WABClient.js +30 -14
- package/out/src/wab-client/WABClient.js.map +1 -1
- package/out/src/wab-client/WABResponseValidation.d.ts +48 -0
- package/out/src/wab-client/WABResponseValidation.d.ts.map +1 -0
- package/out/src/wab-client/WABResponseValidation.js +321 -0
- package/out/src/wab-client/WABResponseValidation.js.map +1 -0
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -2
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
- package/package.json +5 -5
|
@@ -6,6 +6,7 @@ const blockHeaderUtilities_1 = require("../util/blockHeaderUtilities");
|
|
|
6
6
|
const HeightRange_1 = require("../util/HeightRange");
|
|
7
7
|
const WERR_errors_1 = require("../../../../sdk/WERR_errors");
|
|
8
8
|
const idb_1 = require("idb");
|
|
9
|
+
const BulkFileDataManager_1 = require("../util/BulkFileDataManager");
|
|
9
10
|
function createInsertHeaderResult() {
|
|
10
11
|
return {
|
|
11
12
|
added: false,
|
|
@@ -65,6 +66,7 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
65
66
|
* @returns number of deleted records
|
|
66
67
|
*/
|
|
67
68
|
async deleteOlderLiveBlockHeaders(maxHeight) {
|
|
69
|
+
this.validateHeight(maxHeight, 'maxHeight');
|
|
68
70
|
await this.makeAvailable();
|
|
69
71
|
const trx = this.toDbTrxReadWrite(['live_headers']);
|
|
70
72
|
const store = trx.objectStore('live_headers');
|
|
@@ -76,8 +78,10 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
76
78
|
const headerIdsToDelete = new Set(headersToDelete.map(header => header.headerId));
|
|
77
79
|
const deletedCount = headersToDelete.length;
|
|
78
80
|
for (const id of headerIdsToDelete) {
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
+
const headersToUpdate = await previousHeaderIdIndex.getAll(id);
|
|
82
|
+
for (const headerToUpdate of headersToUpdate) {
|
|
83
|
+
await store.put({ ...headerToUpdate, previousHeaderId: null });
|
|
84
|
+
}
|
|
81
85
|
}
|
|
82
86
|
// Delete the headers
|
|
83
87
|
for (const id of headerIdsToDelete) {
|
|
@@ -106,12 +110,14 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
106
110
|
const trx = this.toDbTrxReadOnly(['live_headers']);
|
|
107
111
|
const store = trx.objectStore('live_headers');
|
|
108
112
|
const activeTipIndex = store.index('activeTip');
|
|
109
|
-
|
|
110
|
-
header = this.repairStoredLiveHeader(header);
|
|
113
|
+
const headers = (await activeTipIndex.getAll([1, 1])).map(header => this.repairStoredLiveHeader(header));
|
|
111
114
|
await trx.done;
|
|
112
|
-
|
|
115
|
+
if (headers.length > 1)
|
|
116
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('multiple active chain tips exist in IndexedDB');
|
|
117
|
+
return headers[0];
|
|
113
118
|
}
|
|
114
119
|
async findLiveHeaderForBlockHash(hash) {
|
|
120
|
+
this.validateHash(hash);
|
|
115
121
|
await this.makeAvailable();
|
|
116
122
|
const trx = this.toDbTrxReadOnly(['live_headers']);
|
|
117
123
|
const store = trx.objectStore('live_headers');
|
|
@@ -122,6 +128,9 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
122
128
|
return header;
|
|
123
129
|
}
|
|
124
130
|
async findLiveHeaderForHeaderId(headerId) {
|
|
131
|
+
if (!Number.isSafeInteger(headerId) || headerId < 1) {
|
|
132
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('headerId', 'a positive safe integer');
|
|
133
|
+
}
|
|
125
134
|
await this.makeAvailable();
|
|
126
135
|
const trx = this.toDbTrxReadOnly(['live_headers']);
|
|
127
136
|
const store = trx.objectStore('live_headers');
|
|
@@ -131,35 +140,37 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
131
140
|
return header;
|
|
132
141
|
}
|
|
133
142
|
async findLiveHeaderForHeight(height) {
|
|
143
|
+
this.validateHeight(height);
|
|
134
144
|
await this.makeAvailable();
|
|
135
145
|
const trx = this.toDbTrxReadOnly(['live_headers']);
|
|
136
146
|
const store = trx.objectStore('live_headers');
|
|
137
147
|
const heightIndex = store.index('height');
|
|
138
|
-
|
|
139
|
-
|
|
148
|
+
const headers = (await heightIndex.getAll(height))
|
|
149
|
+
.map(header => this.repairStoredLiveHeader(header))
|
|
150
|
+
.filter(header => header.isActive);
|
|
140
151
|
await trx.done;
|
|
141
|
-
|
|
152
|
+
if (headers.length > 1)
|
|
153
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION(`multiple active headers exist at height ${height}`);
|
|
154
|
+
return headers[0] ?? null;
|
|
142
155
|
}
|
|
143
156
|
async findLiveHeaderForMerkleRoot(merkleRoot) {
|
|
157
|
+
this.validateHash(merkleRoot, 'merkleRoot');
|
|
144
158
|
await this.makeAvailable();
|
|
145
159
|
const trx = this.toDbTrxReadOnly(['live_headers']);
|
|
146
160
|
const store = trx.objectStore('live_headers');
|
|
147
161
|
const merkleRootIndex = store.index('merkleRoot');
|
|
148
|
-
|
|
149
|
-
header = this.repairStoredLiveHeader(header);
|
|
162
|
+
const headers = (await merkleRootIndex.getAll(merkleRoot)).map(header => this.repairStoredLiveHeader(header));
|
|
150
163
|
await trx.done;
|
|
151
|
-
return header
|
|
164
|
+
return headers.find(header => header.isActive) ?? headers[0] ?? null;
|
|
152
165
|
}
|
|
153
166
|
async findLiveHeightRange() {
|
|
154
167
|
await this.makeAvailable();
|
|
155
168
|
const trx = this.toDbTrxReadOnly(['live_headers']);
|
|
156
169
|
const store = trx.objectStore('live_headers');
|
|
157
|
-
const
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
const maxValue = maxCursor?.value.height ?? null;
|
|
162
|
-
const range = minValue === null || maxValue === null ? HeightRange_1.HeightRange.empty : new HeightRange_1.HeightRange(minValue, maxValue);
|
|
170
|
+
const active = (await store.getAll()).map(header => this.repairStoredLiveHeader(header)).filter(h => h.isActive);
|
|
171
|
+
const range = active.length === 0
|
|
172
|
+
? HeightRange_1.HeightRange.empty
|
|
173
|
+
: new HeightRange_1.HeightRange(Math.min(...active.map(header => header.height)), Math.max(...active.map(header => header.height)));
|
|
163
174
|
await trx.done;
|
|
164
175
|
return range;
|
|
165
176
|
}
|
|
@@ -173,8 +184,11 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
173
184
|
return maxValue;
|
|
174
185
|
}
|
|
175
186
|
async liveHeadersForBulk(count) {
|
|
187
|
+
if (!Number.isSafeInteger(count) || count < 1 || count > 100_000) {
|
|
188
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('count', 'an integer from 1 through 100000');
|
|
189
|
+
}
|
|
176
190
|
await this.makeAvailable();
|
|
177
|
-
const trx = this.
|
|
191
|
+
const trx = this.toDbTrxReadOnly(['live_headers']);
|
|
178
192
|
const store = trx.objectStore('live_headers');
|
|
179
193
|
const heightIndex = store.index('height');
|
|
180
194
|
let cursor = await heightIndex.openCursor(null, 'next');
|
|
@@ -191,17 +205,18 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
191
205
|
return headers;
|
|
192
206
|
}
|
|
193
207
|
async getLiveHeaders(range) {
|
|
208
|
+
this.validateRange(range);
|
|
194
209
|
if (range.isEmpty)
|
|
195
210
|
return [];
|
|
196
211
|
await this.makeAvailable();
|
|
197
|
-
const trx = this.
|
|
212
|
+
const trx = this.toDbTrxReadOnly(['live_headers']);
|
|
198
213
|
const store = trx.objectStore('live_headers');
|
|
199
214
|
const heightIndex = store.index('height');
|
|
200
|
-
let cursor = await heightIndex.openCursor(
|
|
215
|
+
let cursor = await heightIndex.openCursor(IDBKeyRange.bound(range.minHeight, range.maxHeight), 'next');
|
|
201
216
|
const headers = [];
|
|
202
217
|
while (cursor != null) {
|
|
203
218
|
const header = this.repairStoredLiveHeader(cursor.value);
|
|
204
|
-
if (header
|
|
219
|
+
if (header?.isActive) {
|
|
205
220
|
headers.push(header);
|
|
206
221
|
}
|
|
207
222
|
cursor = await cursor.continue();
|
|
@@ -237,12 +252,19 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
237
252
|
async findActiveAncestor(trx, oneBack, result) {
|
|
238
253
|
const store = trx.objectStore('live_headers');
|
|
239
254
|
let activeAncestor = oneBack;
|
|
255
|
+
const visited = new Set();
|
|
240
256
|
while (!activeAncestor.isActive) {
|
|
257
|
+
this.recordTraversalVisit(visited, activeAncestor, 'finding the active ancestor');
|
|
258
|
+
if (activeAncestor.previousHeaderId == null) {
|
|
259
|
+
result.noActiveAncestor = true;
|
|
260
|
+
return undefined;
|
|
261
|
+
}
|
|
241
262
|
const previousHeader = this.repairStoredLiveHeader(await store.get(activeAncestor.previousHeaderId));
|
|
242
263
|
if (previousHeader == null) {
|
|
243
264
|
result.noActiveAncestor = true;
|
|
244
265
|
return undefined;
|
|
245
266
|
}
|
|
267
|
+
this.validateStoredParentLink(activeAncestor, previousHeader);
|
|
246
268
|
activeAncestor = previousHeader;
|
|
247
269
|
}
|
|
248
270
|
return activeAncestor;
|
|
@@ -252,19 +274,46 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
252
274
|
return;
|
|
253
275
|
const store = trx.objectStore('live_headers');
|
|
254
276
|
const activeTipIndex = store.index('activeTip');
|
|
255
|
-
|
|
277
|
+
const activeTips = (await activeTipIndex.getAll([1, 1])).map(header => this.repairStoredLiveHeader(header));
|
|
278
|
+
if (activeTips.length !== 1) {
|
|
279
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION(`expected one active chain tip, found ${activeTips.length}`);
|
|
280
|
+
}
|
|
281
|
+
let headerToDeactivate = activeTips[0];
|
|
282
|
+
const deactivated = new Set();
|
|
256
283
|
while (headerToDeactivate != null && headerToDeactivate.headerId !== activeAncestor.headerId) {
|
|
284
|
+
this.recordTraversalVisit(deactivated, headerToDeactivate, 'deactivating the prior active chain');
|
|
257
285
|
result.deactivatedHeaders.push(headerToDeactivate);
|
|
258
286
|
await store.put(this.prepareStoredLiveHeader({
|
|
259
287
|
...headerToDeactivate,
|
|
260
288
|
isActive: false
|
|
261
289
|
}));
|
|
262
|
-
|
|
290
|
+
if (headerToDeactivate.previousHeaderId == null) {
|
|
291
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('active chain does not reach the selected reorganization ancestor');
|
|
292
|
+
}
|
|
293
|
+
const previousHeader = this.repairStoredLiveHeader(await store.get(headerToDeactivate.previousHeaderId));
|
|
294
|
+
if (previousHeader == null) {
|
|
295
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('active chain contains a missing parent header');
|
|
296
|
+
}
|
|
297
|
+
this.validateStoredParentLink(headerToDeactivate, previousHeader);
|
|
298
|
+
headerToDeactivate = previousHeader;
|
|
299
|
+
}
|
|
300
|
+
if (headerToDeactivate == null) {
|
|
301
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('active chain does not reach the selected reorganization ancestor');
|
|
263
302
|
}
|
|
264
303
|
let headerToActivate = oneBack;
|
|
304
|
+
const activated = new Set();
|
|
265
305
|
while (headerToActivate.headerId !== activeAncestor.headerId) {
|
|
306
|
+
this.recordTraversalVisit(activated, headerToActivate, 'activating the replacement chain');
|
|
266
307
|
await store.put(this.prepareStoredLiveHeader({ ...headerToActivate, isActive: true }));
|
|
267
|
-
|
|
308
|
+
if (headerToActivate.previousHeaderId == null) {
|
|
309
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('replacement chain does not reach the selected reorganization ancestor');
|
|
310
|
+
}
|
|
311
|
+
const previousHeader = this.repairStoredLiveHeader(await store.get(headerToActivate.previousHeaderId));
|
|
312
|
+
if (previousHeader == null) {
|
|
313
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('replacement chain contains a missing parent header');
|
|
314
|
+
}
|
|
315
|
+
this.validateStoredParentLink(headerToActivate, previousHeader);
|
|
316
|
+
headerToActivate = previousHeader;
|
|
268
317
|
}
|
|
269
318
|
}
|
|
270
319
|
async prepareActiveTip(trx, header, oneBack, result) {
|
|
@@ -280,124 +329,238 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
280
329
|
return true;
|
|
281
330
|
}
|
|
282
331
|
async insertHeader(header) {
|
|
332
|
+
header = this.validateIncomingHeader(header);
|
|
283
333
|
await this.makeAvailable();
|
|
284
334
|
const trx = this.toDbTrxReadWrite(['live_headers']);
|
|
285
335
|
const store = trx.objectStore('live_headers');
|
|
286
336
|
const hashIndex = store.index('hash');
|
|
287
337
|
const activeTipIndex = store.index('activeTip');
|
|
288
338
|
const r = createInsertHeaderResult();
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
return r;
|
|
294
|
-
}
|
|
295
|
-
// let all = await store.getAll()
|
|
296
|
-
// console.log(`idb store length: ${all.length} last: ${all[all.length - 1]?.height}`)
|
|
297
|
-
// let allHash = await hashIndex.getAll()
|
|
298
|
-
// Find previous header
|
|
299
|
-
const oneBack = this.repairStoredLiveHeader(await hashIndex.get(header.previousHash));
|
|
300
|
-
if (oneBack == null) {
|
|
301
|
-
if (await this.insertFirstHeader(trx, header, r)) {
|
|
339
|
+
try {
|
|
340
|
+
// Check for duplicate
|
|
341
|
+
if (await hashIndex.get(header.hash)) {
|
|
342
|
+
r.dupe = true;
|
|
302
343
|
await trx.done;
|
|
303
344
|
return r;
|
|
304
345
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
346
|
+
// let all = await store.getAll()
|
|
347
|
+
// console.log(`idb store length: ${all.length} last: ${all[all.length - 1]?.height}`)
|
|
348
|
+
// let allHash = await hashIndex.getAll()
|
|
349
|
+
// Find previous header
|
|
350
|
+
const oneBack = this.repairStoredLiveHeader(await hashIndex.get(header.previousHash));
|
|
351
|
+
if (oneBack == null) {
|
|
352
|
+
if (await this.insertFirstHeader(trx, header, r)) {
|
|
353
|
+
await trx.done;
|
|
354
|
+
return r;
|
|
355
|
+
}
|
|
356
|
+
r.noPrev = true;
|
|
357
|
+
await trx.done;
|
|
358
|
+
return r;
|
|
359
|
+
}
|
|
360
|
+
if (oneBack.height + 1 !== header.height) {
|
|
361
|
+
r.badPrev = true;
|
|
362
|
+
await trx.done;
|
|
363
|
+
return r;
|
|
364
|
+
}
|
|
365
|
+
if (oneBack.isActive && oneBack.isChainTip) {
|
|
366
|
+
r.priorTip = oneBack;
|
|
367
|
+
}
|
|
368
|
+
else {
|
|
369
|
+
const activeTips = (await activeTipIndex.getAll([1, 1])).map(tip => this.repairStoredLiveHeader(tip));
|
|
370
|
+
if (activeTips.length > 1) {
|
|
371
|
+
trx.abort();
|
|
372
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('multiple active chain tips exist in IndexedDB');
|
|
373
|
+
}
|
|
374
|
+
r.priorTip = activeTips[0];
|
|
375
|
+
}
|
|
376
|
+
if (r.priorTip == null) {
|
|
377
|
+
// No active chain tip found. This is a logic error in state of live headers.
|
|
378
|
+
r.noTip = true;
|
|
379
|
+
await trx.done;
|
|
380
|
+
return r;
|
|
381
|
+
}
|
|
382
|
+
// We have an acceptable new live header...and live headers has an active chain tip.
|
|
383
|
+
const chainWork = (0, blockHeaderUtilities_1.addWork)(oneBack.chainWork, (0, blockHeaderUtilities_1.convertBitsToWork)(header.bits));
|
|
384
|
+
r.isActiveTip = (0, blockHeaderUtilities_1.isMoreWork)(chainWork, r.priorTip.chainWork);
|
|
385
|
+
const newHeader = {
|
|
386
|
+
...header,
|
|
387
|
+
headerId: 0,
|
|
388
|
+
previousHeaderId: oneBack.headerId,
|
|
389
|
+
chainWork,
|
|
390
|
+
isChainTip: r.isActiveTip,
|
|
391
|
+
isActive: r.isActiveTip
|
|
392
|
+
};
|
|
393
|
+
if (!(await this.prepareActiveTip(trx, header, oneBack, r))) {
|
|
394
|
+
await trx.done;
|
|
395
|
+
return r;
|
|
396
|
+
}
|
|
397
|
+
if (oneBack.isChainTip) {
|
|
398
|
+
await store.put(this.prepareStoredLiveHeader({ ...oneBack, isChainTip: false }));
|
|
399
|
+
}
|
|
400
|
+
await store.put(this.prepareStoredLiveHeader(newHeader, true));
|
|
401
|
+
r.added = true;
|
|
402
|
+
// all = await store.getAll()
|
|
403
|
+
// console.log(`idb store length: ${all.length} last: ${all[all.length - 1]?.height}`)
|
|
404
|
+
if (r.added && r.isActiveTip) {
|
|
405
|
+
// this.pruneLiveBlockHeaders(newHeader.height)
|
|
406
|
+
}
|
|
333
407
|
await trx.done;
|
|
334
408
|
return r;
|
|
335
409
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
410
|
+
catch (error) {
|
|
411
|
+
try {
|
|
412
|
+
trx.abort();
|
|
413
|
+
}
|
|
414
|
+
catch {
|
|
415
|
+
// The transaction may already have aborted because an IndexedDB
|
|
416
|
+
// request failed. Either way, never mask the original failure.
|
|
417
|
+
}
|
|
418
|
+
await trx.done.catch(() => { });
|
|
419
|
+
throw error;
|
|
345
420
|
}
|
|
346
|
-
await trx.done;
|
|
347
|
-
return r;
|
|
348
421
|
}
|
|
349
422
|
async deleteBulkFile(fileId) {
|
|
423
|
+
if (!Number.isSafeInteger(fileId) || fileId < 1) {
|
|
424
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('fileId', 'a positive safe integer');
|
|
425
|
+
}
|
|
350
426
|
await this.makeAvailable();
|
|
351
427
|
const trx = this.toDbTrxReadWrite(['bulk_headers']);
|
|
352
428
|
const store = trx.objectStore('bulk_headers');
|
|
429
|
+
const existed = (await store.get(fileId)) != null;
|
|
353
430
|
await store.delete(fileId);
|
|
354
431
|
await trx.done;
|
|
355
|
-
|
|
356
|
-
return 1;
|
|
432
|
+
return existed ? 1 : 0;
|
|
357
433
|
}
|
|
358
434
|
async insertBulkFile(file) {
|
|
359
435
|
await this.makeAvailable();
|
|
436
|
+
const canonical = (0, BulkFileDataManager_1.normalizeBulkHeaderFileInfo)(file, true);
|
|
437
|
+
if (canonical.chain !== this.chain)
|
|
438
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('file.chain', this.chain);
|
|
360
439
|
const trx = this.toDbTrxReadWrite(['bulk_headers']);
|
|
361
440
|
const store = trx.objectStore('bulk_headers');
|
|
362
|
-
const fileObj = { ...
|
|
441
|
+
const fileObj = { ...canonical };
|
|
363
442
|
delete fileObj['fileId'];
|
|
364
|
-
|
|
443
|
+
const fileId = Number(await store.put(fileObj));
|
|
365
444
|
await trx.done;
|
|
366
|
-
return
|
|
445
|
+
return fileId;
|
|
367
446
|
}
|
|
368
447
|
async updateBulkFile(fileId, file) {
|
|
448
|
+
if (!Number.isSafeInteger(fileId) || fileId < 1) {
|
|
449
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('fileId', 'a positive safe integer');
|
|
450
|
+
}
|
|
369
451
|
await this.makeAvailable();
|
|
452
|
+
const canonical = (0, BulkFileDataManager_1.normalizeBulkHeaderFileInfo)(file, true);
|
|
453
|
+
if (canonical.chain !== this.chain)
|
|
454
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('file.chain', this.chain);
|
|
455
|
+
if (canonical.fileId !== undefined && canonical.fileId !== fileId) {
|
|
456
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('file.fileId', 'undefined or equal to fileId');
|
|
457
|
+
}
|
|
370
458
|
const trx = this.toDbTrxReadWrite(['bulk_headers']);
|
|
371
459
|
const store = trx.objectStore('bulk_headers');
|
|
372
|
-
|
|
373
|
-
await store.put(file);
|
|
460
|
+
await store.put({ ...canonical, fileId });
|
|
374
461
|
await trx.done;
|
|
375
462
|
// return number of records affected
|
|
376
463
|
return 1;
|
|
377
464
|
}
|
|
378
|
-
async
|
|
465
|
+
async replaceBulkFiles(files) {
|
|
466
|
+
const canonical = (0, BulkFileDataManager_1.normalizeBulkHeaderFileSequence)(files, true).map(value => {
|
|
467
|
+
if (value.chain !== this.chain)
|
|
468
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('file.chain', this.chain);
|
|
469
|
+
return value;
|
|
470
|
+
});
|
|
379
471
|
await this.makeAvailable();
|
|
380
472
|
const trx = this.toDbTrxReadWrite(['bulk_headers']);
|
|
381
473
|
const store = trx.objectStore('bulk_headers');
|
|
382
|
-
|
|
474
|
+
try {
|
|
475
|
+
const current = await store.getAll();
|
|
476
|
+
const currentById = new Map();
|
|
477
|
+
for (const file of current) {
|
|
478
|
+
const value = (0, BulkFileDataManager_1.normalizeBulkHeaderFileInfo)(file, true);
|
|
479
|
+
if (value.fileId === undefined || currentById.has(value.fileId)) {
|
|
480
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('IndexedDB contains an invalid or duplicate bulk-file id');
|
|
481
|
+
}
|
|
482
|
+
currentById.set(value.fileId, value);
|
|
483
|
+
}
|
|
484
|
+
const retainedIds = new Set();
|
|
485
|
+
const committed = [];
|
|
486
|
+
for (const file of canonical) {
|
|
487
|
+
let fileId = file.fileId;
|
|
488
|
+
if (fileId !== undefined) {
|
|
489
|
+
const prior = currentById.get(fileId);
|
|
490
|
+
if (prior == null || retainedIds.has(fileId)) {
|
|
491
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('file.fileId', 'a unique id belonging to the current bulk-file set');
|
|
492
|
+
}
|
|
493
|
+
const stored = { ...file, data: file.data ?? prior.data, fileId };
|
|
494
|
+
await store.put(stored);
|
|
495
|
+
}
|
|
496
|
+
else {
|
|
497
|
+
const stored = { ...file };
|
|
498
|
+
delete stored.fileId;
|
|
499
|
+
fileId = Number(await store.add(stored));
|
|
500
|
+
if (!Number.isSafeInteger(fileId) || fileId < 1) {
|
|
501
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('IndexedDB returned an invalid bulk-file id');
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
retainedIds.add(fileId);
|
|
505
|
+
committed.push({ ...file, fileId });
|
|
506
|
+
}
|
|
507
|
+
for (const fileId of currentById.keys()) {
|
|
508
|
+
if (!retainedIds.has(fileId))
|
|
509
|
+
await store.delete(fileId);
|
|
510
|
+
}
|
|
511
|
+
await trx.done;
|
|
512
|
+
return committed;
|
|
513
|
+
}
|
|
514
|
+
catch (error) {
|
|
515
|
+
try {
|
|
516
|
+
trx.abort();
|
|
517
|
+
}
|
|
518
|
+
catch {
|
|
519
|
+
// The transaction may already have aborted. Preserve the first error.
|
|
520
|
+
}
|
|
521
|
+
await trx.done.catch(() => { });
|
|
522
|
+
throw error;
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
async getBulkFiles() {
|
|
526
|
+
await this.makeAvailable();
|
|
527
|
+
const trx = this.toDbTrxReadOnly(['bulk_headers']);
|
|
528
|
+
const store = trx.objectStore('bulk_headers');
|
|
529
|
+
const files = (await store.getAll()).map(file => (0, BulkFileDataManager_1.normalizeBulkHeaderFileInfo)(file, true));
|
|
383
530
|
files.sort((a, b) => a.firstHeight - b.firstHeight);
|
|
384
531
|
for (const file of files)
|
|
385
532
|
file.data = undefined;
|
|
386
533
|
return files;
|
|
387
534
|
}
|
|
388
535
|
async getBulkFileData(fileId, offset, length) {
|
|
389
|
-
if (!Number.
|
|
390
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('fileId', 'a
|
|
536
|
+
if (!Number.isSafeInteger(fileId) || fileId < 1) {
|
|
537
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('fileId', 'a positive safe integer bulk_files fileId');
|
|
538
|
+
}
|
|
539
|
+
const hasOffset = offset !== undefined;
|
|
540
|
+
const hasLength = length !== undefined;
|
|
541
|
+
if (hasOffset !== hasLength) {
|
|
542
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('offset and length', 'both defined or both undefined');
|
|
543
|
+
}
|
|
544
|
+
if (hasOffset &&
|
|
545
|
+
(!Number.isSafeInteger(offset) ||
|
|
546
|
+
!Number.isSafeInteger(length) ||
|
|
547
|
+
offset < 0 ||
|
|
548
|
+
length < 0 ||
|
|
549
|
+
!Number.isSafeInteger(offset + length))) {
|
|
550
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('offset and length', 'non-negative safe integers with a safe sum');
|
|
551
|
+
}
|
|
391
552
|
await this.makeAvailable();
|
|
392
|
-
const trx = this.
|
|
553
|
+
const trx = this.toDbTrxReadOnly(['bulk_headers']);
|
|
393
554
|
const store = trx.objectStore('bulk_headers');
|
|
394
555
|
const info = await store.get(fileId);
|
|
395
556
|
if (info == null)
|
|
396
557
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('fileId', `an existing record. ${fileId} not found`);
|
|
397
558
|
let data;
|
|
398
|
-
if (info.data == null)
|
|
559
|
+
if (info.data == null) {
|
|
560
|
+
await trx.done;
|
|
399
561
|
return undefined;
|
|
400
|
-
|
|
562
|
+
}
|
|
563
|
+
if (hasOffset) {
|
|
401
564
|
data = info.data.slice(offset, offset + length);
|
|
402
565
|
}
|
|
403
566
|
else {
|
|
@@ -418,12 +581,16 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
418
581
|
repairStoredLiveHeader(header) {
|
|
419
582
|
if (header == null)
|
|
420
583
|
return undefined;
|
|
584
|
+
if (![undefined, true, 1].includes(header.isActive) ||
|
|
585
|
+
![undefined, true, 1].includes(header.isChainTip)) {
|
|
586
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('IndexedDB contains a non-canonical live-header boolean');
|
|
587
|
+
}
|
|
421
588
|
const h = {
|
|
422
589
|
...header,
|
|
423
|
-
isActive:
|
|
424
|
-
isChainTip:
|
|
590
|
+
isActive: header.isActive === true || header.isActive === 1,
|
|
591
|
+
isChainTip: header.isChainTip === true || header.isChainTip === 1
|
|
425
592
|
};
|
|
426
|
-
return h;
|
|
593
|
+
return this.validateLiveHeaderRecord(h);
|
|
427
594
|
}
|
|
428
595
|
prepareStoredLiveHeader(header, forInsert) {
|
|
429
596
|
const h = { ...header };
|
|
@@ -440,12 +607,14 @@ class ChaintracksStorageIdb extends ChaintracksStorageBase_1.ChaintracksStorageB
|
|
|
440
607
|
return h;
|
|
441
608
|
}
|
|
442
609
|
async insertLiveHeader(header) {
|
|
610
|
+
await this.makeAvailable();
|
|
611
|
+
const canonical = this.validateLiveHeaderRecord(header, true);
|
|
443
612
|
const trx = this.toDbTrxReadWrite(['live_headers']);
|
|
444
613
|
const store = trx.objectStore('live_headers');
|
|
445
|
-
const h = this.prepareStoredLiveHeader(
|
|
446
|
-
|
|
614
|
+
const h = this.prepareStoredLiveHeader(canonical, true);
|
|
615
|
+
canonical.headerId = Number(await store.add(h));
|
|
447
616
|
await trx.done;
|
|
448
|
-
return
|
|
617
|
+
return canonical;
|
|
449
618
|
}
|
|
450
619
|
async initDB() {
|
|
451
620
|
const db = await (0, idb_1.openDB)(this.dbName, 1, {
|