@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,6 +4,7 @@ exports.Services = void 0;
|
|
|
4
4
|
exports.validateScriptHash = validateScriptHash;
|
|
5
5
|
exports.toBinaryBaseBlockHeader = toBinaryBaseBlockHeader;
|
|
6
6
|
const sdk_1 = require("@bsv/sdk");
|
|
7
|
+
const utils_1 = require("@bsv/sdk/primitives/utils");
|
|
7
8
|
const ServiceCollection_1 = require("./ServiceCollection");
|
|
8
9
|
const createDefaultWalletServicesOptions_1 = require("./createDefaultWalletServicesOptions");
|
|
9
10
|
const WhatsOnChain_1 = require("./providers/WhatsOnChain");
|
|
@@ -18,7 +19,27 @@ const WalletError_1 = require("../sdk/WalletError");
|
|
|
18
19
|
const utilityHelpers_1 = require("../utility/utilityHelpers");
|
|
19
20
|
const utilityHelpers_noBuffer_1 = require("../utility/utilityHelpers.noBuffer");
|
|
20
21
|
const classifyOutputUtxo_1 = require("./classifyOutputUtxo");
|
|
22
|
+
const validateMerklePathResult_1 = require("./validateMerklePathResult");
|
|
23
|
+
const validateStatusForTxidsResult_1 = require("./validateStatusForTxidsResult");
|
|
24
|
+
const validateRawTxResult_1 = require("./validateRawTxResult");
|
|
25
|
+
const validateUtxoStatusResult_1 = require("./validateUtxoStatusResult");
|
|
26
|
+
const validateScriptHashHistoryResult_1 = require("./validateScriptHashHistoryResult");
|
|
27
|
+
const validatePostBeefResult_1 = require("./validatePostBeefResult");
|
|
28
|
+
const fiatRateValidation_1 = require("./fiatRateValidation");
|
|
29
|
+
const getCanonicalMerklePath_1 = require("./getCanonicalMerklePath");
|
|
30
|
+
function copyFiatExchangeRates(rates) {
|
|
31
|
+
return {
|
|
32
|
+
timestamp: new Date(rates.timestamp.getTime()),
|
|
33
|
+
base: rates.base,
|
|
34
|
+
rates: { ...rates.rates },
|
|
35
|
+
rateTimestamps: rates.rateTimestamps == null
|
|
36
|
+
? undefined
|
|
37
|
+
: Object.fromEntries(Object.entries(rates.rateTimestamps).map(([key, value]) => [key, new Date(value.getTime())]))
|
|
38
|
+
};
|
|
39
|
+
}
|
|
21
40
|
class Services {
|
|
41
|
+
identityChainTracker;
|
|
42
|
+
identityChainTrackerInit;
|
|
22
43
|
static getStatusForTxidsBatchLimit = 20;
|
|
23
44
|
static createDefaultOptions(chain) {
|
|
24
45
|
return (0, createDefaultWalletServicesOptions_1.createDefaultWalletServicesOptions)(chain);
|
|
@@ -176,51 +197,81 @@ class Services {
|
|
|
176
197
|
};
|
|
177
198
|
}
|
|
178
199
|
async getChainTracker() {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
200
|
+
while (true) {
|
|
201
|
+
if (this.options.chainTracker != null)
|
|
202
|
+
return this.options.chainTracker;
|
|
203
|
+
if (this.options.chaintracks == null) {
|
|
204
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('options.chainTracker or options.chaintracks', "valid to enable 'getChainTracker' service.");
|
|
205
|
+
}
|
|
206
|
+
const desired = this.options.chaintracks;
|
|
207
|
+
if (this.identityChainTracker?.chaintracks === desired)
|
|
208
|
+
return this.identityChainTracker;
|
|
209
|
+
if (this.identityChainTrackerInit != null) {
|
|
210
|
+
await this.identityChainTrackerInit.catch(() => undefined);
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
const previous = this.identityChainTracker;
|
|
214
|
+
const created = new ChaintracksChainTracker_1.ChaintracksChainTracker(this.chain, desired, {
|
|
215
|
+
telemetry: this.options.telemetry
|
|
216
|
+
});
|
|
217
|
+
this.identityChainTracker = created;
|
|
218
|
+
const init = Promise.resolve().then(async () => {
|
|
219
|
+
if (previous != null)
|
|
220
|
+
await previous.dispose();
|
|
221
|
+
return created;
|
|
222
|
+
});
|
|
223
|
+
this.identityChainTrackerInit = init;
|
|
224
|
+
try {
|
|
225
|
+
await init.catch(() => created);
|
|
226
|
+
}
|
|
227
|
+
finally {
|
|
228
|
+
if (this.identityChainTrackerInit === init)
|
|
229
|
+
this.identityChainTrackerInit = undefined;
|
|
230
|
+
}
|
|
183
231
|
}
|
|
184
|
-
return new ChaintracksChainTracker_1.ChaintracksChainTracker(this.chain, this.options.chaintracks, {
|
|
185
|
-
telemetry: this.options.telemetry
|
|
186
|
-
});
|
|
187
232
|
}
|
|
188
233
|
async getBsvExchangeRate() {
|
|
189
234
|
this.options.bsvExchangeRate = await this.whatsonchain.updateBsvExchangeRate(this.options.bsvExchangeRate, this.options.bsvUpdateMsecs);
|
|
190
235
|
return this.options.bsvExchangeRate.rate;
|
|
191
236
|
}
|
|
192
237
|
async getFiatExchangeRate(currency, base) {
|
|
193
|
-
|
|
194
|
-
|
|
238
|
+
const normalizedCurrency = (0, fiatRateValidation_1.normalizeFiatCurrency)(currency);
|
|
239
|
+
const normalizedBase = (0, fiatRateValidation_1.normalizeFiatCurrency)(base ?? 'USD', 'base');
|
|
240
|
+
if (normalizedCurrency === normalizedBase)
|
|
195
241
|
return 1;
|
|
196
|
-
const required =
|
|
197
|
-
await this.updateFiatExchangeRates(required, this.options.fiatUpdateMsecs);
|
|
198
|
-
const
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
242
|
+
const required = normalizedBase === 'USD' ? [normalizedCurrency] : [normalizedCurrency, normalizedBase];
|
|
243
|
+
const rates = await this.updateFiatExchangeRates(required, this.options.fiatUpdateMsecs);
|
|
244
|
+
const c = rates.rates?.[normalizedCurrency];
|
|
245
|
+
const b = rates.rates?.[normalizedBase];
|
|
246
|
+
if (!(0, fiatRateValidation_1.isValidFiatRate)(c)) {
|
|
247
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('currency', `valid fiat currency '${normalizedCurrency}' with an exchange rate.`);
|
|
248
|
+
}
|
|
249
|
+
if (!(0, fiatRateValidation_1.isValidFiatRate)(b)) {
|
|
250
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('base', `valid fiat currency '${normalizedBase}' with an exchange rate.`);
|
|
203
251
|
}
|
|
204
|
-
|
|
205
|
-
|
|
252
|
+
const result = c / b;
|
|
253
|
+
if (!(0, fiatRateValidation_1.isValidFiatRate)(result)) {
|
|
254
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('currency', 'a finite and bounded conversion result.');
|
|
206
255
|
}
|
|
207
|
-
return
|
|
256
|
+
return result;
|
|
208
257
|
}
|
|
209
258
|
async getFiatExchangeRates(targetCurrencies) {
|
|
210
|
-
|
|
211
|
-
const stored = this.options.
|
|
259
|
+
const targets = (0, fiatRateValidation_1.normalizeFiatCurrencies)(targetCurrencies);
|
|
260
|
+
const stored = await this.updateFiatExchangeRates(targets, this.options.fiatUpdateMsecs);
|
|
212
261
|
const rates = {};
|
|
213
|
-
for (const c of
|
|
262
|
+
for (const c of targets) {
|
|
214
263
|
const v = stored.rates?.[c];
|
|
215
|
-
if (
|
|
264
|
+
if ((0, fiatRateValidation_1.isValidFiatRate)(v)) {
|
|
216
265
|
rates[c] = v;
|
|
217
266
|
}
|
|
218
267
|
}
|
|
219
268
|
return {
|
|
220
|
-
timestamp: stored.timestamp,
|
|
269
|
+
timestamp: new Date(stored.timestamp.getTime()),
|
|
221
270
|
base: 'USD',
|
|
222
271
|
rates,
|
|
223
|
-
rateTimestamps: stored.rateTimestamps
|
|
272
|
+
rateTimestamps: stored.rateTimestamps == null
|
|
273
|
+
? undefined
|
|
274
|
+
: Object.fromEntries(Object.entries(stored.rateTimestamps).map(([key, value]) => [key, new Date(value.getTime())]))
|
|
224
275
|
};
|
|
225
276
|
}
|
|
226
277
|
get getProofsCount() {
|
|
@@ -239,6 +290,7 @@ class Services {
|
|
|
239
290
|
const services = this.getStatusForTxidsServices;
|
|
240
291
|
if (useNext === true)
|
|
241
292
|
services.next();
|
|
293
|
+
const normalizedTxids = txids.map((txid, index) => (0, validateMerklePathResult_1.normalizeTxid)(txid, `txids[${index}]`));
|
|
242
294
|
let fallback = {
|
|
243
295
|
name: '<noservices>',
|
|
244
296
|
status: 'error',
|
|
@@ -246,7 +298,7 @@ class Services {
|
|
|
246
298
|
results: []
|
|
247
299
|
};
|
|
248
300
|
const resultsByTxid = new Map();
|
|
249
|
-
const unresolved = new Set(
|
|
301
|
+
const unresolved = new Set(normalizedTxids);
|
|
250
302
|
const providerNames = [];
|
|
251
303
|
let successfulProvider = false;
|
|
252
304
|
const rank = (result) => {
|
|
@@ -268,7 +320,7 @@ class Services {
|
|
|
268
320
|
if (r.status === 'success') {
|
|
269
321
|
services.addServiceCallSuccess(stc);
|
|
270
322
|
successfulProvider = true;
|
|
271
|
-
providerNames.push(
|
|
323
|
+
providerNames.push(stc.providerName);
|
|
272
324
|
for (const result of r.results) {
|
|
273
325
|
const current = resultsByTxid.get(result.txid);
|
|
274
326
|
if (current == null || rank(result) > rank(current))
|
|
@@ -297,7 +349,7 @@ class Services {
|
|
|
297
349
|
return {
|
|
298
350
|
name: [...new Set(providerNames)].join(','),
|
|
299
351
|
status: 'success',
|
|
300
|
-
results:
|
|
352
|
+
results: normalizedTxids.map(txid => resultsByTxid.get(txid) ?? { txid, status: 'unknown', depth: undefined })
|
|
301
353
|
};
|
|
302
354
|
}
|
|
303
355
|
async getStatusForTxidsBatched(stc, txids) {
|
|
@@ -305,7 +357,7 @@ class Services {
|
|
|
305
357
|
let error;
|
|
306
358
|
for (let i = 0; i < txids.length; i += Services.getStatusForTxidsBatchLimit) {
|
|
307
359
|
const batch = txids.slice(i, i + Services.getStatusForTxidsBatchLimit);
|
|
308
|
-
const r = await stc.service(batch);
|
|
360
|
+
const r = (0, validateStatusForTxidsResult_1.validateStatusForTxidsResult)(await stc.service(batch), batch, stc.providerName);
|
|
309
361
|
if (r.status !== 'success') {
|
|
310
362
|
return r;
|
|
311
363
|
}
|
|
@@ -325,13 +377,16 @@ class Services {
|
|
|
325
377
|
* @returns script hash in 'hashLE' format, which is the default.
|
|
326
378
|
*/
|
|
327
379
|
hashOutputScript(script) {
|
|
328
|
-
const hash =
|
|
380
|
+
const hash = (0, utils_1.toHex)((0, utilityHelpers_1.sha256Hash)((0, utils_1.toArray)(script, 'hex')));
|
|
329
381
|
return hash;
|
|
330
382
|
}
|
|
331
383
|
async isUtxo(output) {
|
|
332
384
|
return (0, classifyOutputUtxo_1.requireConclusiveUtxo)(await (0, classifyOutputUtxo_1.classifyOutputUtxo)(this, output));
|
|
333
385
|
}
|
|
334
386
|
async getUtxoStatus(output, outputFormat, outpoint, useNext, logger) {
|
|
387
|
+
validateScriptHash(output, outputFormat);
|
|
388
|
+
const normalizedOutput = output.toLowerCase();
|
|
389
|
+
const normalizedOutpoint = (0, validateUtxoStatusResult_1.normalizeWalletOutpoint)(outpoint);
|
|
335
390
|
const services = this.getUtxoStatusServices;
|
|
336
391
|
if (useNext === true)
|
|
337
392
|
services.next();
|
|
@@ -343,7 +398,8 @@ class Services {
|
|
|
343
398
|
};
|
|
344
399
|
logger?.group('services getUtxoStatus');
|
|
345
400
|
for (let retry = 0; retry < 2; retry++) {
|
|
346
|
-
r0 =
|
|
401
|
+
r0 =
|
|
402
|
+
(await this.tryUtxoStatusProviders(services, normalizedOutput, outputFormat, normalizedOutpoint, logger)) ?? r0;
|
|
347
403
|
if (r0.status === 'success')
|
|
348
404
|
break;
|
|
349
405
|
await (0, utilityHelpers_1.wait)(2000);
|
|
@@ -355,7 +411,7 @@ class Services {
|
|
|
355
411
|
for (let tries = 0; tries < services.count; tries++) {
|
|
356
412
|
const stc = services.serviceToCall;
|
|
357
413
|
try {
|
|
358
|
-
const r = await stc.service(output, outputFormat, outpoint);
|
|
414
|
+
const r = (0, validateUtxoStatusResult_1.validateUtxoStatusResult)(await stc.service(output, outputFormat, outpoint), outpoint, stc.providerName);
|
|
359
415
|
logger?.log(`${stc.providerName} status ${r.status}`);
|
|
360
416
|
if (r.status === 'success') {
|
|
361
417
|
services.addServiceCallSuccess(stc);
|
|
@@ -374,6 +430,7 @@ class Services {
|
|
|
374
430
|
return undefined;
|
|
375
431
|
}
|
|
376
432
|
async getScriptHashHistory(hash, useNext, logger) {
|
|
433
|
+
const normalizedHash = (0, validateMerklePathResult_1.normalizeTxid)(hash, 'hash');
|
|
377
434
|
const services = this.getScriptHashHistoryServices;
|
|
378
435
|
if (useNext === true)
|
|
379
436
|
services.next();
|
|
@@ -387,10 +444,11 @@ class Services {
|
|
|
387
444
|
for (let tries = 0; tries < services.count; tries++) {
|
|
388
445
|
const stc = services.serviceToCall;
|
|
389
446
|
try {
|
|
390
|
-
const r = await stc.service(
|
|
447
|
+
const r = (0, validateScriptHashHistoryResult_1.validateScriptHashHistoryResult)(await stc.service(normalizedHash), stc.providerName);
|
|
391
448
|
logger?.log(`${stc.providerName} status ${r.status}`);
|
|
392
449
|
if (r.status === 'success') {
|
|
393
450
|
r0 = r;
|
|
451
|
+
services.addServiceCallSuccess(stc);
|
|
394
452
|
break;
|
|
395
453
|
}
|
|
396
454
|
if (r.error != null)
|
|
@@ -429,10 +487,15 @@ class Services {
|
|
|
429
487
|
* @returns
|
|
430
488
|
*/
|
|
431
489
|
async postBeef(beef, txids, logger) {
|
|
490
|
+
const request = (0, validatePostBeefResult_1.snapshotPostBeefRequest)(beef, txids);
|
|
491
|
+
if (this.postBeefMode !== 'UntilSuccess' && this.postBeefMode !== 'PromiseAll') {
|
|
492
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('postBeefMode', "'UntilSuccess' or 'PromiseAll'");
|
|
493
|
+
}
|
|
432
494
|
let rs = [];
|
|
433
495
|
const services = this.postBeefServices;
|
|
434
496
|
const stcs = services.allServicesToCall;
|
|
435
|
-
const softTimeoutMs = this.getPostBeefSoftTimeoutMs(
|
|
497
|
+
const softTimeoutMs = this.getPostBeefSoftTimeoutMs(request.beefBytes.length);
|
|
498
|
+
const softTimedOut = new Set();
|
|
436
499
|
logger?.group('services postBeef');
|
|
437
500
|
switch (this.postBeefMode) {
|
|
438
501
|
case 'UntilSuccess':
|
|
@@ -442,8 +505,7 @@ class Services {
|
|
|
442
505
|
rs.push(r);
|
|
443
506
|
if (r.status === 'success')
|
|
444
507
|
break;
|
|
445
|
-
|
|
446
|
-
if (!softTimedOut && r.txidResults?.every(txr => txr.serviceError)) {
|
|
508
|
+
if (!softTimedOut.has(stc) && r.txidResults.every(txr => txr.serviceError)) {
|
|
447
509
|
// move this service to the end of the list
|
|
448
510
|
this.postBeefServices.moveServiceToLast(stc);
|
|
449
511
|
}
|
|
@@ -459,7 +521,10 @@ class Services {
|
|
|
459
521
|
logger?.groupEnd();
|
|
460
522
|
return rs;
|
|
461
523
|
async function callService(stc, timeoutMs) {
|
|
462
|
-
const callPromise =
|
|
524
|
+
const callPromise = Promise.resolve()
|
|
525
|
+
.then(async () => await stc.service(sdk_1.Beef.fromBinaryStrict(request.beefBytes), [...request.txids]))
|
|
526
|
+
.then(result => (0, validatePostBeefResult_1.validatePostBeefResult)(result, request.txids, stc.providerName))
|
|
527
|
+
.catch(() => (0, validatePostBeefResult_1.makePostBeefServiceError)(stc.providerName, request.txids, 'postBeefServiceError'));
|
|
463
528
|
let r;
|
|
464
529
|
if (timeoutMs == null || timeoutMs <= 0) {
|
|
465
530
|
r = await callPromise;
|
|
@@ -467,7 +532,10 @@ class Services {
|
|
|
467
532
|
else {
|
|
468
533
|
let timeoutHandle;
|
|
469
534
|
const timeoutPromise = new Promise(resolve => {
|
|
470
|
-
timeoutHandle = setTimeout(() =>
|
|
535
|
+
timeoutHandle = setTimeout(() => {
|
|
536
|
+
softTimedOut.add(stc);
|
|
537
|
+
resolve((0, validatePostBeefResult_1.makePostBeefServiceError)(stc.providerName, request.txids, 'postBeefServiceTimeout', timeoutMs));
|
|
538
|
+
}, timeoutMs);
|
|
471
539
|
});
|
|
472
540
|
r = await Promise.race([callPromise, timeoutPromise]);
|
|
473
541
|
if (timeoutHandle != null)
|
|
@@ -486,39 +554,34 @@ class Services {
|
|
|
486
554
|
}
|
|
487
555
|
return r;
|
|
488
556
|
}
|
|
489
|
-
function makeServiceTimeoutResult(providerName, txids, timeoutMs) {
|
|
490
|
-
return {
|
|
491
|
-
name: providerName,
|
|
492
|
-
status: 'error',
|
|
493
|
-
txidResults: txids.map(txid => ({
|
|
494
|
-
txid,
|
|
495
|
-
status: 'error',
|
|
496
|
-
serviceError: true,
|
|
497
|
-
data: { detail: `timeout after ${timeoutMs}ms` }
|
|
498
|
-
})),
|
|
499
|
-
notes: [{ when: new Date().toISOString(), what: 'postBeefServiceTimeout', providerName, timeoutMs }]
|
|
500
|
-
};
|
|
501
|
-
}
|
|
502
557
|
}
|
|
503
|
-
getPostBeefSoftTimeoutMs(
|
|
504
|
-
const
|
|
505
|
-
const
|
|
506
|
-
|
|
558
|
+
getPostBeefSoftTimeoutMs(beefBytes) {
|
|
559
|
+
const maximum = 60 * 60 * 1000;
|
|
560
|
+
const valid = (value, name) => {
|
|
561
|
+
if (!Number.isSafeInteger(value) || value < 0 || value > maximum) {
|
|
562
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER(name, `an integer from 0 through ${maximum}`);
|
|
563
|
+
}
|
|
564
|
+
return value;
|
|
565
|
+
};
|
|
566
|
+
const baseMs = valid(this.postBeefUntilSuccessSoftTimeoutMs, 'postBeefUntilSuccessSoftTimeoutMs');
|
|
567
|
+
const perKbMs = valid(this.postBeefUntilSuccessSoftTimeoutPerKbMs, 'postBeefUntilSuccessSoftTimeoutPerKbMs');
|
|
568
|
+
const maxMs = Math.max(baseMs, valid(this.postBeefUntilSuccessSoftTimeoutMaxMs, 'postBeefUntilSuccessSoftTimeoutMaxMs'));
|
|
507
569
|
if (perKbMs <= 0)
|
|
508
570
|
return Math.min(baseMs, maxMs);
|
|
509
|
-
const beefBytes = beef.toBinary().length;
|
|
510
571
|
const extraMs = Math.ceil((beefBytes / 1024) * perKbMs);
|
|
511
572
|
return Math.min(maxMs, baseMs + extraMs);
|
|
512
573
|
}
|
|
513
574
|
async getRawTx(txid, useNext) {
|
|
575
|
+
const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
|
|
514
576
|
const services = this.getRawTxServices;
|
|
515
577
|
if (useNext === true)
|
|
516
578
|
services.next();
|
|
517
|
-
const r0 = { txid };
|
|
579
|
+
const r0 = { txid: normalizedTxid };
|
|
518
580
|
for (let tries = 0; tries < services.count; tries++) {
|
|
519
581
|
const stc = services.serviceToCall;
|
|
520
582
|
try {
|
|
521
|
-
const
|
|
583
|
+
const result = (0, validateRawTxResult_1.validateRawTxResult)(await stc.service(normalizedTxid, this.chain), normalizedTxid, stc.providerName);
|
|
584
|
+
const done = this.applyRawTxResult(r0, normalizedTxid, result, services, stc);
|
|
522
585
|
if (done)
|
|
523
586
|
break;
|
|
524
587
|
}
|
|
@@ -532,9 +595,9 @@ class Services {
|
|
|
532
595
|
applyRawTxResult(r0, txid, r, services, stc) {
|
|
533
596
|
if (r.rawTx != null) {
|
|
534
597
|
const hash = (0, utilityHelpers_noBuffer_1.asString)((0, utilityHelpers_1.doubleSha256BE)(r.rawTx));
|
|
535
|
-
if (hash ===
|
|
598
|
+
if (hash === txid) {
|
|
536
599
|
r0.rawTx = r.rawTx;
|
|
537
|
-
r0.name =
|
|
600
|
+
r0.name = stc.providerName;
|
|
538
601
|
r0.error = undefined;
|
|
539
602
|
services.addServiceCallSuccess(stc);
|
|
540
603
|
return true;
|
|
@@ -622,68 +685,160 @@ class Services {
|
|
|
622
685
|
}
|
|
623
686
|
}
|
|
624
687
|
async hashToHeader(hash) {
|
|
688
|
+
const normalizedHash = (0, validateMerklePathResult_1.normalizeTxid)(hash, 'hash');
|
|
625
689
|
const method = async () => {
|
|
626
690
|
const chaintracks = this.options.chaintracks;
|
|
627
|
-
const header = await chaintracks.findHeaderForBlockHash(
|
|
691
|
+
const header = await chaintracks.findHeaderForBlockHash(normalizedHash);
|
|
628
692
|
return header;
|
|
629
693
|
};
|
|
630
694
|
let header = await this.invokeChaintracksWithRetry(method, 'find_header_for_hash');
|
|
631
|
-
header ??= await this.whatsonchain.getBlockHeaderByHash(
|
|
695
|
+
header ??= await this.whatsonchain.getBlockHeaderByHash(normalizedHash);
|
|
632
696
|
if (header == null)
|
|
633
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `valid blockhash '${
|
|
634
|
-
|
|
697
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `valid blockhash '${normalizedHash}' on mined chain ${this.chain}`);
|
|
698
|
+
const validated = (0, validateMerklePathResult_1.copyValidatedBlockHeader)(header, true);
|
|
699
|
+
if (validated.hash !== normalizedHash) {
|
|
700
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('hash', `the hash of the returned mined header on chain ${this.chain}`);
|
|
701
|
+
}
|
|
702
|
+
return validated;
|
|
703
|
+
}
|
|
704
|
+
async authenticateProviderMerklePath(txid, result) {
|
|
705
|
+
// First copy and bind the provider's mutable proof/header response. Then
|
|
706
|
+
// resolve that header hash through the wallet's own chain service and bind
|
|
707
|
+
// the proof a second time to that canonical, proof-of-work-valid header.
|
|
708
|
+
// Bind the provider path to the declared height/root before using the
|
|
709
|
+
// declared hash as a lookup key. `hashToHeader` then authenticates that
|
|
710
|
+
// hash and returns the canonical owned header.
|
|
711
|
+
const providerResult = (0, validateMerklePathResult_1.validateMerklePathResult)(txid, result, false, false);
|
|
712
|
+
const canonicalHeader = await this.hashToHeader(providerResult.header.hash);
|
|
713
|
+
// `hashToHeader` already returns an owned, format-checked,
|
|
714
|
+
// proof-of-work-valid header. This second pass only binds the copied path
|
|
715
|
+
// to that canonical header's height and root.
|
|
716
|
+
return (0, validateMerklePathResult_1.validateMerklePathResult)(txid, { merklePath: providerResult.merklePath, header: canonicalHeader }, false, false);
|
|
717
|
+
}
|
|
718
|
+
async tryMerklePathProvider(txid, service, aggregate, logger) {
|
|
719
|
+
let result;
|
|
720
|
+
try {
|
|
721
|
+
result = (0, validateMerklePathResult_1.snapshotMerklePathResult)(await service.service(txid, this), true, service.providerName);
|
|
722
|
+
}
|
|
723
|
+
catch (error_) {
|
|
724
|
+
const error = WalletError_1.WalletError.fromUnknown(error_);
|
|
725
|
+
this.getMerklePathServices.addServiceCallError(service, error);
|
|
726
|
+
aggregate.error ??= error;
|
|
727
|
+
return false;
|
|
728
|
+
}
|
|
729
|
+
aggregate.notes?.push(...(result.notes ?? []));
|
|
730
|
+
aggregate.name ??= result.name ?? service.providerName;
|
|
731
|
+
if (result.merklePath != null) {
|
|
732
|
+
try {
|
|
733
|
+
await (0, getCanonicalMerklePath_1.validateCanonicalMerklePathResult)(txid, result, await this.getChainTracker());
|
|
734
|
+
if (result.header != null) {
|
|
735
|
+
const authenticated = await this.authenticateProviderMerklePath(txid, result);
|
|
736
|
+
result.merklePath = authenticated.merklePath;
|
|
737
|
+
result.header = authenticated.header;
|
|
738
|
+
}
|
|
739
|
+
logger?.log(`${service.providerName} has authenticated canonical merklePath`);
|
|
740
|
+
Object.assign(aggregate, {
|
|
741
|
+
merklePath: result.merklePath,
|
|
742
|
+
header: result.header,
|
|
743
|
+
name: result.name ?? service.providerName,
|
|
744
|
+
error: undefined
|
|
745
|
+
});
|
|
746
|
+
this.getMerklePathServices.addServiceCallSuccess(service);
|
|
747
|
+
return true;
|
|
748
|
+
}
|
|
749
|
+
catch (error_) {
|
|
750
|
+
logger?.log(`${service.providerName} rejected non-canonical merklePath`);
|
|
751
|
+
result.error = WalletError_1.WalletError.fromUnknown(error_);
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
else {
|
|
755
|
+
logger?.log(`${service.providerName} no merklePath`);
|
|
756
|
+
}
|
|
757
|
+
if (result.error != null)
|
|
758
|
+
this.getMerklePathServices.addServiceCallError(service, result.error);
|
|
759
|
+
else
|
|
760
|
+
this.getMerklePathServices.addServiceCallFailure(service);
|
|
761
|
+
aggregate.error ??= result.error;
|
|
762
|
+
return false;
|
|
635
763
|
}
|
|
636
764
|
async getMerklePath(txid, useNext, logger) {
|
|
765
|
+
const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
|
|
637
766
|
const services = this.getMerklePathServices;
|
|
638
767
|
if (useNext === true)
|
|
639
768
|
services.next();
|
|
640
|
-
const
|
|
769
|
+
const result = { notes: [] };
|
|
641
770
|
logger?.group('services getMerklePath');
|
|
642
771
|
for (let tries = 0; tries < services.count; tries++) {
|
|
643
|
-
|
|
772
|
+
if (await this.tryMerklePathProvider(normalizedTxid, services.serviceToCall, result, logger))
|
|
773
|
+
break;
|
|
774
|
+
services.next();
|
|
775
|
+
}
|
|
776
|
+
logger?.groupEnd?.();
|
|
777
|
+
return result;
|
|
778
|
+
}
|
|
779
|
+
async getValidatedMerklePath(txid, validate) {
|
|
780
|
+
const normalizedTxid = (0, validateMerklePathResult_1.normalizeTxid)(txid);
|
|
781
|
+
const services = this.getMerklePathServices;
|
|
782
|
+
const calls = services.allServicesToCall;
|
|
783
|
+
const start = services.index;
|
|
784
|
+
let error;
|
|
785
|
+
for (let i = 0; i < calls.length; i++) {
|
|
786
|
+
const call = calls[(start + i) % calls.length];
|
|
644
787
|
try {
|
|
645
|
-
const
|
|
646
|
-
if (
|
|
647
|
-
|
|
648
|
-
r0.notes.push(...r.notes);
|
|
649
|
-
}
|
|
650
|
-
r0.name ??= r.name;
|
|
651
|
-
if (r.merklePath == null) {
|
|
652
|
-
logger?.log(`${stc.providerName} no merklePath`);
|
|
788
|
+
const result = (0, validateMerklePathResult_1.snapshotMerklePathResult)(await call.service(normalizedTxid, this), true, call.providerName);
|
|
789
|
+
if (result.merklePath == null) {
|
|
790
|
+
throw result.error ?? new WERR_errors_1.WERR_INVALID_OPERATION('Proof provider returned no Merkle path');
|
|
653
791
|
}
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
if (r.error != null && r0.error == null) {
|
|
669
|
-
// If we have an error and didn't before...
|
|
670
|
-
r0.error = r.error;
|
|
792
|
+
await (0, getCanonicalMerklePath_1.validateCanonicalMerklePathResult)(normalizedTxid, result, await this.getChainTracker());
|
|
793
|
+
// Some legacy/custom proof providers return a path without a header;
|
|
794
|
+
// this method's explicit validator contract exists so its caller can
|
|
795
|
+
// resolve and authenticate that header independently. When a provider
|
|
796
|
+
// does supply a header, apply the standard built-in boundary first.
|
|
797
|
+
let candidate = result;
|
|
798
|
+
if (result.header != null) {
|
|
799
|
+
const authenticated = await this.authenticateProviderMerklePath(normalizedTxid, result);
|
|
800
|
+
candidate = {
|
|
801
|
+
name: call.providerName,
|
|
802
|
+
notes: result.notes,
|
|
803
|
+
merklePath: authenticated.merklePath,
|
|
804
|
+
header: authenticated.header
|
|
805
|
+
};
|
|
671
806
|
}
|
|
807
|
+
await validate(candidate);
|
|
808
|
+
services.addServiceCallSuccess(call);
|
|
809
|
+
return candidate;
|
|
672
810
|
}
|
|
673
|
-
catch (
|
|
674
|
-
|
|
675
|
-
services.addServiceCallError(
|
|
811
|
+
catch (cause) {
|
|
812
|
+
error = WalletError_1.WalletError.fromUnknown(cause);
|
|
813
|
+
services.addServiceCallError(call, error);
|
|
676
814
|
}
|
|
677
|
-
services.next();
|
|
678
815
|
}
|
|
679
|
-
return
|
|
816
|
+
return { error, notes: [] };
|
|
680
817
|
}
|
|
681
818
|
async updateFiatExchangeRates(targetCurrencies, updateMsecs) {
|
|
682
819
|
updateMsecs ??= 1000 * 60 * 60 * 24;
|
|
820
|
+
if (!Number.isSafeInteger(updateMsecs) || updateMsecs < 0 || updateMsecs > 10 * 365 * 24 * 60 * 60 * 1000) {
|
|
821
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('updateMsecs', 'a bounded non-negative safe integer.');
|
|
822
|
+
}
|
|
823
|
+
const targets = (0, fiatRateValidation_1.normalizeFiatCurrencies)(targetCurrencies);
|
|
683
824
|
const freshnessDate = new Date(Date.now() - updateMsecs);
|
|
684
|
-
|
|
825
|
+
let stored;
|
|
826
|
+
try {
|
|
827
|
+
const normalized = (0, fiatRateValidation_1.normalizeFiatExchangeRates)(this.options.fiatExchangeRates, []);
|
|
828
|
+
stored = {
|
|
829
|
+
...normalized,
|
|
830
|
+
rateTimestamps: (0, fiatRateValidation_1.normalizeFiatRateTimestamps)(this.options.fiatExchangeRates.rateTimestamps)
|
|
831
|
+
};
|
|
832
|
+
}
|
|
833
|
+
catch {
|
|
834
|
+
stored = {
|
|
835
|
+
timestamp: new Date(Date.UTC(2000, 0, 1)),
|
|
836
|
+
base: 'USD',
|
|
837
|
+
rates: { USD: 1 }
|
|
838
|
+
};
|
|
839
|
+
}
|
|
685
840
|
const storedRates = stored.rates ?? {};
|
|
686
|
-
const toFetch = this.collectStaleCurrencies(
|
|
841
|
+
const toFetch = this.collectStaleCurrencies(targets, storedRates, stored, freshnessDate);
|
|
687
842
|
if (toFetch.length === 0) {
|
|
688
843
|
this.options.fiatExchangeRates = {
|
|
689
844
|
timestamp: stored.timestamp,
|
|
@@ -691,16 +846,16 @@ class Services {
|
|
|
691
846
|
rates: storedRates,
|
|
692
847
|
rateTimestamps: stored.rateTimestamps
|
|
693
848
|
};
|
|
694
|
-
return this.options.fiatExchangeRates;
|
|
849
|
+
return copyFiatExchangeRates(this.options.fiatExchangeRates);
|
|
695
850
|
}
|
|
696
851
|
const fetched = await this.fetchFiatRates(toFetch);
|
|
697
852
|
if (fetched == null) {
|
|
698
853
|
if (Object.keys(storedRates).length > 0)
|
|
699
|
-
return stored;
|
|
854
|
+
return copyFiatExchangeRates(stored);
|
|
700
855
|
throw new WERR_errors_1.WERR_INTERNAL();
|
|
701
856
|
}
|
|
702
857
|
this.options.fiatExchangeRates = this.mergeFiatRates(stored, storedRates, fetched);
|
|
703
|
-
return this.options.fiatExchangeRates;
|
|
858
|
+
return copyFiatExchangeRates(this.options.fiatExchangeRates);
|
|
704
859
|
}
|
|
705
860
|
collectStaleCurrencies(targetCurrencies, storedRates, stored, freshnessDate) {
|
|
706
861
|
const toFetch = [];
|
|
@@ -712,7 +867,8 @@ class Services {
|
|
|
712
867
|
}
|
|
713
868
|
const v = storedRates[c];
|
|
714
869
|
const ts = stored.rateTimestamps?.[c] ?? stored.timestamp;
|
|
715
|
-
const
|
|
870
|
+
const tsValue = ts instanceof Date ? ts.getTime() : Number.NaN;
|
|
871
|
+
const fresh = (0, fiatRateValidation_1.isValidFiatRate)(v) && Number.isFinite(tsValue) && tsValue <= Date.now() + 5 * 60 * 1000 && ts > freshnessDate;
|
|
716
872
|
if (!fresh)
|
|
717
873
|
toFetch.push(c);
|
|
718
874
|
}
|
|
@@ -723,12 +879,10 @@ class Services {
|
|
|
723
879
|
for (let tries = 0; tries < services.count; tries++) {
|
|
724
880
|
const stc = services.serviceToCall;
|
|
725
881
|
try {
|
|
726
|
-
const
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
}
|
|
731
|
-
services.addServiceCallFailure(stc);
|
|
882
|
+
const raw = await stc.service(toFetch, this.options);
|
|
883
|
+
const rates = (0, fiatRateValidation_1.normalizeFiatExchangeRates)(raw, toFetch);
|
|
884
|
+
services.addServiceCallSuccess(stc);
|
|
885
|
+
return rates;
|
|
732
886
|
}
|
|
733
887
|
catch (error_) {
|
|
734
888
|
services.addServiceCallError(stc, WalletError_1.WalletError.fromUnknown(error_));
|
|
@@ -738,11 +892,12 @@ class Services {
|
|
|
738
892
|
return undefined;
|
|
739
893
|
}
|
|
740
894
|
mergeFiatRates(stored, storedRates, fetched) {
|
|
895
|
+
fetched = (0, fiatRateValidation_1.normalizeFiatExchangeRates)(fetched, []);
|
|
741
896
|
const nextRates = { ...storedRates };
|
|
742
897
|
const nextTimestamps = { ...stored.rateTimestamps };
|
|
743
898
|
for (const c of fetched.rates != null ? Object.keys(fetched.rates) : []) {
|
|
744
899
|
const v = fetched.rates?.[c];
|
|
745
|
-
if (
|
|
900
|
+
if ((0, fiatRateValidation_1.isValidFiatRate)(v)) {
|
|
746
901
|
nextRates[c] = v;
|
|
747
902
|
nextTimestamps[c] = fetched.timestamp;
|
|
748
903
|
}
|
|
@@ -788,6 +943,13 @@ class Services {
|
|
|
788
943
|
}
|
|
789
944
|
exports.Services = Services;
|
|
790
945
|
function validateScriptHash(output, outputFormat) {
|
|
946
|
+
if (typeof output !== 'string' ||
|
|
947
|
+
output.length === 0 ||
|
|
948
|
+
output.length % 2 !== 0 ||
|
|
949
|
+
output.length > validateRawTxResult_1.MAX_RAW_TRANSACTION_BYTES * 2 ||
|
|
950
|
+
!/^[0-9a-fA-F]+$/.test(output)) {
|
|
951
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('output', `nonempty hexadecimal bytes up to ${validateRawTxResult_1.MAX_RAW_TRANSACTION_BYTES} bytes`);
|
|
952
|
+
}
|
|
791
953
|
let b = (0, utilityHelpers_noBuffer_1.asArray)(output);
|
|
792
954
|
if (outputFormat == null) {
|
|
793
955
|
if (b.length === 32)
|
|
@@ -797,8 +959,12 @@ function validateScriptHash(output, outputFormat) {
|
|
|
797
959
|
}
|
|
798
960
|
switch (outputFormat) {
|
|
799
961
|
case 'hashBE':
|
|
962
|
+
if (b.length !== 32)
|
|
963
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('output', 'exactly 32 bytes for hashBE');
|
|
800
964
|
break;
|
|
801
965
|
case 'hashLE':
|
|
966
|
+
if (b.length !== 32)
|
|
967
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('output', 'exactly 32 bytes for hashLE');
|
|
802
968
|
b = b.reverse();
|
|
803
969
|
break;
|
|
804
970
|
case 'script':
|
|
@@ -818,7 +984,7 @@ function validateScriptHash(output, outputFormat) {
|
|
|
818
984
|
* @publicbody
|
|
819
985
|
*/
|
|
820
986
|
function toBinaryBaseBlockHeader(header) {
|
|
821
|
-
const writer = new
|
|
987
|
+
const writer = new utils_1.Writer();
|
|
822
988
|
writer.writeUInt32LE(header.version);
|
|
823
989
|
writer.writeReverse((0, utilityHelpers_noBuffer_1.asArray)(header.previousHash));
|
|
824
990
|
writer.writeReverse((0, utilityHelpers_noBuffer_1.asArray)(header.merkleRoot));
|