@bsv/wallet-toolbox-client 1.7.13 → 1.7.15
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/package.json +2 -2
- package/out/src/CWIStyleWalletManager.d.ts +0 -438
- package/out/src/CWIStyleWalletManager.d.ts.map +0 -1
- package/out/src/CWIStyleWalletManager.js +0 -1292
- package/out/src/CWIStyleWalletManager.js.map +0 -1
- package/out/src/SetupClient.d.ts +0 -130
- package/out/src/SetupClient.d.ts.map +0 -1
- package/out/src/SetupClient.js +0 -226
- package/out/src/SetupClient.js.map +0 -1
- package/out/src/SetupWallet.d.ts +0 -103
- package/out/src/SetupWallet.d.ts.map +0 -1
- package/out/src/SetupWallet.js +0 -3
- package/out/src/SetupWallet.js.map +0 -1
- package/out/src/SimpleWalletManager.d.ts +0 -169
- package/out/src/SimpleWalletManager.d.ts.map +0 -1
- package/out/src/SimpleWalletManager.js +0 -315
- package/out/src/SimpleWalletManager.js.map +0 -1
- package/out/src/Wallet.d.ts +0 -206
- package/out/src/Wallet.d.ts.map +0 -1
- package/out/src/Wallet.js +0 -797
- package/out/src/Wallet.js.map +0 -1
- package/out/src/WalletAuthenticationManager.d.ts +0 -33
- package/out/src/WalletAuthenticationManager.d.ts.map +0 -1
- package/out/src/WalletAuthenticationManager.js +0 -113
- package/out/src/WalletAuthenticationManager.js.map +0 -1
- package/out/src/WalletLogger.d.ts +0 -65
- package/out/src/WalletLogger.d.ts.map +0 -1
- package/out/src/WalletLogger.js +0 -167
- package/out/src/WalletLogger.js.map +0 -1
- package/out/src/WalletPermissionsManager.d.ts +0 -760
- package/out/src/WalletPermissionsManager.d.ts.map +0 -1
- package/out/src/WalletPermissionsManager.js +0 -2679
- package/out/src/WalletPermissionsManager.js.map +0 -1
- package/out/src/WalletSettingsManager.d.ts +0 -53
- package/out/src/WalletSettingsManager.d.ts.map +0 -1
- package/out/src/WalletSettingsManager.js +0 -83
- package/out/src/WalletSettingsManager.js.map +0 -1
- package/out/src/index.client.d.ts +0 -23
- package/out/src/index.client.d.ts.map +0 -1
- package/out/src/index.client.js +0 -62
- package/out/src/index.client.js.map +0 -1
- package/out/src/monitor/Monitor.d.ts +0 -148
- package/out/src/monitor/Monitor.d.ts.map +0 -1
- package/out/src/monitor/Monitor.js +0 -317
- package/out/src/monitor/Monitor.js.map +0 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +0 -53
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +0 -213
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +0 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +0 -33
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js +0 -71
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +0 -1
- package/out/src/monitor/tasks/TaskClock.d.ts +0 -14
- package/out/src/monitor/tasks/TaskClock.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskClock.js +0 -28
- package/out/src/monitor/tasks/TaskClock.js.map +0 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts +0 -20
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js +0 -52
- package/out/src/monitor/tasks/TaskFailAbandoned.js.map +0 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts +0 -12
- package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js +0 -24
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +0 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts +0 -50
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +0 -84
- package/out/src/monitor/tasks/TaskNewHeader.js.map +0 -1
- package/out/src/monitor/tasks/TaskPurge.d.ts +0 -45
- package/out/src/monitor/tasks/TaskPurge.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskPurge.js +0 -34
- package/out/src/monitor/tasks/TaskPurge.js.map +0 -1
- package/out/src/monitor/tasks/TaskReorg.d.ts +0 -43
- package/out/src/monitor/tasks/TaskReorg.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskReorg.js +0 -82
- package/out/src/monitor/tasks/TaskReorg.js.map +0 -1
- package/out/src/monitor/tasks/TaskReviewStatus.d.ts +0 -26
- package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskReviewStatus.js +0 -43
- package/out/src/monitor/tasks/TaskReviewStatus.js.map +0 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts +0 -35
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js +0 -117
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +0 -1
- package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts +0 -12
- package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskSyncWhenIdle.js +0 -22
- package/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +0 -1
- package/out/src/monitor/tasks/TaskUnFail.d.ts +0 -41
- package/out/src/monitor/tasks/TaskUnFail.d.ts.map +0 -1
- package/out/src/monitor/tasks/TaskUnFail.js +0 -145
- package/out/src/monitor/tasks/TaskUnFail.js.map +0 -1
- package/out/src/monitor/tasks/WalletMonitorTask.d.ts +0 -40
- package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +0 -1
- package/out/src/monitor/tasks/WalletMonitorTask.js +0 -37
- package/out/src/monitor/tasks/WalletMonitorTask.js.map +0 -1
- package/out/src/sdk/CertOpsWallet.d.ts +0 -7
- package/out/src/sdk/CertOpsWallet.d.ts.map +0 -1
- package/out/src/sdk/CertOpsWallet.js +0 -3
- package/out/src/sdk/CertOpsWallet.js.map +0 -1
- package/out/src/sdk/PrivilegedKeyManager.d.ts +0 -125
- package/out/src/sdk/PrivilegedKeyManager.d.ts.map +0 -1
- package/out/src/sdk/PrivilegedKeyManager.js +0 -293
- package/out/src/sdk/PrivilegedKeyManager.js.map +0 -1
- package/out/src/sdk/WERR_errors.d.ts +0 -136
- package/out/src/sdk/WERR_errors.d.ts.map +0 -1
- package/out/src/sdk/WERR_errors.js +0 -218
- package/out/src/sdk/WERR_errors.js.map +0 -1
- package/out/src/sdk/WalletError.d.ts +0 -63
- package/out/src/sdk/WalletError.d.ts.map +0 -1
- package/out/src/sdk/WalletError.js +0 -169
- package/out/src/sdk/WalletError.js.map +0 -1
- package/out/src/sdk/WalletErrorFromJson.d.ts +0 -12
- package/out/src/sdk/WalletErrorFromJson.d.ts.map +0 -1
- package/out/src/sdk/WalletErrorFromJson.js +0 -69
- package/out/src/sdk/WalletErrorFromJson.js.map +0 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +0 -618
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +0 -1
- package/out/src/sdk/WalletServices.interfaces.js +0 -3
- package/out/src/sdk/WalletServices.interfaces.js.map +0 -1
- package/out/src/sdk/WalletSigner.interfaces.d.ts +0 -10
- package/out/src/sdk/WalletSigner.interfaces.d.ts.map +0 -1
- package/out/src/sdk/WalletSigner.interfaces.js +0 -3
- package/out/src/sdk/WalletSigner.interfaces.js.map +0 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +0 -522
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +0 -1
- package/out/src/sdk/WalletStorage.interfaces.js +0 -3
- package/out/src/sdk/WalletStorage.interfaces.js.map +0 -1
- package/out/src/sdk/index.d.ts +0 -11
- package/out/src/sdk/index.d.ts.map +0 -1
- package/out/src/sdk/index.js +0 -29
- package/out/src/sdk/index.js.map +0 -1
- package/out/src/sdk/types.d.ts +0 -169
- package/out/src/sdk/types.d.ts.map +0 -1
- package/out/src/sdk/types.js +0 -90
- package/out/src/sdk/types.js.map +0 -1
- package/out/src/services/ServiceCollection.d.ts +0 -79
- package/out/src/services/ServiceCollection.d.ts.map +0 -1
- package/out/src/services/ServiceCollection.js +0 -192
- package/out/src/services/ServiceCollection.js.map +0 -1
- package/out/src/services/Services.d.ts +0 -71
- package/out/src/services/Services.d.ts.map +0 -1
- package/out/src/services/Services.js +0 -532
- package/out/src/services/Services.js.map +0 -1
- package/out/src/services/chaintracker/BHServiceClient.d.ts +0 -39
- package/out/src/services/chaintracker/BHServiceClient.d.ts.map +0 -1
- package/out/src/services/chaintracker/BHServiceClient.js +0 -174
- package/out/src/services/chaintracker/BHServiceClient.js.map +0 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +0 -15
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +0 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js +0 -53
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +0 -55
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +0 -38
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts +0 -70
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts +0 -81
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +0 -54
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +0 -163
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +0 -18
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts +0 -55
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +0 -338
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts +0 -19
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js +0 -3
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +0 -101
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +0 -550
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +0 -38
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +0 -139
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts +0 -60
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +0 -119
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts +0 -76
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +0 -114
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts +0 -13
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js +0 -20
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +0 -62
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +0 -59
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts +0 -62
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +0 -42
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +0 -51
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +0 -55
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +0 -171
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +0 -501
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +0 -89
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +0 -137
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts +0 -23
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +0 -68
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +0 -68
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +0 -290
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +0 -92
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +0 -465
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +0 -37
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +0 -260
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +0 -5
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +0 -68
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +0 -5
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +0 -68
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +0 -13
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +0 -27
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +0 -13
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +0 -27
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/index.client.d.ts +0 -4
- package/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/index.client.js +0 -20
- package/out/src/services/chaintracker/chaintracks/index.client.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +0 -30
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.js +0 -68
- package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +0 -155
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +0 -848
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts +0 -78
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +0 -261
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +0 -129
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +0 -145
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +0 -14
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +0 -67
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts +0 -90
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +0 -140
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +0 -14
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +0 -88
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +0 -159
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +0 -520
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts +0 -20
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +0 -31
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts +0 -37
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +0 -432
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +0 -1
- package/out/src/services/chaintracker/index.client.d.ts +0 -4
- package/out/src/services/chaintracker/index.client.d.ts.map +0 -1
- package/out/src/services/chaintracker/index.client.js +0 -20
- package/out/src/services/chaintracker/index.client.js.map +0 -1
- package/out/src/services/createDefaultWalletServicesOptions.d.ts +0 -7
- package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +0 -1
- package/out/src/services/createDefaultWalletServicesOptions.js +0 -65
- package/out/src/services/createDefaultWalletServicesOptions.js.map +0 -1
- package/out/src/services/providers/ARC.d.ts +0 -92
- package/out/src/services/providers/ARC.d.ts.map +0 -1
- package/out/src/services/providers/ARC.js +0 -270
- package/out/src/services/providers/ARC.js.map +0 -1
- package/out/src/services/providers/Bitails.d.ts +0 -50
- package/out/src/services/providers/Bitails.d.ts.map +0 -1
- package/out/src/services/providers/Bitails.js +0 -224
- package/out/src/services/providers/Bitails.js.map +0 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts +0 -21
- package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +0 -1
- package/out/src/services/providers/SdkWhatsOnChain.js +0 -67
- package/out/src/services/providers/SdkWhatsOnChain.js.map +0 -1
- package/out/src/services/providers/WhatsOnChain.d.ts +0 -130
- package/out/src/services/providers/WhatsOnChain.d.ts.map +0 -1
- package/out/src/services/providers/WhatsOnChain.js +0 -679
- package/out/src/services/providers/WhatsOnChain.js.map +0 -1
- package/out/src/services/providers/exchangeRates.d.ts +0 -12
- package/out/src/services/providers/exchangeRates.d.ts.map +0 -1
- package/out/src/services/providers/exchangeRates.js +0 -237
- package/out/src/services/providers/exchangeRates.js.map +0 -1
- package/out/src/services/providers/getBeefForTxid.d.ts +0 -4
- package/out/src/services/providers/getBeefForTxid.d.ts.map +0 -1
- package/out/src/services/providers/getBeefForTxid.js +0 -286
- package/out/src/services/providers/getBeefForTxid.js.map +0 -1
- package/out/src/signer/WalletSigner.d.ts +0 -11
- package/out/src/signer/WalletSigner.d.ts.map +0 -1
- package/out/src/signer/WalletSigner.js +0 -13
- package/out/src/signer/WalletSigner.js.map +0 -1
- package/out/src/signer/methods/acquireDirectCertificate.d.ts +0 -5
- package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +0 -1
- package/out/src/signer/methods/acquireDirectCertificate.js +0 -45
- package/out/src/signer/methods/acquireDirectCertificate.js.map +0 -1
- package/out/src/signer/methods/buildSignableTransaction.d.ts +0 -15
- package/out/src/signer/methods/buildSignableTransaction.d.ts.map +0 -1
- package/out/src/signer/methods/buildSignableTransaction.js +0 -142
- package/out/src/signer/methods/buildSignableTransaction.js.map +0 -1
- package/out/src/signer/methods/completeSignedTransaction.d.ts +0 -10
- package/out/src/signer/methods/completeSignedTransaction.d.ts.map +0 -1
- package/out/src/signer/methods/completeSignedTransaction.js +0 -106
- package/out/src/signer/methods/completeSignedTransaction.js.map +0 -1
- package/out/src/signer/methods/createAction.d.ts +0 -14
- package/out/src/signer/methods/createAction.d.ts.map +0 -1
- package/out/src/signer/methods/createAction.js +0 -117
- package/out/src/signer/methods/createAction.js.map +0 -1
- package/out/src/signer/methods/internalizeAction.d.ts +0 -32
- package/out/src/signer/methods/internalizeAction.d.ts.map +0 -1
- package/out/src/signer/methods/internalizeAction.js +0 -93
- package/out/src/signer/methods/internalizeAction.js.map +0 -1
- package/out/src/signer/methods/proveCertificate.d.ts +0 -5
- package/out/src/signer/methods/proveCertificate.d.ts.map +0 -1
- package/out/src/signer/methods/proveCertificate.js +0 -29
- package/out/src/signer/methods/proveCertificate.js.map +0 -1
- package/out/src/signer/methods/signAction.d.ts +0 -11
- package/out/src/signer/methods/signAction.d.ts.map +0 -1
- package/out/src/signer/methods/signAction.js +0 -41
- package/out/src/signer/methods/signAction.js.map +0 -1
- package/out/src/storage/StorageIdb.d.ts +0 -210
- package/out/src/storage/StorageIdb.d.ts.map +0 -1
- package/out/src/storage/StorageIdb.js +0 -2297
- package/out/src/storage/StorageIdb.js.map +0 -1
- package/out/src/storage/StorageProvider.d.ts +0 -222
- package/out/src/storage/StorageProvider.d.ts.map +0 -1
- package/out/src/storage/StorageProvider.js +0 -567
- package/out/src/storage/StorageProvider.js.map +0 -1
- package/out/src/storage/StorageReader.d.ts +0 -77
- package/out/src/storage/StorageReader.d.ts.map +0 -1
- package/out/src/storage/StorageReader.js +0 -163
- package/out/src/storage/StorageReader.js.map +0 -1
- package/out/src/storage/StorageReaderWriter.d.ts +0 -102
- package/out/src/storage/StorageReaderWriter.d.ts.map +0 -1
- package/out/src/storage/StorageReaderWriter.js +0 -338
- package/out/src/storage/StorageReaderWriter.js.map +0 -1
- package/out/src/storage/StorageSyncReader.d.ts +0 -18
- package/out/src/storage/StorageSyncReader.d.ts.map +0 -1
- package/out/src/storage/StorageSyncReader.js +0 -71
- package/out/src/storage/StorageSyncReader.js.map +0 -1
- package/out/src/storage/WalletStorageManager.d.ts +0 -221
- package/out/src/storage/WalletStorageManager.d.ts.map +0 -1
- package/out/src/storage/WalletStorageManager.js +0 -819
- package/out/src/storage/WalletStorageManager.js.map +0 -1
- package/out/src/storage/index.client.d.ts +0 -8
- package/out/src/storage/index.client.d.ts.map +0 -1
- package/out/src/storage/index.client.js +0 -24
- package/out/src/storage/index.client.js.map +0 -1
- package/out/src/storage/methods/ListActionsSpecOp.d.ts +0 -18
- package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +0 -1
- package/out/src/storage/methods/ListActionsSpecOp.js +0 -40
- package/out/src/storage/methods/ListActionsSpecOp.js.map +0 -1
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts +0 -26
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +0 -1
- package/out/src/storage/methods/ListOutputsSpecOp.js +0 -73
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +0 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +0 -41
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +0 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +0 -324
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +0 -1
- package/out/src/storage/methods/createAction.d.ts +0 -13
- package/out/src/storage/methods/createAction.d.ts.map +0 -1
- package/out/src/storage/methods/createAction.js +0 -732
- package/out/src/storage/methods/createAction.js.map +0 -1
- package/out/src/storage/methods/generateChange.d.ts +0 -96
- package/out/src/storage/methods/generateChange.d.ts.map +0 -1
- package/out/src/storage/methods/generateChange.js +0 -405
- package/out/src/storage/methods/generateChange.js.map +0 -1
- package/out/src/storage/methods/getBeefForTransaction.d.ts +0 -23
- package/out/src/storage/methods/getBeefForTransaction.d.ts.map +0 -1
- package/out/src/storage/methods/getBeefForTransaction.js +0 -109
- package/out/src/storage/methods/getBeefForTransaction.js.map +0 -1
- package/out/src/storage/methods/getSyncChunk.d.ts +0 -10
- package/out/src/storage/methods/getSyncChunk.d.ts.map +0 -1
- package/out/src/storage/methods/getSyncChunk.js +0 -272
- package/out/src/storage/methods/getSyncChunk.js.map +0 -1
- package/out/src/storage/methods/internalizeAction.d.ts +0 -31
- package/out/src/storage/methods/internalizeAction.d.ts.map +0 -1
- package/out/src/storage/methods/internalizeAction.js +0 -462
- package/out/src/storage/methods/internalizeAction.js.map +0 -1
- package/out/src/storage/methods/listActionsIdb.d.ts +0 -5
- package/out/src/storage/methods/listActionsIdb.d.ts.map +0 -1
- package/out/src/storage/methods/listActionsIdb.js +0 -155
- package/out/src/storage/methods/listActionsIdb.js.map +0 -1
- package/out/src/storage/methods/listCertificates.d.ts +0 -5
- package/out/src/storage/methods/listCertificates.d.ts.map +0 -1
- package/out/src/storage/methods/listCertificates.js +0 -68
- package/out/src/storage/methods/listCertificates.js.map +0 -1
- package/out/src/storage/methods/listOutputsIdb.d.ts +0 -5
- package/out/src/storage/methods/listOutputsIdb.d.ts.map +0 -1
- package/out/src/storage/methods/listOutputsIdb.js +0 -185
- package/out/src/storage/methods/listOutputsIdb.js.map +0 -1
- package/out/src/storage/methods/offsetKey.d.ts +0 -24
- package/out/src/storage/methods/offsetKey.d.ts.map +0 -1
- package/out/src/storage/methods/offsetKey.js +0 -67
- package/out/src/storage/methods/offsetKey.js.map +0 -1
- package/out/src/storage/methods/processAction.d.ts +0 -54
- package/out/src/storage/methods/processAction.d.ts.map +0 -1
- package/out/src/storage/methods/processAction.js +0 -267
- package/out/src/storage/methods/processAction.js.map +0 -1
- package/out/src/storage/methods/purgeDataIdb.d.ts +0 -4
- package/out/src/storage/methods/purgeDataIdb.d.ts.map +0 -1
- package/out/src/storage/methods/purgeDataIdb.js +0 -9
- package/out/src/storage/methods/purgeDataIdb.js.map +0 -1
- package/out/src/storage/methods/reviewStatusIdb.d.ts +0 -20
- package/out/src/storage/methods/reviewStatusIdb.d.ts.map +0 -1
- package/out/src/storage/methods/reviewStatusIdb.js +0 -35
- package/out/src/storage/methods/reviewStatusIdb.js.map +0 -1
- package/out/src/storage/methods/utils.d.ts +0 -25
- package/out/src/storage/methods/utils.d.ts.map +0 -1
- package/out/src/storage/methods/utils.js +0 -53
- package/out/src/storage/methods/utils.js.map +0 -1
- package/out/src/storage/remoting/StorageClient.d.ts +0 -292
- package/out/src/storage/remoting/StorageClient.d.ts.map +0 -1
- package/out/src/storage/remoting/StorageClient.js +0 -497
- package/out/src/storage/remoting/StorageClient.js.map +0 -1
- package/out/src/storage/schema/StorageIdbSchema.d.ts +0 -133
- package/out/src/storage/schema/StorageIdbSchema.d.ts.map +0 -1
- package/out/src/storage/schema/StorageIdbSchema.js +0 -3
- package/out/src/storage/schema/StorageIdbSchema.js.map +0 -1
- package/out/src/storage/schema/entities/EntityBase.d.ts +0 -106
- package/out/src/storage/schema/entities/EntityBase.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityBase.js +0 -100
- package/out/src/storage/schema/entities/EntityBase.js.map +0 -1
- package/out/src/storage/schema/entities/EntityCertificate.d.ts +0 -44
- package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityCertificate.js +0 -162
- package/out/src/storage/schema/entities/EntityCertificate.js.map +0 -1
- package/out/src/storage/schema/entities/EntityCertificateField.d.ts +0 -33
- package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityCertificateField.js +0 -112
- package/out/src/storage/schema/entities/EntityCertificateField.js.map +0 -1
- package/out/src/storage/schema/entities/EntityCommission.d.ts +0 -38
- package/out/src/storage/schema/entities/EntityCommission.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityCommission.js +0 -127
- package/out/src/storage/schema/entities/EntityCommission.js.map +0 -1
- package/out/src/storage/schema/entities/EntityOutput.d.ts +0 -68
- package/out/src/storage/schema/entities/EntityOutput.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityOutput.js +0 -264
- package/out/src/storage/schema/entities/EntityOutput.js.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.d.ts +0 -36
- package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.js +0 -133
- package/out/src/storage/schema/entities/EntityOutputBasket.js.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputTag.d.ts +0 -32
- package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputTag.js +0 -104
- package/out/src/storage/schema/entities/EntityOutputTag.js.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts +0 -29
- package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.js +0 -98
- package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +0 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +0 -87
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +0 -278
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +0 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +0 -139
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js +0 -524
- package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +0 -1
- package/out/src/storage/schema/entities/EntitySyncState.d.ts +0 -69
- package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +0 -334
- package/out/src/storage/schema/entities/EntitySyncState.js.map +0 -1
- package/out/src/storage/schema/entities/EntityTransaction.d.ts +0 -71
- package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityTransaction.js +0 -255
- package/out/src/storage/schema/entities/EntityTransaction.js.map +0 -1
- package/out/src/storage/schema/entities/EntityTxLabel.d.ts +0 -32
- package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityTxLabel.js +0 -104
- package/out/src/storage/schema/entities/EntityTxLabel.js.map +0 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts +0 -29
- package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.js +0 -98
- package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +0 -1
- package/out/src/storage/schema/entities/EntityUser.d.ts +0 -30
- package/out/src/storage/schema/entities/EntityUser.d.ts.map +0 -1
- package/out/src/storage/schema/entities/EntityUser.js +0 -99
- package/out/src/storage/schema/entities/EntityUser.js.map +0 -1
- package/out/src/storage/schema/entities/MergeEntity.d.ts +0 -34
- package/out/src/storage/schema/entities/MergeEntity.d.ts.map +0 -1
- package/out/src/storage/schema/entities/MergeEntity.js +0 -63
- package/out/src/storage/schema/entities/MergeEntity.js.map +0 -1
- package/out/src/storage/schema/entities/index.d.ts +0 -17
- package/out/src/storage/schema/entities/index.d.ts.map +0 -1
- package/out/src/storage/schema/entities/index.js +0 -33
- package/out/src/storage/schema/entities/index.js.map +0 -1
- package/out/src/storage/schema/tables/TableCertificate.d.ts +0 -20
- package/out/src/storage/schema/tables/TableCertificate.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableCertificate.js +0 -3
- package/out/src/storage/schema/tables/TableCertificate.js.map +0 -1
- package/out/src/storage/schema/tables/TableCertificateField.d.ts +0 -12
- package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableCertificateField.js +0 -3
- package/out/src/storage/schema/tables/TableCertificateField.js.map +0 -1
- package/out/src/storage/schema/tables/TableCommission.d.ts +0 -13
- package/out/src/storage/schema/tables/TableCommission.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableCommission.js +0 -3
- package/out/src/storage/schema/tables/TableCommission.js.map +0 -1
- package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +0 -9
- package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableMonitorEvent.js +0 -3
- package/out/src/storage/schema/tables/TableMonitorEvent.js.map +0 -1
- package/out/src/storage/schema/tables/TableOutput.d.ts +0 -36
- package/out/src/storage/schema/tables/TableOutput.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableOutput.js +0 -31
- package/out/src/storage/schema/tables/TableOutput.js.map +0 -1
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts +0 -12
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableOutputBasket.js +0 -3
- package/out/src/storage/schema/tables/TableOutputBasket.js.map +0 -1
- package/out/src/storage/schema/tables/TableOutputTag.d.ts +0 -10
- package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableOutputTag.js +0 -3
- package/out/src/storage/schema/tables/TableOutputTag.js.map +0 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +0 -9
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.js +0 -3
- package/out/src/storage/schema/tables/TableOutputTagMap.js.map +0 -1
- package/out/src/storage/schema/tables/TableProvenTx.d.ts +0 -14
- package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableProvenTx.js +0 -3
- package/out/src/storage/schema/tables/TableProvenTx.js.map +0 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +0 -64
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.js +0 -3
- package/out/src/storage/schema/tables/TableProvenTxReq.js.map +0 -1
- package/out/src/storage/schema/tables/TableSettings.d.ts +0 -17
- package/out/src/storage/schema/tables/TableSettings.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableSettings.js +0 -3
- package/out/src/storage/schema/tables/TableSettings.js.map +0 -1
- package/out/src/storage/schema/tables/TableSyncState.d.ts +0 -18
- package/out/src/storage/schema/tables/TableSyncState.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableSyncState.js +0 -3
- package/out/src/storage/schema/tables/TableSyncState.js.map +0 -1
- package/out/src/storage/schema/tables/TableTransaction.d.ts +0 -37
- package/out/src/storage/schema/tables/TableTransaction.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableTransaction.js +0 -21
- package/out/src/storage/schema/tables/TableTransaction.js.map +0 -1
- package/out/src/storage/schema/tables/TableTxLabel.d.ts +0 -10
- package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableTxLabel.js +0 -3
- package/out/src/storage/schema/tables/TableTxLabel.js.map +0 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +0 -9
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.js +0 -3
- package/out/src/storage/schema/tables/TableTxLabelMap.js.map +0 -1
- package/out/src/storage/schema/tables/TableUser.d.ts +0 -16
- package/out/src/storage/schema/tables/TableUser.d.ts.map +0 -1
- package/out/src/storage/schema/tables/TableUser.js +0 -3
- package/out/src/storage/schema/tables/TableUser.js.map +0 -1
- package/out/src/storage/schema/tables/index.d.ts +0 -17
- package/out/src/storage/schema/tables/index.d.ts.map +0 -1
- package/out/src/storage/schema/tables/index.js +0 -33
- package/out/src/storage/schema/tables/index.js.map +0 -1
- package/out/src/utility/ReaderUint8Array.d.ts +0 -28
- package/out/src/utility/ReaderUint8Array.d.ts.map +0 -1
- package/out/src/utility/ReaderUint8Array.js +0 -166
- package/out/src/utility/ReaderUint8Array.js.map +0 -1
- package/out/src/utility/ScriptTemplateBRC29.d.ts +0 -25
- package/out/src/utility/ScriptTemplateBRC29.d.ts.map +0 -1
- package/out/src/utility/ScriptTemplateBRC29.js +0 -48
- package/out/src/utility/ScriptTemplateBRC29.js.map +0 -1
- package/out/src/utility/aggregateResults.d.ts +0 -8
- package/out/src/utility/aggregateResults.d.ts.map +0 -1
- package/out/src/utility/aggregateResults.js +0 -59
- package/out/src/utility/aggregateResults.js.map +0 -1
- package/out/src/utility/identityUtils.d.ts +0 -31
- package/out/src/utility/identityUtils.d.ts.map +0 -1
- package/out/src/utility/identityUtils.js +0 -116
- package/out/src/utility/identityUtils.js.map +0 -1
- package/out/src/utility/index.client.d.ts +0 -7
- package/out/src/utility/index.client.d.ts.map +0 -1
- package/out/src/utility/index.client.js +0 -23
- package/out/src/utility/index.client.js.map +0 -1
- package/out/src/utility/parseTxScriptOffsets.d.ts +0 -14
- package/out/src/utility/parseTxScriptOffsets.d.ts.map +0 -1
- package/out/src/utility/parseTxScriptOffsets.js +0 -26
- package/out/src/utility/parseTxScriptOffsets.js.map +0 -1
- package/out/src/utility/stampLog.d.ts +0 -18
- package/out/src/utility/stampLog.d.ts.map +0 -1
- package/out/src/utility/stampLog.js +0 -72
- package/out/src/utility/stampLog.js.map +0 -1
- package/out/src/utility/tscProofToMerklePath.d.ts +0 -8
- package/out/src/utility/tscProofToMerklePath.d.ts.map +0 -1
- package/out/src/utility/tscProofToMerklePath.js +0 -41
- package/out/src/utility/tscProofToMerklePath.js.map +0 -1
- package/out/src/utility/utilityHelpers.d.ts +0 -138
- package/out/src/utility/utilityHelpers.d.ts.map +0 -1
- package/out/src/utility/utilityHelpers.js +0 -294
- package/out/src/utility/utilityHelpers.js.map +0 -1
- package/out/src/utility/utilityHelpers.noBuffer.d.ts +0 -26
- package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +0 -1
- package/out/src/utility/utilityHelpers.noBuffer.js +0 -64
- package/out/src/utility/utilityHelpers.noBuffer.js.map +0 -1
- package/out/src/wab-client/WABClient.d.ts +0 -49
- package/out/src/wab-client/WABClient.d.ts.map +0 -1
- package/out/src/wab-client/WABClient.js +0 -80
- package/out/src/wab-client/WABClient.js.map +0 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +0 -34
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +0 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +0 -16
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +0 -1
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts +0 -29
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.d.ts.map +0 -1
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +0 -70
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +0 -1
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts +0 -7
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts.map +0 -1
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +0 -36
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +0 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +0 -28
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +0 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +0 -69
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +0 -1
- package/out/tsconfig.client.tsbuildinfo +0 -1
|
@@ -1,848 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BulkFileDataReader = exports.BulkFileDataManager = void 0;
|
|
4
|
-
exports.selectBulkHeaderFiles = selectBulkHeaderFiles;
|
|
5
|
-
const sdk_1 = require("../../../../sdk");
|
|
6
|
-
const sdk_2 = require("@bsv/sdk");
|
|
7
|
-
const utilityHelpers_noBuffer_1 = require("../../../../utility/utilityHelpers.noBuffer");
|
|
8
|
-
const validBulkHeaderFilesByFileHash_1 = require("./validBulkHeaderFilesByFileHash");
|
|
9
|
-
const HeightRange_1 = require("./HeightRange");
|
|
10
|
-
const blockHeaderUtilities_1 = require("./blockHeaderUtilities");
|
|
11
|
-
const ChaintracksFetch_1 = require("./ChaintracksFetch");
|
|
12
|
-
const SingleWriterMultiReaderLock_1 = require("./SingleWriterMultiReaderLock");
|
|
13
|
-
/**
|
|
14
|
-
* Manages bulk file data (typically 8MB chunks of 100,000 headers each).
|
|
15
|
-
*
|
|
16
|
-
* If not cached in memory,
|
|
17
|
-
* optionally fetches data by `sourceUrl` from CDN on demand,
|
|
18
|
-
* optionally finds data by `fileId` in a database on demand,
|
|
19
|
-
* and retains a limited number of files in memory,
|
|
20
|
-
* subject to the optional `maxRetained` limit.
|
|
21
|
-
*/
|
|
22
|
-
class BulkFileDataManager {
|
|
23
|
-
static createDefaultOptions(chain) {
|
|
24
|
-
return {
|
|
25
|
-
chain,
|
|
26
|
-
maxPerFile: 100000,
|
|
27
|
-
maxRetained: 2,
|
|
28
|
-
fetch: new ChaintracksFetch_1.ChaintracksFetch(),
|
|
29
|
-
fromKnownSourceUrl: 'https://cdn.projectbabbage.com/blockheaders'
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
constructor(options) {
|
|
33
|
-
this.log = () => { };
|
|
34
|
-
this.bfds = [];
|
|
35
|
-
this.fileHashToIndex = {};
|
|
36
|
-
this.lock = new SingleWriterMultiReaderLock_1.SingleWriterMultiReaderLock();
|
|
37
|
-
if (typeof options === 'object')
|
|
38
|
-
options = options;
|
|
39
|
-
else
|
|
40
|
-
options = BulkFileDataManager.createDefaultOptions(options);
|
|
41
|
-
this.chain = options.chain;
|
|
42
|
-
this.maxPerFile = options.maxPerFile;
|
|
43
|
-
this.maxRetained = options.maxRetained;
|
|
44
|
-
this.fromKnownSourceUrl = options.fromKnownSourceUrl;
|
|
45
|
-
this.fetch = options.fetch;
|
|
46
|
-
this.deleteBulkFilesNoLock();
|
|
47
|
-
}
|
|
48
|
-
async deleteBulkFiles() {
|
|
49
|
-
return this.lock.withWriteLock(async () => this.deleteBulkFilesNoLock());
|
|
50
|
-
}
|
|
51
|
-
deleteBulkFilesNoLock() {
|
|
52
|
-
this.bfds = [];
|
|
53
|
-
this.fileHashToIndex = {};
|
|
54
|
-
if (this.fromKnownSourceUrl) {
|
|
55
|
-
const vbhfs = validBulkHeaderFilesByFileHash_1.validBulkHeaderFiles;
|
|
56
|
-
const filtered = vbhfs.filter(f => f.sourceUrl === this.fromKnownSourceUrl);
|
|
57
|
-
const files = selectBulkHeaderFiles(filtered, this.chain, this.maxPerFile);
|
|
58
|
-
for (const file of files) {
|
|
59
|
-
this.add({ ...file, fileHash: file.fileHash, mru: Date.now() });
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* If `bfds` are going to be backed by persistent storage,
|
|
65
|
-
* must be called before making storage available.
|
|
66
|
-
*
|
|
67
|
-
* Synchronizes bfds and storage files, after which this manager maintains sync.
|
|
68
|
-
* There should be no changes to bulk files by direct access to storage bulk file methods.
|
|
69
|
-
*/
|
|
70
|
-
async setStorage(storage, log) {
|
|
71
|
-
return this.lock.withWriteLock(async () => this.setStorageNoLock(storage, log));
|
|
72
|
-
}
|
|
73
|
-
async setStorageNoLock(storage, log) {
|
|
74
|
-
this.storage = storage;
|
|
75
|
-
this.log = log;
|
|
76
|
-
// Get files currently in persistent storage.
|
|
77
|
-
let sfs = await this.storage.getBulkFiles();
|
|
78
|
-
// Sync bfds with storage. Two scenarios supported:
|
|
79
|
-
const bfdsRanges = this.heightRangesFromBulkFiles(this.bfds);
|
|
80
|
-
const sfsRanges = this.heightRangesFromBulkFiles(sfs);
|
|
81
|
-
if (sfsRanges.cdn.length >= bfdsRanges.cdn.length) {
|
|
82
|
-
// Storage win if it has greater or equal CDN coverage
|
|
83
|
-
// Replace all bfds with sfs
|
|
84
|
-
this.bfds = [];
|
|
85
|
-
for (const file of sfs) {
|
|
86
|
-
const vbf = await this.validateFileInfo(file);
|
|
87
|
-
this.bfds.push(vbf);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
// Bfds win if they have greater CDN coverage
|
|
92
|
-
// Replace all sfs with bfds
|
|
93
|
-
for (const s of sfs.reverse())
|
|
94
|
-
await this.storage.deleteBulkFile(s.fileId);
|
|
95
|
-
for (const bfd of this.bfds) {
|
|
96
|
-
await this.ensureData(bfd);
|
|
97
|
-
bfd.fileId = await this.storage.insertBulkFile(bfdToInfo(bfd, true));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
heightRangesFromBulkFiles(files) {
|
|
102
|
-
const ranges = { all: new HeightRange_1.HeightRange(0, -1), cdn: new HeightRange_1.HeightRange(0, -1), incremental: new HeightRange_1.HeightRange(0, -1) };
|
|
103
|
-
for (const file of files) {
|
|
104
|
-
const range = new HeightRange_1.HeightRange(file.firstHeight, file.firstHeight + file.count - 1);
|
|
105
|
-
ranges.all = ranges.all.union(range);
|
|
106
|
-
if (isBdfCdn(file))
|
|
107
|
-
ranges.cdn = ranges.cdn.union(range);
|
|
108
|
-
if (isBdfIncremental(file))
|
|
109
|
-
ranges.incremental = ranges.incremental.union(range);
|
|
110
|
-
}
|
|
111
|
-
return ranges;
|
|
112
|
-
}
|
|
113
|
-
async createReader(range, maxBufferSize) {
|
|
114
|
-
range = range || (await this.getHeightRange());
|
|
115
|
-
maxBufferSize = maxBufferSize || 1000000 * 80; // 100,000 headers, 8MB
|
|
116
|
-
return new BulkFileDataReader(this, range, maxBufferSize);
|
|
117
|
-
}
|
|
118
|
-
async updateFromUrl(cdnUrl) {
|
|
119
|
-
if (!this.fetch)
|
|
120
|
-
throw new sdk_1.WERR_INVALID_OPERATION('fetch is not defined in the BulkFileDataManager.');
|
|
121
|
-
const toUrl = (file) => this.fetch.pathJoin(cdnUrl, file);
|
|
122
|
-
const url = toUrl(`${this.chain}NetBlockHeaders.json`);
|
|
123
|
-
const availableBulkFiles = (await this.fetch.fetchJson(url));
|
|
124
|
-
if (!availableBulkFiles)
|
|
125
|
-
throw new sdk_1.WERR_INVALID_PARAMETER(`cdnUrl`, `a valid BulkHeaderFilesInfo JSON resource available from ${url}`);
|
|
126
|
-
const selectedFiles = selectBulkHeaderFiles(availableBulkFiles.files, this.chain, this.maxPerFile || availableBulkFiles.headersPerFile);
|
|
127
|
-
for (const bf of selectedFiles) {
|
|
128
|
-
if (!bf.fileHash) {
|
|
129
|
-
throw new sdk_1.WERR_INVALID_PARAMETER(`fileHash`, `valid for all files in json downloaded from ${url}`);
|
|
130
|
-
}
|
|
131
|
-
if (!bf.chain || bf.chain !== this.chain) {
|
|
132
|
-
throw new sdk_1.WERR_INVALID_PARAMETER(`chain`, `"${this.chain}" for all files in json downloaded from ${url}`);
|
|
133
|
-
}
|
|
134
|
-
if (!bf.sourceUrl || bf.sourceUrl !== cdnUrl)
|
|
135
|
-
bf.sourceUrl = cdnUrl;
|
|
136
|
-
}
|
|
137
|
-
const rangeBefore = await this.getHeightRange();
|
|
138
|
-
const r = await this.merge(selectedFiles);
|
|
139
|
-
const rangeAfter = await this.getHeightRange();
|
|
140
|
-
let log = 'BulkDataFileManager.updateFromUrl\n';
|
|
141
|
-
log += ` url: ${url}\n`;
|
|
142
|
-
log += ` bulk range before: ${rangeBefore}\n`;
|
|
143
|
-
log += ` bulk range after: ${rangeAfter}\n`;
|
|
144
|
-
this.log(log);
|
|
145
|
-
}
|
|
146
|
-
async merge(files) {
|
|
147
|
-
return this.lock.withWriteLock(async () => this.mergeNoLock(files));
|
|
148
|
-
}
|
|
149
|
-
async mergeNoLock(files) {
|
|
150
|
-
const r = { inserted: [], updated: [], unchanged: [], dropped: [] };
|
|
151
|
-
for (const file of files) {
|
|
152
|
-
const hbf = this.getBfdForHeight(file.firstHeight);
|
|
153
|
-
if (hbf && file.fileId)
|
|
154
|
-
hbf.fileId = file.fileId; // Always update fileId if provided
|
|
155
|
-
const lbf = this.getLastBfd();
|
|
156
|
-
if (hbf &&
|
|
157
|
-
hbf.fileHash === file.fileHash &&
|
|
158
|
-
hbf.count === file.count &&
|
|
159
|
-
hbf.lastHash === file.lastHash &&
|
|
160
|
-
hbf.lastChainWork === file.lastChainWork) {
|
|
161
|
-
// We already have an identical matching file...
|
|
162
|
-
r.unchanged.push(bfdToInfo(hbf));
|
|
163
|
-
continue;
|
|
164
|
-
}
|
|
165
|
-
const vbf = await this.validateFileInfo(file);
|
|
166
|
-
if (hbf) {
|
|
167
|
-
// We have a matching file by firstHeight but count and fileHash differ
|
|
168
|
-
await this.update(vbf, hbf, r);
|
|
169
|
-
}
|
|
170
|
-
else if (isBdfIncremental(vbf) && lbf && isBdfIncremental(lbf)) {
|
|
171
|
-
await this.mergeIncremental(lbf, vbf, r);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
const added = await this.add(vbf);
|
|
175
|
-
r.inserted.push(added);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
this.log(`BulkFileDataManager.merge:\n${this.toLogString(r)}\n`);
|
|
179
|
-
return r;
|
|
180
|
-
}
|
|
181
|
-
async mergeIncremental(lbf, vbf, r) {
|
|
182
|
-
lbf.count += vbf.count;
|
|
183
|
-
lbf.lastHash = vbf.lastHash;
|
|
184
|
-
lbf.lastChainWork = vbf.lastChainWork;
|
|
185
|
-
await this.ensureData(lbf);
|
|
186
|
-
const newData = new Uint8Array(lbf.data.length + vbf.data.length);
|
|
187
|
-
newData.set(lbf.data);
|
|
188
|
-
newData.set(vbf.data, lbf.data.length);
|
|
189
|
-
lbf.data = newData;
|
|
190
|
-
delete this.fileHashToIndex[lbf.fileHash];
|
|
191
|
-
lbf.fileHash = (0, utilityHelpers_noBuffer_1.asString)(sdk_2.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(newData)), 'base64');
|
|
192
|
-
this.fileHashToIndex[lbf.fileHash] = this.bfds.length - 1;
|
|
193
|
-
lbf.mru = Date.now();
|
|
194
|
-
const lbfInfo = bfdToInfo(lbf, true);
|
|
195
|
-
r.updated.push(lbfInfo);
|
|
196
|
-
if (this.storage && lbf.fileId) {
|
|
197
|
-
await this.storage.updateBulkFile(lbf.fileId, lbfInfo);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
toLogString(what) {
|
|
201
|
-
let log = '';
|
|
202
|
-
if (!what) {
|
|
203
|
-
log += this.toLogString(this.bfds);
|
|
204
|
-
}
|
|
205
|
-
else if (what['updated']) {
|
|
206
|
-
what = what;
|
|
207
|
-
for (const { category, bfds } of [
|
|
208
|
-
{ category: 'unchanged', bfds: what.unchanged },
|
|
209
|
-
{ category: 'dropped', bfds: what.dropped },
|
|
210
|
-
{ category: 'updated', bfds: what.updated },
|
|
211
|
-
{ category: 'inserted', bfds: what.inserted }
|
|
212
|
-
]) {
|
|
213
|
-
if (bfds.length > 0) {
|
|
214
|
-
log += ` ${category}:\n`;
|
|
215
|
-
log += this.toLogString(bfds);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
else if (Array.isArray(what)) {
|
|
220
|
-
what = what;
|
|
221
|
-
let i = -1;
|
|
222
|
-
for (const bfd of what) {
|
|
223
|
-
i++;
|
|
224
|
-
log += ` ${i}: ${bfd.fileName} fileId=${bfd.fileId} ${bfd.firstHeight}-${bfd.firstHeight + bfd.count - 1}\n`;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
return log;
|
|
228
|
-
}
|
|
229
|
-
async mergeIncrementalBlockHeaders(newBulkHeaders, incrementalChainWork) {
|
|
230
|
-
if (newBulkHeaders.length === 0)
|
|
231
|
-
return;
|
|
232
|
-
return this.lock.withWriteLock(async () => {
|
|
233
|
-
const lbf = this.getLastFileNoLock();
|
|
234
|
-
const nextHeight = lbf ? lbf.firstHeight + lbf.count : 0;
|
|
235
|
-
if (nextHeight > 0 && newBulkHeaders.length > 0 && newBulkHeaders[0].height < nextHeight) {
|
|
236
|
-
// Don't modify the incoming array...
|
|
237
|
-
newBulkHeaders = [...newBulkHeaders];
|
|
238
|
-
// If we have more headers than we need, drop the incoming headers.
|
|
239
|
-
while (newBulkHeaders.length > 0 && newBulkHeaders[0].height < nextHeight) {
|
|
240
|
-
const h = newBulkHeaders.shift();
|
|
241
|
-
if (h && incrementalChainWork) {
|
|
242
|
-
incrementalChainWork = (0, blockHeaderUtilities_1.subWork)(incrementalChainWork, (0, blockHeaderUtilities_1.convertBitsToWork)(h.bits));
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
if (newBulkHeaders.length === 0)
|
|
247
|
-
return;
|
|
248
|
-
if (!lbf || nextHeight !== newBulkHeaders[0].height)
|
|
249
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('newBulkHeaders', 'an extension of existing bulk headers');
|
|
250
|
-
if (!lbf.lastHash)
|
|
251
|
-
throw new sdk_1.WERR_INTERNAL(`lastHash is not defined for the last bulk file ${lbf.fileName}`);
|
|
252
|
-
const fbh = newBulkHeaders[0];
|
|
253
|
-
const lbh = newBulkHeaders.slice(-1)[0];
|
|
254
|
-
let lastChainWork = lbf.lastChainWork;
|
|
255
|
-
if (incrementalChainWork) {
|
|
256
|
-
lastChainWork = (0, blockHeaderUtilities_1.addWork)(incrementalChainWork, lastChainWork);
|
|
257
|
-
}
|
|
258
|
-
else {
|
|
259
|
-
// If lastChainWork is not provided, calculate it from the last file with basic validation.
|
|
260
|
-
let lastHeight = lbf.firstHeight + lbf.count - 1;
|
|
261
|
-
let lastHash = lbf.lastHash;
|
|
262
|
-
for (const h of newBulkHeaders) {
|
|
263
|
-
if (h.height !== lastHeight + 1 || h.previousHash !== lastHash) {
|
|
264
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('headers', `an extension of existing bulk headers, header with height ${h.height} is non-sequential`);
|
|
265
|
-
}
|
|
266
|
-
lastChainWork = (0, blockHeaderUtilities_1.addWork)(lastChainWork, (0, blockHeaderUtilities_1.convertBitsToWork)(h.bits));
|
|
267
|
-
lastHeight = h.height;
|
|
268
|
-
lastHash = h.hash;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
const data = (0, blockHeaderUtilities_1.serializeBaseBlockHeaders)(newBulkHeaders);
|
|
272
|
-
const fileHash = (0, utilityHelpers_noBuffer_1.asString)(sdk_2.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(data)), 'base64');
|
|
273
|
-
const bf = {
|
|
274
|
-
fileId: undefined,
|
|
275
|
-
chain: this.chain,
|
|
276
|
-
sourceUrl: undefined,
|
|
277
|
-
fileName: 'incremental',
|
|
278
|
-
firstHeight: fbh.height,
|
|
279
|
-
count: newBulkHeaders.length,
|
|
280
|
-
prevChainWork: lbf.lastChainWork,
|
|
281
|
-
lastChainWork,
|
|
282
|
-
prevHash: lbf.lastHash,
|
|
283
|
-
lastHash: lbh.hash,
|
|
284
|
-
fileHash,
|
|
285
|
-
data
|
|
286
|
-
};
|
|
287
|
-
await this.mergeNoLock([bf]);
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
|
-
async getBulkFiles(keepData) {
|
|
291
|
-
return this.lock.withReadLock(async () => {
|
|
292
|
-
return this.bfds.map(bfd => bfdToInfo(bfd, keepData));
|
|
293
|
-
});
|
|
294
|
-
}
|
|
295
|
-
async getHeightRange() {
|
|
296
|
-
return this.lock.withReadLock(async () => {
|
|
297
|
-
if (this.bfds.length === 0)
|
|
298
|
-
return HeightRange_1.HeightRange.empty;
|
|
299
|
-
const first = this.bfds[0];
|
|
300
|
-
const last = this.bfds[this.bfds.length - 1];
|
|
301
|
-
return new HeightRange_1.HeightRange(first.firstHeight, last.firstHeight + last.count - 1);
|
|
302
|
-
});
|
|
303
|
-
}
|
|
304
|
-
async getDataFromFile(file, offset, length) {
|
|
305
|
-
const bfd = await this.getBfdForHeight(file.firstHeight);
|
|
306
|
-
if (!bfd || bfd.count < file.count)
|
|
307
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file', `a match for ${file.firstHeight}, ${file.count} in the BulkFileDataManager.`);
|
|
308
|
-
return this.lock.withReadLock(async () => this.getDataFromFileNoLock(bfd, offset, length));
|
|
309
|
-
}
|
|
310
|
-
async getDataFromFileNoLock(bfd, offset, length) {
|
|
311
|
-
const fileLength = bfd.count * 80;
|
|
312
|
-
offset = offset || 0;
|
|
313
|
-
if (offset > fileLength - 1)
|
|
314
|
-
return undefined;
|
|
315
|
-
length = length || bfd.count * 80 - offset;
|
|
316
|
-
length = Math.min(length, fileLength - offset);
|
|
317
|
-
let data;
|
|
318
|
-
if (bfd.data) {
|
|
319
|
-
data = bfd.data.slice(offset, offset + length);
|
|
320
|
-
}
|
|
321
|
-
else if (bfd.fileId && this.storage) {
|
|
322
|
-
data = await this.storage.getBulkFileData(bfd.fileId, offset, length);
|
|
323
|
-
}
|
|
324
|
-
if (!data) {
|
|
325
|
-
await this.ensureData(bfd);
|
|
326
|
-
if (bfd.data)
|
|
327
|
-
data = bfd.data.slice(offset, offset + length);
|
|
328
|
-
}
|
|
329
|
-
if (!data)
|
|
330
|
-
return undefined;
|
|
331
|
-
return data;
|
|
332
|
-
}
|
|
333
|
-
async findHeaderForHeightOrUndefined(height) {
|
|
334
|
-
return this.lock.withReadLock(async () => {
|
|
335
|
-
if (!Number.isInteger(height) || height < 0)
|
|
336
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('height', `a non-negative integer (${height}).`);
|
|
337
|
-
const file = this.bfds.find(f => f.firstHeight <= height && f.firstHeight + f.count > height);
|
|
338
|
-
if (!file)
|
|
339
|
-
return undefined;
|
|
340
|
-
const offset = (height - file.firstHeight) * 80;
|
|
341
|
-
const data = await this.getDataFromFileNoLock(file, offset, 80);
|
|
342
|
-
if (!data)
|
|
343
|
-
return undefined;
|
|
344
|
-
const header = (0, blockHeaderUtilities_1.deserializeBlockHeader)(data, 0, height);
|
|
345
|
-
return header;
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
async getFileForHeight(height) {
|
|
349
|
-
return this.lock.withReadLock(async () => {
|
|
350
|
-
const bfd = this.getBfdForHeight(height);
|
|
351
|
-
if (!bfd)
|
|
352
|
-
return undefined;
|
|
353
|
-
return bfdToInfo(bfd);
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
getBfdForHeight(height) {
|
|
357
|
-
if (!Number.isInteger(height) || height < 0)
|
|
358
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('height', `a non-negative integer (${height}).`);
|
|
359
|
-
const file = this.bfds.find(f => f.firstHeight <= height && f.firstHeight + f.count > height);
|
|
360
|
-
return file;
|
|
361
|
-
}
|
|
362
|
-
getLastBfd(fromEnd = 1) {
|
|
363
|
-
if (this.bfds.length < fromEnd)
|
|
364
|
-
return undefined;
|
|
365
|
-
const bfd = this.bfds[this.bfds.length - fromEnd];
|
|
366
|
-
return bfd;
|
|
367
|
-
}
|
|
368
|
-
async getLastFile(fromEnd = 1) {
|
|
369
|
-
return this.lock.withReadLock(async () => this.getLastFileNoLock(fromEnd));
|
|
370
|
-
}
|
|
371
|
-
getLastFileNoLock(fromEnd = 1) {
|
|
372
|
-
const bfd = this.getLastBfd(fromEnd);
|
|
373
|
-
if (!bfd)
|
|
374
|
-
return undefined;
|
|
375
|
-
return bfdToInfo(bfd);
|
|
376
|
-
}
|
|
377
|
-
async getDataByFileHash(fileHash) {
|
|
378
|
-
const index = this.fileHashToIndex[fileHash];
|
|
379
|
-
if (index === undefined)
|
|
380
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('fileHash', `known to the BulkFileDataManager. ${fileHash} is unknown.`);
|
|
381
|
-
const bfd = this.bfds[index];
|
|
382
|
-
const data = await this.ensureData(bfd);
|
|
383
|
-
return data;
|
|
384
|
-
}
|
|
385
|
-
async getDataByFileId(fileId) {
|
|
386
|
-
const bfd = this.bfds.find(f => f.fileId === fileId);
|
|
387
|
-
if (bfd === undefined)
|
|
388
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('fileId', `known to the BulkFileDataManager. ${fileId} is unknown.`);
|
|
389
|
-
const data = await this.ensureData(bfd);
|
|
390
|
-
return data;
|
|
391
|
-
}
|
|
392
|
-
async validateFileInfo(file) {
|
|
393
|
-
var _a;
|
|
394
|
-
if (file.chain !== this.chain)
|
|
395
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('chain', `${this.chain}`);
|
|
396
|
-
if (file.count <= 0)
|
|
397
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('bf.count', `expected count to be greater than 0, but got ${file.count}`);
|
|
398
|
-
if (file.count > this.maxPerFile && file.fileName !== 'incremental')
|
|
399
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('count', `less than or equal to maxPerFile ${this.maxPerFile}`);
|
|
400
|
-
if (!file.fileHash)
|
|
401
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('fileHash', `defined`);
|
|
402
|
-
if (!file.sourceUrl && !file.fileId && !file.data)
|
|
403
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('data', `defined when sourceUrl and fileId are undefined`);
|
|
404
|
-
let bfd = {
|
|
405
|
-
...file,
|
|
406
|
-
fileHash: file.fileHash,
|
|
407
|
-
mru: Date.now()
|
|
408
|
-
};
|
|
409
|
-
if (!bfd.validated) {
|
|
410
|
-
await this.ensureData(bfd);
|
|
411
|
-
if (!bfd.data || bfd.data.length !== bfd.count * 80)
|
|
412
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file.data', `bulk file ${bfd.fileName} data length ${(_a = bfd.data) === null || _a === void 0 ? void 0 : _a.length} does not match expected count ${bfd.count}`);
|
|
413
|
-
bfd.fileHash = (0, utilityHelpers_noBuffer_1.asString)(sdk_2.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(bfd.data)), 'base64');
|
|
414
|
-
if (file.fileHash && file.fileHash !== bfd.fileHash)
|
|
415
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file.fileHash', `expected ${file.fileHash} but got ${bfd.fileHash}`);
|
|
416
|
-
if (!(0, validBulkHeaderFilesByFileHash_1.isKnownValidBulkHeaderFile)(bfd)) {
|
|
417
|
-
const pbf = bfd.firstHeight > 0 ? this.getBfdForHeight(bfd.firstHeight - 1) : undefined;
|
|
418
|
-
const prevHash = pbf ? pbf.lastHash : '00'.repeat(32);
|
|
419
|
-
const prevChainWork = pbf ? pbf.lastChainWork : '00'.repeat(32);
|
|
420
|
-
const { lastHeaderHash, lastChainWork } = (0, blockHeaderUtilities_1.validateBufferOfHeaders)(bfd.data, prevHash, 0, undefined, prevChainWork);
|
|
421
|
-
if (bfd.lastHash && bfd.lastHash !== lastHeaderHash)
|
|
422
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file.lastHash', `expected ${bfd.lastHash} but got ${lastHeaderHash}`);
|
|
423
|
-
if (bfd.lastChainWork && bfd.lastChainWork !== lastChainWork)
|
|
424
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file.lastChainWork', `expected ${bfd.lastChainWork} but got ${lastChainWork}`);
|
|
425
|
-
bfd.lastHash = lastHeaderHash;
|
|
426
|
-
bfd.lastChainWork = lastChainWork;
|
|
427
|
-
if (bfd.firstHeight === 0) {
|
|
428
|
-
(0, blockHeaderUtilities_1.validateGenesisHeader)(bfd.data, bfd.chain);
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
bfd.validated = true;
|
|
432
|
-
}
|
|
433
|
-
return bfd;
|
|
434
|
-
}
|
|
435
|
-
async ReValidate() {
|
|
436
|
-
return this.lock.withReadLock(async () => this.ReValidateNoLock());
|
|
437
|
-
}
|
|
438
|
-
async ReValidateNoLock() {
|
|
439
|
-
for (const file of this.bfds) {
|
|
440
|
-
await this.ensureData(file);
|
|
441
|
-
file.validated = false; // Reset validation to re-validate on next access
|
|
442
|
-
const bfd = await this.validateFileInfo(file);
|
|
443
|
-
if (!bfd.validated)
|
|
444
|
-
throw new sdk_1.WERR_INTERNAL(`BulkFileDataManager.ReValidate failed for file ${bfd.fileName}`);
|
|
445
|
-
file.validated = true;
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
validateBfdForAdd(bfd) {
|
|
449
|
-
if (this.bfds.length === 0 && bfd.firstHeight !== 0)
|
|
450
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('firstHeight', `0 for the first file`);
|
|
451
|
-
if (this.bfds.length > 0) {
|
|
452
|
-
const last = this.bfds[this.bfds.length - 1];
|
|
453
|
-
if (bfd.firstHeight !== last.firstHeight + last.count)
|
|
454
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('firstHeight', `the last file's firstHeight + count`);
|
|
455
|
-
if (bfd.prevHash !== last.lastHash || bfd.prevChainWork !== last.lastChainWork)
|
|
456
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('prevHash/prevChainWork', `the last file's lastHash/lastChainWork`);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
async add(bfd) {
|
|
460
|
-
this.validateBfdForAdd(bfd);
|
|
461
|
-
const index = this.bfds.length;
|
|
462
|
-
this.bfds.push(bfd);
|
|
463
|
-
this.fileHashToIndex[bfd.fileHash] = index;
|
|
464
|
-
this.ensureMaxRetained();
|
|
465
|
-
const info = bfdToInfo(bfd, true);
|
|
466
|
-
if (this.storage) {
|
|
467
|
-
info.fileId = bfd.fileId = await this.storage.insertBulkFile(info);
|
|
468
|
-
}
|
|
469
|
-
return info;
|
|
470
|
-
}
|
|
471
|
-
replaceBfdAtIndex(index, update) {
|
|
472
|
-
const oldBfd = this.bfds[index];
|
|
473
|
-
delete this.fileHashToIndex[oldBfd.fileHash];
|
|
474
|
-
this.bfds[index] = update;
|
|
475
|
-
this.fileHashToIndex[update.fileHash] = index;
|
|
476
|
-
}
|
|
477
|
-
/**
|
|
478
|
-
* Updating an existing file occurs in two specific contexts:
|
|
479
|
-
*
|
|
480
|
-
* 1. CDN Update: CDN files of a specific `maxPerFile` series typically ends in a partial file
|
|
481
|
-
* which may periodically add more headers until the next file is started.
|
|
482
|
-
* If the CDN update is the second to last file (followed by an incremental file),
|
|
483
|
-
* then the incremental file is updated or deleted and also returned as the result (with a count of zero if deleted).
|
|
484
|
-
*
|
|
485
|
-
* 2. Incremental Update: The last bulk file is almost always an "incremental" file
|
|
486
|
-
* which is not limited by "maxPerFile" and holds all non-CDN bulk headers.
|
|
487
|
-
* If is updated with new bulk headers which come either from non CDN ingestors or from live header migration to bulk.
|
|
488
|
-
*
|
|
489
|
-
* Updating preserves the following properties:
|
|
490
|
-
*
|
|
491
|
-
* - Any existing headers following this update are preserved and must form an unbroken chain.
|
|
492
|
-
* - There can be at most one incremental file and it must be the last file.
|
|
493
|
-
* - The update start conditions (height, prevHash, prevChainWork) must match an existing file which may be either CDN or internal.
|
|
494
|
-
* - The update fileId must match, it may be undefind.
|
|
495
|
-
* - The fileName does not need to match.
|
|
496
|
-
* - The incremental file must always have fileName "incremental" and sourceUrl must be undefined.
|
|
497
|
-
* - The update count must be greater than 0.
|
|
498
|
-
* - The update count must be greater than current count for CDN to CDN update.
|
|
499
|
-
*
|
|
500
|
-
* @param update new validated BulkFileData to update.
|
|
501
|
-
* @param hbf corresponding existing BulkFileData to update.
|
|
502
|
-
*/
|
|
503
|
-
async update(update, hbf, r) {
|
|
504
|
-
if (!hbf ||
|
|
505
|
-
hbf.firstHeight !== update.firstHeight ||
|
|
506
|
-
hbf.prevChainWork !== update.prevChainWork ||
|
|
507
|
-
hbf.prevHash !== update.prevHash)
|
|
508
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file', `an existing file by height, prevChainWork and prevHash`);
|
|
509
|
-
if (isBdfCdn(update) === isBdfCdn(hbf) && update.count <= hbf.count)
|
|
510
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file.count', `greater than the current count ${hbf.count}`);
|
|
511
|
-
const lbf = this.getLastBfd();
|
|
512
|
-
let index = this.bfds.length - 1;
|
|
513
|
-
let truncate = undefined;
|
|
514
|
-
let replaced = undefined;
|
|
515
|
-
let drop = undefined;
|
|
516
|
-
if (hbf.firstHeight === lbf.firstHeight) {
|
|
517
|
-
// If the update is for the last file, there are three cases:
|
|
518
|
-
if (isBdfIncremental(update)) {
|
|
519
|
-
// 1. Incremental file may only be extended with more incremental headers.
|
|
520
|
-
if (!isBdfIncremental(lbf))
|
|
521
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file', `an incremental file to update an existing incremental file`);
|
|
522
|
-
}
|
|
523
|
-
else {
|
|
524
|
-
// The update is a CDN bulk file.
|
|
525
|
-
if (isBdfCdn(lbf)) {
|
|
526
|
-
// 2. An updated CDN file replaces a partial CDN file.
|
|
527
|
-
if (update.count <= lbf.count)
|
|
528
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('update.count', `CDN update must have more headers. ${update.count} <= ${lbf.count}`);
|
|
529
|
-
}
|
|
530
|
-
else {
|
|
531
|
-
// 3. A new CDN file replaces some or all of current incremental file.
|
|
532
|
-
// Retain extra incremental headers if any.
|
|
533
|
-
if (update.count < lbf.count) {
|
|
534
|
-
// The new CDN partially replaces the last incremental file, prepare to shift work and re-add it.
|
|
535
|
-
await this.ensureData(lbf);
|
|
536
|
-
truncate = lbf;
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
else {
|
|
542
|
-
// If the update is NOT for the last file, then it MUST be for the second to last file which MUST be a CDN file:
|
|
543
|
-
// - it must be a CDN file update with more headers than the current CDN file.
|
|
544
|
-
// - the last file must be an incremental file which is updated or deleted. The updated (or deleted) last file is returned.
|
|
545
|
-
const lbf2 = this.getLastBfd(2);
|
|
546
|
-
if (!lbf2 || hbf.firstHeight !== lbf2.firstHeight)
|
|
547
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file', `an update to last or second to last file`);
|
|
548
|
-
if (!isBdfCdn(update) || !isBdfCdn(lbf2) || update.count <= lbf2.count)
|
|
549
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file', `a CDN file update with more headers than the current CDN file`);
|
|
550
|
-
if (!isBdfIncremental(lbf))
|
|
551
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('file', `a CDN file update followed by an incremental file`);
|
|
552
|
-
if (!update.fileId)
|
|
553
|
-
update.fileId = lbf2.fileId; // Update fileId if not provided
|
|
554
|
-
if (update.count >= lbf2.count + lbf.count) {
|
|
555
|
-
// The current last file is fully replaced by the CDN update.
|
|
556
|
-
drop = lbf;
|
|
557
|
-
}
|
|
558
|
-
else {
|
|
559
|
-
// If the update doesn't fully replace the last incremental file, make sure data is available to be truncated.
|
|
560
|
-
await this.ensureData(lbf);
|
|
561
|
-
truncate = lbf;
|
|
562
|
-
// The existing second to last file is fully replaced by the update.
|
|
563
|
-
replaced = lbf2;
|
|
564
|
-
}
|
|
565
|
-
index = index - 1; // The update replaces the second to last file.
|
|
566
|
-
}
|
|
567
|
-
// In all cases the bulk file at the current fileId if any is updated.
|
|
568
|
-
this.replaceBfdAtIndex(index, update);
|
|
569
|
-
if (truncate) {
|
|
570
|
-
// If there is a bulk file to be truncated, it becomes the new (reduced) last file.
|
|
571
|
-
await this.shiftWork(update, truncate, replaced);
|
|
572
|
-
}
|
|
573
|
-
if (drop) {
|
|
574
|
-
this.dropLastBulkFile(drop);
|
|
575
|
-
}
|
|
576
|
-
const updateInfo = bfdToInfo(update, true);
|
|
577
|
-
const truncateInfo = truncate ? bfdToInfo(truncate, true) : undefined;
|
|
578
|
-
if (this.storage) {
|
|
579
|
-
// Keep storage in sync.
|
|
580
|
-
if (update.fileId) {
|
|
581
|
-
await this.storage.updateBulkFile(update.fileId, updateInfo);
|
|
582
|
-
}
|
|
583
|
-
if (truncate && truncateInfo) {
|
|
584
|
-
if (replaced) {
|
|
585
|
-
await this.storage.updateBulkFile(truncate.fileId, truncateInfo);
|
|
586
|
-
}
|
|
587
|
-
else {
|
|
588
|
-
truncateInfo.fileId = undefined; // Make sure truncate is a new file.
|
|
589
|
-
truncate.fileId = await this.storage.insertBulkFile(truncateInfo);
|
|
590
|
-
}
|
|
591
|
-
}
|
|
592
|
-
if (drop && drop.fileId) {
|
|
593
|
-
await this.storage.deleteBulkFile(drop.fileId);
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
if (r) {
|
|
597
|
-
// Update results for logging...
|
|
598
|
-
r.updated.push(updateInfo);
|
|
599
|
-
if (truncateInfo) {
|
|
600
|
-
if (replaced) {
|
|
601
|
-
r.updated.push(truncateInfo);
|
|
602
|
-
}
|
|
603
|
-
else {
|
|
604
|
-
r.inserted.push(truncateInfo);
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
|
-
if (drop) {
|
|
608
|
-
r.dropped.push(bfdToInfo(drop));
|
|
609
|
-
}
|
|
610
|
-
}
|
|
611
|
-
this.ensureMaxRetained();
|
|
612
|
-
}
|
|
613
|
-
dropLastBulkFile(lbf) {
|
|
614
|
-
delete this.fileHashToIndex[lbf.fileHash];
|
|
615
|
-
const index = this.bfds.indexOf(lbf);
|
|
616
|
-
if (index !== this.bfds.length - 1)
|
|
617
|
-
throw new sdk_1.WERR_INTERNAL(`dropLastBulkFile requires lbf is the current last file.`);
|
|
618
|
-
this.bfds.pop();
|
|
619
|
-
}
|
|
620
|
-
/**
|
|
621
|
-
* Remove work (and headers) from `truncate` that now exists in `update`.
|
|
622
|
-
* There are two scenarios:
|
|
623
|
-
* 1. `replaced` is undefined: update is a CDN file that splits an incremental file that must be truncated.
|
|
624
|
-
* 2. `replaced` is valid: update is a CDN update that replaced an existing CDN file and splits an incremental file that must be truncated.
|
|
625
|
-
* @param update the new CDN update file.
|
|
626
|
-
* @param truncate the incremental file to be truncated (losing work which now exists in `update`).
|
|
627
|
-
* @param replaced the existing CDN file that was replaced by `update` (if any).
|
|
628
|
-
*/
|
|
629
|
-
async shiftWork(update, truncate, replaced) {
|
|
630
|
-
var _a;
|
|
631
|
-
const updateIndex = this.fileHashToIndex[update.fileHash];
|
|
632
|
-
// replaced will be valid if the update replaced it and it must become the new last file.
|
|
633
|
-
// truncateIndex will be updateIndex + 1 if the existing last file is being truncated and update is second to last.
|
|
634
|
-
const truncateIndex = this.fileHashToIndex[truncate.fileHash];
|
|
635
|
-
if (truncateIndex !== undefined && truncateIndex !== updateIndex + 1)
|
|
636
|
-
throw new sdk_1.WERR_INTERNAL(`shiftWork requires update to have replaced truncate or truncate to follow update`);
|
|
637
|
-
if (truncateIndex !== undefined && !replaced)
|
|
638
|
-
throw new sdk_1.WERR_INTERNAL(`shiftWork requires valid replaced when update hasn't replaced truncate`);
|
|
639
|
-
truncate.prevHash = update.lastHash;
|
|
640
|
-
truncate.prevChainWork = update.lastChainWork;
|
|
641
|
-
// truncate.lastChainWork, truncate.lastHash remain unchanged
|
|
642
|
-
let count = update.count;
|
|
643
|
-
if (replaced) {
|
|
644
|
-
count -= replaced.count;
|
|
645
|
-
}
|
|
646
|
-
else {
|
|
647
|
-
// The truncated file is itself being replaced by the update and must be inserted as a new file.
|
|
648
|
-
truncate.fileId = undefined;
|
|
649
|
-
this.bfds.push(truncate); // Add the truncated file as a new entry.
|
|
650
|
-
}
|
|
651
|
-
truncate.count -= count;
|
|
652
|
-
truncate.firstHeight += count;
|
|
653
|
-
truncate.data = (_a = truncate.data) === null || _a === void 0 ? void 0 : _a.slice(count * 80);
|
|
654
|
-
delete this.fileHashToIndex[truncate.fileHash];
|
|
655
|
-
truncate.fileHash = (0, utilityHelpers_noBuffer_1.asString)(sdk_2.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(truncate.data)), 'base64');
|
|
656
|
-
this.fileHashToIndex[truncate.fileHash] = updateIndex + 1;
|
|
657
|
-
}
|
|
658
|
-
/**
|
|
659
|
-
*
|
|
660
|
-
* @param bfd
|
|
661
|
-
* @returns
|
|
662
|
-
*/
|
|
663
|
-
async ensureData(bfd) {
|
|
664
|
-
if (bfd.data)
|
|
665
|
-
return bfd.data;
|
|
666
|
-
if (this.storage && bfd.fileId) {
|
|
667
|
-
bfd.data = await this.storage.getBulkFileData(bfd.fileId);
|
|
668
|
-
if (!bfd.data)
|
|
669
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('fileId', `valid, data not found for fileId ${bfd.fileId}`);
|
|
670
|
-
}
|
|
671
|
-
if (!bfd.data && this.fetch && bfd.sourceUrl) {
|
|
672
|
-
// TODO - restore this change
|
|
673
|
-
const url = this.fetch.pathJoin(bfd.sourceUrl, bfd.fileName);
|
|
674
|
-
//const url = this.fetch.pathJoin('http://localhost:8842/blockheaders', bfd.fileName)
|
|
675
|
-
try {
|
|
676
|
-
bfd.data = await this.fetch.download(url);
|
|
677
|
-
}
|
|
678
|
-
catch (err) {
|
|
679
|
-
bfd.data = await this.fetch.download(url);
|
|
680
|
-
}
|
|
681
|
-
if (!bfd.data)
|
|
682
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('sourceUrl', `data not found for sourceUrl ${url}`);
|
|
683
|
-
}
|
|
684
|
-
if (!bfd.data)
|
|
685
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('data', `defined. Unable to retrieve data for ${bfd.fileName}`);
|
|
686
|
-
bfd.mru = Date.now();
|
|
687
|
-
// Validate retrieved data.
|
|
688
|
-
const fileHash = (0, utilityHelpers_noBuffer_1.asString)(sdk_2.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(bfd.data)), 'base64');
|
|
689
|
-
if (fileHash !== bfd.fileHash)
|
|
690
|
-
throw new sdk_1.WERR_INVALID_PARAMETER('fileHash', `a match for retrieved data for ${bfd.fileName}`);
|
|
691
|
-
this.ensureMaxRetained();
|
|
692
|
-
return bfd.data;
|
|
693
|
-
}
|
|
694
|
-
ensureMaxRetained() {
|
|
695
|
-
if (this.maxRetained === undefined)
|
|
696
|
-
return;
|
|
697
|
-
let withData = this.bfds.filter(bfd => bfd.data && (bfd.fileId || bfd.sourceUrl));
|
|
698
|
-
let countToRelease = withData.length - this.maxRetained;
|
|
699
|
-
if (countToRelease <= 0)
|
|
700
|
-
return;
|
|
701
|
-
const sorted = withData.sort((a, b) => a.mru - b.mru);
|
|
702
|
-
while (countToRelease-- > 0 && sorted.length > 0) {
|
|
703
|
-
const oldest = sorted.shift();
|
|
704
|
-
// Release the least recently used data
|
|
705
|
-
oldest.data = undefined; // Release the data
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
async exportHeadersToFs(toFs, toHeadersPerFile, toFolder, sourceUrl, maxHeight) {
|
|
709
|
-
const chain = this.chain;
|
|
710
|
-
const toFileName = (i) => `${chain}Net_${i}.headers`;
|
|
711
|
-
const toPath = (i) => toFs.pathJoin(toFolder, toFileName(i));
|
|
712
|
-
const toJsonPath = () => toFs.pathJoin(toFolder, `${chain}NetBlockHeaders.json`);
|
|
713
|
-
const toBulkFiles = {
|
|
714
|
-
rootFolder: sourceUrl || toFolder,
|
|
715
|
-
jsonFilename: `${chain}NetBlockHeaders.json`,
|
|
716
|
-
headersPerFile: toHeadersPerFile,
|
|
717
|
-
files: []
|
|
718
|
-
};
|
|
719
|
-
let range = await this.getHeightRange();
|
|
720
|
-
if (maxHeight)
|
|
721
|
-
range = range.intersect(new HeightRange_1.HeightRange(0, maxHeight));
|
|
722
|
-
const reader = await this.createReader(range, toHeadersPerFile * 80);
|
|
723
|
-
let firstHeight = 0;
|
|
724
|
-
let lastHeaderHash = '00'.repeat(32);
|
|
725
|
-
let lastChainWork = '00'.repeat(32);
|
|
726
|
-
let i = -1;
|
|
727
|
-
for (;;) {
|
|
728
|
-
i++;
|
|
729
|
-
const data = await reader.read();
|
|
730
|
-
if (!data || data.length === 0) {
|
|
731
|
-
break;
|
|
732
|
-
}
|
|
733
|
-
const last = (0, blockHeaderUtilities_1.validateBufferOfHeaders)(data, lastHeaderHash, 0, undefined, lastChainWork);
|
|
734
|
-
await toFs.writeFile(toPath(i), data);
|
|
735
|
-
const fileHash = (0, utilityHelpers_noBuffer_1.asString)(sdk_2.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(data)), 'base64');
|
|
736
|
-
const file = {
|
|
737
|
-
chain,
|
|
738
|
-
count: data.length / 80,
|
|
739
|
-
fileHash,
|
|
740
|
-
fileName: toFileName(i),
|
|
741
|
-
firstHeight,
|
|
742
|
-
lastChainWork: last.lastChainWork,
|
|
743
|
-
lastHash: last.lastHeaderHash,
|
|
744
|
-
prevChainWork: lastChainWork,
|
|
745
|
-
prevHash: lastHeaderHash,
|
|
746
|
-
sourceUrl
|
|
747
|
-
};
|
|
748
|
-
toBulkFiles.files.push(file);
|
|
749
|
-
firstHeight += file.count;
|
|
750
|
-
lastHeaderHash = file.lastHash;
|
|
751
|
-
lastChainWork = file.lastChainWork;
|
|
752
|
-
}
|
|
753
|
-
await toFs.writeFile(toJsonPath(), (0, utilityHelpers_noBuffer_1.asUint8Array)(JSON.stringify(toBulkFiles), 'utf8'));
|
|
754
|
-
}
|
|
755
|
-
}
|
|
756
|
-
exports.BulkFileDataManager = BulkFileDataManager;
|
|
757
|
-
function selectBulkHeaderFiles(files, chain, maxPerFile) {
|
|
758
|
-
const r = [];
|
|
759
|
-
let height = 0;
|
|
760
|
-
for (;;) {
|
|
761
|
-
const choices = files.filter(f => f.firstHeight === height && f.count <= maxPerFile && f.chain === chain);
|
|
762
|
-
// Pick the file with the maximum count
|
|
763
|
-
const choice = choices.reduce((a, b) => (a.count > b.count ? a : b), choices[0]);
|
|
764
|
-
if (!choice)
|
|
765
|
-
break; // no more files to select
|
|
766
|
-
r.push(choice);
|
|
767
|
-
height += choice.count;
|
|
768
|
-
}
|
|
769
|
-
return r;
|
|
770
|
-
}
|
|
771
|
-
function isBdfIncremental(bfd) {
|
|
772
|
-
return bfd.fileName === 'incremental' && !bfd.sourceUrl;
|
|
773
|
-
}
|
|
774
|
-
function isBdfCdn(bfd) {
|
|
775
|
-
return !isBdfIncremental(bfd);
|
|
776
|
-
}
|
|
777
|
-
function bfdToInfo(bfd, keepData) {
|
|
778
|
-
return {
|
|
779
|
-
chain: bfd.chain,
|
|
780
|
-
fileHash: bfd.fileHash,
|
|
781
|
-
fileName: bfd.fileName,
|
|
782
|
-
sourceUrl: bfd.sourceUrl,
|
|
783
|
-
fileId: bfd.fileId,
|
|
784
|
-
count: bfd.count,
|
|
785
|
-
prevChainWork: bfd.prevChainWork,
|
|
786
|
-
lastChainWork: bfd.lastChainWork,
|
|
787
|
-
firstHeight: bfd.firstHeight,
|
|
788
|
-
prevHash: bfd.prevHash,
|
|
789
|
-
lastHash: bfd.lastHash,
|
|
790
|
-
validated: bfd.validated || false,
|
|
791
|
-
data: keepData ? bfd.data : undefined
|
|
792
|
-
};
|
|
793
|
-
}
|
|
794
|
-
class BulkFileDataReader {
|
|
795
|
-
constructor(manager, range, maxBufferSize) {
|
|
796
|
-
this.manager = manager;
|
|
797
|
-
this.range = range;
|
|
798
|
-
this.maxBufferSize = maxBufferSize;
|
|
799
|
-
this.nextHeight = range.minHeight;
|
|
800
|
-
}
|
|
801
|
-
/**
|
|
802
|
-
* Returns the Buffer of block headers from the given `file` for the given `range`.
|
|
803
|
-
* If `range` is undefined, the file's full height range is read.
|
|
804
|
-
* The returned Buffer will only contain headers in `file` and in `range`
|
|
805
|
-
* @param file
|
|
806
|
-
* @param range
|
|
807
|
-
*/
|
|
808
|
-
async readBufferFromFile(file, range) {
|
|
809
|
-
// Constrain the range to the file's contents...
|
|
810
|
-
let fileRange = new HeightRange_1.HeightRange(file.firstHeight, file.firstHeight + file.count - 1);
|
|
811
|
-
if (range)
|
|
812
|
-
fileRange = fileRange.intersect(range);
|
|
813
|
-
if (fileRange.isEmpty)
|
|
814
|
-
return undefined;
|
|
815
|
-
const offset = (fileRange.minHeight - file.firstHeight) * 80;
|
|
816
|
-
const length = fileRange.length * 80;
|
|
817
|
-
return await this.manager.getDataFromFile(file, offset, length);
|
|
818
|
-
}
|
|
819
|
-
/**
|
|
820
|
-
* @returns an array containing the next `maxBufferSize` bytes of headers from the files.
|
|
821
|
-
*/
|
|
822
|
-
async read() {
|
|
823
|
-
if (this.nextHeight === undefined || !this.range || this.range.isEmpty || this.nextHeight > this.range.maxHeight)
|
|
824
|
-
return undefined;
|
|
825
|
-
let lastHeight = this.nextHeight + this.maxBufferSize / 80 - 1;
|
|
826
|
-
lastHeight = Math.min(lastHeight, this.range.maxHeight);
|
|
827
|
-
let file = await this.manager.getFileForHeight(this.nextHeight);
|
|
828
|
-
if (!file)
|
|
829
|
-
throw new sdk_1.WERR_INTERNAL(`logic error`);
|
|
830
|
-
const readRange = new HeightRange_1.HeightRange(this.nextHeight, lastHeight);
|
|
831
|
-
let buffers = new Uint8Array(readRange.length * 80);
|
|
832
|
-
let offset = 0;
|
|
833
|
-
while (file) {
|
|
834
|
-
const buffer = await this.readBufferFromFile(file, readRange);
|
|
835
|
-
if (!buffer)
|
|
836
|
-
break;
|
|
837
|
-
buffers.set(buffer, offset);
|
|
838
|
-
offset += buffer.length;
|
|
839
|
-
file = await this.manager.getFileForHeight(file.firstHeight + file.count);
|
|
840
|
-
}
|
|
841
|
-
if (!buffers.length || offset !== readRange.length * 80)
|
|
842
|
-
return undefined;
|
|
843
|
-
this.nextHeight = lastHeight + 1;
|
|
844
|
-
return buffers;
|
|
845
|
-
}
|
|
846
|
-
}
|
|
847
|
-
exports.BulkFileDataReader = BulkFileDataReader;
|
|
848
|
-
//# sourceMappingURL=BulkFileDataManager.js.map
|