@bsv/wallet-toolbox 2.12.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 +350 -1
- package/README.md +556 -6
- 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/sync-transfer.md +144 -0
- 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 +23 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +49 -3
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/services/ServiceCollection.js +2 -2
- package/out/src/services/ServiceCollection.js.map +1 -1
- package/out/src/services/Services.d.ts +5 -0
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +276 -110
- 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 +6 -3
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +70 -42
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +8 -4
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +185 -92
- 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 +237 -138
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReader.d.ts +7 -1
- package/out/src/storage/StorageReader.d.ts.map +1 -1
- package/out/src/storage/StorageReader.js +17 -42
- package/out/src/storage/StorageReader.js.map +1 -1
- package/out/src/storage/StorageReaderWriter.d.ts +2 -0
- package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
- package/out/src/storage/StorageReaderWriter.js +63 -38
- 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 +9 -7
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +71 -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/getSyncChunk.d.ts.map +1 -1
- package/out/src/storage/methods/getSyncChunk.js +42 -11
- package/out/src/storage/methods/getSyncChunk.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 +10 -2
- package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -1
- package/out/src/storage/methods/validateSyncProof.js +27 -4
- 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 +94 -8
- 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 +26 -0
- package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -0
- package/out/src/storage/remoting/KnexSyncTransferStore.js +222 -0
- package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -0
- 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 +65 -8
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts +53 -10
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.js +304 -9
- 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 +13 -11
- package/out/src/storage/remoting/StorageMobile.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts +10 -1
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +206 -21
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/remoting/SyncTransfer.d.ts +29 -0
- package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -0
- package/out/src/storage/remoting/SyncTransfer.js +153 -0
- package/out/src/storage/remoting/SyncTransfer.js.map +1 -0
- package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -1
- package/out/src/storage/remoting/entityValidationHelpers.js +35 -0
- package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -1
- package/out/src/storage/remoting/syncChunkBinary.d.ts +4 -0
- package/out/src/storage/remoting/syncChunkBinary.d.ts.map +1 -0
- package/out/src/storage/remoting/syncChunkBinary.js +38 -0
- package/out/src/storage/remoting/syncChunkBinary.js.map +1 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.d.ts +5 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.d.ts.map +1 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.js +82 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.js.map +1 -0
- package/out/src/storage/schema/KnexMigrations.d.ts +3 -0
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +89 -2
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/schema/StorageIdbSchema.d.ts +1 -0
- package/out/src/storage/schema/StorageIdbSchema.d.ts.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 +95 -41
- 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.d.ts +3 -1
- package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +7 -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/storage/sync/SyncPageBudget.d.ts +8 -0
- package/out/src/storage/sync/SyncPageBudget.d.ts.map +1 -0
- package/out/src/storage/sync/SyncPageBudget.js +24 -0
- package/out/src/storage/sync/SyncPageBudget.js.map +1 -0
- package/out/src/storage/sync/syncCheckpoint.d.ts +4 -0
- package/out/src/storage/sync/syncCheckpoint.d.ts.map +1 -0
- package/out/src/storage/sync/syncCheckpoint.js +49 -0
- package/out/src/storage/sync/syncCheckpoint.js.map +1 -0
- 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 +6 -5
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.StorageProvider = void 0;
|
|
4
4
|
exports.validateStorageFeeModel = validateStorageFeeModel;
|
|
5
|
+
const validationHelpers_1 = require("@bsv/sdk/wallet/validationHelpers");
|
|
5
6
|
const sdk_1 = require("@bsv/sdk");
|
|
6
7
|
const storageProviderHelpers_1 = require("./storageProviderHelpers");
|
|
7
8
|
const getBeefForTransaction_1 = require("./methods/getBeefForTransaction");
|
|
@@ -24,6 +25,8 @@ const actionBatchBlobs_1 = require("./methods/actionBatchBlobs");
|
|
|
24
25
|
const availableManagedChange_1 = require("./methods/availableManagedChange");
|
|
25
26
|
const managedChangePolicy_1 = require("./methods/managedChangePolicy");
|
|
26
27
|
const noSendExpiry_1 = require("./methods/noSendExpiry");
|
|
28
|
+
const MAX_AUTH_PROOF_REQUEST_FALLBACK_ROWS = 10_000;
|
|
29
|
+
const MAX_AUTH_PROOF_REQUEST_TXIDS = 1_000;
|
|
27
30
|
class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
28
31
|
isDirty = false;
|
|
29
32
|
_services;
|
|
@@ -58,8 +61,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
58
61
|
this.commissionSatoshis = options.commissionSatoshis;
|
|
59
62
|
this.maxRecursionDepth = 12;
|
|
60
63
|
const maxReservedOutputs = options.actionBatchMaxReservedOutputs ?? 256;
|
|
61
|
-
if (maxReservedOutputs !== -1 &&
|
|
62
|
-
(!Number.isSafeInteger(maxReservedOutputs) || maxReservedOutputs < 1)) {
|
|
64
|
+
if (maxReservedOutputs !== -1 && (!Number.isSafeInteger(maxReservedOutputs) || maxReservedOutputs < 1)) {
|
|
63
65
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('actionBatchMaxReservedOutputs', 'a positive safe integer or -1 for unlimited');
|
|
64
66
|
}
|
|
65
67
|
this.actionBatchMaxReservedOutputs = maxReservedOutputs;
|
|
@@ -203,14 +205,50 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
203
205
|
}
|
|
204
206
|
async getCapabilities() {
|
|
205
207
|
return {
|
|
206
|
-
...(this.supportsNoSendExpiryPersistence()
|
|
207
|
-
? { brc177NoSendExpiry: { version: 1 } }
|
|
208
|
-
: {}),
|
|
208
|
+
...(this.supportsNoSendExpiryPersistence() ? { brc177NoSendExpiry: { version: 1 } } : {}),
|
|
209
209
|
...(this.supportsActionBatchPersistence()
|
|
210
210
|
? (0, actionBatch_1.getActionBatchCapabilities)(this.actionBatchMaxReservedOutputs, true)
|
|
211
211
|
: {})
|
|
212
212
|
};
|
|
213
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Restrict remotely requested proof work to transactions tracked by the
|
|
216
|
+
* authenticated wallet. ProvenTxReq rows are globally deduplicated, so their
|
|
217
|
+
* own schema has no userId column and must be authorized through transactions.
|
|
218
|
+
*/
|
|
219
|
+
async findProvenTxReqsAuth(auth, args) {
|
|
220
|
+
const userId = (0, utilityHelpers_1.verifyId)(auth.userId);
|
|
221
|
+
let requestedTxids;
|
|
222
|
+
if (args.txids?.length) {
|
|
223
|
+
if (args.txids.length > MAX_AUTH_PROOF_REQUEST_TXIDS) {
|
|
224
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.txids', `at most ${MAX_AUTH_PROOF_REQUEST_TXIDS} transaction IDs`);
|
|
225
|
+
}
|
|
226
|
+
requestedTxids = [];
|
|
227
|
+
for (const txid of args.txids) {
|
|
228
|
+
if ((await this.countTransactions({ partial: { userId, txid }, trx: args.trx })) > 0) {
|
|
229
|
+
requestedTxids.push(txid);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
// Built-in providers override this method with a joined/indexed query.
|
|
235
|
+
// Keep third-party implementations safe even when they only implement
|
|
236
|
+
// the older reader surface: bound the compatibility ownership scan and
|
|
237
|
+
// require exact txids for wallets beyond it.
|
|
238
|
+
const owned = await this.getProvenTxReqsForUser({
|
|
239
|
+
userId,
|
|
240
|
+
paged: { limit: MAX_AUTH_PROOF_REQUEST_FALLBACK_ROWS + 1, offset: 0 },
|
|
241
|
+
trx: args.trx
|
|
242
|
+
});
|
|
243
|
+
if (owned.length > MAX_AUTH_PROOF_REQUEST_FALLBACK_ROWS) {
|
|
244
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('Authenticated proof-request scans beyond 10,000 rows require a provider-native scoped query or exact txids');
|
|
245
|
+
}
|
|
246
|
+
requestedTxids = owned.map(request => request.txid);
|
|
247
|
+
}
|
|
248
|
+
if (requestedTxids.length === 0)
|
|
249
|
+
return [];
|
|
250
|
+
return await this.findProvenTxReqs({ ...args, txids: requestedTxids });
|
|
251
|
+
}
|
|
214
252
|
async prepareNoSendExpiry(auth, args) {
|
|
215
253
|
if (auth.isActive !== true)
|
|
216
254
|
throw new WERR_errors_1.WERR_NOT_ACTIVE('BRC-177 requires the active storage provider');
|
|
@@ -386,22 +424,16 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
386
424
|
}));
|
|
387
425
|
}
|
|
388
426
|
const unAbortableStatus = ['completed', 'failed', 'sending', 'unproven'];
|
|
389
|
-
const brc177TerminalOrRacing = tx?.noSendExpiryState != null &&
|
|
390
|
-
'broadcast',
|
|
391
|
-
'reclaiming',
|
|
392
|
-
'reclaimed',
|
|
393
|
-
'target-won',
|
|
394
|
-
'conflicted',
|
|
395
|
-
'cancelled'
|
|
396
|
-
].includes(tx.noSendExpiryState);
|
|
427
|
+
const brc177TerminalOrRacing = tx?.noSendExpiryState != null &&
|
|
428
|
+
['broadcast', 'reclaiming', 'reclaimed', 'target-won', 'conflicted', 'cancelled'].includes(tx.noSendExpiryState);
|
|
397
429
|
if (tx == null || !tx.isOutgoing || (unAbortableStatus.includes(tx.status) && !brc177TerminalOrRacing)) {
|
|
398
430
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('reference', 'an inprocess, outgoing action that has not been signed and shared to the network.');
|
|
399
431
|
}
|
|
400
432
|
return { tx, reference };
|
|
401
433
|
}
|
|
402
|
-
async
|
|
403
|
-
if (tx.txid == null || tx.txid === '' || tx.status !== 'nosend') {
|
|
404
|
-
return
|
|
434
|
+
async observeAbortChainProtection(tx) {
|
|
435
|
+
if (tx.txid == null || tx.txid === '' || tx.status !== 'nosend' || tx.noSendExpiryState != null) {
|
|
436
|
+
return undefined;
|
|
405
437
|
}
|
|
406
438
|
let serviceUnreachable = false;
|
|
407
439
|
let chainStatus;
|
|
@@ -417,23 +449,16 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
417
449
|
catch {
|
|
418
450
|
serviceUnreachable = true;
|
|
419
451
|
}
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
what: 'abortAction-skipped-onchain',
|
|
427
|
-
reference: args.reference,
|
|
428
|
-
chainStatus
|
|
429
|
-
});
|
|
430
|
-
await req.updateStorageDynamicProperties(this, trx);
|
|
431
|
-
}
|
|
432
|
-
return { skipped: true, serviceUnreachable };
|
|
452
|
+
return {
|
|
453
|
+
transactionId: tx.transactionId,
|
|
454
|
+
txid: tx.txid,
|
|
455
|
+
chainStatus,
|
|
456
|
+
serviceUnreachable
|
|
457
|
+
};
|
|
433
458
|
}
|
|
434
459
|
async invalidateAbortedTransaction(tx, userId, reference, originalReference, serviceUnreachable, trx) {
|
|
435
460
|
if (tx.noSendExpiryState === 'preparing' || tx.noSendExpiryState === 'unsigned') {
|
|
436
|
-
if (!await this.compareAndSetNoSendExpiryState(tx.transactionId, tx.noSendExpiryState, 'cancelled', trx)) {
|
|
461
|
+
if (!(await this.compareAndSetNoSendExpiryState(tx.transactionId, tx.noSendExpiryState, 'cancelled', trx))) {
|
|
437
462
|
throw new WERR_errors_1.WERR_INVALID_OPERATION('BRC-177 action changed while it was being aborted');
|
|
438
463
|
}
|
|
439
464
|
}
|
|
@@ -454,82 +479,111 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
454
479
|
if (auth.userId == null)
|
|
455
480
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('auth.userId', 'valid');
|
|
456
481
|
const userId = auth.userId;
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
if (
|
|
467
|
-
throw new WERR_errors_1.
|
|
482
|
+
let r;
|
|
483
|
+
for (let attempt = 0; attempt < 2; attempt++) {
|
|
484
|
+
// IndexedDB write transactions can auto-commit while awaiting non-database
|
|
485
|
+
// promises. Observe the chain before opening the write transaction, then
|
|
486
|
+
// bind the observation to the exact row and txid re-read below.
|
|
487
|
+
const preflight = await this.findAbortableTransaction(userId, args);
|
|
488
|
+
const chainObservation = await this.observeAbortChainProtection(preflight.tx);
|
|
489
|
+
r = await this.transaction(async (trx) => {
|
|
490
|
+
const { tx, reference } = await this.findAbortableTransaction(userId, args, trx);
|
|
491
|
+
if (tx.noSendExpiryState != null && auth.isActive !== true) {
|
|
492
|
+
throw new WERR_errors_1.WERR_NOT_ACTIVE('BRC-177 requires the active storage provider');
|
|
468
493
|
}
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
494
|
+
if (tx.noSendExpiryState === 'signed') {
|
|
495
|
+
// A released BRC-177 transaction must never be invalidated locally: the
|
|
496
|
+
// recipient may be broadcasting it at this instant. Make it due and let
|
|
497
|
+
// the lifecycle's positive chain/UTXO checks arbitrate the race.
|
|
498
|
+
if (!(await this.compareAndSetNoSendExpiryState(tx.transactionId, 'signed', 'revocation-requested', trx))) {
|
|
499
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('BRC-177 action changed while early revocation was requested');
|
|
500
|
+
}
|
|
501
|
+
const req = tx.txid == null ? undefined : await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
|
|
502
|
+
if (req != null) {
|
|
503
|
+
req.addHistoryNote({ what: 'brc177-early-abort-reclaim-requested', reference: args.reference });
|
|
504
|
+
await req.updateStorageDynamicProperties(this, trx);
|
|
505
|
+
}
|
|
506
|
+
return {
|
|
507
|
+
__abortAction: 'brc177-reclaim-requested',
|
|
508
|
+
transactionId: tx.transactionId
|
|
509
|
+
};
|
|
473
510
|
}
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
__abortAction: 'brc177-reclaim-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
511
|
+
if (tx.noSendExpiryState === 'revocation-requested') {
|
|
512
|
+
return {
|
|
513
|
+
__abortAction: 'brc177-reclaim-requested',
|
|
514
|
+
transactionId: tx.transactionId
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
if (tx.noSendExpiryState === 'reclaiming' || tx.noSendExpiryState === 'reclaimed') {
|
|
518
|
+
return { __abortAction: 'brc177-reclaim-in-progress' };
|
|
519
|
+
}
|
|
520
|
+
if (tx.noSendExpiryState === 'cancelled') {
|
|
521
|
+
return { __abortAction: 'brc177-cancelled' };
|
|
522
|
+
}
|
|
523
|
+
if (tx.noSendExpiryState === 'broadcast' ||
|
|
524
|
+
tx.noSendExpiryState === 'target-won' ||
|
|
525
|
+
tx.noSendExpiryState === 'conflicted') {
|
|
526
|
+
return { __abortAction: 'brc177-target-protected' };
|
|
527
|
+
}
|
|
528
|
+
// Chain-status protection for signed nosend txs.
|
|
529
|
+
//
|
|
530
|
+
// Background: a nosend tx (created via createAction({noSend:true}))
|
|
531
|
+
// can be externally broadcast by the caller and reach 'mined' or
|
|
532
|
+
// mempool-'known' status before any internalizeAction or Monitor
|
|
533
|
+
// cycle has retired its 'nosend' status in storage. If abortAction
|
|
534
|
+
// is invoked on it in that window, the destructive transitions
|
|
535
|
+
// below (transactions.status='failed' + proven_tx_reqs.status='invalid')
|
|
536
|
+
// orphan every output the tx produced — including auto-fund change
|
|
537
|
+
// outputs the wallet itself emitted — because listOutputs filters
|
|
538
|
+
// them out of the spendable set on parent-tx 'failed' status.
|
|
539
|
+
//
|
|
540
|
+
// Protection: if the tx has a txid AND status is 'nosend', ask
|
|
541
|
+
// the network whether it already knows about the tx before
|
|
542
|
+
// invalidating. getStatusForTxids returns 'mined' | 'known' |
|
|
543
|
+
// 'unknown' per StatusForTxidResult (WalletServices.interfaces.ts).
|
|
544
|
+
// Refuse the abort for 'mined' OR 'known' — a tx that's broadcast
|
|
545
|
+
// and propagating in mempool returns 'known' (depth===0) and
|
|
546
|
+
// protecting it avoids orphaning during the propagation window.
|
|
547
|
+
//
|
|
548
|
+
// Service-unreachable handling: proceed with abort. Refusal is
|
|
549
|
+
// reserved for positive on-chain confirmation. When the network
|
|
550
|
+
// confirmation pathway is itself unavailable (services throw or
|
|
551
|
+
// gracefully return r.status !== 'success'), confirmation is not
|
|
552
|
+
// possible — and per the BRC-100 contract callers retain the
|
|
553
|
+
// ability to abort offline. The fallback writes a forensic
|
|
554
|
+
// history note ('abortAction-offline-fallback') so an operator
|
|
555
|
+
// can grep for aborts that proceeded under uncertainty. This
|
|
556
|
+
// hole can never be 100% closed against externally-broadcast
|
|
557
|
+
// chain-confirmed txs while offline; the audit trail makes it
|
|
558
|
+
// recoverable.
|
|
559
|
+
if (tx.txid != null && tx.txid !== '' && tx.status === 'nosend' && tx.noSendExpiryState == null) {
|
|
560
|
+
if (chainObservation == null ||
|
|
561
|
+
chainObservation.transactionId !== tx.transactionId ||
|
|
562
|
+
chainObservation.txid !== tx.txid) {
|
|
563
|
+
return { __abortAction: 'retry-chain-check' };
|
|
564
|
+
}
|
|
565
|
+
if (chainObservation.chainStatus === 'mined' || chainObservation.chainStatus === 'known') {
|
|
566
|
+
const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
|
|
567
|
+
if (req != null) {
|
|
568
|
+
req.addHistoryNote({
|
|
569
|
+
what: 'abortAction-skipped-onchain',
|
|
570
|
+
reference: args.reference,
|
|
571
|
+
chainStatus: chainObservation.chainStatus
|
|
572
|
+
});
|
|
573
|
+
await req.updateStorageDynamicProperties(this, trx);
|
|
574
|
+
}
|
|
575
|
+
// Commit the audit note before translating this sentinel to aborted:false.
|
|
576
|
+
return { __abortAction: 'skipped-onchain' };
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
return await this.invalidateAbortedTransaction(tx, userId, reference, args.reference, chainObservation?.serviceUnreachable ?? false, trx);
|
|
580
|
+
});
|
|
581
|
+
if (!('__abortAction' in r) || r.__abortAction !== 'retry-chain-check')
|
|
582
|
+
break;
|
|
583
|
+
}
|
|
584
|
+
if (r == null || ('__abortAction' in r && r.__abortAction === 'retry-chain-check')) {
|
|
585
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('Action changed while its chain status was being checked; retry abortAction');
|
|
586
|
+
}
|
|
533
587
|
if ('__abortAction' in r) {
|
|
534
588
|
if (r.__abortAction === 'brc177-reclaim-requested') {
|
|
535
589
|
await (0, noSendExpiryLifecycle_1.processNoSendExpiryLifecycle)(this).catch(() => undefined);
|
|
@@ -537,7 +591,8 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
537
591
|
partial: { transactionId: r.transactionId },
|
|
538
592
|
noRawTx: true
|
|
539
593
|
}));
|
|
540
|
-
if (current.noSendExpiryState === 'broadcast' ||
|
|
594
|
+
if (current.noSendExpiryState === 'broadcast' ||
|
|
595
|
+
current.noSendExpiryState === 'target-won' ||
|
|
541
596
|
current.noSendExpiryState === 'conflicted') {
|
|
542
597
|
return { aborted: false };
|
|
543
598
|
}
|
|
@@ -605,6 +660,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
605
660
|
}
|
|
606
661
|
catch (error_) {
|
|
607
662
|
const e = WalletError_1.WalletError.fromUnknown(error_);
|
|
663
|
+
d.status = 'error';
|
|
608
664
|
d.error = `${e.name}: ${e.message}`;
|
|
609
665
|
}
|
|
610
666
|
}
|
|
@@ -836,7 +892,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
836
892
|
if (chainTracker != null) {
|
|
837
893
|
const root = mp.computeRoot();
|
|
838
894
|
const isValid = await chainTracker.isValidRootForHeight(root, proven.height);
|
|
839
|
-
if (
|
|
895
|
+
if (isValid !== true) {
|
|
840
896
|
if (skipInvalidProofs !== true)
|
|
841
897
|
throw new WERR_errors_1.WERR_INVALID_MERKLE_ROOT(proven.blockHash, proven.height, root, txid);
|
|
842
898
|
// Proof is currently invalid — recurse deeper via rawTx path
|
|
@@ -888,9 +944,10 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
888
944
|
return (0, utilityHelpers_1.verifyOneOrNone)(await this.findMonitorEvents({ partial: { id }, trx }));
|
|
889
945
|
}
|
|
890
946
|
async relinquishCertificate(auth, args) {
|
|
891
|
-
const vargs =
|
|
947
|
+
const vargs = (0, validationHelpers_1.validateRelinquishCertificateArgs)(args);
|
|
892
948
|
const cert = (0, utilityHelpers_1.verifyOne)(await this.findCertificates({
|
|
893
949
|
partial: {
|
|
950
|
+
userId: auth.userId,
|
|
894
951
|
certifier: vargs.certifier,
|
|
895
952
|
serialNumber: vargs.serialNumber,
|
|
896
953
|
type: vargs.type
|
|
@@ -901,8 +958,8 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
901
958
|
});
|
|
902
959
|
}
|
|
903
960
|
async relinquishOutput(auth, args) {
|
|
904
|
-
const vargs =
|
|
905
|
-
const { txid, vout } =
|
|
961
|
+
const vargs = (0, validationHelpers_1.validateRelinquishOutputArgs)(args);
|
|
962
|
+
const { txid, vout } = (0, validationHelpers_1.parseWalletOutpoint)(vargs.output);
|
|
906
963
|
const output = (0, utilityHelpers_1.verifyOne)(await this.findOutputs({ partial: { userId: auth.userId, txid, vout } }));
|
|
907
964
|
return await this.updateOutput(output.outputId, { basketId: undefined });
|
|
908
965
|
}
|
|
@@ -935,13 +992,30 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
935
992
|
return await this.transaction(async (trx) => {
|
|
936
993
|
const user = (0, utilityHelpers_1.verifyTruthy)((0, utilityHelpers_1.verifyOneOrNone)(await this.findUsers({ partial: { identityKey: args.identityKey }, trx })));
|
|
937
994
|
const ss = new entities_1.EntitySyncState((0, utilityHelpers_1.verifyOne)(await this.findSyncStates({
|
|
938
|
-
partial:
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
995
|
+
partial: args.syncStateId == null
|
|
996
|
+
? {
|
|
997
|
+
storageIdentityKey: args.fromStorageIdentityKey,
|
|
998
|
+
userId: user.userId
|
|
999
|
+
}
|
|
1000
|
+
: {
|
|
1001
|
+
syncStateId: args.syncStateId,
|
|
1002
|
+
storageIdentityKey: args.fromStorageIdentityKey,
|
|
1003
|
+
userId: user.userId
|
|
1004
|
+
},
|
|
942
1005
|
trx
|
|
943
1006
|
})));
|
|
944
|
-
|
|
1007
|
+
if (args.requireMatchingCheckpoint === true) {
|
|
1008
|
+
const checkpoint = ss.makeSyncCheckpoint();
|
|
1009
|
+
const sameSince = (checkpoint.since == null ? undefined : new Date(checkpoint.since).getTime()) ===
|
|
1010
|
+
(args.since == null ? undefined : new Date(args.since).getTime());
|
|
1011
|
+
if (!sameSince ||
|
|
1012
|
+
checkpoint.offsets.length !== args.offsets.length ||
|
|
1013
|
+
checkpoint.offsets.some((entry, index) => entry.name !== args.offsets[index]?.name || entry.offset !== args.offsets[index]?.offset)) {
|
|
1014
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('Wallet sync checkpoint changed; resume from its durable state before retrying');
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
const result = await ss.processSyncChunk(this, args, chunk, trx);
|
|
1018
|
+
return args.includeNextCheckpoint === true ? { ...result, nextCheckpoint: ss.makeSyncCheckpoint() } : result;
|
|
945
1019
|
});
|
|
946
1020
|
}
|
|
947
1021
|
/**
|
|
@@ -957,8 +1031,11 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
957
1031
|
*
|
|
958
1032
|
* Alterations of "typically" to handle:
|
|
959
1033
|
*/
|
|
960
|
-
async updateProvenTxReqWithNewProvenTx(args) {
|
|
1034
|
+
async updateProvenTxReqWithNewProvenTx(args, validatedCandidate) {
|
|
961
1035
|
const req = await entities_1.EntityProvenTxReq.fromStorageId(this, args.provenTxReqId);
|
|
1036
|
+
if (req.txid.toLowerCase() !== args.txid.toLowerCase()) {
|
|
1037
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.txid', 'the transaction id of the selected proof request');
|
|
1038
|
+
}
|
|
962
1039
|
let proven;
|
|
963
1040
|
if (req.provenTxId != null && req.provenTxId > 0) {
|
|
964
1041
|
// Someone beat us to it, grab what we need for results...
|
|
@@ -970,19 +1047,20 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
970
1047
|
}
|
|
971
1048
|
}
|
|
972
1049
|
else {
|
|
1050
|
+
const candidate = validatedCandidate ?? {
|
|
1051
|
+
created_at: new Date(),
|
|
1052
|
+
updated_at: new Date(),
|
|
1053
|
+
provenTxId: 0,
|
|
1054
|
+
txid: args.txid,
|
|
1055
|
+
height: args.height,
|
|
1056
|
+
index: args.index,
|
|
1057
|
+
merklePath: args.merklePath,
|
|
1058
|
+
rawTx: req.rawTx,
|
|
1059
|
+
blockHash: args.blockHash,
|
|
1060
|
+
merkleRoot: args.merkleRoot
|
|
1061
|
+
};
|
|
973
1062
|
proven = await this.transaction(async (trx) => {
|
|
974
|
-
const { proven: api } = await this.findOrInsertProvenTx(
|
|
975
|
-
created_at: new Date(),
|
|
976
|
-
updated_at: new Date(),
|
|
977
|
-
provenTxId: 0,
|
|
978
|
-
txid: args.txid,
|
|
979
|
-
height: args.height,
|
|
980
|
-
index: args.index,
|
|
981
|
-
merklePath: args.merklePath,
|
|
982
|
-
rawTx: req.rawTx,
|
|
983
|
-
blockHash: args.blockHash,
|
|
984
|
-
merkleRoot: args.merkleRoot
|
|
985
|
-
}, trx);
|
|
1063
|
+
const { proven: api } = await this.findOrInsertProvenTx(candidate, trx);
|
|
986
1064
|
const found = new entities_1.EntityProvenTx(api);
|
|
987
1065
|
if (req.status !== 'completed' || req.provenTxId !== found.provenTxId) {
|
|
988
1066
|
req.status = 'completed';
|
|
@@ -1002,6 +1080,34 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
1002
1080
|
};
|
|
1003
1081
|
return r;
|
|
1004
1082
|
}
|
|
1083
|
+
/** Authorize and validate remote proof completion before mutating shared proof state. */
|
|
1084
|
+
async updateProvenTxReqWithNewProvenTxAuth(auth, args) {
|
|
1085
|
+
const userId = (0, utilityHelpers_1.verifyId)(auth.userId);
|
|
1086
|
+
const req = await entities_1.EntityProvenTxReq.fromStorageId(this, args.provenTxReqId);
|
|
1087
|
+
if (req.txid.toLowerCase() !== args.txid.toLowerCase()) {
|
|
1088
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.txid', 'the transaction id of the selected proof request');
|
|
1089
|
+
}
|
|
1090
|
+
const ownedTransactions = await this.countTransactions({
|
|
1091
|
+
partial: { userId, txid: req.txid }
|
|
1092
|
+
});
|
|
1093
|
+
if (ownedTransactions === 0) {
|
|
1094
|
+
throw new WERR_errors_1.WERR_UNAUTHORIZED('The proof request does not belong to the authenticated wallet.');
|
|
1095
|
+
}
|
|
1096
|
+
const candidate = {
|
|
1097
|
+
created_at: new Date(),
|
|
1098
|
+
updated_at: new Date(),
|
|
1099
|
+
provenTxId: 0,
|
|
1100
|
+
txid: args.txid,
|
|
1101
|
+
height: args.height,
|
|
1102
|
+
index: args.index,
|
|
1103
|
+
merklePath: args.merklePath,
|
|
1104
|
+
rawTx: req.rawTx,
|
|
1105
|
+
blockHash: args.blockHash,
|
|
1106
|
+
merkleRoot: args.merkleRoot
|
|
1107
|
+
};
|
|
1108
|
+
await (0, validateSyncProof_1.validateSyncProof)(this, candidate);
|
|
1109
|
+
return await this.updateProvenTxReqWithNewProvenTx(args, candidate);
|
|
1110
|
+
}
|
|
1005
1111
|
/**
|
|
1006
1112
|
* Reconcile completed proof requests whose transaction fan-out previously
|
|
1007
1113
|
* failed or whose durable notification state drifted.
|
|
@@ -1057,9 +1163,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
1057
1163
|
// Leave the output's current state unchanged when no UTXO service can
|
|
1058
1164
|
// answer conclusively; the validated proof still repairs transaction
|
|
1059
1165
|
// and consumed-input state.
|
|
1060
|
-
verdicts.set(outputId, classification.verdict === 'unknown'
|
|
1061
|
-
? undefined
|
|
1062
|
-
: classification.verdict === 'unspent');
|
|
1166
|
+
verdicts.set(outputId, classification.verdict === 'unknown' ? undefined : classification.verdict === 'unspent');
|
|
1063
1167
|
}
|
|
1064
1168
|
}
|
|
1065
1169
|
return verdicts;
|
|
@@ -1105,18 +1209,14 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
1105
1209
|
}
|
|
1106
1210
|
const isUtxo = outputVerdicts.get(outputId);
|
|
1107
1211
|
if (isUtxo == null) {
|
|
1108
|
-
log +=
|
|
1109
|
-
' '.repeat(indent + 2) +
|
|
1110
|
-
`output ${output.outputId} does not have a valid locking script\n`;
|
|
1212
|
+
log += ' '.repeat(indent + 2) + `output ${output.outputId} does not have a valid locking script\n`;
|
|
1111
1213
|
continue;
|
|
1112
1214
|
}
|
|
1113
1215
|
if (isUtxo === output.spendable) {
|
|
1114
1216
|
log += ' '.repeat(indent + 2) + `output ${output.outputId} unchanged\n`;
|
|
1115
1217
|
continue;
|
|
1116
1218
|
}
|
|
1117
|
-
log +=
|
|
1118
|
-
' '.repeat(indent + 2) +
|
|
1119
|
-
`output ${output.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
|
|
1219
|
+
log += ' '.repeat(indent + 2) + `output ${output.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
|
|
1120
1220
|
await this.updateOutput(outputId, { spendable: isUtxo }, trx);
|
|
1121
1221
|
}
|
|
1122
1222
|
return log;
|
|
@@ -1126,8 +1226,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
1126
1226
|
throw new WERR_errors_1.WERR_INTERNAL(`Transaction ${tx.transactionId} changed while preparing proof recovery.`);
|
|
1127
1227
|
}
|
|
1128
1228
|
await this.updateTransaction(tx.transactionId, { status: 'unproven' }, trx);
|
|
1129
|
-
let log = ' '.repeat(indent) +
|
|
1130
|
-
`transaction ${tx.transactionId} status is now 'unproven'\n`;
|
|
1229
|
+
let log = ' '.repeat(indent) + `transaction ${tx.transactionId} status is now 'unproven'\n`;
|
|
1131
1230
|
log += await this.restoreProofRecoveryInputs(tx, bsvtx, indent, trx);
|
|
1132
1231
|
log += await this.restoreProofRecoveryOutputs(tx, outputVerdicts, indent, trx);
|
|
1133
1232
|
return log;
|