@bsv/wallet-toolbox 2.13.0 → 2.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +283 -1
- package/README.md +403 -5
- package/docs/README.md +8 -1
- package/docs/client.md +13057 -4632
- package/docs/identity-verification.md +196 -0
- package/docs/monitor.md +505 -190
- package/docs/services.md +4013 -1153
- package/docs/setup.md +98 -58
- package/docs/storage.md +5780 -1609
- package/docs/wallet.md +10155 -10871
- package/out/src/CWIStyleWalletManager.d.ts +6 -8
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/out/src/CWIStyleWalletManager.js +170 -125
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/Setup.d.ts +2 -0
- package/out/src/Setup.d.ts.map +1 -1
- package/out/src/Setup.js +3 -2
- package/out/src/Setup.js.map +1 -1
- package/out/src/ShamirWalletManager.d.ts.map +1 -1
- package/out/src/ShamirWalletManager.js +34 -19
- package/out/src/ShamirWalletManager.js.map +1 -1
- package/out/src/SimpleWalletManager.d.ts.map +1 -1
- package/out/src/SimpleWalletManager.js +7 -6
- package/out/src/SimpleWalletManager.js.map +1 -1
- package/out/src/Wallet.d.ts +50 -11
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +183 -107
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
- package/out/src/WalletAuthenticationManager.js +282 -26
- package/out/src/WalletAuthenticationManager.js.map +1 -1
- package/out/src/WalletLogger.js +1 -1
- package/out/src/WalletLogger.js.map +1 -1
- package/out/src/WalletPermissionsManager.d.ts +30 -17
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +540 -312
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/WalletSettingsManager.d.ts +3 -2
- package/out/src/WalletSettingsManager.d.ts.map +1 -1
- package/out/src/WalletSettingsManager.js +141 -6
- package/out/src/WalletSettingsManager.js.map +1 -1
- package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
- package/out/src/entropy/EntropyCollector.js +3 -2
- package/out/src/entropy/EntropyCollector.js.map +1 -1
- package/out/src/fundWalletP2PKH.d.ts.map +1 -1
- package/out/src/fundWalletP2PKH.js +143 -44
- package/out/src/fundWalletP2PKH.js.map +1 -1
- package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
- package/out/src/mockchain/MockChainTracker.js +5 -5
- package/out/src/mockchain/MockChainTracker.js.map +1 -1
- package/out/src/mockchain/MockServices.d.ts.map +1 -1
- package/out/src/mockchain/MockServices.js +32 -8
- package/out/src/mockchain/MockServices.js.map +1 -1
- package/out/src/monitor/Monitor.d.ts +17 -0
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +206 -42
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
- package/out/src/monitor/MonitorDaemon.js +64 -16
- package/out/src/monitor/MonitorDaemon.js.map +1 -1
- package/out/src/monitor/monitorValidation.d.ts +12 -0
- package/out/src/monitor/monitorValidation.d.ts.map +1 -0
- package/out/src/monitor/monitorValidation.js +133 -0
- package/out/src/monitor/monitorValidation.js.map +1 -0
- package/out/src/monitor/tasks/TaskArcSSE.d.ts +2 -0
- package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskArcSSE.js +28 -12
- package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +5 -0
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +29 -24
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js +11 -3
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js +9 -4
- package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +3 -1
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +9 -3
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.js +4 -4
- package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +17 -7
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +18 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js +99 -21
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +4 -4
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js +41 -13
- package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js +52 -11
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.d.ts +1 -0
- package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.js +26 -8
- package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.js +3 -2
- package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.js +112 -2
- package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +17 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
- package/out/src/services/Services.d.ts +4 -0
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +260 -117
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.d.ts +21 -4
- package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.js +267 -66
- package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +25 -3
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js +188 -53
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/LocalChainTracker.d.ts +26 -0
- package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -1
- package/out/src/services/chaintracker/LocalChainTracker.js +180 -10
- package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +59 -7
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +6 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +7 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +9 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +19 -0
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +237 -61
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +16 -0
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +150 -26
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +30 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +346 -30
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +32 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +375 -43
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +28 -3
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +33 -9
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +4 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +17 -4
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +40 -20
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +14 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +6 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +56 -9
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +6 -3
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +4 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +27 -9
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +8 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +49 -5
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +90 -21
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +3 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +185 -38
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +59 -6
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +89 -39
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +10 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +225 -24
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +265 -96
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +225 -86
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +121 -35
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +2 -2
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +1 -7
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +1 -7
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -7
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +18 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +204 -14
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +6 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +486 -82
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +17 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +12 -2
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +99 -30
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +23 -15
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +7 -0
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +90 -24
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +57 -11
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts +9 -0
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +100 -14
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +104 -8
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +1 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +79 -15
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +15 -0
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +6 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +311 -93
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts +4 -0
- package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js +33 -0
- package/out/src/services/chaintracker/chaintracks/util/safeDiagnostic.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
- package/out/src/services/classifyOutputUtxo.d.ts.map +1 -1
- package/out/src/services/classifyOutputUtxo.js +19 -10
- package/out/src/services/classifyOutputUtxo.js.map +1 -1
- package/out/src/services/fiatRateValidation.d.ts +12 -0
- package/out/src/services/fiatRateValidation.d.ts.map +1 -0
- package/out/src/services/fiatRateValidation.js +138 -0
- package/out/src/services/fiatRateValidation.js.map +1 -0
- package/out/src/services/getCanonicalMerklePath.d.ts +15 -0
- package/out/src/services/getCanonicalMerklePath.d.ts.map +1 -0
- package/out/src/services/getCanonicalMerklePath.js +90 -0
- package/out/src/services/getCanonicalMerklePath.js.map +1 -0
- package/out/src/services/providers/ARC.d.ts +3 -16
- package/out/src/services/providers/ARC.d.ts.map +1 -1
- package/out/src/services/providers/ARC.js +36 -37
- package/out/src/services/providers/ARC.js.map +1 -1
- package/out/src/services/providers/ArcSSEClient.d.ts +25 -19
- package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
- package/out/src/services/providers/ArcSSEClient.js +352 -85
- package/out/src/services/providers/ArcSSEClient.js.map +1 -1
- package/out/src/services/providers/Arcade.d.ts +1 -0
- package/out/src/services/providers/Arcade.d.ts.map +1 -1
- package/out/src/services/providers/Arcade.js +56 -41
- package/out/src/services/providers/Arcade.js.map +1 -1
- package/out/src/services/providers/Bitails.d.ts +3 -0
- package/out/src/services/providers/Bitails.d.ts.map +1 -1
- package/out/src/services/providers/Bitails.js +79 -12
- package/out/src/services/providers/Bitails.js.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts +8 -2
- package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.js +83 -10
- package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
- package/out/src/services/providers/WhatsOnChain.d.ts +3 -0
- package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/WhatsOnChain.js +221 -69
- package/out/src/services/providers/WhatsOnChain.js.map +1 -1
- package/out/src/services/providers/arcProviderConfig.d.ts +27 -0
- package/out/src/services/providers/arcProviderConfig.d.ts.map +1 -0
- package/out/src/services/providers/arcProviderConfig.js +83 -0
- package/out/src/services/providers/arcProviderConfig.js.map +1 -0
- package/out/src/services/providers/arcTxDataValidation.d.ts +4 -0
- package/out/src/services/providers/arcTxDataValidation.d.ts.map +1 -0
- package/out/src/services/providers/arcTxDataValidation.js +92 -0
- package/out/src/services/providers/arcTxDataValidation.js.map +1 -0
- package/out/src/services/providers/exchangeRates.d.ts +3 -3
- package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
- package/out/src/services/providers/exchangeRates.js +153 -226
- package/out/src/services/providers/exchangeRates.js.map +1 -1
- package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
- package/out/src/services/providers/getBeefForTxid.js.map +1 -1
- package/out/src/services/providers/whatsOnChainHelpers.d.ts +2 -2
- package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -1
- package/out/src/services/providers/whatsOnChainHelpers.js +11 -8
- package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
- package/out/src/services/validateMerklePathResult.d.ts +30 -0
- package/out/src/services/validateMerklePathResult.d.ts.map +1 -0
- package/out/src/services/validateMerklePathResult.js +272 -0
- package/out/src/services/validateMerklePathResult.js.map +1 -0
- package/out/src/services/validatePostBeefResult.d.ts +17 -0
- package/out/src/services/validatePostBeefResult.d.ts.map +1 -0
- package/out/src/services/validatePostBeefResult.js +334 -0
- package/out/src/services/validatePostBeefResult.js.map +1 -0
- package/out/src/services/validateRawTxResult.d.ts +6 -0
- package/out/src/services/validateRawTxResult.d.ts.map +1 -0
- package/out/src/services/validateRawTxResult.js +77 -0
- package/out/src/services/validateRawTxResult.js.map +1 -0
- package/out/src/services/validateScriptHashHistoryResult.d.ts +5 -0
- package/out/src/services/validateScriptHashHistoryResult.d.ts.map +1 -0
- package/out/src/services/validateScriptHashHistoryResult.js +99 -0
- package/out/src/services/validateScriptHashHistoryResult.js.map +1 -0
- package/out/src/services/validateStatusForTxidsResult.d.ts +8 -0
- package/out/src/services/validateStatusForTxidsResult.d.ts.map +1 -0
- package/out/src/services/validateStatusForTxidsResult.js +181 -0
- package/out/src/services/validateStatusForTxidsResult.js.map +1 -0
- package/out/src/services/validateUtxoStatusResult.d.ts +6 -0
- package/out/src/services/validateUtxoStatusResult.d.ts.map +1 -0
- package/out/src/services/validateUtxoStatusResult.js +126 -0
- package/out/src/services/validateUtxoStatusResult.js.map +1 -0
- package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +3 -2
- package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchPlanner.js +4 -3
- package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +6 -5
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js +70 -76
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -1
- package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +2 -2
- package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -1
- package/out/src/signer/actionBatch/actionBatchBootstrap.js +3 -3
- package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -1
- package/out/src/signer/methods/acquireDirectCertificate.d.ts +3 -2
- package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
- package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.d.ts +6 -5
- package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.js +6 -11
- package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
- package/out/src/signer/methods/createAction.d.ts +4 -3
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +4 -2
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/createNoSendExpiryAction.d.ts +3 -3
- package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -1
- package/out/src/signer/methods/createNoSendExpiryAction.js +9 -4
- package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -1
- package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/signer/methods/internalizeAction.js +2 -2
- package/out/src/signer/methods/internalizeAction.js.map +1 -1
- package/out/src/signer/methods/proveCertificate.d.ts +3 -2
- package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
- package/out/src/signer/methods/proveCertificate.js.map +1 -1
- package/out/src/signer/methods/signAction.d.ts.map +1 -1
- package/out/src/signer/methods/signAction.js +3 -2
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.js +12 -17
- package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
- package/out/src/storage/StorageIdb.d.ts +5 -3
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +15 -20
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +5 -3
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +143 -93
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +19 -9
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +229 -145
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReader.d.ts +1 -1
- package/out/src/storage/StorageReader.d.ts.map +1 -1
- package/out/src/storage/StorageReader.js +9 -42
- package/out/src/storage/StorageReader.js.map +1 -1
- package/out/src/storage/StorageReaderWriter.d.ts +1 -0
- package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
- package/out/src/storage/StorageReaderWriter.js +37 -36
- package/out/src/storage/StorageReaderWriter.js.map +1 -1
- package/out/src/storage/StorageSyncReader.d.ts +1 -1
- package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
- package/out/src/storage/StorageSyncReader.js +3 -36
- package/out/src/storage/StorageSyncReader.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts +8 -7
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +38 -65
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/adminServer/adminServer.d.ts +1 -1
- package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
- package/out/src/storage/adminServer/adminServer.js +16 -44
- package/out/src/storage/adminServer/adminServer.js.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.d.ts +2 -2
- package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts +7 -4
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.js +1 -0
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
- package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
- package/out/src/storage/methods/actionBatch.js +3 -2
- package/out/src/storage/methods/actionBatch.js.map +1 -1
- package/out/src/storage/methods/actionBatchBlobs.d.ts +2 -0
- package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -1
- package/out/src/storage/methods/actionBatchBlobs.js +40 -22
- package/out/src/storage/methods/actionBatchBlobs.js.map +1 -1
- package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -1
- package/out/src/storage/methods/actionBatchValidation.js +22 -30
- package/out/src/storage/methods/actionBatchValidation.js.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +7 -2
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +57 -44
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts +7 -6
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +7 -5
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +12 -11
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +5 -7
- package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts +3 -3
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +134 -129
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
- package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
- package/out/src/storage/methods/listActionsIdb.js +2 -2
- package/out/src/storage/methods/listActionsIdb.js.map +1 -1
- package/out/src/storage/methods/listActionsKnex.d.ts +3 -2
- package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listActionsKnex.js +10 -9
- package/out/src/storage/methods/listActionsKnex.js.map +1 -1
- package/out/src/storage/methods/listCertificates.d.ts +3 -2
- package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
- package/out/src/storage/methods/listCertificates.js.map +1 -1
- package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
- package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsIdb.js +11 -11
- package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.d.ts +3 -2
- package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.js +15 -23
- package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
- package/out/src/storage/methods/noSendExpiry.d.ts +3 -3
- package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -1
- package/out/src/storage/methods/noSendExpiry.js +10 -8
- package/out/src/storage/methods/noSendExpiry.js.map +1 -1
- package/out/src/storage/methods/preparedBeef.d.ts.map +1 -1
- package/out/src/storage/methods/preparedBeef.js +13 -14
- package/out/src/storage/methods/preparedBeef.js.map +1 -1
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +37 -6
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +1 -1
- package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -1
- package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -1
- package/out/src/storage/methods/reviewStatusIdb.d.ts +1 -1
- package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
- package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
- package/out/src/storage/methods/reviewUtxoOutputs.d.ts +1 -0
- package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -1
- package/out/src/storage/methods/reviewUtxoOutputs.js +51 -4
- package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -1
- package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -1
- package/out/src/storage/methods/validateSyncProof.js +3 -3
- package/out/src/storage/methods/validateSyncProof.js.map +1 -1
- package/out/src/storage/portable/index.d.ts.map +1 -1
- package/out/src/storage/portable/index.js +21 -13
- package/out/src/storage/portable/index.js.map +1 -1
- package/out/src/storage/remoting/BinaryJson.d.ts +11 -0
- package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
- package/out/src/storage/remoting/BinaryJson.js +37 -0
- package/out/src/storage/remoting/BinaryJson.js.map +1 -1
- package/out/src/storage/remoting/KnexSessionManager.d.ts +26 -2
- package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
- package/out/src/storage/remoting/KnexSessionManager.js +222 -30
- package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
- package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -1
- package/out/src/storage/remoting/KnexSyncTransferStore.js +3 -4
- package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -1
- package/out/src/storage/remoting/StorageClient.d.ts +6 -1
- package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +63 -6
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts +23 -6
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.js +148 -19
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
- package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
- package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageMobile.js +11 -9
- package/out/src/storage/remoting/StorageMobile.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts +5 -1
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +95 -19
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -1
- package/out/src/storage/remoting/SyncTransfer.js +3 -2
- package/out/src/storage/remoting/SyncTransfer.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts +1 -0
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +28 -6
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.js +11 -4
- package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +2 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +93 -39
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
- package/out/src/storage/schema/tables/TableCertificate.d.ts +1 -1
- package/out/src/storage/schema/tables/TableCertificate.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableCertificateField.d.ts +1 -1
- package/out/src/storage/schema/tables/TableCertificateField.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableCommission.d.ts +1 -1
- package/out/src/storage/schema/tables/TableCommission.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableMonitorEvent.d.ts +1 -1
- package/out/src/storage/schema/tables/TableMonitorEvent.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutput.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
- package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +1 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableSettings.d.ts +1 -1
- package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
- package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTransaction.d.ts +1 -1
- package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
- package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
- package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
- package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.js +8 -7
- package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
- package/out/src/utility/actionBatchDigest.d.ts.map +1 -1
- package/out/src/utility/actionBatchDigest.js +9 -7
- package/out/src/utility/actionBatchDigest.js.map +1 -1
- package/out/src/utility/actionBatchPack.d.ts.map +1 -1
- package/out/src/utility/actionBatchPack.js +7 -12
- package/out/src/utility/actionBatchPack.js.map +1 -1
- package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
- package/out/src/utility/brc153ReferenceLabels.js +4 -4
- package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
- package/out/src/utility/brc177NoSendExpiry.d.ts +2 -2
- package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -1
- package/out/src/utility/canonicalizeAtomicBeef.js +2 -2
- package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -1
- package/out/src/utility/exactActionSpend.d.ts +11 -0
- package/out/src/utility/exactActionSpend.d.ts.map +1 -0
- package/out/src/utility/exactActionSpend.js +11 -0
- package/out/src/utility/exactActionSpend.js.map +1 -0
- package/out/src/utility/identityUtils.d.ts +44 -4
- package/out/src/utility/identityUtils.d.ts.map +1 -1
- package/out/src/utility/identityUtils.js +376 -61
- package/out/src/utility/identityUtils.js.map +1 -1
- package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
- package/out/src/utility/parseTxScriptOffsets.js +1 -19
- package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
- package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
- package/out/src/utility/tscProofToMerklePath.js +35 -4
- package/out/src/utility/tscProofToMerklePath.js.map +1 -1
- package/out/src/utility/utilityHelpers.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.js +8 -6
- package/out/src/utility/utilityHelpers.js.map +1 -1
- package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.noBuffer.js +6 -6
- package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
- package/out/src/utility/verifyOverlayOutput.d.ts +12 -0
- package/out/src/utility/verifyOverlayOutput.d.ts.map +1 -0
- package/out/src/utility/verifyOverlayOutput.js +22 -0
- package/out/src/utility/verifyOverlayOutput.js.map +1 -0
- package/out/src/utility/walletResultGuards.d.ts +14 -0
- package/out/src/utility/walletResultGuards.d.ts.map +1 -0
- package/out/src/utility/walletResultGuards.js +28 -0
- package/out/src/utility/walletResultGuards.js.map +1 -0
- package/out/src/wab-client/WABClient.d.ts +3 -17
- package/out/src/wab-client/WABClient.d.ts.map +1 -1
- package/out/src/wab-client/WABClient.js +30 -14
- package/out/src/wab-client/WABClient.js.map +1 -1
- package/out/src/wab-client/WABResponseValidation.d.ts +48 -0
- package/out/src/wab-client/WABResponseValidation.d.ts.map +1 -0
- package/out/src/wab-client/WABResponseValidation.js +321 -0
- package/out/src/wab-client/WABResponseValidation.js.map +1 -0
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +3 -2
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
- package/package.json +5 -5
package/out/src/Wallet.js
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Wallet = void 0;
|
|
4
4
|
exports.throwDummyReviewActions = throwDummyReviewActions;
|
|
5
|
+
const validationHelpers_1 = require("@bsv/sdk/wallet/validationHelpers");
|
|
5
6
|
const sdk_1 = require("@bsv/sdk");
|
|
7
|
+
const utils_1 = require("@bsv/sdk/primitives/utils");
|
|
6
8
|
const acquireDirectCertificate_1 = require("./signer/methods/acquireDirectCertificate");
|
|
7
9
|
const proveCertificate_1 = require("./signer/methods/proveCertificate");
|
|
8
10
|
const createAction_1 = require("./signer/methods/createAction");
|
|
@@ -21,6 +23,7 @@ const WalletError_1 = require("./sdk/WalletError");
|
|
|
21
23
|
const utilityHelpers_noBuffer_1 = require("./utility/utilityHelpers.noBuffer");
|
|
22
24
|
const resultBeef_1 = require("./signer/methods/resultBeef");
|
|
23
25
|
const ActionBatchWorkspace_1 = require("./signer/actionBatch/ActionBatchWorkspace");
|
|
26
|
+
const walletResultGuards_1 = require("./utility/walletResultGuards");
|
|
24
27
|
function prepareKnownTxidsForCreateAction(wallet, args) {
|
|
25
28
|
if (!wallet.autoKnownTxids || args.options?.knownTxids != null)
|
|
26
29
|
return;
|
|
@@ -41,8 +44,9 @@ function prepareKnownTxidsForCreateAction(wallet, args) {
|
|
|
41
44
|
/**
|
|
42
45
|
* Build a {@link DiscoverCertificatesResult} from contact records so {@link Wallet.discoverByIdentityKey}
|
|
43
46
|
* and {@link Wallet.discoverByAttributes} can short-circuit on a local contacts hit. The synthetic
|
|
44
|
-
*
|
|
45
|
-
*
|
|
47
|
+
* result has `trust: Infinity` by default so downstream trust filtering honors the user's local
|
|
48
|
+
* assertion as authoritative. Its empty serial, signature, and revocation outpoint deliberately
|
|
49
|
+
* distinguish it from an independently certified third-party attestation.
|
|
46
50
|
*/
|
|
47
51
|
function synthesizeContactResult(contacts) {
|
|
48
52
|
const certificates = contacts.map(c => ({
|
|
@@ -163,6 +167,10 @@ class Wallet {
|
|
|
163
167
|
}
|
|
164
168
|
}
|
|
165
169
|
async destroy() {
|
|
170
|
+
this._identityEvidenceClosed = true;
|
|
171
|
+
this._identityEvidenceVerifier?.dispose();
|
|
172
|
+
this._overlayEvidenceCache.clear();
|
|
173
|
+
clearTimeout(this._overlayEvidenceExpiryTimer);
|
|
166
174
|
await this.actionBatch.abort();
|
|
167
175
|
await this.storage.destroy();
|
|
168
176
|
if (this.privilegedKeyManager != null)
|
|
@@ -318,8 +326,8 @@ class Wallet {
|
|
|
318
326
|
// List Methods
|
|
319
327
|
/// ///////////////
|
|
320
328
|
async listActions(args, originator) {
|
|
321
|
-
|
|
322
|
-
const { vargs } = this.validateAuthAndArgs(args,
|
|
329
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
330
|
+
const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateListActionsArgs);
|
|
323
331
|
const storageArgs = this.actionBatch.hasWorkspace ? { ...vargs, limit: 10000, offset: 0 } : vargs;
|
|
324
332
|
const r = this.actionBatch.overlayListActions(await this.storage.listActions(storageArgs), vargs);
|
|
325
333
|
// Implement security policy to block customInstructions from output results.
|
|
@@ -336,7 +344,7 @@ class Wallet {
|
|
|
336
344
|
return `storage ${this.getStorageIdentity().storageIdentityKey}`;
|
|
337
345
|
}
|
|
338
346
|
async listOutputs(args, originator) {
|
|
339
|
-
|
|
347
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
340
348
|
const { vargs } = this.validateAuthAndArgs(args, validateListOutputsArgs);
|
|
341
349
|
if (this.autoKnownTxids && !vargs.knownTxids) {
|
|
342
350
|
vargs.knownTxids = this.getKnownTxids();
|
|
@@ -352,8 +360,8 @@ class Wallet {
|
|
|
352
360
|
return r;
|
|
353
361
|
}
|
|
354
362
|
async listCertificates(args, originator) {
|
|
355
|
-
|
|
356
|
-
const { vargs } = this.validateAuthAndArgs(args,
|
|
363
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
364
|
+
const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateListCertificatesArgs);
|
|
357
365
|
const r = await this.storage.listCertificates(vargs);
|
|
358
366
|
return r;
|
|
359
367
|
}
|
|
@@ -361,7 +369,7 @@ class Wallet {
|
|
|
361
369
|
// Certificates
|
|
362
370
|
/// ///////////////
|
|
363
371
|
async acquireDirectCertificateProtocol(args) {
|
|
364
|
-
const { auth, vargs } = this.validateAuthAndArgs(args,
|
|
372
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateAcquireDirectCertificateArgs);
|
|
365
373
|
vargs.subject = (await this.getPublicKey({
|
|
366
374
|
identityKey: true,
|
|
367
375
|
privileged: args.privileged,
|
|
@@ -408,11 +416,12 @@ class Wallet {
|
|
|
408
416
|
this.validateIssuedCertificateFields(certificate, expectedFields);
|
|
409
417
|
}
|
|
410
418
|
async acquireIssuedCertificateProtocol(args) {
|
|
411
|
-
const { auth, vargs } = this.validateAuthAndArgs(args,
|
|
419
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateAcquireIssuanceCertificateArgs);
|
|
412
420
|
const clientNonce = await (0, sdk_1.createNonce)(this, vargs.certifier);
|
|
413
|
-
const
|
|
421
|
+
const endpoint = new URL('signCertificate', `${vargs.certifierUrl}/`);
|
|
422
|
+
const authClient = new sdk_1.AuthFetch(this, undefined, undefined, undefined, {}, (0, sdk_1.createPublicHTTPSFetch)(endpoint.origin));
|
|
414
423
|
const { certificateFields, masterKeyring } = await sdk_1.MasterCertificate.createCertificateFields(this, vargs.certifier, vargs.fields);
|
|
415
|
-
const response = await authClient.fetch(
|
|
424
|
+
const response = await authClient.fetch(endpoint.toString(), {
|
|
416
425
|
method: 'POST',
|
|
417
426
|
headers: { 'Content-Type': 'application/json' },
|
|
418
427
|
body: JSON.stringify({
|
|
@@ -434,13 +443,13 @@ class Wallet {
|
|
|
434
443
|
const signedCertificate = new sdk_1.Certificate(certificate.type, certificate.serialNumber, certificate.subject, certificate.certifier, certificate.revocationOutpoint, certificate.fields, certificate.signature);
|
|
435
444
|
await (0, sdk_1.verifyNonce)(serverNonce, this, vargs.certifier);
|
|
436
445
|
const { valid } = await this.verifyHmac({
|
|
437
|
-
hmac:
|
|
438
|
-
data:
|
|
446
|
+
hmac: (0, utils_1.toArray)(signedCertificate.serialNumber, 'base64'),
|
|
447
|
+
data: (0, utils_1.toArray)(clientNonce + serverNonce, 'base64'),
|
|
439
448
|
protocolID: [2, 'certificate issuance'],
|
|
440
449
|
keyID: serverNonce + clientNonce,
|
|
441
450
|
counterparty: vargs.certifier
|
|
442
451
|
});
|
|
443
|
-
if (
|
|
452
|
+
if (valid !== true)
|
|
444
453
|
throw new Error('Invalid serialNumber');
|
|
445
454
|
this.validateIssuedCertificate(signedCertificate, vargs, certificateFields);
|
|
446
455
|
if (!(await signedCertificate.verify()))
|
|
@@ -454,7 +463,7 @@ class Wallet {
|
|
|
454
463
|
});
|
|
455
464
|
}
|
|
456
465
|
async acquireCertificate(args, originator) {
|
|
457
|
-
|
|
466
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
458
467
|
if (args.acquisitionProtocol === 'direct') {
|
|
459
468
|
return await this.acquireDirectCertificateProtocol(args);
|
|
460
469
|
}
|
|
@@ -464,32 +473,117 @@ class Wallet {
|
|
|
464
473
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('acquisitionProtocol', `valid.${args.acquisitionProtocol} is unrecognized.`);
|
|
465
474
|
}
|
|
466
475
|
async relinquishCertificate(args, originator) {
|
|
467
|
-
|
|
468
|
-
this.validateAuthAndArgs(args,
|
|
469
|
-
await this.storage.relinquishCertificate(args);
|
|
476
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
477
|
+
this.validateAuthAndArgs(args, validationHelpers_1.validateRelinquishCertificateArgs);
|
|
478
|
+
const updated = await this.storage.relinquishCertificate(args);
|
|
479
|
+
(0, walletResultGuards_1.assertStorageMutationSucceeded)(updated, 'certificate relinquishment');
|
|
470
480
|
return { relinquished: true };
|
|
471
481
|
}
|
|
472
482
|
async proveCertificate(args, originator) {
|
|
473
|
-
|
|
474
|
-
const { auth, vargs } = this.validateAuthAndArgs(args,
|
|
483
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
484
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateProveCertificateArgs);
|
|
475
485
|
const r = await (0, proveCertificate_1.proveCertificate)(this, auth, vargs);
|
|
476
486
|
return r;
|
|
477
487
|
}
|
|
478
488
|
/** 2-minute cache of trust settings for identity resolution paths */
|
|
479
489
|
_trustSettingsCache;
|
|
480
|
-
/**
|
|
481
|
-
|
|
490
|
+
/** Bounded two-minute untrusted receipts. Every use rechecks canonical evidence. */
|
|
491
|
+
_overlayEvidenceCache = new Map();
|
|
492
|
+
_overlayEvidenceExpiryTimer;
|
|
493
|
+
_identityEvidenceVerifier;
|
|
494
|
+
_identityEvidenceClosed = false;
|
|
495
|
+
pruneOverlayEvidence() {
|
|
496
|
+
for (const [key, value] of this._overlayEvidenceCache) {
|
|
497
|
+
if (value.expiresAt <= Date.now())
|
|
498
|
+
this._overlayEvidenceCache.delete(key);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
scheduleOverlayEvidenceExpiry() {
|
|
502
|
+
clearTimeout(this._overlayEvidenceExpiryTimer);
|
|
503
|
+
const expiresAt = Math.min(...[...this._overlayEvidenceCache.values()].map(value => value.expiresAt));
|
|
504
|
+
if (!Number.isFinite(expiresAt))
|
|
505
|
+
return;
|
|
506
|
+
this._overlayEvidenceExpiryTimer = setTimeout(() => {
|
|
507
|
+
this.pruneOverlayEvidence();
|
|
508
|
+
this.scheduleOverlayEvidenceExpiry();
|
|
509
|
+
}, Math.max(1, expiresAt - Date.now()));
|
|
510
|
+
this._overlayEvidenceExpiryTimer.unref?.();
|
|
511
|
+
}
|
|
512
|
+
async requireOverlayChainTracker(forceRefresh) {
|
|
513
|
+
if (this.services == null) {
|
|
514
|
+
if (forceRefresh) {
|
|
515
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('services', 'valid in constructor arguments to be retreived here.');
|
|
516
|
+
}
|
|
517
|
+
return undefined;
|
|
518
|
+
}
|
|
519
|
+
return await this.services.getChainTracker();
|
|
520
|
+
}
|
|
521
|
+
async discoverOverlayCertificates(query, cacheKey, forceRefresh, now) {
|
|
522
|
+
const chainTracker = await this.requireOverlayChainTracker(forceRefresh);
|
|
523
|
+
if (chainTracker == null)
|
|
524
|
+
return [];
|
|
525
|
+
if (this._identityEvidenceClosed)
|
|
526
|
+
return [];
|
|
527
|
+
const chainNamespace = `wallet:${this.chain}`;
|
|
528
|
+
if (this._identityEvidenceVerifier?.chainTracker !== chainTracker ||
|
|
529
|
+
this._identityEvidenceVerifier.chainNamespace !== chainNamespace) {
|
|
530
|
+
this._identityEvidenceVerifier?.dispose();
|
|
531
|
+
this._identityEvidenceVerifier = new identityUtils_1.IdentityEvidenceVerifier(chainTracker, chainNamespace);
|
|
532
|
+
}
|
|
533
|
+
const verifier = this._identityEvidenceVerifier;
|
|
534
|
+
this.pruneOverlayEvidence();
|
|
535
|
+
let cached = forceRefresh ? undefined : this._overlayEvidenceCache.get(cacheKey);
|
|
536
|
+
if (cached == null || cached.expiresAt <= now) {
|
|
537
|
+
const value = await (0, identityUtils_1.queryOverlayEvidence)(query, this.lookupResolver);
|
|
538
|
+
if (this._identityEvidenceClosed)
|
|
539
|
+
return [];
|
|
540
|
+
const bytes = value.type === 'output-list'
|
|
541
|
+
? value.outputs.reduce((total, output) => total + output.beef.length + (output.context?.length ?? 0), 0)
|
|
542
|
+
: 0;
|
|
543
|
+
cached = { value, bytes, expiresAt: now + 2 * 60 * 1000 };
|
|
544
|
+
this._overlayEvidenceCache.delete(cacheKey);
|
|
545
|
+
let retained = [...this._overlayEvidenceCache.values()].reduce((total, entry) => total + entry.bytes, 0);
|
|
546
|
+
while (this._overlayEvidenceCache.size > 0 &&
|
|
547
|
+
(this._overlayEvidenceCache.size >= 32 || retained + bytes > 16 * 1024 * 1024)) {
|
|
548
|
+
const oldest = this._overlayEvidenceCache.keys().next().value;
|
|
549
|
+
retained -= this._overlayEvidenceCache.get(oldest).bytes;
|
|
550
|
+
this._overlayEvidenceCache.delete(oldest);
|
|
551
|
+
}
|
|
552
|
+
this._overlayEvidenceCache.set(cacheKey, cached);
|
|
553
|
+
this.scheduleOverlayEvidenceExpiry();
|
|
554
|
+
}
|
|
555
|
+
if (cached.value.type !== 'output-list') {
|
|
556
|
+
this._overlayEvidenceCache.delete(cacheKey);
|
|
557
|
+
return [];
|
|
558
|
+
}
|
|
559
|
+
let certificates;
|
|
560
|
+
try {
|
|
561
|
+
certificates = await (0, identityUtils_1.parseResults)(cached.value, chainTracker, verifier);
|
|
562
|
+
}
|
|
563
|
+
catch (error) {
|
|
564
|
+
this._overlayEvidenceCache.delete(cacheKey);
|
|
565
|
+
throw error;
|
|
566
|
+
}
|
|
567
|
+
// Failed evidence must allow another fetch, including after temporary chain unavailability.
|
|
568
|
+
if (certificates.length !== cached.value.outputs.length)
|
|
569
|
+
this._overlayEvidenceCache.delete(cacheKey);
|
|
570
|
+
return certificates;
|
|
571
|
+
}
|
|
572
|
+
/**
|
|
573
|
+
* Resolves an identity from a caller-installed local contact source first, then the certificate
|
|
574
|
+
* overlay. A local hit expresses the user's own authoritative trust decision and carries empty
|
|
575
|
+
* third-party certificate proof fields; use `forceRefresh` to bypass it and query the overlay.
|
|
576
|
+
*/
|
|
482
577
|
async discoverByIdentityKey(args, originator) {
|
|
483
|
-
|
|
484
|
-
this.validateAuthAndArgs(args,
|
|
485
|
-
const TTL_MS = 2 * 60 * 1000;
|
|
578
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
579
|
+
const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateDiscoverByIdentityKeyArgs);
|
|
486
580
|
const now = Date.now();
|
|
487
581
|
const forceRefresh = args.forceRefresh === true;
|
|
488
|
-
//
|
|
582
|
+
// Local contacts are explicit user trust anchors, not third-party certifier attestations.
|
|
489
583
|
if (!forceRefresh && this.contactSource != null) {
|
|
490
584
|
try {
|
|
491
|
-
const contact = await this.contactSource.findByIdentityKey(
|
|
492
|
-
if (contact != null) {
|
|
585
|
+
const contact = await this.contactSource.findByIdentityKey(vargs.identityKey);
|
|
586
|
+
if (contact != null && contact.identityKey === vargs.identityKey && vargs.offset === 0) {
|
|
493
587
|
return synthesizeContactResult([contact]);
|
|
494
588
|
}
|
|
495
589
|
}
|
|
@@ -497,84 +591,64 @@ class Wallet {
|
|
|
497
591
|
// Contact source failures must never block the network path.
|
|
498
592
|
}
|
|
499
593
|
}
|
|
500
|
-
//
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
: undefined;
|
|
504
|
-
if (trustSettings == null) {
|
|
505
|
-
const settings = await this.settingsManager.get();
|
|
506
|
-
trustSettings = settings.trustSettings;
|
|
507
|
-
this._trustSettingsCache = { trustSettings, expiresAt: now + TTL_MS };
|
|
508
|
-
}
|
|
594
|
+
// Authorization policy is read fresh on every call. A removed certifier or
|
|
595
|
+
// raised threshold must take effect immediately rather than after a cache TTL.
|
|
596
|
+
const trustSettings = (await this.settingsManager.get()).trustSettings;
|
|
509
597
|
const certifiers = trustSettings.trustedCertifiers.map(c => c.identityKey).sort((a, b) => a.localeCompare(b));
|
|
510
|
-
// ---
|
|
598
|
+
// --- Untrusted overlay response cache; verify again before use. ---
|
|
511
599
|
const cacheKey = JSON.stringify({
|
|
512
600
|
fn: 'discoverByIdentityKey',
|
|
513
|
-
identityKey:
|
|
514
|
-
certifiers
|
|
601
|
+
identityKey: vargs.identityKey,
|
|
602
|
+
certifiers,
|
|
603
|
+
limit: vargs.limit,
|
|
604
|
+
offset: vargs.offset
|
|
515
605
|
});
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
const value = await (0, identityUtils_1.queryOverlay)({ identityKey: args.identityKey, certifiers }, this.lookupResolver);
|
|
519
|
-
cached = { value, expiresAt: now + TTL_MS };
|
|
520
|
-
this._overlayCache.set(cacheKey, cached);
|
|
521
|
-
}
|
|
522
|
-
if (!cached.value) {
|
|
523
|
-
return { totalCertificates: 0, certificates: [] };
|
|
524
|
-
}
|
|
525
|
-
return (0, identityUtils_1.transformVerifiableCertificatesWithTrust)(trustSettings, cached.value);
|
|
606
|
+
const certificates = await this.discoverOverlayCertificates({ identityKey: args.identityKey, certifiers }, cacheKey, forceRefresh, now);
|
|
607
|
+
return (0, identityUtils_1.transformVerifiableCertificatesWithTrust)(trustSettings, (0, identityUtils_1.filterCertificatesByIdentityKey)(certificates, vargs.identityKey));
|
|
526
608
|
}
|
|
609
|
+
/**
|
|
610
|
+
* Resolves matching identities from a caller-installed local contact source first, then the
|
|
611
|
+
* certificate overlay. Local hits are authoritative personal assertions with empty third-party
|
|
612
|
+
* certificate proof fields; use `forceRefresh` to bypass them and query the overlay.
|
|
613
|
+
*/
|
|
527
614
|
async discoverByAttributes(args, originator) {
|
|
528
|
-
|
|
529
|
-
this.validateAuthAndArgs(args,
|
|
530
|
-
const TTL_MS = 2 * 60 * 1000;
|
|
615
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
616
|
+
const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateDiscoverByAttributesArgs);
|
|
531
617
|
const now = Date.now();
|
|
532
618
|
const forceRefresh = args.forceRefresh === true;
|
|
533
|
-
//
|
|
534
|
-
if (!forceRefresh && this.contactSource?.findByAttributes != null &&
|
|
619
|
+
// Local contacts are explicit user trust anchors, not third-party certifier attestations.
|
|
620
|
+
if (!forceRefresh && this.contactSource?.findByAttributes != null && vargs.attributes != null) {
|
|
535
621
|
try {
|
|
536
|
-
const matches = await this.contactSource.findByAttributes(
|
|
622
|
+
const matches = await this.contactSource.findByAttributes(vargs.attributes);
|
|
537
623
|
if (Array.isArray(matches) && matches.length > 0) {
|
|
538
|
-
return synthesizeContactResult(matches);
|
|
624
|
+
return synthesizeContactResult(matches.slice(vargs.offset, vargs.offset + vargs.limit));
|
|
539
625
|
}
|
|
540
626
|
}
|
|
541
627
|
catch {
|
|
542
628
|
// Fall through to network path on contact-source failure.
|
|
543
629
|
}
|
|
544
630
|
}
|
|
545
|
-
//
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
: undefined;
|
|
549
|
-
if (trustSettings == null) {
|
|
550
|
-
const settings = await this.settingsManager.get();
|
|
551
|
-
trustSettings = settings.trustSettings;
|
|
552
|
-
this._trustSettingsCache = { trustSettings, expiresAt: now + TTL_MS };
|
|
553
|
-
}
|
|
631
|
+
// Authorization policy is read fresh on every call. A removed certifier or
|
|
632
|
+
// raised threshold must take effect immediately rather than after a cache TTL.
|
|
633
|
+
const trustSettings = (await this.settingsManager.get()).trustSettings;
|
|
554
634
|
const certifiers = trustSettings.trustedCertifiers.map(c => c.identityKey).sort((a, b) => a.localeCompare(b));
|
|
555
635
|
// Normalize attributes for a stable cache key.
|
|
556
636
|
// If attributes is an object, sort its top-level keys; if it's an array, sort a shallow copy.
|
|
557
|
-
let attributesKey =
|
|
558
|
-
if (
|
|
559
|
-
const keys = Object.keys(
|
|
560
|
-
attributesKey = JSON.stringify(
|
|
637
|
+
let attributesKey = vargs.attributes;
|
|
638
|
+
if (vargs.attributes != null && typeof vargs.attributes === 'object') {
|
|
639
|
+
const keys = Object.keys(vargs.attributes).sort((a, b) => a.localeCompare(b));
|
|
640
|
+
attributesKey = JSON.stringify(vargs.attributes, keys);
|
|
561
641
|
}
|
|
562
|
-
// ---
|
|
642
|
+
// --- Untrusted overlay response cache; verify again before use. ---
|
|
563
643
|
const cacheKey = JSON.stringify({
|
|
564
644
|
fn: 'discoverByAttributes',
|
|
565
645
|
attributes: attributesKey,
|
|
566
|
-
certifiers
|
|
646
|
+
certifiers,
|
|
647
|
+
limit: vargs.limit,
|
|
648
|
+
offset: vargs.offset
|
|
567
649
|
});
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
const value = await (0, identityUtils_1.queryOverlay)({ attributes: args.attributes, certifiers }, this.lookupResolver);
|
|
571
|
-
cached = { value, expiresAt: now + TTL_MS };
|
|
572
|
-
this._overlayCache.set(cacheKey, cached);
|
|
573
|
-
}
|
|
574
|
-
if (!cached.value) {
|
|
575
|
-
return { totalCertificates: 0, certificates: [] };
|
|
576
|
-
}
|
|
577
|
-
return (0, identityUtils_1.transformVerifiableCertificatesWithTrust)(trustSettings, cached.value);
|
|
650
|
+
const certificates = await this.discoverOverlayCertificates({ attributes: args.attributes, certifiers }, cacheKey, forceRefresh, now);
|
|
651
|
+
return (0, identityUtils_1.transformVerifiableCertificatesWithTrust)(trustSettings, (0, identityUtils_1.filterCertificatesByAttributes)(certificates, vargs.attributes));
|
|
578
652
|
}
|
|
579
653
|
verifyReturnedTxidOnly(beef, knownTxids) {
|
|
580
654
|
if (this.returnTxidOnly)
|
|
@@ -599,7 +673,7 @@ class Wallet {
|
|
|
599
673
|
verifyReturnedTxidOnlyAtomicBEEF(beef, knownTxids, parsedBeef) {
|
|
600
674
|
if (this.returnTxidOnly)
|
|
601
675
|
return beef;
|
|
602
|
-
const b = parsedBeef ?? sdk_1.Beef.
|
|
676
|
+
const b = parsedBeef ?? sdk_1.Beef.fromBinaryStrict(beef);
|
|
603
677
|
if (!b.atomicTxid)
|
|
604
678
|
throw new WERR_errors_1.WERR_INTERNAL();
|
|
605
679
|
const hasUnknownTxidOnly = b.txs.some(btx => btx.isTxidOnly && !knownTxids?.includes(btx.txid));
|
|
@@ -610,7 +684,7 @@ class Wallet {
|
|
|
610
684
|
verifyReturnedTxidOnlyBEEF(beef) {
|
|
611
685
|
if (this.returnTxidOnly)
|
|
612
686
|
return beef;
|
|
613
|
-
const b = sdk_1.Beef.
|
|
687
|
+
const b = sdk_1.Beef.fromBinaryStrict(beef);
|
|
614
688
|
return this.verifyReturnedTxidOnly(b).toBinary();
|
|
615
689
|
}
|
|
616
690
|
logMakeLogger(method, args) {
|
|
@@ -639,11 +713,11 @@ class Wallet {
|
|
|
639
713
|
async createAction(args, originator) {
|
|
640
714
|
const logger = this.logMakeLogger('createAction', args);
|
|
641
715
|
try {
|
|
642
|
-
|
|
716
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
643
717
|
args.options ??= {};
|
|
644
718
|
args.options.trustSelf ||= this.trustSelf;
|
|
645
719
|
prepareKnownTxidsForCreateAction(this, args);
|
|
646
|
-
const { auth, vargs } = this.validateAuthAndArgs(args,
|
|
720
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateCreateActionArgs, logger);
|
|
647
721
|
logger?.log('validated args');
|
|
648
722
|
vargs.includeAllSourceTransactions = this.includeAllSourceTransactions;
|
|
649
723
|
if (this.randomVals != null && this.randomVals.length > 1) {
|
|
@@ -695,8 +769,8 @@ class Wallet {
|
|
|
695
769
|
}
|
|
696
770
|
}
|
|
697
771
|
async signAction(args, originator) {
|
|
698
|
-
|
|
699
|
-
const { auth, vargs } = this.validateAuthAndArgs(args,
|
|
772
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
773
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateSignActionArgs);
|
|
700
774
|
const prior = this.pendingSignActions[args.reference];
|
|
701
775
|
if (!prior) {
|
|
702
776
|
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED('recovery of out-of-session signAction reference data is not yet implemented.');
|
|
@@ -711,8 +785,8 @@ class Wallet {
|
|
|
711
785
|
return r;
|
|
712
786
|
}
|
|
713
787
|
async internalizeAction(args, originator) {
|
|
714
|
-
|
|
715
|
-
const { auth, vargs } = this.validateAuthAndArgs(args,
|
|
788
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
789
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateInternalizeActionArgs);
|
|
716
790
|
if (vargs.labels.includes(types_1.specOpThrowReviewActions))
|
|
717
791
|
throwDummyReviewActions();
|
|
718
792
|
if ((0, brc177NoSendExpiry_1.hasBrc177NoSendExpiryLabel)(vargs.labels)) {
|
|
@@ -723,47 +797,49 @@ class Wallet {
|
|
|
723
797
|
return r;
|
|
724
798
|
}
|
|
725
799
|
async abortAction(args, originator) {
|
|
726
|
-
|
|
727
|
-
this.validateAuthAndArgs(args,
|
|
800
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
801
|
+
this.validateAuthAndArgs(args, validationHelpers_1.validateAbortActionArgs);
|
|
728
802
|
if (this.actionBatch.ownsReference(args.reference)) {
|
|
729
803
|
return { aborted: await this.actionBatch.abortAction(args.reference) };
|
|
730
804
|
}
|
|
731
805
|
const r = await this.storage.abortAction(args);
|
|
806
|
+
(0, walletResultGuards_1.assertAbortResult)(r);
|
|
732
807
|
return r;
|
|
733
808
|
}
|
|
734
809
|
async relinquishOutput(args, originator) {
|
|
735
|
-
|
|
736
|
-
this.validateAuthAndArgs(args,
|
|
737
|
-
await this.storage.relinquishOutput(args);
|
|
810
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
811
|
+
this.validateAuthAndArgs(args, validationHelpers_1.validateRelinquishOutputArgs);
|
|
812
|
+
const updated = await this.storage.relinquishOutput(args);
|
|
813
|
+
(0, walletResultGuards_1.assertStorageMutationSucceeded)(updated, 'output relinquishment');
|
|
738
814
|
return { relinquished: true };
|
|
739
815
|
}
|
|
740
816
|
async isAuthenticated(args, originator) {
|
|
741
|
-
|
|
817
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
742
818
|
const r = {
|
|
743
819
|
authenticated: true
|
|
744
820
|
};
|
|
745
821
|
return r;
|
|
746
822
|
}
|
|
747
823
|
async waitForAuthentication(args, originator) {
|
|
748
|
-
|
|
824
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
749
825
|
return { authenticated: true };
|
|
750
826
|
}
|
|
751
827
|
async getHeight(args, originator) {
|
|
752
|
-
|
|
828
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
753
829
|
const height = await this.getServices().getHeight();
|
|
754
830
|
return { height };
|
|
755
831
|
}
|
|
756
832
|
async getHeaderForHeight(args, originator) {
|
|
757
|
-
|
|
833
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
758
834
|
const serializedHeader = await this.getServices().getHeaderForHeight(args.height);
|
|
759
|
-
return { header:
|
|
835
|
+
return { header: (0, utils_1.toHex)(serializedHeader) };
|
|
760
836
|
}
|
|
761
837
|
async getNetwork(args, originator) {
|
|
762
|
-
|
|
838
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
763
839
|
return { network: (0, utilityHelpers_1.toWalletNetwork)(this.chain) };
|
|
764
840
|
}
|
|
765
841
|
async getVersion(args, originator) {
|
|
766
|
-
|
|
842
|
+
(0, validationHelpers_1.validateOriginator)(originator);
|
|
767
843
|
return { version: 'wallet-brc100-1.0.0' };
|
|
768
844
|
}
|
|
769
845
|
/**
|
|
@@ -913,7 +989,7 @@ class Wallet {
|
|
|
913
989
|
* @returns {ListActionsResult} start `listActions` result restricted to 'nosend' (or 'failed' if aborted) actions.
|
|
914
990
|
*/
|
|
915
991
|
async listNoSendActions(args, abort = false) {
|
|
916
|
-
const { vargs } = this.validateAuthAndArgs(args,
|
|
992
|
+
const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateListActionsArgs);
|
|
917
993
|
vargs.labels.push(types_1.specOpNoSendActions);
|
|
918
994
|
if (abort) {
|
|
919
995
|
await this.actionBatch.abort();
|
|
@@ -928,7 +1004,7 @@ class Wallet {
|
|
|
928
1004
|
* @returns {ListActionsResult} start `listActions` result restricted to 'failed' status actions.
|
|
929
1005
|
*/
|
|
930
1006
|
async listFailedActions(args, unfail = false) {
|
|
931
|
-
const { vargs } = this.validateAuthAndArgs(args,
|
|
1007
|
+
const { vargs } = this.validateAuthAndArgs(args, validationHelpers_1.validateListActionsArgs);
|
|
932
1008
|
vargs.labels.push(types_1.specOpFailedActions);
|
|
933
1009
|
if (unfail)
|
|
934
1010
|
vargs.labels.push('unfail');
|
|
@@ -952,6 +1028,7 @@ function throwIfAnyUnsuccessfulSignActions(r) {
|
|
|
952
1028
|
throw new WERR_errors_1.WERR_REVIEW_ACTIONS(ndrs, swrs, r.txid, r.tx);
|
|
953
1029
|
}
|
|
954
1030
|
function throwIfUnsuccessfulInternalizeAction(r) {
|
|
1031
|
+
(0, walletResultGuards_1.assertInternalizeAccepted)(r);
|
|
955
1032
|
const ndrs = r.notDelayedResults;
|
|
956
1033
|
const swrs = r.sendWithResults;
|
|
957
1034
|
if (ndrs == null || swrs == null || swrs.every(r => r.status === 'unproven'))
|
|
@@ -963,10 +1040,9 @@ function throwIfUnsuccessfulInternalizeAction(r) {
|
|
|
963
1040
|
*/
|
|
964
1041
|
function throwDummyReviewActions() {
|
|
965
1042
|
const b58Beef = 'gno9MC7VXii1KoCkc2nsVyYJpqzN3dhBzYATETJcys62emMKfpBof4R7GozwYEaSapUtnNvqQ57aaYYjm3U2dv9eUJ1sV46boHkQgppYmAz9YH8FdZduV8aJayPViaKcyPmbDhEw6UW8TM5iFZLXNs7HBnJHUKCeTdNK4FUEL7vAugxAV9WUUZ43BZjJk2SmSeps9TCXjt1Ci9fKWp3d9QSoYvTpxwzyUFHjRKtbUgwq55ZfkBp5bV2Bpz9qSuKywKewW7Hh4S1nCUScwwzpKDozb3zic1V9p2k8rQxoPsRxjUJ8bjhNDdsN8d7KukFuc3n47fXzdWttvnxwsujLJRGnQbgJuknQqx3KLf5kJXHzwjG6TzigZk2t24qeB6d3hbYiaDr2fFkUJBL3tukTHhfNkQYRXuz3kucVDzvejHyqJaF51mXG8BjMN5aQj91ZJXCaPVqkMWCzmvyaqmXMdRiJdSAynhXbQK91xf6RwdNhz1tg5f9B6oJJMhsi9UYSVymmax8VLKD9AKzBCBDcfyD83m3jyS1VgKGZn3SkQmr6bsoWq88L3GsMnnmYUGogvdAYarTqg3pzkjCMxHzmJBMN6ofnUk8c1sRTXQue7BbyUaN5uZu3KW6CmFsEfpuqVvnqFW93TU1jrPP2S8yz8AexAnARPCKE8Yz7RfVaT6RCavwQKL3u5iookwRWEZXW1QWmM37yJWHD87SjVynyg327a1CLwcBxmE2CB48QeNVGyQki4CTQMqw2o8TMhDPJej1g68oniAjBcxBLSCs7KGvK3k7AfrHbCMULX9CTibYhCjdFjbsbBoocqJpxxcvkMo1fEEiAzZuiBVZQDYktDdTVbhKHvYkW25HcYX75NJrpNAhm7AjFeKLzEVxqAQkMfvTufpESNRZF4kQqg2Rg8h2ajcKTd5cpEPwXCrZLHm4EaZEmZVbg3QNfGhn7BJu1bHMtLqPD4y8eJxm2uGrW6saf6qKYmmu64F8A667NbD4yskPRQ1S863VzwGpxxmgLc1Ta3R46jEqsAoRDoZVUaCgBBZG3Yg1CTgi1EVBMXU7qvY4n3h8o2FLCEMWY4KadnV3iD4FbcdCmg4yxBosNAZgbPjhgGjCimjh4YsLd9zymGLmivmz2ZBg5m3xaiXT9NN81X9C1JUujd';
|
|
966
|
-
const beef = sdk_1.Beef.
|
|
1043
|
+
const beef = sdk_1.Beef.fromBinaryStrict((0, utils_1.fromBase58)(b58Beef));
|
|
967
1044
|
const btx = beef.txs.at(-1);
|
|
968
1045
|
const txid = btx.txid;
|
|
969
|
-
console.log('Throwing dummy WERR_REVIEW_ACTIONS');
|
|
970
1046
|
throw new WERR_errors_1.WERR_REVIEW_ACTIONS([
|
|
971
1047
|
{
|
|
972
1048
|
txid, // only care that it is syntactically a txid
|
|
@@ -987,7 +1063,7 @@ function throwDummyReviewActions() {
|
|
|
987
1063
|
* @returns
|
|
988
1064
|
*/
|
|
989
1065
|
function validateListOutputsArgs(args) {
|
|
990
|
-
const vargs =
|
|
1066
|
+
const vargs = (0, validationHelpers_1.validateListOutputsArgs)(args);
|
|
991
1067
|
const balancePrefix = 'balance ';
|
|
992
1068
|
if (vargs.basket.startsWith(balancePrefix)) {
|
|
993
1069
|
vargs.basket = vargs.basket.slice(balancePrefix.length);
|