@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
|
@@ -4,9 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.WhatsOnChain = exports.WhatsOnChainNoServices = void 0;
|
|
7
|
+
exports.validateWocChainInfo = validateWocChainInfo;
|
|
7
8
|
exports.convertWocToBlockHeaderHex = convertWocToBlockHeaderHex;
|
|
8
9
|
exports.getWhatsOnChainBlockHeaderByHash = getWhatsOnChainBlockHeaderByHash;
|
|
9
10
|
const sdk_1 = require("@bsv/sdk");
|
|
11
|
+
const utils_1 = require("@bsv/sdk/primitives/utils");
|
|
10
12
|
const tscProofToMerklePath_1 = require("../../utility/tscProofToMerklePath");
|
|
11
13
|
const SdkWhatsOnChain_1 = __importDefault(require("./SdkWhatsOnChain"));
|
|
12
14
|
const WERR_errors_1 = require("../../sdk/WERR_errors");
|
|
@@ -15,17 +17,106 @@ const utilityHelpers_1 = require("../../utility/utilityHelpers");
|
|
|
15
17
|
const utilityHelpers_noBuffer_1 = require("../../utility/utilityHelpers.noBuffer");
|
|
16
18
|
const Services_1 = require("../Services");
|
|
17
19
|
const whatsOnChainHelpers_1 = require("./whatsOnChainHelpers");
|
|
20
|
+
const blockHeaderUtilities_1 = require("../chaintracker/chaintracks/util/blockHeaderUtilities");
|
|
21
|
+
const validateMerklePathResult_1 = require("../validateMerklePathResult");
|
|
22
|
+
const validateStatusForTxidsResult_1 = require("../validateStatusForTxidsResult");
|
|
23
|
+
const validateRawTxResult_1 = require("../validateRawTxResult");
|
|
24
|
+
const validateUtxoStatusResult_1 = require("../validateUtxoStatusResult");
|
|
25
|
+
const validateScriptHashHistoryResult_1 = require("../validateScriptHashHistoryResult");
|
|
26
|
+
const validatePostBeefResult_1 = require("../validatePostBeefResult");
|
|
27
|
+
const HEX_32_BYTES = /^[0-9a-fA-F]{64}$/;
|
|
28
|
+
const UINT32_MAX = 0xffffffff;
|
|
29
|
+
const MAX_BLOCK_HEIGHT = 0x7fffffff;
|
|
30
|
+
function requirePlainDataRecord(value, name) {
|
|
31
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value)) {
|
|
32
|
+
throw new Error(`${name} must be a plain data object.`);
|
|
33
|
+
}
|
|
34
|
+
const prototype = Object.getPrototypeOf(value);
|
|
35
|
+
if (prototype !== Object.prototype && prototype !== null) {
|
|
36
|
+
throw new Error(`${name} must be a plain data object.`);
|
|
37
|
+
}
|
|
38
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
39
|
+
if (Object.getOwnPropertySymbols(value).length !== 0 ||
|
|
40
|
+
Object.keys(descriptors).length > 64 ||
|
|
41
|
+
Object.values(descriptors).some(d => d.get != null || d.set != null)) {
|
|
42
|
+
throw new Error(`${name} must contain only bounded data properties.`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function requireDenseWocArray(value, name) {
|
|
46
|
+
if (!Array.isArray(value) || value.length > validateUtxoStatusResult_1.MAX_UTXO_STATUS_DETAILS) {
|
|
47
|
+
throw new Error(`${name} must be a bounded dense array.`);
|
|
48
|
+
}
|
|
49
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
50
|
+
if (Object.getOwnPropertySymbols(value).length !== 0 ||
|
|
51
|
+
Object.values(descriptors).some(descriptor => descriptor.get != null || descriptor.set != null)) {
|
|
52
|
+
throw new Error(`${name} must be a bounded dense array.`);
|
|
53
|
+
}
|
|
54
|
+
const expectedKeys = new Set(['length', ...Array.from({ length: value.length }, (_, index) => String(index))]);
|
|
55
|
+
if (Object.keys(descriptors).some(key => !expectedKeys.has(key)) ||
|
|
56
|
+
Object.keys(descriptors).length !== expectedKeys.size) {
|
|
57
|
+
throw new Error(`${name} must be a bounded dense array.`);
|
|
58
|
+
}
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
function requireInteger(value, name, maximum) {
|
|
62
|
+
if (!Number.isSafeInteger(value) || value < 0 || value > maximum) {
|
|
63
|
+
throw new Error(`${name} must be an integer between 0 and ${maximum}.`);
|
|
64
|
+
}
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
function requireFiniteNumber(value, name, maximum = Number.MAX_VALUE) {
|
|
68
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value < 0 || value > maximum) {
|
|
69
|
+
throw new Error(`${name} must be a finite non-negative number.`);
|
|
70
|
+
}
|
|
71
|
+
return value;
|
|
72
|
+
}
|
|
73
|
+
function requireHex32(value, name) {
|
|
74
|
+
if (typeof value !== 'string' || !HEX_32_BYTES.test(value))
|
|
75
|
+
throw new Error(`${name} must be 32 hex bytes.`);
|
|
76
|
+
return value.toLowerCase();
|
|
77
|
+
}
|
|
78
|
+
function requireHeaderBits(value) {
|
|
79
|
+
if (typeof value === 'string') {
|
|
80
|
+
if (!/^[0-9a-fA-F]{1,8}$/.test(value))
|
|
81
|
+
throw new Error('WhatsOnChain header bits are invalid.');
|
|
82
|
+
return Number.parseInt(value, 16);
|
|
83
|
+
}
|
|
84
|
+
return requireInteger(value, 'WhatsOnChain header bits', UINT32_MAX);
|
|
85
|
+
}
|
|
86
|
+
function validateWocChainInfo(value, expectedChain) {
|
|
87
|
+
requirePlainDataRecord(value, 'WhatsOnChain chain info');
|
|
88
|
+
if (value.chain !== expectedChain) {
|
|
89
|
+
throw new Error(`WhatsOnChain returned chain ${String(value.chain)} for configured chain ${expectedChain}.`);
|
|
90
|
+
}
|
|
91
|
+
if (typeof value.pruned !== 'boolean')
|
|
92
|
+
throw new Error('WhatsOnChain chain info pruned must be boolean.');
|
|
93
|
+
return {
|
|
94
|
+
chain: value.chain,
|
|
95
|
+
blocks: requireInteger(value.blocks, 'WhatsOnChain chain info blocks', MAX_BLOCK_HEIGHT),
|
|
96
|
+
headers: requireInteger(value.headers, 'WhatsOnChain chain info headers', MAX_BLOCK_HEIGHT),
|
|
97
|
+
bestblockhash: requireHex32(value.bestblockhash, 'WhatsOnChain chain info bestblockhash'),
|
|
98
|
+
difficulty: requireFiniteNumber(value.difficulty, 'WhatsOnChain chain info difficulty'),
|
|
99
|
+
mediantime: requireInteger(value.mediantime, 'WhatsOnChain chain info mediantime', UINT32_MAX),
|
|
100
|
+
verificationprogress: requireFiniteNumber(value.verificationprogress, 'WhatsOnChain chain info verificationprogress', 2),
|
|
101
|
+
pruned: value.pruned,
|
|
102
|
+
chainwork: requireHex32(value.chainwork, 'WhatsOnChain chain info chainwork')
|
|
103
|
+
};
|
|
104
|
+
}
|
|
18
105
|
class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
19
106
|
requestGate;
|
|
20
107
|
constructor(chain = 'main', config = {}) {
|
|
21
108
|
if (chain === 'mock')
|
|
22
109
|
throw new Error("WhatsOnChain does not support 'mock' chain. Use MockServices directly.");
|
|
23
110
|
super(chain, config);
|
|
24
|
-
|
|
111
|
+
const requestGate = Object.getOwnPropertyDescriptor(config, 'requestGate')?.value;
|
|
112
|
+
if (requestGate !== undefined && typeof requestGate !== 'function') {
|
|
113
|
+
throw new Error('WhatsOnChain request gate must be a function or absent.');
|
|
114
|
+
}
|
|
115
|
+
this.requestGate = requestGate;
|
|
25
116
|
}
|
|
26
117
|
async requestWithAnonymousAuthFallback(url, requestOptions) {
|
|
27
118
|
await this.requestGate?.();
|
|
28
|
-
const response = await this.
|
|
119
|
+
const response = await this.request(url, requestOptions);
|
|
29
120
|
if ((response.status !== 401 && response.status !== 403) || this.apiKey.trim() === '') {
|
|
30
121
|
return response;
|
|
31
122
|
}
|
|
@@ -35,7 +126,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
35
126
|
await this.requestGate();
|
|
36
127
|
else
|
|
37
128
|
await (0, utilityHelpers_1.wait)(350);
|
|
38
|
-
return await this.
|
|
129
|
+
return await this.request(url, {
|
|
39
130
|
method: 'GET',
|
|
40
131
|
headers: { Accept: 'application/json' }
|
|
41
132
|
});
|
|
@@ -62,6 +153,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
62
153
|
* [{"txid":"6815f8014db74eab8b7f75925c68929597f1d97efa970109d990824c25e5e62c","error":"unknown"}]
|
|
63
154
|
*/
|
|
64
155
|
async getStatusForTxids(txids) {
|
|
156
|
+
const normalizedTxids = txids.map((txid, index) => (0, validateMerklePathResult_1.normalizeTxid)(txid, `txids[${index}]`));
|
|
65
157
|
const r = {
|
|
66
158
|
name: 'WoC',
|
|
67
159
|
status: 'error',
|
|
@@ -71,21 +163,20 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
71
163
|
const requestOptions = {
|
|
72
164
|
method: 'POST',
|
|
73
165
|
headers: this.getHttpHeaders(),
|
|
74
|
-
data: { txids }
|
|
166
|
+
data: { txids: normalizedTxids }
|
|
75
167
|
};
|
|
76
168
|
const url = `${this.URL}/txs/status`;
|
|
77
169
|
try {
|
|
78
|
-
const response = await this.
|
|
170
|
+
const response = await this.request(url, requestOptions);
|
|
79
171
|
if (!response.data || !response.ok || response.status !== 200) {
|
|
80
172
|
throw new WERR_errors_1.WERR_INVALID_OPERATION('Unable to get status for txids at this timei.');
|
|
81
173
|
}
|
|
82
174
|
const data = response.data;
|
|
83
|
-
for (const txid of
|
|
175
|
+
for (const txid of normalizedTxids) {
|
|
84
176
|
const d = data.find(d => d.txid === txid);
|
|
85
177
|
if (d == null || d.error === 'unknown')
|
|
86
178
|
r.results.push({ txid, status: 'unknown', depth: undefined });
|
|
87
179
|
else if (d.error !== undefined) {
|
|
88
|
-
console.log(`WhatsOnChain getStatusForTxids unexpected error ${d.error} ${txid}`);
|
|
89
180
|
r.results.push({ txid, status: 'unknown', depth: undefined });
|
|
90
181
|
}
|
|
91
182
|
else if (d.confirmations === undefined)
|
|
@@ -94,10 +185,13 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
94
185
|
r.results.push({ txid, status: 'mined', depth: d.confirmations });
|
|
95
186
|
}
|
|
96
187
|
r.status = 'success';
|
|
188
|
+
return (0, validateStatusForTxidsResult_1.validateStatusForTxidsResult)(r, normalizedTxids, r.name);
|
|
97
189
|
}
|
|
98
190
|
catch (error_) {
|
|
99
191
|
const e = WalletError_1.WalletError.fromUnknown(error_);
|
|
192
|
+
r.status = 'error';
|
|
100
193
|
r.error = e;
|
|
194
|
+
r.results = [];
|
|
101
195
|
}
|
|
102
196
|
return r;
|
|
103
197
|
}
|
|
@@ -111,7 +205,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
111
205
|
method: 'GET',
|
|
112
206
|
headers: this.getHttpHeaders()
|
|
113
207
|
};
|
|
114
|
-
const response = await this.
|
|
208
|
+
const response = await this.request(`${this.URL}/tx/hash/${txid}/propagation`, requestOptions);
|
|
115
209
|
// response.statusText is often, but not always 'OK' on success...
|
|
116
210
|
if (!response.data || !response.ok || response.status !== 200) {
|
|
117
211
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('txid', `valid transaction. '${txid}' response ${response.statusText}`);
|
|
@@ -124,15 +218,16 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
124
218
|
* @returns raw transaction as hex string or undefined if txid not found in mined block.
|
|
125
219
|
*/
|
|
126
220
|
async getRawTx(txid) {
|
|
221
|
+
const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
|
|
127
222
|
const headers = this.getHttpHeaders();
|
|
128
223
|
headers['Cache-Control'] = 'no-cache';
|
|
129
224
|
const requestOptions = {
|
|
130
225
|
method: 'GET',
|
|
131
226
|
headers
|
|
132
227
|
};
|
|
133
|
-
const url = `${this.URL}/tx/${
|
|
228
|
+
const url = `${this.URL}/tx/${normalizedTxid}/hex`;
|
|
134
229
|
for (let retry = 0; retry < 2; retry++) {
|
|
135
|
-
const response = await this.
|
|
230
|
+
const response = await this.request(url, requestOptions);
|
|
136
231
|
if (response.statusText === 'Too Many Requests' && retry < 2) {
|
|
137
232
|
await (0, utilityHelpers_1.wait)(2000);
|
|
138
233
|
continue;
|
|
@@ -143,21 +238,28 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
143
238
|
if (!response.data || !response.ok || response.status !== 200) {
|
|
144
239
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('txid', `valid transaction. '${txid}' response ${response.statusText}`);
|
|
145
240
|
}
|
|
146
|
-
|
|
241
|
+
if (response.data.length === 0 ||
|
|
242
|
+
response.data.length > validateRawTxResult_1.MAX_RAW_TRANSACTION_BYTES * 2 ||
|
|
243
|
+
response.data.length % 2 !== 0 ||
|
|
244
|
+
!/^[0-9a-fA-F]+$/.test(response.data)) {
|
|
245
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('WhatsOnChain returned malformed or excessive raw transaction data.');
|
|
246
|
+
}
|
|
247
|
+
return response.data.toLowerCase();
|
|
147
248
|
}
|
|
148
249
|
throw new WERR_errors_1.WERR_INTERNAL();
|
|
149
250
|
}
|
|
150
251
|
async getRawTxResult(txid) {
|
|
151
|
-
const
|
|
252
|
+
const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
|
|
253
|
+
const r = { name: 'WoC', txid: normalizedTxid };
|
|
152
254
|
try {
|
|
153
|
-
const rawTxHex = await this.getRawTx(
|
|
255
|
+
const rawTxHex = await this.getRawTx(normalizedTxid);
|
|
154
256
|
if (rawTxHex)
|
|
155
257
|
r.rawTx = (0, utilityHelpers_noBuffer_1.asArray)(rawTxHex);
|
|
156
258
|
}
|
|
157
259
|
catch (err) {
|
|
158
260
|
r.error = WalletError_1.WalletError.fromUnknown(err);
|
|
159
261
|
}
|
|
160
|
-
return r;
|
|
262
|
+
return (0, validateRawTxResult_1.validateRawTxResult)(r, normalizedTxid, 'WoC');
|
|
161
263
|
}
|
|
162
264
|
/**
|
|
163
265
|
* WhatsOnChain does not natively support a postBeef end-point aware of multiple txids of interest in the Beef.
|
|
@@ -169,6 +271,9 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
169
271
|
* @returns
|
|
170
272
|
*/
|
|
171
273
|
async postBeef(beef, txids) {
|
|
274
|
+
const request = (0, validatePostBeefResult_1.snapshotPostBeefRequest)(beef, txids);
|
|
275
|
+
beef = sdk_1.Beef.fromBinaryStrict(request.beefBytes);
|
|
276
|
+
txids = request.txids;
|
|
172
277
|
const r = {
|
|
173
278
|
name: 'WoC',
|
|
174
279
|
status: 'success',
|
|
@@ -179,7 +284,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
179
284
|
const nn = () => ({ name: 'WoCpostBeef', when: new Date().toISOString() });
|
|
180
285
|
const nne = () => ({ ...nn(), beef: beef.toHex(), txids: txids.join(',') });
|
|
181
286
|
for (const txid of txids) {
|
|
182
|
-
const rawTx =
|
|
287
|
+
const rawTx = (0, utils_1.toHex)(beef.findTxid(txid).rawTx);
|
|
183
288
|
if (delay) {
|
|
184
289
|
// For multiple txids, give WoC time to propagate each one.
|
|
185
290
|
await (0, utilityHelpers_1.wait)(3000);
|
|
@@ -199,14 +304,15 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
199
304
|
else {
|
|
200
305
|
r.notes.push({ ...nne(), what: 'postBeefError' });
|
|
201
306
|
}
|
|
202
|
-
return r;
|
|
307
|
+
return (0, validatePostBeefResult_1.validatePostBeefResultOrServiceError)(r, txids, 'WoC');
|
|
203
308
|
}
|
|
204
309
|
/**
|
|
205
310
|
* @param rawTx raw transaction to broadcast as hex string
|
|
206
311
|
* @returns txid returned by transaction processor of transaction broadcast
|
|
207
312
|
*/
|
|
208
313
|
async postRawTx(rawTx) {
|
|
209
|
-
|
|
314
|
+
rawTx = (0, validatePostBeefResult_1.normalizePostRawHex)(rawTx, validateRawTxResult_1.MAX_RAW_TRANSACTION_BYTES);
|
|
315
|
+
const txid = (0, utils_1.toHex)((0, utilityHelpers_1.doubleSha256BE)((0, utils_1.toArray)(rawTx, 'hex')));
|
|
210
316
|
const r = {
|
|
211
317
|
txid,
|
|
212
318
|
status: 'success',
|
|
@@ -226,7 +332,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
226
332
|
const retryLimit = 5;
|
|
227
333
|
for (let retry = 0; retry < retryLimit; retry++) {
|
|
228
334
|
try {
|
|
229
|
-
const response = await this.
|
|
335
|
+
const response = await this.request(url, requestOptions);
|
|
230
336
|
if (response.statusText === 'Too Many Requests' && retry < 2) {
|
|
231
337
|
r.notes.push({ ...nn(), what: 'postRawTxRateLimit' });
|
|
232
338
|
await (0, utilityHelpers_1.wait)(2000);
|
|
@@ -254,7 +360,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
254
360
|
r.serviceError = true;
|
|
255
361
|
r.data = `${e.code} ${e.description}`;
|
|
256
362
|
}
|
|
257
|
-
return r;
|
|
363
|
+
return (0, validatePostBeefResult_1.validatePostTxResultOrServiceError)(r, txid, 'WoC');
|
|
258
364
|
}
|
|
259
365
|
r.status = 'error';
|
|
260
366
|
r.serviceError = true;
|
|
@@ -263,7 +369,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
263
369
|
what: 'postRawTxRetryLimit',
|
|
264
370
|
retryLimit
|
|
265
371
|
});
|
|
266
|
-
return r;
|
|
372
|
+
return (0, validatePostBeefResult_1.validatePostTxResultOrServiceError)(r, txid, 'WoC');
|
|
267
373
|
}
|
|
268
374
|
async updateBsvExchangeRate(rate, updateMsecs) {
|
|
269
375
|
if (rate != null) {
|
|
@@ -277,7 +383,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
277
383
|
headers: this.getHttpHeaders()
|
|
278
384
|
};
|
|
279
385
|
for (let retry = 0; retry < 2; retry++) {
|
|
280
|
-
const response = await this.
|
|
386
|
+
const response = await this.request(`${this.URL}/exchangerate`, requestOptions);
|
|
281
387
|
if (response.statusText === 'Too Many Requests' && retry < 2) {
|
|
282
388
|
await (0, utilityHelpers_1.wait)(2000);
|
|
283
389
|
continue;
|
|
@@ -305,7 +411,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
305
411
|
const requestOptions = { method: 'GET', headers: this.getHttpHeaders() };
|
|
306
412
|
for (let retry = 0; retry <= 2; retry++) {
|
|
307
413
|
try {
|
|
308
|
-
const response = await this.
|
|
414
|
+
const response = await this.request(url, requestOptions);
|
|
309
415
|
if (response.statusText === 'Too Many Requests' && retry < 2) {
|
|
310
416
|
await (0, utilityHelpers_1.wait)(2000);
|
|
311
417
|
continue;
|
|
@@ -326,14 +432,27 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
326
432
|
throw new WERR_errors_1.WERR_INVALID_OPERATION(`WoC getUtxoStatus response ${response.statusText}`);
|
|
327
433
|
}
|
|
328
434
|
const data = response.data;
|
|
329
|
-
|
|
330
|
-
|
|
435
|
+
requirePlainDataRecord(data, 'WhatsOnChain UTXO status');
|
|
436
|
+
if (data.script !== scriptHash)
|
|
437
|
+
throw new WERR_errors_1.WERR_INTERNAL('WhatsOnChain UTXO status script hash mismatch');
|
|
438
|
+
const details = requireDenseWocArray(data.result, 'WhatsOnChain UTXO status result').map((candidate, index) => {
|
|
439
|
+
requirePlainDataRecord(candidate, `WhatsOnChain UTXO status result[${index}]`);
|
|
440
|
+
return {
|
|
441
|
+
txid: requireHex32(candidate.tx_hash, `WhatsOnChain UTXO status result[${index}].tx_hash`),
|
|
442
|
+
satoshis: requireInteger(candidate.value, `WhatsOnChain UTXO status result[${index}].value`, Number.MAX_SAFE_INTEGER),
|
|
443
|
+
height: requireInteger(candidate.height, `WhatsOnChain UTXO status result[${index}].height`, MAX_BLOCK_HEIGHT),
|
|
444
|
+
index: requireInteger(candidate.tx_pos, `WhatsOnChain UTXO status result[${index}].tx_pos`, UINT32_MAX)
|
|
445
|
+
};
|
|
446
|
+
});
|
|
447
|
+
const normalizedOutpoint = (0, validateUtxoStatusResult_1.normalizeWalletOutpoint)(outpoint);
|
|
331
448
|
r.status = 'success';
|
|
332
449
|
r.error = undefined;
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
450
|
+
r.details = details;
|
|
451
|
+
r.isUtxo =
|
|
452
|
+
normalizedOutpoint == null
|
|
453
|
+
? details.length > 0
|
|
454
|
+
: details.some(detail => `${detail.txid}.${detail.index}` === normalizedOutpoint);
|
|
455
|
+
Object.assign(r, (0, validateUtxoStatusResult_1.validateUtxoStatusResult)(r, normalizedOutpoint, 'WoC'));
|
|
337
456
|
}
|
|
338
457
|
async getScriptHashConfirmedHistory(hash) {
|
|
339
458
|
const r = {
|
|
@@ -342,32 +461,37 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
342
461
|
error: undefined,
|
|
343
462
|
history: []
|
|
344
463
|
};
|
|
345
|
-
//
|
|
346
|
-
hash =
|
|
464
|
+
// Convert the exact little-endian wallet hash to the big-endian WoC route.
|
|
465
|
+
hash = (0, Services_1.validateScriptHash)(hash, 'hashLE');
|
|
347
466
|
const url = `${this.URL}/script/${hash}/confirmed/history`;
|
|
348
467
|
const methodName = 'getScriptHashConfirmedHistory';
|
|
349
468
|
for (let retry = 0; retry <= 2; retry++) {
|
|
350
469
|
try {
|
|
351
470
|
const requestOptions = { method: 'GET', headers: this.getHttpHeaders() };
|
|
352
|
-
const response = await this.
|
|
471
|
+
const response = await this.request(url, requestOptions);
|
|
472
|
+
requirePlainDataRecord(response, 'WhatsOnChain script-history response');
|
|
473
|
+
if (response.data != null)
|
|
474
|
+
requirePlainDataRecord(response.data, 'WhatsOnChain script-history data');
|
|
353
475
|
const action = (0, whatsOnChainHelpers_1.handleScriptHashHistoryResponse)(r, response, methodName, retry);
|
|
354
476
|
if (action === 'continue') {
|
|
355
477
|
await (0, utilityHelpers_1.wait)(2000);
|
|
356
478
|
continue;
|
|
357
479
|
}
|
|
358
480
|
if (action === 'return')
|
|
359
|
-
return r;
|
|
360
|
-
r.history = response.data.result.map((
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
481
|
+
return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
|
|
482
|
+
r.history = requireDenseWocArray(response.data.result, 'WhatsOnChain confirmed script history').map((candidate, index) => {
|
|
483
|
+
requirePlainDataRecord(candidate, `WhatsOnChain confirmed script history[${index}]`);
|
|
484
|
+
const txid = requireHex32(candidate.tx_hash, `WhatsOnChain confirmed script history[${index}].tx_hash`);
|
|
485
|
+
const height = requireInteger(candidate.height, `WhatsOnChain confirmed script history[${index}].height`, MAX_BLOCK_HEIGHT);
|
|
486
|
+
return { txid, height };
|
|
487
|
+
});
|
|
364
488
|
r.status = 'success';
|
|
365
|
-
return r;
|
|
489
|
+
return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
|
|
366
490
|
}
|
|
367
491
|
catch (error_) {
|
|
368
492
|
const shouldRetry = (0, whatsOnChainHelpers_1.handleScriptHashHistoryCatch)(r, error_, url, methodName, retry, 2);
|
|
369
493
|
if (!shouldRetry)
|
|
370
|
-
return r;
|
|
494
|
+
return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
|
|
371
495
|
}
|
|
372
496
|
}
|
|
373
497
|
return r;
|
|
@@ -379,33 +503,40 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
379
503
|
error: undefined,
|
|
380
504
|
history: []
|
|
381
505
|
};
|
|
382
|
-
//
|
|
383
|
-
hash =
|
|
506
|
+
// Convert the exact little-endian wallet hash to the big-endian WoC route.
|
|
507
|
+
hash = (0, Services_1.validateScriptHash)(hash, 'hashLE');
|
|
384
508
|
const url = `${this.URL}/script/${hash}/unconfirmed/history`;
|
|
385
509
|
const methodName = 'getScriptHashUnconfirmedHistory';
|
|
386
510
|
for (let retry = 0;; retry++) {
|
|
387
511
|
try {
|
|
388
512
|
const requestOptions = { method: 'GET', headers: this.getHttpHeaders() };
|
|
389
|
-
const response = await this.
|
|
513
|
+
const response = await this.request(url, requestOptions);
|
|
514
|
+
requirePlainDataRecord(response, 'WhatsOnChain script-history response');
|
|
515
|
+
if (response.data != null)
|
|
516
|
+
requirePlainDataRecord(response.data, 'WhatsOnChain script-history data');
|
|
390
517
|
const action = (0, whatsOnChainHelpers_1.handleScriptHashHistoryResponse)(r, response, methodName, retry);
|
|
391
518
|
if (action === 'continue') {
|
|
392
519
|
await (0, utilityHelpers_1.wait)(2000);
|
|
393
520
|
continue;
|
|
394
521
|
}
|
|
395
522
|
if (action === 'return')
|
|
396
|
-
return r;
|
|
397
|
-
r.history = response.data.result.map((
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
523
|
+
return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
|
|
524
|
+
r.history = requireDenseWocArray(response.data.result, 'WhatsOnChain unconfirmed script history').map((candidate, index) => {
|
|
525
|
+
requirePlainDataRecord(candidate, `WhatsOnChain unconfirmed script history[${index}]`);
|
|
526
|
+
const txid = requireHex32(candidate.tx_hash, `WhatsOnChain unconfirmed script history[${index}].tx_hash`);
|
|
527
|
+
if (candidate.height !== undefined) {
|
|
528
|
+
requireInteger(candidate.height, `WhatsOnChain unconfirmed script history[${index}].height`, MAX_BLOCK_HEIGHT);
|
|
529
|
+
}
|
|
530
|
+
return candidate.height === undefined ? { txid } : { txid, height: candidate.height };
|
|
531
|
+
});
|
|
401
532
|
r.status = 'success';
|
|
402
|
-
return r;
|
|
533
|
+
return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
|
|
403
534
|
}
|
|
404
535
|
catch (error_) {
|
|
405
536
|
// Note: original used retry > 2 (not >= 2) for the unconfirmed variant
|
|
406
537
|
const shouldRetry = (0, whatsOnChainHelpers_1.handleScriptHashHistoryCatch)(r, error_, url, methodName, retry, 3);
|
|
407
538
|
if (!shouldRetry)
|
|
408
|
-
return r;
|
|
539
|
+
return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(r, 'WoC');
|
|
409
540
|
}
|
|
410
541
|
}
|
|
411
542
|
}
|
|
@@ -416,8 +547,7 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
416
547
|
const r2 = await this.getScriptHashUnconfirmedHistory(hash);
|
|
417
548
|
if (r2.error || r2.status !== 'success')
|
|
418
549
|
return r2;
|
|
419
|
-
|
|
420
|
-
return r1;
|
|
550
|
+
return (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)({ name: 'WoC', status: 'success', history: r1.history.concat(r2.history) }, 'WoC');
|
|
421
551
|
}
|
|
422
552
|
/**
|
|
423
553
|
{
|
|
@@ -441,12 +571,13 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
441
571
|
}
|
|
442
572
|
*/
|
|
443
573
|
async getBlockHeaderByHash(hash) {
|
|
574
|
+
const requestedHash = requireHex32(hash, 'hash');
|
|
444
575
|
const headers = this.getHttpHeaders();
|
|
445
576
|
const requestOptions = {
|
|
446
577
|
method: 'GET',
|
|
447
578
|
headers
|
|
448
579
|
};
|
|
449
|
-
const url = `${this.URL}/block/${
|
|
580
|
+
const url = `${this.URL}/block/${requestedHash}/header`;
|
|
450
581
|
for (let retry = 0; retry < 2; retry++) {
|
|
451
582
|
const response = await this.requestWithAnonymousAuthFallback(url, requestOptions);
|
|
452
583
|
if (response.statusText === 'Too Many Requests' && retry < 2) {
|
|
@@ -460,6 +591,9 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
460
591
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `valid block hash. '${hash}' response ${response.statusText}`);
|
|
461
592
|
}
|
|
462
593
|
const header = convertWocToBlockHeaderHex(response.data);
|
|
594
|
+
if (header.hash !== requestedHash) {
|
|
595
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `matching block hash. Expected '${requestedHash}', got '${header.hash}'.`);
|
|
596
|
+
}
|
|
463
597
|
return header;
|
|
464
598
|
}
|
|
465
599
|
throw new WERR_errors_1.WERR_INTERNAL();
|
|
@@ -481,7 +615,8 @@ class WhatsOnChainNoServices extends SdkWhatsOnChain_1.default {
|
|
|
481
615
|
if (!response.data || !response.ok || response.status !== 200) {
|
|
482
616
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `valid block hash. '${url}' response ${response.statusText}`);
|
|
483
617
|
}
|
|
484
|
-
|
|
618
|
+
const expectedChain = this.network === 'ttn' ? 'test' : this.network;
|
|
619
|
+
return validateWocChainInfo(response.data, expectedChain);
|
|
485
620
|
}
|
|
486
621
|
throw new WERR_errors_1.WERR_INTERNAL();
|
|
487
622
|
}
|
|
@@ -507,7 +642,7 @@ class WhatsOnChain extends WhatsOnChainNoServices {
|
|
|
507
642
|
const url = `${this.URL}/tx/${txid}/proof/tsc`;
|
|
508
643
|
for (let retry = 0; retry < 2; retry++) {
|
|
509
644
|
try {
|
|
510
|
-
const response = await this.
|
|
645
|
+
const response = await this.request(url, requestOptions);
|
|
511
646
|
const classification = (0, whatsOnChainHelpers_1.classifyMerklePathResponse)(response.status, response.statusText, retry);
|
|
512
647
|
if (classification === 'retry') {
|
|
513
648
|
r.notes.push((0, whatsOnChainHelpers_1.makeMerklePathNote)('getMerklePathRetry', name, { status: response.status, statusText: response.statusText }));
|
|
@@ -548,10 +683,19 @@ class WhatsOnChain extends WhatsOnChainNoServices {
|
|
|
548
683
|
if (response.data.length !== 1)
|
|
549
684
|
return;
|
|
550
685
|
const p = response.data[0];
|
|
551
|
-
const
|
|
686
|
+
const target = (0, validateMerklePathResult_1.normalizeTxid)(p.target, 'TSC proof target');
|
|
687
|
+
const header = await services.hashToHeader(target);
|
|
552
688
|
if (header) {
|
|
553
|
-
|
|
554
|
-
|
|
689
|
+
if ((0, validateMerklePathResult_1.normalizeTxid)(header.hash, 'TSC proof header hash') !== target) {
|
|
690
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('blockhash', 'the requested canonical block header');
|
|
691
|
+
}
|
|
692
|
+
const candidate = {
|
|
693
|
+
merklePath: (0, tscProofToMerklePath_1.convertProofToMerklePath)(txid, { index: p.index, nodes: p.nodes, height: header.height }),
|
|
694
|
+
header
|
|
695
|
+
};
|
|
696
|
+
const validated = (0, validateMerklePathResult_1.validateMerklePathResult)(txid, candidate);
|
|
697
|
+
r.merklePath = validated.merklePath;
|
|
698
|
+
r.header = validated.header;
|
|
555
699
|
r.notes.push((0, whatsOnChainHelpers_1.makeMerklePathNote)('getMerklePathSuccess', name, { status: response.status, statusText: response.statusText }));
|
|
556
700
|
}
|
|
557
701
|
else {
|
|
@@ -566,20 +710,28 @@ class WhatsOnChain extends WhatsOnChainNoServices {
|
|
|
566
710
|
}
|
|
567
711
|
exports.WhatsOnChain = WhatsOnChain;
|
|
568
712
|
function convertWocToBlockHeaderHex(woc) {
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
713
|
+
requirePlainDataRecord(woc, 'WhatsOnChain header');
|
|
714
|
+
const height = requireInteger(woc.height, 'WhatsOnChain header height', MAX_BLOCK_HEIGHT);
|
|
715
|
+
const previousHash = woc.previousblockhash == null || woc.previousblockhash === ''
|
|
716
|
+
? height === 0
|
|
717
|
+
? '0'.repeat(64)
|
|
718
|
+
: (() => {
|
|
719
|
+
throw new Error('WhatsOnChain header previousblockhash is missing for a non-genesis header.');
|
|
720
|
+
})()
|
|
721
|
+
: requireHex32(woc.previousblockhash, 'WhatsOnChain header previousblockhash');
|
|
722
|
+
const header = {
|
|
723
|
+
version: requireInteger(woc.version, 'WhatsOnChain header version', UINT32_MAX),
|
|
724
|
+
previousHash,
|
|
725
|
+
merkleRoot: requireHex32(woc.merkleroot, 'WhatsOnChain header merkleroot'),
|
|
726
|
+
time: requireInteger(woc.time, 'WhatsOnChain header time', UINT32_MAX),
|
|
727
|
+
bits: requireHeaderBits(woc.bits),
|
|
728
|
+
nonce: requireInteger(woc.nonce, 'WhatsOnChain header nonce', UINT32_MAX),
|
|
729
|
+
hash: requireHex32(woc.hash, 'WhatsOnChain header hash'),
|
|
730
|
+
height
|
|
582
731
|
};
|
|
732
|
+
(0, blockHeaderUtilities_1.validateHeaderFormat)(header);
|
|
733
|
+
(0, blockHeaderUtilities_1.validateHeaderProofOfWork)(header);
|
|
734
|
+
return header;
|
|
583
735
|
}
|
|
584
736
|
async function getWhatsOnChainBlockHeaderByHash(hash, chain = 'main', apiKey) {
|
|
585
737
|
const config = apiKey ? { apiKey } : {};
|