@bsv/wallet-toolbox 2.4.3 → 2.4.20
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 +81 -1
- package/LICENSE.txt +58 -0
- package/README.md +98 -36
- package/docs/README.md +3 -1
- package/docs/action-batch-planning.md +220 -0
- package/docs/authentication-observability.md +94 -0
- package/docs/client.md +1125 -2776
- package/docs/monitor.md +29 -111
- package/docs/services.md +296 -602
- package/docs/setup.md +48 -28
- package/docs/storage.md +329 -1692
- package/docs/wallet.md +9718 -4890
- package/out/src/CWIStyleWalletManager.d.ts +62 -6
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/out/src/CWIStyleWalletManager.js +584 -181
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/Setup.d.ts +7 -0
- package/out/src/Setup.d.ts.map +1 -1
- package/out/src/Setup.js +10 -11
- package/out/src/Setup.js.map +1 -1
- package/out/src/SetupClient.d.ts +2 -0
- package/out/src/SetupClient.d.ts.map +1 -1
- package/out/src/SetupClient.js +8 -9
- package/out/src/SetupClient.js.map +1 -1
- package/out/src/SetupWallet.d.ts +6 -0
- package/out/src/SetupWallet.d.ts.map +1 -1
- package/out/src/ShamirWalletManager.d.ts.map +1 -1
- package/out/src/ShamirWalletManager.js.map +1 -1
- package/out/src/SimpleWalletManager.d.ts.map +1 -1
- package/out/src/SimpleWalletManager.js +2 -5
- package/out/src/SimpleWalletManager.js.map +1 -1
- package/out/src/Wallet.d.ts +36 -10
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +167 -132
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletAuthenticationManager.d.ts +30 -6
- package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
- package/out/src/WalletAuthenticationManager.js +215 -34
- package/out/src/WalletAuthenticationManager.js.map +1 -1
- package/out/src/WalletLogger.d.ts.map +1 -1
- package/out/src/WalletLogger.js +33 -30
- package/out/src/WalletLogger.js.map +1 -1
- package/out/src/WalletPermissionsManager.d.ts +22 -1
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +392 -267
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/WalletSettingsManager.d.ts.map +1 -1
- package/out/src/WalletSettingsManager.js.map +1 -1
- package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
- package/out/src/entropy/EntropyCollector.js +6 -8
- package/out/src/entropy/EntropyCollector.js.map +1 -1
- package/out/src/fundWalletP2PKH.js.map +1 -1
- package/out/src/index.all.d.ts +1 -0
- package/out/src/index.all.d.ts.map +1 -1
- package/out/src/index.all.js +1 -0
- package/out/src/index.all.js.map +1 -1
- package/out/src/index.client.d.ts +2 -0
- package/out/src/index.client.d.ts.map +1 -1
- package/out/src/index.client.js +2 -0
- package/out/src/index.client.js.map +1 -1
- package/out/src/index.mobile.d.ts +2 -0
- package/out/src/index.mobile.d.ts.map +1 -1
- package/out/src/index.mobile.js +2 -0
- package/out/src/index.mobile.js.map +1 -1
- package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -1
- package/out/src/mockchain/MockChainMigrations.js.map +1 -1
- package/out/src/mockchain/MockChainStorage.d.ts.map +1 -1
- package/out/src/mockchain/MockChainStorage.js.map +1 -1
- package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
- package/out/src/mockchain/MockChainTracker.js.map +1 -1
- package/out/src/mockchain/MockMiner.d.ts.map +1 -1
- package/out/src/mockchain/MockMiner.js.map +1 -1
- package/out/src/mockchain/MockServices.d.ts +4 -0
- package/out/src/mockchain/MockServices.d.ts.map +1 -1
- package/out/src/mockchain/MockServices.js +69 -74
- package/out/src/mockchain/MockServices.js.map +1 -1
- package/out/src/mockchain/merkleTree.d.ts.map +1 -1
- package/out/src/mockchain/merkleTree.js +51 -56
- package/out/src/mockchain/merkleTree.js.map +1 -1
- package/out/src/monitor/Monitor.d.ts +4 -0
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +60 -57
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/MonitorDaemon.d.ts +3 -0
- package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
- package/out/src/monitor/MonitorDaemon.js +65 -56
- package/out/src/monitor/MonitorDaemon.js.map +1 -1
- package/out/src/monitor/index.all.js.map +1 -1
- package/out/src/monitor/tasks/TaskArcSSE.d.ts +5 -0
- package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskArcSSE.js +86 -77
- package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +4 -2
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +132 -131
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +3 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js +3 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts +13 -0
- package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts.map +1 -0
- package/out/src/monitor/tasks/TaskCleanupActionBatches.js +24 -0
- package/out/src/monitor/tasks/TaskCleanupActionBatches.js.map +1 -0
- package/out/src/monitor/tasks/TaskClock.d.ts +1 -1
- package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskClock.js +1 -1
- package/out/src/monitor/tasks/TaskClock.js.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
- package/out/src/monitor/tasks/TaskMineBlock.d.ts +3 -1
- package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskMineBlock.js +3 -1
- package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts +4 -3
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +4 -3
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/src/monitor/tasks/TaskPurge.d.ts +3 -1
- package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskPurge.js +3 -1
- package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +3 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +3 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +3 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js +3 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewStatus.d.ts +3 -1
- package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewStatus.js +3 -1
- package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +3 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js +3 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts +3 -0
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js +53 -46
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts +1 -1
- package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskSyncWhenIdle.js +1 -1
- package/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.d.ts +3 -1
- package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.js +3 -1
- package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
- package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -1
- package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
- package/out/src/monitor/tasks/index.all.d.ts +1 -0
- package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
- package/out/src/monitor/tasks/index.all.js +1 -0
- package/out/src/monitor/tasks/index.all.js.map +1 -1
- package/out/src/sdk/ActionBatch.interfaces.d.ts +159 -0
- package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -0
- package/out/src/sdk/ActionBatch.interfaces.js +3 -0
- package/out/src/sdk/ActionBatch.interfaces.js.map +1 -0
- package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.js +3 -3
- package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
- package/out/src/sdk/WERR_errors.d.ts +1 -1
- package/out/src/sdk/WERR_errors.d.ts.map +1 -1
- package/out/src/sdk/WERR_errors.js +2 -2
- package/out/src/sdk/WERR_errors.js.map +1 -1
- package/out/src/sdk/WalletError.d.ts +3 -0
- package/out/src/sdk/WalletError.d.ts.map +1 -1
- package/out/src/sdk/WalletError.js +53 -56
- package/out/src/sdk/WalletError.js.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +3 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +22 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/sdk/index.d.ts +1 -0
- package/out/src/sdk/index.d.ts.map +1 -1
- package/out/src/sdk/index.js +1 -0
- package/out/src/sdk/index.js.map +1 -1
- package/out/src/sdk/types.js.map +1 -1
- package/out/src/services/ServiceCollection.d.ts.map +1 -1
- package/out/src/services/ServiceCollection.js.map +1 -1
- package/out/src/services/Services.d.ts +8 -2
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +86 -44
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.d.ts +7 -7
- package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.js +9 -9
- package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +4 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js +42 -6
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +4 -4
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +45 -40
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +5 -0
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +25 -18
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +3 -3
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +6 -7
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -1
- 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.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.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/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
- 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.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts +2 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +2 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +12 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +110 -103
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +8 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +58 -48
- 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.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +55 -54
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +4 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +97 -72
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +5 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +145 -136
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +4 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +92 -68
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +43 -0
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +76 -0
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts +18 -0
- package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js +24 -0
- package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +2 -3
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +4 -22
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts +2 -4
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +12 -25
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +2 -3
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +4 -22
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +3 -15
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts +2 -2
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +3 -15
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +3 -15
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +2 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +64 -61
- 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.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 +4 -3
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +8 -10
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +14 -24
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.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/SingleWriterMultiReaderLock.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +1 -11
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +20 -49
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +4 -2
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.d.ts +23 -14
- package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.js +1 -14
- package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
- package/out/src/services/networkConfig.js.map +1 -1
- package/out/src/services/providers/ARC.d.ts +4 -0
- package/out/src/services/providers/ARC.d.ts.map +1 -1
- package/out/src/services/providers/ARC.js +96 -83
- package/out/src/services/providers/ARC.js.map +1 -1
- package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
- package/out/src/services/providers/ArcSSEClient.js.map +1 -1
- package/out/src/services/providers/Arcade.d.ts +4 -0
- package/out/src/services/providers/Arcade.d.ts.map +1 -1
- package/out/src/services/providers/Arcade.js +118 -92
- package/out/src/services/providers/Arcade.js.map +1 -1
- package/out/src/services/providers/Bitails.d.ts.map +1 -1
- package/out/src/services/providers/Bitails.js +107 -86
- package/out/src/services/providers/Bitails.js.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
- package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/WhatsOnChain.js +19 -6
- package/out/src/services/providers/WhatsOnChain.js.map +1 -1
- package/out/src/services/providers/exchangeRates.js +1 -1
- package/out/src/services/providers/exchangeRates.js.map +1 -1
- package/out/src/services/providers/getBeefForTxid.js.map +1 -1
- package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -1
- package/out/src/signer/WalletSigner.d.ts.map +1 -1
- package/out/src/signer/WalletSigner.js.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +29 -0
- package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -0
- package/out/src/signer/actionBatch/ActionBatchPlanner.js +346 -0
- package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -0
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +33 -0
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -0
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js +869 -0
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -0
- package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +11 -0
- package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -0
- package/out/src/signer/actionBatch/actionBatchBootstrap.js +38 -0
- package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -0
- package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.js +97 -107
- package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
- package/out/src/signer/methods/completeSignedTransaction.d.ts +3 -7
- package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/completeSignedTransaction.js +14 -57
- package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +50 -20
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/signer/methods/internalizeAction.js +4 -4
- package/out/src/signer/methods/internalizeAction.js.map +1 -1
- package/out/src/signer/methods/proveCertificate.js.map +1 -1
- package/out/src/signer/methods/resultBeef.js.map +1 -1
- package/out/src/signer/methods/signAction.d.ts.map +1 -1
- package/out/src/signer/methods/signAction.js +29 -4
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.d.ts +17 -0
- package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -0
- package/out/src/signer/methods/verifyUnlockScripts.js +137 -0
- package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -0
- package/out/src/storage/StorageIdb.d.ts +19 -3
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +232 -53
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +29 -1
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +225 -10
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +57 -1
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +277 -145
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReader.d.ts +13 -5
- package/out/src/storage/StorageReader.d.ts.map +1 -1
- package/out/src/storage/StorageReader.js +3 -0
- package/out/src/storage/StorageReader.js.map +1 -1
- package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
- package/out/src/storage/StorageReaderWriter.js.map +1 -1
- package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
- package/out/src/storage/StorageSyncReader.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts +10 -0
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +49 -6
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/adminServer/adminServer.d.ts +79 -0
- package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
- package/out/src/storage/adminServer/adminServer.js +47 -16
- package/out/src/storage/adminServer/adminServer.js.map +1 -1
- package/out/src/storage/adminServer/adminUi.js.map +1 -1
- package/out/src/storage/idbHelpers.d.ts +2 -0
- package/out/src/storage/idbHelpers.d.ts.map +1 -1
- package/out/src/storage/idbHelpers.js +19 -0
- package/out/src/storage/idbHelpers.js.map +1 -1
- package/out/src/storage/index.all.js.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.js +48 -71
- package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.js +29 -27
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
- package/out/src/storage/methods/actionBatch.d.ts +15 -0
- package/out/src/storage/methods/actionBatch.d.ts.map +1 -0
- package/out/src/storage/methods/actionBatch.js +737 -0
- package/out/src/storage/methods/actionBatch.js.map +1 -0
- package/out/src/storage/methods/actionBatchBlobs.d.ts +15 -0
- package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -0
- package/out/src/storage/methods/actionBatchBlobs.js +184 -0
- package/out/src/storage/methods/actionBatchBlobs.js.map +1 -0
- package/out/src/storage/methods/actionBatchValidation.d.ts +17 -0
- package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -0
- package/out/src/storage/methods/actionBatchValidation.js +416 -0
- package/out/src/storage/methods/actionBatchValidation.js.map +1 -0
- package/out/src/storage/methods/actionPlanning.d.ts +12 -0
- package/out/src/storage/methods/actionPlanning.d.ts.map +1 -0
- package/out/src/storage/methods/actionPlanning.js +48 -0
- package/out/src/storage/methods/actionPlanning.js.map +1 -0
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +0 -21
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +43 -51
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts +1 -1
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +66 -63
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts +2 -2
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +66 -38
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +48 -42
- package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
- package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
- package/out/src/storage/methods/getSyncChunk.js +8 -6
- package/out/src/storage/methods/getSyncChunk.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +145 -121
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/methods/listActionsIdb.js.map +1 -1
- package/out/src/storage/methods/listActionsKnex.js +1 -1
- package/out/src/storage/methods/listActionsKnex.js.map +1 -1
- package/out/src/storage/methods/listCertificates.d.ts +1 -1
- package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
- package/out/src/storage/methods/listCertificates.js +1 -1
- package/out/src/storage/methods/listCertificates.js.map +1 -1
- package/out/src/storage/methods/listOutputsIdb.d.ts +1 -1
- package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsIdb.js +133 -152
- package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.d.ts +1 -1
- package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.js +213 -254
- package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
- package/out/src/storage/methods/managedChange.d.ts +3 -3
- package/out/src/storage/methods/managedChange.d.ts.map +1 -1
- package/out/src/storage/methods/managedChange.js +1 -2
- package/out/src/storage/methods/managedChange.js.map +1 -1
- package/out/src/storage/methods/offsetKey.d.ts.map +1 -1
- package/out/src/storage/methods/offsetKey.js +0 -1
- package/out/src/storage/methods/offsetKey.js.map +1 -1
- package/out/src/storage/methods/processAction.d.ts +2 -0
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +8 -8
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/methods/purgeData.d.ts.map +1 -1
- package/out/src/storage/methods/purgeData.js +157 -179
- package/out/src/storage/methods/purgeData.js.map +1 -1
- package/out/src/storage/methods/purgeDataIdb.d.ts +1 -1
- package/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -1
- package/out/src/storage/methods/purgeDataIdb.js +1 -1
- package/out/src/storage/methods/purgeDataIdb.js.map +1 -1
- package/out/src/storage/methods/reviewStatus.js +6 -6
- package/out/src/storage/methods/reviewStatus.js.map +1 -1
- package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
- package/out/src/storage/methods/utils.Buffer.js.map +1 -1
- package/out/src/storage/methods/utils.js.map +1 -1
- package/out/src/storage/portable/index.js +2 -2
- package/out/src/storage/portable/index.js.map +1 -1
- package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
- package/out/src/storage/remoting/BinaryJson.js +84 -38
- package/out/src/storage/remoting/BinaryJson.js.map +1 -1
- package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -1
- package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
- package/out/src/storage/remoting/RateLimitPolicy.d.ts +10 -0
- package/out/src/storage/remoting/RateLimitPolicy.d.ts.map +1 -0
- package/out/src/storage/remoting/RateLimitPolicy.js +37 -0
- package/out/src/storage/remoting/RateLimitPolicy.js.map +1 -0
- package/out/src/storage/remoting/StorageClient.d.ts +2 -0
- package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +82 -50
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts +23 -4
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.js +97 -4
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
- package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageMobile.js +34 -22
- package/out/src/storage/remoting/StorageMobile.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts +62 -1
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +451 -172
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/remoting/edgePolicy.d.ts +57 -0
- package/out/src/storage/remoting/edgePolicy.d.ts.map +1 -0
- package/out/src/storage/remoting/edgePolicy.js +387 -0
- package/out/src/storage/remoting/edgePolicy.js.map +1 -0
- package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -1
- package/out/src/storage/remoting/entityValidationHelpers.js +22 -5
- package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +56 -0
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/schema/StorageIdbSchema.d.ts +24 -0
- package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificate.js.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -1
- package/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityCommission.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +3 -0
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +46 -36
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +2 -2
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js +12 -10
- package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +25 -34
- package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -1
- package/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityUser.js.map +1 -1
- package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
- package/out/src/storage/schema/entities/MergeEntity.js +9 -14
- package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
- package/out/src/storage/schema/tables/TableActionBatch.d.ts +26 -0
- package/out/src/storage/schema/tables/TableActionBatch.d.ts.map +1 -0
- package/out/src/storage/schema/tables/TableActionBatch.js +3 -0
- package/out/src/storage/schema/tables/TableActionBatch.js.map +1 -0
- package/out/src/storage/schema/tables/TableAuthSession.js.map +1 -1
- package/out/src/storage/schema/tables/index.d.ts +1 -0
- package/out/src/storage/schema/tables/index.d.ts.map +1 -1
- package/out/src/storage/schema/tables/index.js +1 -0
- package/out/src/storage/schema/tables/index.js.map +1 -1
- package/out/src/storage/storageProviderHelpers.js.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.d.ts +3 -0
- package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.js +30 -16
- package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
- package/out/src/utility/Format.d.ts.map +1 -1
- package/out/src/utility/Format.js +2 -2
- package/out/src/utility/Format.js.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
- package/out/src/utility/actionBatchDigest.d.ts +9 -0
- package/out/src/utility/actionBatchDigest.d.ts.map +1 -0
- package/out/src/utility/actionBatchDigest.js +86 -0
- package/out/src/utility/actionBatchDigest.js.map +1 -0
- package/out/src/utility/actionBatchPack.d.ts +16 -0
- package/out/src/utility/actionBatchPack.d.ts.map +1 -0
- package/out/src/utility/actionBatchPack.js +220 -0
- package/out/src/utility/actionBatchPack.js.map +1 -0
- package/out/src/utility/aggregateResults.d.ts.map +1 -1
- package/out/src/utility/aggregateResults.js.map +1 -1
- package/out/src/utility/beefForTxids.d.ts +9 -0
- package/out/src/utility/beefForTxids.d.ts.map +1 -0
- package/out/src/utility/beefForTxids.js +35 -0
- package/out/src/utility/beefForTxids.js.map +1 -0
- package/out/src/utility/brc114ActionTimeLabels.d.ts.map +1 -1
- package/out/src/utility/brc114ActionTimeLabels.js +26 -30
- package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
- package/out/src/utility/formatUnknown.d.ts +6 -0
- package/out/src/utility/formatUnknown.d.ts.map +1 -0
- package/out/src/utility/formatUnknown.js +39 -0
- package/out/src/utility/formatUnknown.js.map +1 -0
- package/out/src/utility/hashWasm.d.ts +5 -0
- package/out/src/utility/hashWasm.d.ts.map +1 -0
- package/out/src/utility/hashWasm.js +15 -0
- package/out/src/utility/hashWasm.js.map +1 -0
- package/out/src/utility/identityUtils.d.ts.map +1 -1
- package/out/src/utility/identityUtils.js +2 -4
- package/out/src/utility/identityUtils.js.map +1 -1
- package/out/src/utility/parseTxScriptOffsets.d.ts +1 -1
- package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
- package/out/src/utility/parseTxScriptOffsets.js +1 -1
- package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
- package/out/src/utility/stampLog.d.ts.map +1 -1
- package/out/src/utility/stampLog.js +49 -42
- package/out/src/utility/stampLog.js.map +1 -1
- package/out/src/utility/traceContext.d.ts +13 -0
- package/out/src/utility/traceContext.d.ts.map +1 -0
- package/out/src/utility/traceContext.js +34 -0
- package/out/src/utility/traceContext.js.map +1 -0
- package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
- package/out/src/utility/tscProofToMerklePath.js +1 -1
- package/out/src/utility/tscProofToMerklePath.js.map +1 -1
- package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
- package/out/src/utility/utilityHelpers.d.ts +2 -2
- package/out/src/utility/utilityHelpers.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.js +8 -4
- 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 +1 -2
- package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
- package/out/src/wab-client/WABClient.d.ts +36 -90
- package/out/src/wab-client/WABClient.d.ts.map +1 -1
- package/out/src/wab-client/WABClient.js +103 -151
- package/out/src/wab-client/WABClient.js.map +1 -1
- package/out/src/wab-client/WABTransport.d.ts +81 -0
- package/out/src/wab-client/WABTransport.d.ts.map +1 -0
- package/out/src/wab-client/WABTransport.js +420 -0
- package/out/src/wab-client/WABTransport.js.map +1 -0
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +10 -10
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +16 -21
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +2 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +14 -0
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
- package/package.json +66 -30
- package/license.md +0 -28
package/out/src/Wallet.js
CHANGED
|
@@ -18,6 +18,7 @@ const WERR_errors_1 = require("./sdk/WERR_errors");
|
|
|
18
18
|
const WalletError_1 = require("./sdk/WalletError");
|
|
19
19
|
const utilityHelpers_noBuffer_1 = require("./utility/utilityHelpers.noBuffer");
|
|
20
20
|
const resultBeef_1 = require("./signer/methods/resultBeef");
|
|
21
|
+
const ActionBatchWorkspace_1 = require("./signer/actionBatch/ActionBatchWorkspace");
|
|
21
22
|
/**
|
|
22
23
|
* Build a {@link DiscoverCertificatesResult} from contact records so {@link Wallet.discoverByIdentityKey}
|
|
23
24
|
* and {@link Wallet.discoverByAttributes} can short-circuit on a local contacts hit. The synthetic
|
|
@@ -25,7 +26,7 @@ const resultBeef_1 = require("./signer/methods/resultBeef");
|
|
|
25
26
|
* style filtering treats contacts as authoritative.
|
|
26
27
|
*/
|
|
27
28
|
function synthesizeContactResult(contacts) {
|
|
28
|
-
const certificates = contacts.map(
|
|
29
|
+
const certificates = contacts.map(c => ({
|
|
29
30
|
type: c.type ?? 'contact',
|
|
30
31
|
subject: c.identityKey,
|
|
31
32
|
serialNumber: '',
|
|
@@ -49,7 +50,7 @@ function synthesizeContactResult(contacts) {
|
|
|
49
50
|
};
|
|
50
51
|
}
|
|
51
52
|
function isWalletSigner(args) {
|
|
52
|
-
return
|
|
53
|
+
return 'isWalletSigner' in args && args.isWalletSigner;
|
|
53
54
|
}
|
|
54
55
|
class Wallet {
|
|
55
56
|
chain;
|
|
@@ -92,6 +93,9 @@ class Wallet {
|
|
|
92
93
|
privilegedKeyManager;
|
|
93
94
|
makeLogger;
|
|
94
95
|
pendingSignActions;
|
|
96
|
+
actionBatch;
|
|
97
|
+
scriptVerifier;
|
|
98
|
+
telemetry;
|
|
95
99
|
/**
|
|
96
100
|
* For repeatability testing, set to an array of random numbers from [0..1).
|
|
97
101
|
*/
|
|
@@ -111,12 +115,14 @@ class Wallet {
|
|
|
111
115
|
if (args.storage._authId.identityKey != args.keyDeriver.identityKey) {
|
|
112
116
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('storage', `authenticated as the same identityKey (${args.storage._authId.identityKey}) as the keyDeriver (${args.keyDeriver.identityKey}).`);
|
|
113
117
|
}
|
|
118
|
+
this.telemetry = new sdk_1.Telemetry(args.telemetry);
|
|
114
119
|
this.settingsManager = args.settingsManager || new WalletSettingsManager_1.WalletSettingsManager(this);
|
|
115
120
|
this.chain = args.chain;
|
|
116
121
|
this.lookupResolver =
|
|
117
122
|
args.lookupResolver ||
|
|
118
123
|
new sdk_1.LookupResolver({
|
|
119
|
-
networkPreset: (0, utilityHelpers_1.toLookupNetworkPreset)(this.chain)
|
|
124
|
+
networkPreset: (0, utilityHelpers_1.toLookupNetworkPreset)(this.chain),
|
|
125
|
+
telemetry: args.telemetry
|
|
120
126
|
});
|
|
121
127
|
this.keyDeriver = args.keyDeriver;
|
|
122
128
|
this.storage = args.storage;
|
|
@@ -128,6 +134,8 @@ class Wallet {
|
|
|
128
134
|
this.contactSource = args.contactSource;
|
|
129
135
|
this.identityKey = this.keyDeriver.identityKey;
|
|
130
136
|
this.pendingSignActions = {};
|
|
137
|
+
this.actionBatch = new ActionBatchWorkspace_1.ActionBatchController(this, args.actionBatchMode ?? 'auto');
|
|
138
|
+
this.scriptVerifier = args.scriptVerifier;
|
|
131
139
|
this.userParty = `user ${this.getClientChangeKeyPair().publicKey}`;
|
|
132
140
|
this.beef = new sdk_1.BeefParty([this.userParty]);
|
|
133
141
|
this.trustSelf = 'known';
|
|
@@ -136,6 +144,7 @@ class Wallet {
|
|
|
136
144
|
}
|
|
137
145
|
}
|
|
138
146
|
async destroy() {
|
|
147
|
+
await this.actionBatch.abort();
|
|
139
148
|
await this.storage.destroy();
|
|
140
149
|
if (this.privilegedKeyManager != null)
|
|
141
150
|
this.privilegedKeyManager.destroyKey();
|
|
@@ -150,7 +159,7 @@ class Wallet {
|
|
|
150
159
|
async getIdentityKey() {
|
|
151
160
|
return (await this.getPublicKey({ identityKey: true })).publicKey;
|
|
152
161
|
}
|
|
153
|
-
async getPublicKey(args,
|
|
162
|
+
async getPublicKey(args, _originator) {
|
|
154
163
|
if (args.privileged) {
|
|
155
164
|
if (this.privilegedKeyManager == null) {
|
|
156
165
|
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.');
|
|
@@ -159,7 +168,7 @@ class Wallet {
|
|
|
159
168
|
}
|
|
160
169
|
return await this.proto.getPublicKey(args);
|
|
161
170
|
}
|
|
162
|
-
async revealCounterpartyKeyLinkage(args,
|
|
171
|
+
async revealCounterpartyKeyLinkage(args, _originator) {
|
|
163
172
|
if (args.privileged) {
|
|
164
173
|
if (this.privilegedKeyManager == null) {
|
|
165
174
|
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.');
|
|
@@ -168,7 +177,7 @@ class Wallet {
|
|
|
168
177
|
}
|
|
169
178
|
return await this.proto.revealCounterpartyKeyLinkage(args);
|
|
170
179
|
}
|
|
171
|
-
async revealSpecificKeyLinkage(args,
|
|
180
|
+
async revealSpecificKeyLinkage(args, _originator) {
|
|
172
181
|
if (args.privileged) {
|
|
173
182
|
if (this.privilegedKeyManager == null) {
|
|
174
183
|
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.');
|
|
@@ -177,7 +186,7 @@ class Wallet {
|
|
|
177
186
|
}
|
|
178
187
|
return await this.proto.revealSpecificKeyLinkage(args);
|
|
179
188
|
}
|
|
180
|
-
async encrypt(args,
|
|
189
|
+
async encrypt(args, _originator) {
|
|
181
190
|
if (args.privileged) {
|
|
182
191
|
if (this.privilegedKeyManager == null) {
|
|
183
192
|
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.');
|
|
@@ -186,7 +195,7 @@ class Wallet {
|
|
|
186
195
|
}
|
|
187
196
|
return await this.proto.encrypt(args);
|
|
188
197
|
}
|
|
189
|
-
async decrypt(args,
|
|
198
|
+
async decrypt(args, _originator) {
|
|
190
199
|
if (args.privileged) {
|
|
191
200
|
if (this.privilegedKeyManager == null) {
|
|
192
201
|
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.');
|
|
@@ -195,7 +204,7 @@ class Wallet {
|
|
|
195
204
|
}
|
|
196
205
|
return await this.proto.decrypt(args);
|
|
197
206
|
}
|
|
198
|
-
async createHmac(args,
|
|
207
|
+
async createHmac(args, _originator) {
|
|
199
208
|
if (args.privileged) {
|
|
200
209
|
if (this.privilegedKeyManager == null) {
|
|
201
210
|
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.');
|
|
@@ -204,7 +213,7 @@ class Wallet {
|
|
|
204
213
|
}
|
|
205
214
|
return await this.proto.createHmac(args);
|
|
206
215
|
}
|
|
207
|
-
async verifyHmac(args,
|
|
216
|
+
async verifyHmac(args, _originator) {
|
|
208
217
|
if (args.privileged) {
|
|
209
218
|
if (this.privilegedKeyManager == null) {
|
|
210
219
|
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.');
|
|
@@ -213,7 +222,7 @@ class Wallet {
|
|
|
213
222
|
}
|
|
214
223
|
return await this.proto.verifyHmac(args);
|
|
215
224
|
}
|
|
216
|
-
async createSignature(args,
|
|
225
|
+
async createSignature(args, _originator) {
|
|
217
226
|
if (args.privileged) {
|
|
218
227
|
if (this.privilegedKeyManager == null) {
|
|
219
228
|
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.');
|
|
@@ -222,7 +231,7 @@ class Wallet {
|
|
|
222
231
|
}
|
|
223
232
|
return await this.proto.createSignature(args);
|
|
224
233
|
}
|
|
225
|
-
async verifySignature(args,
|
|
234
|
+
async verifySignature(args, _originator) {
|
|
226
235
|
if (args.privileged) {
|
|
227
236
|
if (this.privilegedKeyManager == null) {
|
|
228
237
|
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.');
|
|
@@ -259,9 +268,32 @@ class Wallet {
|
|
|
259
268
|
};
|
|
260
269
|
}
|
|
261
270
|
validateAuthAndArgs(args, validate, logger) {
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
271
|
+
if (!this.telemetry.enabled || typeof args !== 'object' || args == null) {
|
|
272
|
+
const vargs = validate(args, logger);
|
|
273
|
+
const auth = { identityKey: this.identityKey };
|
|
274
|
+
return { vargs, auth };
|
|
275
|
+
}
|
|
276
|
+
const span = this.telemetry.startSpan('wallet.validate_args', {
|
|
277
|
+
component: 'wallet-toolbox',
|
|
278
|
+
carrier: args
|
|
279
|
+
});
|
|
280
|
+
try {
|
|
281
|
+
const vargs = validate(args, logger);
|
|
282
|
+
if (typeof vargs === 'object' && vargs != null) {
|
|
283
|
+
this.telemetry.bindContext(vargs, span.context);
|
|
284
|
+
}
|
|
285
|
+
const auth = { identityKey: this.identityKey };
|
|
286
|
+
span.end({ attributes: { 'validation.result': 'ok' } });
|
|
287
|
+
return { vargs, auth };
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
span.end({
|
|
291
|
+
status: 'error',
|
|
292
|
+
error,
|
|
293
|
+
attributes: { 'validation.result': 'rejected' }
|
|
294
|
+
});
|
|
295
|
+
throw error;
|
|
296
|
+
}
|
|
265
297
|
}
|
|
266
298
|
/// ///////////////
|
|
267
299
|
// List Methods
|
|
@@ -269,7 +301,8 @@ class Wallet {
|
|
|
269
301
|
async listActions(args, originator) {
|
|
270
302
|
sdk_1.Validation.validateOriginator(originator);
|
|
271
303
|
const { vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateListActionsArgs);
|
|
272
|
-
const
|
|
304
|
+
const storageArgs = this.actionBatch.hasWorkspace ? { ...vargs, limit: 10000, offset: 0 } : vargs;
|
|
305
|
+
const r = this.actionBatch.overlayListActions(await this.storage.listActions(storageArgs), vargs);
|
|
273
306
|
// Implement security policy to block customInstructions from output results.
|
|
274
307
|
for (const action of r.actions) {
|
|
275
308
|
if (action.outputs != null) {
|
|
@@ -289,7 +322,10 @@ class Wallet {
|
|
|
289
322
|
if (this.autoKnownTxids && !vargs.knownTxids) {
|
|
290
323
|
vargs.knownTxids = this.getKnownTxids();
|
|
291
324
|
}
|
|
292
|
-
const
|
|
325
|
+
const storageArgs = this.actionBatch.hasWorkspace && vargs.basket !== types_1.specOpWalletBalance && !vargs.tags.includes(types_1.specOpWalletBalance)
|
|
326
|
+
? { ...vargs, limit: 10000, offset: 0 }
|
|
327
|
+
: vargs;
|
|
328
|
+
const r = this.actionBatch.overlayListOutputs(await this.storage.listOutputs(storageArgs), vargs);
|
|
293
329
|
if (r.BEEF != null) {
|
|
294
330
|
this.beef.mergeBeefFromParty(this.storageParty, (0, utilityHelpers_noBuffer_1.asArray)(r.BEEF));
|
|
295
331
|
r.BEEF = this.verifyReturnedTxidOnlyBEEF(r.BEEF);
|
|
@@ -305,110 +341,104 @@ class Wallet {
|
|
|
305
341
|
/// ///////////////
|
|
306
342
|
// Certificates
|
|
307
343
|
/// ///////////////
|
|
344
|
+
async acquireDirectCertificateProtocol(args) {
|
|
345
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateAcquireDirectCertificateArgs);
|
|
346
|
+
vargs.subject = (await this.getPublicKey({
|
|
347
|
+
identityKey: true,
|
|
348
|
+
privileged: args.privileged,
|
|
349
|
+
privilegedReason: args.privilegedReason
|
|
350
|
+
})).publicKey;
|
|
351
|
+
try {
|
|
352
|
+
const certificate = new sdk_1.MasterCertificate(vargs.type, vargs.serialNumber, vargs.subject, vargs.certifier, vargs.revocationOutpoint, vargs.fields, vargs.keyringForSubject, vargs.signature);
|
|
353
|
+
await certificate.verify();
|
|
354
|
+
await sdk_1.MasterCertificate.decryptFields(this, vargs.keyringForSubject, vargs.fields, vargs.certifier, vargs.privileged, vargs.privilegedReason);
|
|
355
|
+
}
|
|
356
|
+
catch (error_) {
|
|
357
|
+
const error = WalletError_1.WalletError.fromUnknown(error_);
|
|
358
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args', `valid encrypted and signed certificate and keyring from revealer. ${error.name}: ${error.message}`);
|
|
359
|
+
}
|
|
360
|
+
return await (0, acquireDirectCertificate_1.acquireDirectCertificate)(this, auth, vargs);
|
|
361
|
+
}
|
|
362
|
+
validateIssuedCertificateFields(certificate, expectedFields) {
|
|
363
|
+
if (Object.keys(certificate.fields).length !== Object.keys(expectedFields).length) {
|
|
364
|
+
throw new Error('Fields mismatch! Objects have different numbers of keys.');
|
|
365
|
+
}
|
|
366
|
+
for (const field of Object.keys(expectedFields)) {
|
|
367
|
+
if (!(field in certificate.fields)) {
|
|
368
|
+
throw new Error(`Missing field: ${field} in certificate.fields`);
|
|
369
|
+
}
|
|
370
|
+
if (certificate.fields[field] !== expectedFields[field]) {
|
|
371
|
+
throw new Error(`Invalid field! Expected: ${expectedFields[field]}, Received: ${certificate.fields[field]}`);
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
validateIssuedCertificate(certificate, vargs, expectedFields) {
|
|
376
|
+
if (certificate.type !== vargs.type) {
|
|
377
|
+
throw new Error(`Invalid certificate type! Expected: ${vargs.type}, Received: ${certificate.type}`);
|
|
378
|
+
}
|
|
379
|
+
if (certificate.subject !== this.identityKey) {
|
|
380
|
+
throw new Error(`Invalid certificate subject! Expected: ${this.identityKey}, Received: ${certificate.subject}`);
|
|
381
|
+
}
|
|
382
|
+
if (certificate.certifier !== vargs.certifier) {
|
|
383
|
+
throw new Error(`Invalid certifier! Expected: ${vargs.certifier}, Received: ${certificate.certifier}`);
|
|
384
|
+
}
|
|
385
|
+
if (!certificate.revocationOutpoint) {
|
|
386
|
+
throw new Error('Invalid revocationOutpoint!');
|
|
387
|
+
}
|
|
388
|
+
this.validateIssuedCertificateFields(certificate, expectedFields);
|
|
389
|
+
}
|
|
390
|
+
async acquireIssuedCertificateProtocol(args) {
|
|
391
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateAcquireIssuanceCertificateArgs);
|
|
392
|
+
const clientNonce = await (0, sdk_1.createNonce)(this, vargs.certifier);
|
|
393
|
+
const authClient = new sdk_1.AuthFetch(this);
|
|
394
|
+
const { certificateFields, masterKeyring } = await sdk_1.MasterCertificate.createCertificateFields(this, vargs.certifier, vargs.fields);
|
|
395
|
+
const response = await authClient.fetch(`${vargs.certifierUrl}/signCertificate`, {
|
|
396
|
+
method: 'POST',
|
|
397
|
+
headers: { 'Content-Type': 'application/json' },
|
|
398
|
+
body: JSON.stringify({
|
|
399
|
+
clientNonce,
|
|
400
|
+
type: vargs.type,
|
|
401
|
+
fields: certificateFields,
|
|
402
|
+
masterKeyring
|
|
403
|
+
})
|
|
404
|
+
});
|
|
405
|
+
const responseIdentity = response.headers.get('x-bsv-auth-identity-key');
|
|
406
|
+
if (responseIdentity !== vargs.certifier) {
|
|
407
|
+
throw new Error(`Invalid certifier! Expected: ${vargs.certifier}, Received: ${responseIdentity}`);
|
|
408
|
+
}
|
|
409
|
+
const { certificate, serverNonce } = await response.json();
|
|
410
|
+
if (!certificate)
|
|
411
|
+
throw new Error('No certificate received from certifier!');
|
|
412
|
+
if (!serverNonce)
|
|
413
|
+
throw new Error('No serverNonce received from certifier!');
|
|
414
|
+
const signedCertificate = new sdk_1.Certificate(certificate.type, certificate.serialNumber, certificate.subject, certificate.certifier, certificate.revocationOutpoint, certificate.fields, certificate.signature);
|
|
415
|
+
await (0, sdk_1.verifyNonce)(serverNonce, this, vargs.certifier);
|
|
416
|
+
const { valid } = await this.verifyHmac({
|
|
417
|
+
hmac: sdk_1.Utils.toArray(signedCertificate.serialNumber, 'base64'),
|
|
418
|
+
data: sdk_1.Utils.toArray(clientNonce + serverNonce, 'base64'),
|
|
419
|
+
protocolID: [2, 'certificate issuance'],
|
|
420
|
+
keyID: serverNonce + clientNonce,
|
|
421
|
+
counterparty: vargs.certifier
|
|
422
|
+
});
|
|
423
|
+
if (!valid)
|
|
424
|
+
throw new Error('Invalid serialNumber');
|
|
425
|
+
this.validateIssuedCertificate(signedCertificate, vargs, certificateFields);
|
|
426
|
+
await signedCertificate.verify();
|
|
427
|
+
await sdk_1.MasterCertificate.decryptFields(this, masterKeyring, certificate.fields, vargs.certifier);
|
|
428
|
+
return await (0, acquireDirectCertificate_1.acquireDirectCertificate)(this, auth, {
|
|
429
|
+
...certificate,
|
|
430
|
+
keyringRevealer: 'certifier',
|
|
431
|
+
keyringForSubject: masterKeyring,
|
|
432
|
+
privileged: vargs.privileged
|
|
433
|
+
});
|
|
434
|
+
}
|
|
308
435
|
async acquireCertificate(args, originator) {
|
|
309
436
|
sdk_1.Validation.validateOriginator(originator);
|
|
310
437
|
if (args.acquisitionProtocol === 'direct') {
|
|
311
|
-
|
|
312
|
-
vargs.subject = (await this.getPublicKey({
|
|
313
|
-
identityKey: true,
|
|
314
|
-
privileged: args.privileged,
|
|
315
|
-
privilegedReason: args.privilegedReason
|
|
316
|
-
})).publicKey;
|
|
317
|
-
try {
|
|
318
|
-
// Confirm that the information received adds up to a usable certificate...
|
|
319
|
-
// TODO: Clean up MasterCertificate to support decrypt on instance
|
|
320
|
-
const cert = new sdk_1.MasterCertificate(vargs.type, vargs.serialNumber, vargs.subject, vargs.certifier, vargs.revocationOutpoint, vargs.fields, vargs.keyringForSubject, vargs.signature);
|
|
321
|
-
await cert.verify();
|
|
322
|
-
// Verify certificate details
|
|
323
|
-
await sdk_1.MasterCertificate.decryptFields(this, vargs.keyringForSubject, vargs.fields, vargs.certifier, vargs.privileged, vargs.privilegedReason);
|
|
324
|
-
}
|
|
325
|
-
catch (error_) {
|
|
326
|
-
const e = WalletError_1.WalletError.fromUnknown(error_);
|
|
327
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args', `valid encrypted and signed certificate and keyring from revealer. ${e.name}: ${e.message}`);
|
|
328
|
-
}
|
|
329
|
-
const r = await (0, acquireDirectCertificate_1.acquireDirectCertificate)(this, auth, vargs);
|
|
330
|
-
return r;
|
|
438
|
+
return await this.acquireDirectCertificateProtocol(args);
|
|
331
439
|
}
|
|
332
440
|
if (args.acquisitionProtocol === 'issuance') {
|
|
333
|
-
|
|
334
|
-
// Create a random nonce that the server can verify
|
|
335
|
-
const clientNonce = await (0, sdk_1.createNonce)(this, vargs.certifier);
|
|
336
|
-
// TODO: Consider adding support to request certificates from a certifier before acquiring a certificate.
|
|
337
|
-
const authClient = new sdk_1.AuthFetch(this);
|
|
338
|
-
// Create a certificate master keyring
|
|
339
|
-
// The certifier is able to decrypt these fields as they are the counterparty
|
|
340
|
-
const { certificateFields, masterKeyring } = await sdk_1.MasterCertificate.createCertificateFields(this, vargs.certifier, vargs.fields);
|
|
341
|
-
// Make a Certificate Signing Request (CSR) to the certifier
|
|
342
|
-
const response = await authClient.fetch(`${vargs.certifierUrl}/signCertificate`, {
|
|
343
|
-
method: 'POST',
|
|
344
|
-
headers: {
|
|
345
|
-
'Content-Type': 'application/json'
|
|
346
|
-
},
|
|
347
|
-
body: JSON.stringify({
|
|
348
|
-
clientNonce,
|
|
349
|
-
type: vargs.type,
|
|
350
|
-
fields: certificateFields,
|
|
351
|
-
masterKeyring
|
|
352
|
-
})
|
|
353
|
-
});
|
|
354
|
-
if (response.headers.get('x-bsv-auth-identity-key') !== vargs.certifier) {
|
|
355
|
-
throw new Error(`Invalid certifier! Expected: ${vargs.certifier}, Received: ${response.headers.get('x-bsv-auth-identity-key')}`);
|
|
356
|
-
}
|
|
357
|
-
const { certificate, serverNonce } = await response.json();
|
|
358
|
-
// Validate the server response
|
|
359
|
-
if (!certificate) {
|
|
360
|
-
throw new Error('No certificate received from certifier!');
|
|
361
|
-
}
|
|
362
|
-
if (!serverNonce) {
|
|
363
|
-
throw new Error('No serverNonce received from certifier!');
|
|
364
|
-
}
|
|
365
|
-
const signedCertificate = new sdk_1.Certificate(certificate.type, certificate.serialNumber, certificate.subject, certificate.certifier, certificate.revocationOutpoint, certificate.fields, certificate.signature);
|
|
366
|
-
// Validate server nonce
|
|
367
|
-
await (0, sdk_1.verifyNonce)(serverNonce, this, vargs.certifier);
|
|
368
|
-
// Verify the server included our nonce
|
|
369
|
-
const { valid } = await this.verifyHmac({
|
|
370
|
-
hmac: sdk_1.Utils.toArray(signedCertificate.serialNumber, 'base64'),
|
|
371
|
-
data: sdk_1.Utils.toArray(clientNonce + serverNonce, 'base64'),
|
|
372
|
-
protocolID: [2, 'certificate issuance'],
|
|
373
|
-
keyID: serverNonce + clientNonce,
|
|
374
|
-
counterparty: vargs.certifier
|
|
375
|
-
});
|
|
376
|
-
if (!valid)
|
|
377
|
-
throw new Error('Invalid serialNumber');
|
|
378
|
-
// Validate the certificate received
|
|
379
|
-
if (signedCertificate.type !== vargs.type) {
|
|
380
|
-
throw new Error(`Invalid certificate type! Expected: ${vargs.type}, Received: ${signedCertificate.type}`);
|
|
381
|
-
}
|
|
382
|
-
if (signedCertificate.subject !== this.identityKey) {
|
|
383
|
-
throw new Error(`Invalid certificate subject! Expected: ${this.identityKey}, Received: ${signedCertificate.subject}`);
|
|
384
|
-
}
|
|
385
|
-
if (signedCertificate.certifier !== vargs.certifier) {
|
|
386
|
-
throw new Error(`Invalid certifier! Expected: ${vargs.certifier}, Received: ${signedCertificate.certifier}`);
|
|
387
|
-
}
|
|
388
|
-
if (!signedCertificate.revocationOutpoint) {
|
|
389
|
-
throw new Error('Invalid revocationOutpoint!');
|
|
390
|
-
}
|
|
391
|
-
if (Object.keys(signedCertificate.fields).length !== Object.keys(certificateFields).length) {
|
|
392
|
-
throw new Error('Fields mismatch! Objects have different numbers of keys.');
|
|
393
|
-
}
|
|
394
|
-
for (const field of Object.keys(certificateFields)) {
|
|
395
|
-
if (!(field in signedCertificate.fields)) {
|
|
396
|
-
throw new Error(`Missing field: ${field} in certificate.fields`);
|
|
397
|
-
}
|
|
398
|
-
if (signedCertificate.fields[field] !== certificateFields[field]) {
|
|
399
|
-
throw new Error(`Invalid field! Expected: ${certificateFields[field]}, Received: ${signedCertificate.fields[field]}`);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
await signedCertificate.verify();
|
|
403
|
-
// Test decryption works
|
|
404
|
-
await sdk_1.MasterCertificate.decryptFields(this, masterKeyring, certificate.fields, vargs.certifier);
|
|
405
|
-
// Store the newly issued certificate
|
|
406
|
-
return await (0, acquireDirectCertificate_1.acquireDirectCertificate)(this, auth, {
|
|
407
|
-
...certificate,
|
|
408
|
-
keyringRevealer: 'certifier',
|
|
409
|
-
keyringForSubject: masterKeyring,
|
|
410
|
-
privileged: vargs.privileged
|
|
411
|
-
});
|
|
441
|
+
return await this.acquireIssuedCertificateProtocol(args);
|
|
412
442
|
}
|
|
413
443
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('acquisitionProtocol', `valid.${args.acquisitionProtocol} is unrecognized.`);
|
|
414
444
|
}
|
|
@@ -447,7 +477,7 @@ class Wallet {
|
|
|
447
477
|
}
|
|
448
478
|
}
|
|
449
479
|
// --- trustSettings cache (2 minutes) ---
|
|
450
|
-
let trustSettings =
|
|
480
|
+
let trustSettings = this._trustSettingsCache != null && this._trustSettingsCache.expiresAt > now
|
|
451
481
|
? this._trustSettingsCache.trustSettings
|
|
452
482
|
: undefined;
|
|
453
483
|
if (trustSettings == null) {
|
|
@@ -463,7 +493,7 @@ class Wallet {
|
|
|
463
493
|
certifiers
|
|
464
494
|
});
|
|
465
495
|
let cached = forceRefresh ? undefined : this._overlayCache.get(cacheKey);
|
|
466
|
-
if (
|
|
496
|
+
if (cached == null || cached.expiresAt <= now) {
|
|
467
497
|
const value = await (0, identityUtils_1.queryOverlay)({ identityKey: args.identityKey, certifiers }, this.lookupResolver);
|
|
468
498
|
cached = { value, expiresAt: now + TTL_MS };
|
|
469
499
|
this._overlayCache.set(cacheKey, cached);
|
|
@@ -492,7 +522,7 @@ class Wallet {
|
|
|
492
522
|
}
|
|
493
523
|
}
|
|
494
524
|
// --- trustSettings cache (2 minutes) ---
|
|
495
|
-
let trustSettings =
|
|
525
|
+
let trustSettings = this._trustSettingsCache != null && this._trustSettingsCache.expiresAt > now
|
|
496
526
|
? this._trustSettingsCache.trustSettings
|
|
497
527
|
: undefined;
|
|
498
528
|
if (trustSettings == null) {
|
|
@@ -515,7 +545,7 @@ class Wallet {
|
|
|
515
545
|
certifiers
|
|
516
546
|
});
|
|
517
547
|
let cached = forceRefresh ? undefined : this._overlayCache.get(cacheKey);
|
|
518
|
-
if (
|
|
548
|
+
if (cached == null || cached.expiresAt <= now) {
|
|
519
549
|
const value = await (0, identityUtils_1.queryOverlay)({ attributes: args.attributes, certifiers }, this.lookupResolver);
|
|
520
550
|
cached = { value, expiresAt: now + TTL_MS };
|
|
521
551
|
this._overlayCache.set(cacheKey, cached);
|
|
@@ -588,13 +618,13 @@ class Wallet {
|
|
|
588
618
|
sdk_1.Validation.validateOriginator(originator);
|
|
589
619
|
args.options ??= {};
|
|
590
620
|
args.options.trustSelf ||= this.trustSelf;
|
|
591
|
-
if (this.autoKnownTxids &&
|
|
621
|
+
if (this.autoKnownTxids && args.options.knownTxids == null) {
|
|
592
622
|
args.options.knownTxids = this.getKnownTxids(args.options.knownTxids);
|
|
593
623
|
}
|
|
594
624
|
const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateCreateActionArgs, logger);
|
|
595
625
|
logger?.log('validated args');
|
|
596
626
|
vargs.includeAllSourceTransactions = this.includeAllSourceTransactions;
|
|
597
|
-
if (
|
|
627
|
+
if (this.randomVals != null && this.randomVals.length > 1) {
|
|
598
628
|
vargs.randomVals = [...this.randomVals];
|
|
599
629
|
}
|
|
600
630
|
const r = await (0, createAction_1.createAction)(this, auth, vargs);
|
|
@@ -619,16 +649,17 @@ class Wallet {
|
|
|
619
649
|
async signAction(args, originator) {
|
|
620
650
|
sdk_1.Validation.validateOriginator(originator);
|
|
621
651
|
const { auth, vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateSignActionArgs);
|
|
622
|
-
// createAction options are merged with undefined signAction options before validation...
|
|
623
|
-
const r = await (0, signAction_1.signAction)(this, auth, args);
|
|
624
|
-
if (!vargs.isDelayed)
|
|
625
|
-
throwIfAnyUnsuccessfulSignActions(r);
|
|
626
652
|
const prior = this.pendingSignActions[args.reference];
|
|
627
653
|
if (!prior) {
|
|
628
654
|
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED('recovery of out-of-session signAction reference data is not yet implemented.');
|
|
629
655
|
}
|
|
656
|
+
// createAction options are merged with undefined signAction options before validation...
|
|
657
|
+
const r = await (0, signAction_1.signAction)(this, auth, args);
|
|
658
|
+
if (!vargs.isDelayed)
|
|
659
|
+
throwIfAnyUnsuccessfulSignActions(r);
|
|
630
660
|
if (r.tx != null)
|
|
631
661
|
r.tx = this.verifyReturnedTxidOnlyAtomicBEEF(r.tx, prior.args.options?.knownTxids, (0, resultBeef_1.getResultBeef)(r));
|
|
662
|
+
delete this.pendingSignActions[args.reference];
|
|
632
663
|
return r;
|
|
633
664
|
}
|
|
634
665
|
async internalizeAction(args, originator) {
|
|
@@ -643,6 +674,9 @@ class Wallet {
|
|
|
643
674
|
async abortAction(args, originator) {
|
|
644
675
|
sdk_1.Validation.validateOriginator(originator);
|
|
645
676
|
this.validateAuthAndArgs(args, sdk_1.Validation.validateAbortActionArgs);
|
|
677
|
+
if (this.actionBatch.ownsReference(args.reference)) {
|
|
678
|
+
return { aborted: await this.actionBatch.abortAction(args.reference) };
|
|
679
|
+
}
|
|
646
680
|
const r = await this.storage.abortAction(args);
|
|
647
681
|
return r;
|
|
648
682
|
}
|
|
@@ -827,10 +861,11 @@ class Wallet {
|
|
|
827
861
|
async listNoSendActions(args, abort = false) {
|
|
828
862
|
const { vargs } = this.validateAuthAndArgs(args, sdk_1.Validation.validateListActionsArgs);
|
|
829
863
|
vargs.labels.push(types_1.specOpNoSendActions);
|
|
830
|
-
if (abort)
|
|
864
|
+
if (abort) {
|
|
865
|
+
await this.actionBatch.abort();
|
|
831
866
|
vargs.labels.push('abort');
|
|
832
|
-
|
|
833
|
-
return
|
|
867
|
+
}
|
|
868
|
+
return await this.listActions(vargs);
|
|
834
869
|
}
|
|
835
870
|
/**
|
|
836
871
|
* Uses `listActions` special operation to return only actions with status 'failed'.
|
|
@@ -851,21 +886,21 @@ exports.Wallet = Wallet;
|
|
|
851
886
|
function throwIfAnyUnsuccessfulCreateActions(r) {
|
|
852
887
|
const ndrs = r.notDelayedResults;
|
|
853
888
|
const swrs = r.sendWithResults;
|
|
854
|
-
if (
|
|
889
|
+
if (ndrs == null || swrs == null || swrs.every(r => r.status === 'unproven'))
|
|
855
890
|
return;
|
|
856
891
|
throw new WERR_errors_1.WERR_REVIEW_ACTIONS(ndrs, swrs, r.txid, r.tx, r.noSendChange);
|
|
857
892
|
}
|
|
858
893
|
function throwIfAnyUnsuccessfulSignActions(r) {
|
|
859
894
|
const ndrs = r.notDelayedResults;
|
|
860
895
|
const swrs = r.sendWithResults;
|
|
861
|
-
if (
|
|
896
|
+
if (ndrs == null || swrs == null || swrs.every(r => r.status === 'unproven'))
|
|
862
897
|
return;
|
|
863
898
|
throw new WERR_errors_1.WERR_REVIEW_ACTIONS(ndrs, swrs, r.txid, r.tx);
|
|
864
899
|
}
|
|
865
900
|
function throwIfUnsuccessfulInternalizeAction(r) {
|
|
866
901
|
const ndrs = r.notDelayedResults;
|
|
867
902
|
const swrs = r.sendWithResults;
|
|
868
|
-
if (
|
|
903
|
+
if (ndrs == null || swrs == null || swrs.every(r => r.status === 'unproven'))
|
|
869
904
|
return;
|
|
870
905
|
throw new WERR_errors_1.WERR_REVIEW_ACTIONS(ndrs, swrs, r.txid);
|
|
871
906
|
}
|