@bopen-io/wallet-toolbox 2.6.2-brc153.5 → 2.14.6
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 +744 -1
- package/LICENSES/Open-BSV-License-4-wallet-pre-2026.txt +28 -0
- package/README.md +823 -14
- package/THIRD_PARTY_NOTICES.md +35 -0
- package/docs/README.md +44 -31
- package/docs/action-batch-planning.md +80 -37
- package/docs/client.md +12996 -4571
- package/docs/identity-verification.md +218 -0
- package/docs/local-first-chaintracks.md +129 -0
- package/docs/managed-change-liquidity.md +258 -0
- package/docs/managed-change-policy.md +14 -1
- package/docs/monitor.md +505 -190
- package/docs/no-send-expiry.md +167 -0
- package/docs/prepared-beef.md +197 -0
- package/docs/services.md +4013 -1153
- package/docs/setup.md +107 -56
- package/docs/storage.md +5781 -1599
- package/docs/sync-transfer.md +144 -0
- package/docs/wab-shamir.md +5 -1
- package/docs/wallet.md +10188 -10904
- package/out/src/CWIStyleWalletManager.d.ts +39 -31
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/out/src/CWIStyleWalletManager.js +309 -258
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/Setup.d.ts +14 -0
- package/out/src/Setup.d.ts.map +1 -1
- package/out/src/Setup.js +6 -2
- package/out/src/Setup.js.map +1 -1
- package/out/src/SetupClient.d.ts +3 -0
- package/out/src/SetupClient.d.ts.map +1 -1
- package/out/src/SetupClient.js +1 -0
- package/out/src/SetupClient.js.map +1 -1
- package/out/src/SetupWallet.d.ts +3 -0
- package/out/src/SetupWallet.d.ts.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 +54 -14
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +216 -114
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletAuthenticationManager.d.ts +32 -0
- package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
- package/out/src/WalletAuthenticationManager.js +531 -78
- 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 +101 -43
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +897 -414
- 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 +143 -8
- 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/index.client.d.ts +6 -0
- package/out/src/index.client.d.ts.map +1 -1
- package/out/src/index.client.js +16 -1
- package/out/src/index.client.js.map +1 -1
- package/out/src/index.mobile.d.ts +7 -0
- package/out/src/index.mobile.d.ts.map +1 -1
- package/out/src/index.mobile.js +17 -1
- package/out/src/index.mobile.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 +2 -0
- package/out/src/mockchain/MockServices.d.ts.map +1 -1
- package/out/src/mockchain/MockServices.js +54 -14
- package/out/src/mockchain/MockServices.js.map +1 -1
- package/out/src/monitor/Monitor.d.ts +51 -0
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +282 -41
- 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 +6 -1
- package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskArcSSE.js +117 -74
- 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/TaskNoSendExpiry.d.ts +19 -0
- package/out/src/monitor/tasks/TaskNoSendExpiry.d.ts.map +1 -0
- package/out/src/monitor/tasks/TaskNoSendExpiry.js +47 -0
- package/out/src/monitor/tasks/TaskNoSendExpiry.js.map +1 -0
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts +27 -0
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.d.ts.map +1 -0
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js +242 -0
- package/out/src/monitor/tasks/TaskReconcilePendingTransactions.js.map +1 -0
- 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 +31 -9
- 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 +33 -6
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js +189 -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/monitor/tasks/index.all.d.ts +2 -0
- package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
- package/out/src/monitor/tasks/index.all.js +2 -0
- package/out/src/monitor/tasks/index.all.js.map +1 -1
- package/out/src/sdk/ActionBatch.interfaces.d.ts +23 -0
- package/out/src/sdk/ActionBatch.interfaces.d.ts.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/WERR_errors.d.ts +23 -0
- package/out/src/sdk/WERR_errors.d.ts.map +1 -1
- package/out/src/sdk/WERR_errors.js +51 -7
- package/out/src/sdk/WERR_errors.js.map +1 -1
- package/out/src/sdk/WalletError.d.ts.map +1 -1
- package/out/src/sdk/WalletError.js +7 -21
- package/out/src/sdk/WalletError.js.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.d.ts.map +1 -1
- package/out/src/sdk/WalletErrorFromJson.js +121 -3
- package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +45 -2
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +87 -4
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/sdk/types.d.ts +3 -2
- package/out/src/sdk/types.d.ts.map +1 -1
- package/out/src/sdk/types.js +3 -2
- package/out/src/sdk/types.js.map +1 -1
- package/out/src/services/ServiceCollection.js +2 -2
- package/out/src/services/ServiceCollection.js.map +1 -1
- package/out/src/services/Services.d.ts +5 -0
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +346 -120
- 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 +269 -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 +122 -0
- package/out/src/services/chaintracker/LocalChainTracker.d.ts.map +1 -0
- package/out/src/services/chaintracker/LocalChainTracker.js +465 -0
- package/out/src/services/chaintracker/LocalChainTracker.js.map +1 -0
- 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/BulkFileDataCacheApi.d.ts +48 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataCacheApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts +70 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js +21 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkFileDataValidatorApi.js.map +1 -0
- 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 +53 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +9 -2
- 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 +28 -3
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +282 -64
- 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 +348 -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 +378 -44
- 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 +230 -28
- 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 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +240 -87
- 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.d.ts +8 -0
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +6 -3
- 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/index.all.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/index.all.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.all.js +3 -0
- package/out/src/services/chaintracker/chaintracks/index.all.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +5 -0
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.js +5 -0
- package/out/src/services/chaintracker/chaintracks/index.mobile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts +51 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js +394 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataCacheFs.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +45 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +733 -166
- 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 +32 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js +40 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataValidator.worker.js.map +1 -0
- 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 +3 -1
- 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 +38 -4
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +191 -47
- 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 +48 -0
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js +280 -0
- package/out/src/services/chaintracker/chaintracks/util/DurableFileBulkFileDownloadBudget.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts +30 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js +57 -0
- package/out/src/services/chaintracker/chaintracks/util/FixedWindowBulkFileDownloadBudget.js.map +1 -0
- 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 +14 -0
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js +148 -0
- package/out/src/services/chaintracker/chaintracks/util/InlineBulkFileDataValidator.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts +41 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js +271 -0
- package/out/src/services/chaintracker/chaintracks/util/NodeBulkFileDataValidator.js.map +1 -0
- 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 +17 -4
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +362 -105
- 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/chaintracker/index.all.d.ts +1 -0
- package/out/src/services/chaintracker/index.all.d.ts.map +1 -1
- package/out/src/services/chaintracker/index.all.js +1 -0
- package/out/src/services/chaintracker/index.all.js.map +1 -1
- package/out/src/services/chaintracker/index.client.d.ts +1 -0
- package/out/src/services/chaintracker/index.client.d.ts.map +1 -1
- package/out/src/services/chaintracker/index.client.js +1 -0
- package/out/src/services/chaintracker/index.client.js.map +1 -1
- package/out/src/services/chaintracker/index.mobile.d.ts +1 -0
- package/out/src/services/chaintracker/index.mobile.d.ts.map +1 -1
- package/out/src/services/chaintracker/index.mobile.js +1 -0
- package/out/src/services/chaintracker/index.mobile.js.map +1 -1
- package/out/src/services/classifyOutputUtxo.d.ts +25 -0
- package/out/src/services/classifyOutputUtxo.d.ts.map +1 -0
- package/out/src/services/classifyOutputUtxo.js +96 -0
- package/out/src/services/classifyOutputUtxo.js.map +1 -0
- package/out/src/services/createDefaultWalletServicesOptions.d.ts +16 -3
- package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.js +38 -8
- package/out/src/services/createDefaultWalletServicesOptions.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 +38 -23
- package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
- package/out/src/services/providers/ArcSSEClient.js +384 -63
- package/out/src/services/providers/ArcSSEClient.js.map +1 -1
- package/out/src/services/providers/Arcade.d.ts +11 -1
- package/out/src/services/providers/Arcade.d.ts.map +1 -1
- package/out/src/services/providers/Arcade.js +111 -33
- 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/arcadeStatus.d.ts +18 -0
- package/out/src/services/providers/arcadeStatus.d.ts.map +1 -0
- package/out/src/services/providers/arcadeStatus.js +56 -0
- package/out/src/services/providers/arcadeStatus.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 +29 -6
- package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +8 -5
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js +186 -73
- 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 +35 -3
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +50 -2
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/createNoSendExpiryAction.d.ts +7 -0
- package/out/src/signer/methods/createNoSendExpiryAction.d.ts.map +1 -0
- package/out/src/signer/methods/createNoSendExpiryAction.js +254 -0
- package/out/src/signer/methods/createNoSendExpiryAction.js.map +1 -0
- package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/signer/methods/internalizeAction.js +9 -5
- 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 +20 -3
- 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 +11 -3
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +134 -44
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +68 -7
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +551 -105
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +41 -10
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +397 -107
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReader.d.ts +9 -3
- package/out/src/storage/StorageReader.d.ts.map +1 -1
- package/out/src/storage/StorageReader.js +21 -43
- package/out/src/storage/StorageReader.js.map +1 -1
- package/out/src/storage/StorageReaderWriter.d.ts +4 -0
- package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
- package/out/src/storage/StorageReaderWriter.js +68 -38
- package/out/src/storage/StorageReaderWriter.js.map +1 -1
- package/out/src/storage/StorageSyncReader.d.ts +1 -1
- package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
- package/out/src/storage/StorageSyncReader.js +3 -36
- package/out/src/storage/StorageSyncReader.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts +31 -6
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +166 -75
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/adminServer/adminServer.d.ts +3 -1
- package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
- package/out/src/storage/adminServer/adminServer.js +38 -49
- package/out/src/storage/adminServer/adminServer.js.map +1 -1
- package/out/src/storage/adminServer/adminUi.d.ts.map +1 -1
- package/out/src/storage/adminServer/adminUi.js +32 -9
- package/out/src/storage/adminServer/adminUi.js.map +1 -1
- package/out/src/storage/adminServer/reviewUtxos.d.ts +27 -0
- package/out/src/storage/adminServer/reviewUtxos.d.ts.map +1 -0
- package/out/src/storage/adminServer/reviewUtxos.js +62 -0
- package/out/src/storage/adminServer/reviewUtxos.js.map +1 -0
- package/out/src/storage/idbHelpers.d.ts.map +1 -1
- package/out/src/storage/idbHelpers.js +14 -2
- package/out/src/storage/idbHelpers.js.map +1 -1
- package/out/src/storage/index.all.d.ts +3 -0
- package/out/src/storage/index.all.d.ts.map +1 -1
- package/out/src/storage/index.all.js +3 -0
- package/out/src/storage/index.all.js.map +1 -1
- package/out/src/storage/index.client.d.ts +1 -0
- package/out/src/storage/index.client.d.ts.map +1 -1
- package/out/src/storage/index.client.js +1 -0
- package/out/src/storage/index.client.js.map +1 -1
- package/out/src/storage/index.mobile.d.ts +1 -0
- package/out/src/storage/index.mobile.d.ts.map +1 -1
- package/out/src/storage/index.mobile.js +1 -0
- package/out/src/storage/index.mobile.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 +5 -44
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
- package/out/src/storage/methods/actionBatch.d.ts +9 -2
- package/out/src/storage/methods/actionBatch.d.ts.map +1 -1
- package/out/src/storage/methods/actionBatch.js +260 -67
- 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 +47 -26
- 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 +59 -110
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
- package/out/src/storage/methods/availableManagedChange.d.ts +8 -1
- package/out/src/storage/methods/availableManagedChange.d.ts.map +1 -1
- package/out/src/storage/methods/availableManagedChange.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts +60 -3
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +396 -106
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts +21 -5
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +194 -27
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +5 -7
- package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
- package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
- package/out/src/storage/methods/getSyncChunk.js +42 -11
- package/out/src/storage/methods/getSyncChunk.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts +3 -3
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +171 -133
- 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 +22 -11
- 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 +25 -18
- 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 +33 -31
- package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
- package/out/src/storage/methods/managedChangePolicy.d.ts +44 -0
- package/out/src/storage/methods/managedChangePolicy.d.ts.map +1 -0
- package/out/src/storage/methods/managedChangePolicy.js +58 -0
- package/out/src/storage/methods/managedChangePolicy.js.map +1 -0
- package/out/src/storage/methods/maxPossibleSatoshis.d.ts +13 -0
- package/out/src/storage/methods/maxPossibleSatoshis.d.ts.map +1 -0
- package/out/src/storage/methods/maxPossibleSatoshis.js +16 -0
- package/out/src/storage/methods/maxPossibleSatoshis.js.map +1 -0
- package/out/src/storage/methods/noSendExpiry.d.ts +11 -0
- package/out/src/storage/methods/noSendExpiry.d.ts.map +1 -0
- package/out/src/storage/methods/noSendExpiry.js +369 -0
- package/out/src/storage/methods/noSendExpiry.js.map +1 -0
- package/out/src/storage/methods/noSendExpiryLifecycle.d.ts +14 -0
- package/out/src/storage/methods/noSendExpiryLifecycle.d.ts.map +1 -0
- package/out/src/storage/methods/noSendExpiryLifecycle.js +691 -0
- package/out/src/storage/methods/noSendExpiryLifecycle.js.map +1 -0
- package/out/src/storage/methods/preparedBeef.d.ts +104 -0
- package/out/src/storage/methods/preparedBeef.d.ts.map +1 -0
- package/out/src/storage/methods/preparedBeef.js +524 -0
- package/out/src/storage/methods/preparedBeef.js.map +1 -0
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +144 -32
- 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 +21 -3
- package/out/src/storage/methods/purgeData.js.map +1 -1
- package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts +32 -0
- package/out/src/storage/methods/reconcileFailedTransactionInputs.d.ts.map +1 -0
- package/out/src/storage/methods/reconcileFailedTransactionInputs.js +142 -0
- package/out/src/storage/methods/reconcileFailedTransactionInputs.js.map +1 -0
- package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
- package/out/src/storage/methods/reviewStatus.js +7 -4
- package/out/src/storage/methods/reviewStatus.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 +38 -0
- package/out/src/storage/methods/reviewUtxoOutputs.d.ts.map +1 -0
- package/out/src/storage/methods/reviewUtxoOutputs.js +197 -0
- package/out/src/storage/methods/reviewUtxoOutputs.js.map +1 -0
- package/out/src/storage/methods/validateSyncProof.d.ts +32 -0
- package/out/src/storage/methods/validateSyncProof.d.ts.map +1 -0
- package/out/src/storage/methods/validateSyncProof.js +139 -0
- package/out/src/storage/methods/validateSyncProof.js.map +1 -0
- package/out/src/storage/portable/index.d.ts.map +1 -1
- package/out/src/storage/portable/index.js +25 -15
- package/out/src/storage/portable/index.js.map +1 -1
- package/out/src/storage/remoting/BinaryJson.d.ts +11 -0
- package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -1
- package/out/src/storage/remoting/BinaryJson.js +94 -8
- package/out/src/storage/remoting/BinaryJson.js.map +1 -1
- package/out/src/storage/remoting/KnexPaymentReplayStore.d.ts.map +1 -1
- package/out/src/storage/remoting/KnexPaymentReplayStore.js +1 -0
- package/out/src/storage/remoting/KnexPaymentReplayStore.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 +221 -40
- package/out/src/storage/remoting/KnexSessionManager.js.map +1 -1
- package/out/src/storage/remoting/KnexSyncTransferStore.d.ts +26 -0
- package/out/src/storage/remoting/KnexSyncTransferStore.d.ts.map +1 -0
- package/out/src/storage/remoting/KnexSyncTransferStore.js +222 -0
- package/out/src/storage/remoting/KnexSyncTransferStore.js.map +1 -0
- package/out/src/storage/remoting/StorageClient.d.ts +6 -1
- package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +65 -8
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts +57 -10
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.js +382 -10
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
- package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
- package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageMobile.js +13 -11
- package/out/src/storage/remoting/StorageMobile.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts +10 -1
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +232 -20
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/remoting/SyncTransfer.d.ts +29 -0
- package/out/src/storage/remoting/SyncTransfer.d.ts.map +1 -0
- package/out/src/storage/remoting/SyncTransfer.js +153 -0
- package/out/src/storage/remoting/SyncTransfer.js.map +1 -0
- package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -1
- package/out/src/storage/remoting/entityValidationHelpers.js +35 -0
- package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -1
- package/out/src/storage/remoting/syncChunkBinary.d.ts +14 -0
- package/out/src/storage/remoting/syncChunkBinary.d.ts.map +1 -0
- package/out/src/storage/remoting/syncChunkBinary.js +42 -0
- package/out/src/storage/remoting/syncChunkBinary.js.map +1 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.d.ts +5 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.d.ts.map +1 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.js +82 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.js.map +1 -0
- package/out/src/storage/schema/KnexMigrations.d.ts +6 -0
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +194 -5
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/schema/StorageIdbSchema.d.ts +3 -0
- package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.js +24 -4
- 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 +5 -2
- package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +4 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +125 -41
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.d.ts +4 -2
- package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +12 -6
- package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.d.ts +26 -0
- package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.js +221 -21
- package/out/src/storage/schema/entities/EntityTransaction.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/TablePreparedBeef.interfaces.d.ts +23 -0
- package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.d.ts.map +1 -0
- package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js +3 -0
- package/out/src/storage/schema/tables/TablePreparedBeef.interfaces.js.map +1 -0
- 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 +2 -2
- 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 +17 -1
- package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTransaction.js +14 -1
- package/out/src/storage/schema/tables/TableTransaction.js.map +1 -1
- package/out/src/storage/schema/tables/TableTxLabel.d.ts +1 -1
- package/out/src/storage/schema/tables/TableTxLabel.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts +1 -1
- package/out/src/storage/schema/tables/TableTxLabelMap.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableUser.d.ts +1 -1
- package/out/src/storage/schema/tables/TableUser.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.js +8 -7
- package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
- package/out/src/storage/sync/SyncPageBudget.d.ts +8 -0
- package/out/src/storage/sync/SyncPageBudget.d.ts.map +1 -0
- package/out/src/storage/sync/SyncPageBudget.js +24 -0
- package/out/src/storage/sync/SyncPageBudget.js.map +1 -0
- package/out/src/storage/sync/syncCheckpoint.d.ts +4 -0
- package/out/src/storage/sync/syncCheckpoint.d.ts.map +1 -0
- package/out/src/storage/sync/syncCheckpoint.js +49 -0
- package/out/src/storage/sync/syncCheckpoint.js.map +1 -0
- package/out/src/utility/Argon2idBackend.d.ts +36 -0
- package/out/src/utility/Argon2idBackend.d.ts.map +1 -0
- package/out/src/utility/Argon2idBackend.js +60 -0
- package/out/src/utility/Argon2idBackend.js.map +1 -0
- package/out/src/utility/actionBatchDigest.d.ts.map +1 -1
- package/out/src/utility/actionBatchDigest.js +9 -7
- package/out/src/utility/actionBatchDigest.js.map +1 -1
- package/out/src/utility/actionBatchPack.d.ts.map +1 -1
- package/out/src/utility/actionBatchPack.js +7 -12
- package/out/src/utility/actionBatchPack.js.map +1 -1
- package/out/src/utility/beefForTxids.d.ts +12 -3
- package/out/src/utility/beefForTxids.d.ts.map +1 -1
- package/out/src/utility/beefForTxids.js +69 -21
- package/out/src/utility/beefForTxids.js.map +1 -1
- package/out/src/utility/brc153ReferenceLabels.d.ts +16 -0
- package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -1
- package/out/src/utility/brc153ReferenceLabels.js +20 -5
- package/out/src/utility/brc153ReferenceLabels.js.map +1 -1
- package/out/src/utility/brc177NoSendExpiry.d.ts +34 -0
- package/out/src/utility/brc177NoSendExpiry.d.ts.map +1 -0
- package/out/src/utility/brc177NoSendExpiry.js +81 -0
- package/out/src/utility/brc177NoSendExpiry.js.map +1 -0
- package/out/src/utility/canonicalizeAtomicBeef.d.ts +12 -0
- package/out/src/utility/canonicalizeAtomicBeef.d.ts.map +1 -0
- package/out/src/utility/canonicalizeAtomicBeef.js +23 -0
- package/out/src/utility/canonicalizeAtomicBeef.js.map +1 -0
- package/out/src/utility/exactActionSpend.d.ts +9 -0
- package/out/src/utility/exactActionSpend.d.ts.map +1 -0
- package/out/src/utility/exactActionSpend.js +26 -0
- package/out/src/utility/exactActionSpend.js.map +1 -0
- package/out/src/utility/hashWasm.d.ts +1 -1
- package/out/src/utility/hashWasm.d.ts.map +1 -1
- package/out/src/utility/hashWasm.js +83 -1
- package/out/src/utility/hashWasm.js.map +1 -1
- 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 +523 -61
- package/out/src/utility/identityUtils.js.map +1 -1
- package/out/src/utility/index.all.d.ts +2 -0
- package/out/src/utility/index.all.d.ts.map +1 -1
- package/out/src/utility/index.all.js +2 -0
- package/out/src/utility/index.all.js.map +1 -1
- package/out/src/utility/index.client.d.ts +2 -0
- package/out/src/utility/index.client.d.ts.map +1 -1
- package/out/src/utility/index.client.js +2 -0
- package/out/src/utility/index.client.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 +1 -1
- package/out/src/utility/utilityHelpers.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.js +10 -7
- 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 +4 -17
- package/out/src/wab-client/WABClient.d.ts.map +1 -1
- package/out/src/wab-client/WABClient.js +35 -12
- 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/WABTransport.d.ts +17 -23
- package/out/src/wab-client/WABTransport.d.ts.map +1 -1
- package/out/src/wab-client/WABTransport.js +130 -142
- package/out/src/wab-client/WABTransport.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +8 -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 +45 -41
- package/docs/open-rpc/index.html +0 -46
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CWIStyleWalletManager = exports.OverlayUMPTokenInteractor = exports.UMPTokenLookupError = exports.DEFAULT_PROFILE_ID = exports.MAX_STATE_SNAPSHOT_BYTES = exports.PBKDF2_MAX_ITERATIONS = exports.KDF_MAX_HASH_LENGTH = exports.ARGON2ID_MAX_PARALLELISM = exports.ARGON2ID_MAX_MEMORY_KIB = exports.ARGON2ID_MAX_ITERATIONS = exports.ARGON2ID_DEFAULT_HASH_LENGTH = exports.ARGON2ID_DEFAULT_PARALLELISM = exports.ARGON2ID_DEFAULT_MEMORY_KIB = exports.ARGON2ID_DEFAULT_ITERATIONS = exports.PBKDF2_NUM_ROUNDS = void 0;
|
|
4
4
|
const sdk_1 = require("@bsv/sdk");
|
|
5
|
+
const Hash_1 = require("@bsv/sdk/primitives/Hash");
|
|
6
|
+
const utils_1 = require("@bsv/sdk/primitives/utils");
|
|
5
7
|
const PrivilegedKeyManager_1 = require("./sdk/PrivilegedKeyManager");
|
|
6
8
|
const hashWasm_1 = require("./utility/hashWasm");
|
|
9
|
+
const CWI_COMPONENT = 'wallet-toolbox.cwi-manager';
|
|
7
10
|
/**
|
|
8
11
|
* Number of rounds used in PBKDF2 for deriving password keys.
|
|
9
12
|
*/
|
|
@@ -40,14 +43,10 @@ function isValidKdfConfig(kdf) {
|
|
|
40
43
|
isPositiveIntegerInRange(kdf.hashLength, exports.KDF_MAX_HASH_LENGTH));
|
|
41
44
|
}
|
|
42
45
|
function findKdfVersionFieldIndex(protocolFields) {
|
|
43
|
-
const hasMetadataWithProfiles = protocolFields.length >= 15 &&
|
|
44
|
-
protocolFields[12]?.length === 1 &&
|
|
45
|
-
protocolFields[12][0] === 3;
|
|
46
|
+
const hasMetadataWithProfiles = protocolFields.length >= 15 && protocolFields[12]?.length === 1 && protocolFields[12][0] === 3;
|
|
46
47
|
if (hasMetadataWithProfiles)
|
|
47
48
|
return 12;
|
|
48
|
-
const hasMetadataWithoutProfiles = protocolFields.length >= 14 &&
|
|
49
|
-
protocolFields[11]?.length === 1 &&
|
|
50
|
-
protocolFields[11][0] === 3;
|
|
49
|
+
const hasMetadataWithoutProfiles = protocolFields.length >= 14 && protocolFields[11]?.length === 1 && protocolFields[11][0] === 3;
|
|
51
50
|
return hasMetadataWithoutProfiles ? 11 : -1;
|
|
52
51
|
}
|
|
53
52
|
function addProfilesField(token, protocolFields, kdfVersionFieldIndex) {
|
|
@@ -67,9 +66,9 @@ function addPasswordKdf(token, protocolFields, kdfVersionFieldIndex) {
|
|
|
67
66
|
if (kdfAlgorithmField == null || kdfParamsField == null || kdfParamsField.length > 1024) {
|
|
68
67
|
return false;
|
|
69
68
|
}
|
|
70
|
-
const kdfParams = JSON.parse(
|
|
69
|
+
const kdfParams = JSON.parse((0, utils_1.toUTF8)(kdfParamsField));
|
|
71
70
|
const passwordKdf = {
|
|
72
|
-
algorithm:
|
|
71
|
+
algorithm: (0, utils_1.toUTF8)(kdfAlgorithmField),
|
|
73
72
|
iterations: kdfParams.iterations,
|
|
74
73
|
memoryKiB: kdfParams.memoryKiB,
|
|
75
74
|
parallelism: kdfParams.parallelism,
|
|
@@ -123,6 +122,24 @@ function stripVerifiedPushDropSignature(fields, lockingPublicKey) {
|
|
|
123
122
|
}
|
|
124
123
|
return fields;
|
|
125
124
|
}
|
|
125
|
+
function decodeAuthenticatedUMPFields(lockingScript) {
|
|
126
|
+
const decoded = (0, sdk_1.decodeCanonicalPushDrop)(lockingScript, {
|
|
127
|
+
fieldCount: [12, 13, 15, 16],
|
|
128
|
+
maximumFieldBytes: exports.MAX_STATE_SNAPSHOT_BYTES,
|
|
129
|
+
maximumPayloadBytes: exports.MAX_STATE_SNAPSHOT_BYTES
|
|
130
|
+
});
|
|
131
|
+
const fields = stripVerifiedPushDropSignature(decoded.fields, decoded.lockingPublicKey);
|
|
132
|
+
if (fields.length !== decoded.fields.length - 1) {
|
|
133
|
+
throw new Error('UMP token field signature is missing or invalid');
|
|
134
|
+
}
|
|
135
|
+
const kdfVersionFieldIndex = findKdfVersionFieldIndex(fields);
|
|
136
|
+
if ((kdfVersionFieldIndex === -1 && fields.length > 12) ||
|
|
137
|
+
(kdfVersionFieldIndex === 11 && fields.length !== 14) ||
|
|
138
|
+
(kdfVersionFieldIndex === 12 && fields.length !== 15)) {
|
|
139
|
+
throw new Error('UMP token field layout is invalid');
|
|
140
|
+
}
|
|
141
|
+
return { ...decoded, fields };
|
|
142
|
+
}
|
|
126
143
|
/**
|
|
127
144
|
* PBKDF-2 that prefers WebCrypto and falls back to hash-wasm.
|
|
128
145
|
*
|
|
@@ -284,11 +301,11 @@ class OverlayUMPTokenInteractor {
|
|
|
284
301
|
* @param hash The 32-byte SHA-256 hash of the presentation key.
|
|
285
302
|
* @returns A UMPToken object (including currentOutpoint) if found, otherwise undefined.
|
|
286
303
|
*/
|
|
287
|
-
async findByPresentationKeyHash(hash) {
|
|
288
|
-
return
|
|
304
|
+
async findByPresentationKeyHash(hash, options) {
|
|
305
|
+
return this.findToken({
|
|
289
306
|
service: 'ls_users',
|
|
290
|
-
query: { presentationHash:
|
|
291
|
-
}, 'presentation');
|
|
307
|
+
query: { presentationHash: (0, utils_1.toHex)(hash) }
|
|
308
|
+
}, 'presentation', options);
|
|
292
309
|
}
|
|
293
310
|
/**
|
|
294
311
|
* Finds a UMP token on-chain by the given recovery key hash, if it exists.
|
|
@@ -297,13 +314,13 @@ class OverlayUMPTokenInteractor {
|
|
|
297
314
|
* @param hash The 32-byte SHA-256 hash of the recovery key.
|
|
298
315
|
* @returns A UMPToken object (including currentOutpoint) if found, otherwise undefined.
|
|
299
316
|
*/
|
|
300
|
-
async findByRecoveryKeyHash(hash) {
|
|
301
|
-
return
|
|
317
|
+
async findByRecoveryKeyHash(hash, options) {
|
|
318
|
+
return this.findToken({
|
|
302
319
|
service: 'ls_users',
|
|
303
|
-
query: { recoveryHash:
|
|
304
|
-
}, 'recovery');
|
|
320
|
+
query: { recoveryHash: (0, utils_1.toHex)(hash) }
|
|
321
|
+
}, 'recovery', options);
|
|
305
322
|
}
|
|
306
|
-
async findToken(question, lookupKind) {
|
|
323
|
+
async findToken(question, lookupKind, options) {
|
|
307
324
|
const correlationId = this.telemetry.enabled === true ? this.telemetry.createCorrelationId() : undefined;
|
|
308
325
|
const startedAt = Date.now();
|
|
309
326
|
this.telemetry.capture({
|
|
@@ -321,14 +338,14 @@ class OverlayUMPTokenInteractor {
|
|
|
321
338
|
});
|
|
322
339
|
}
|
|
323
340
|
catch (error) {
|
|
324
|
-
const diagnostics = this.
|
|
325
|
-
this.
|
|
341
|
+
const diagnostics = this.emptyStats(correlationId);
|
|
342
|
+
this.lookupFailed(lookupKind, 'lookup-unavailable', diagnostics, startedAt, error);
|
|
326
343
|
throw new UMPTokenLookupError('lookup-unavailable', diagnostics, { cause: error });
|
|
327
344
|
}
|
|
328
|
-
const diagnostics = this.
|
|
345
|
+
const diagnostics = this.diagnosticsFor(resolution);
|
|
329
346
|
const tokens = this.parseLookupAnswers(resolution.answer);
|
|
330
347
|
const expectedHash = question.query[lookupKind === 'presentation' ? 'presentationHash' : 'recoveryHash'].toLowerCase();
|
|
331
|
-
const matchingTokens = tokens.filter(token =>
|
|
348
|
+
const matchingTokens = tokens.filter(token => (0, utils_1.toHex)(lookupKind === 'presentation' ? token.presentationHash : token.recoveryHash).toLowerCase() ===
|
|
332
349
|
expectedHash);
|
|
333
350
|
// A verified token is positive account-existence evidence. Empty, malformed,
|
|
334
351
|
// rejected, or unavailable peers cannot override it. The resolver de-duplicates
|
|
@@ -340,28 +357,35 @@ class OverlayUMPTokenInteractor {
|
|
|
340
357
|
if (matchingTokens.length > 1) {
|
|
341
358
|
const newest = this.resolveNewestToken(matchingTokens, resolution.answer.outputs);
|
|
342
359
|
if (newest != null) {
|
|
343
|
-
this.
|
|
360
|
+
this.lookupDone(lookupKind, 'found', diagnostics, startedAt, {
|
|
344
361
|
supersededTokens: matchingTokens.length - 1
|
|
345
362
|
});
|
|
346
363
|
return newest;
|
|
347
364
|
}
|
|
365
|
+
const pinned = options?.pinnedOutpoint
|
|
366
|
+
? matchingTokens.find(token => token.currentOutpoint === options.pinnedOutpoint)
|
|
367
|
+
: undefined;
|
|
368
|
+
if (pinned != null) {
|
|
369
|
+
this.lookupDone(lookupKind, 'found', diagnostics, startedAt);
|
|
370
|
+
return pinned;
|
|
371
|
+
}
|
|
348
372
|
const reason = 'token-ambiguous';
|
|
349
|
-
this.
|
|
373
|
+
this.lookupFailed(lookupKind, reason, diagnostics, startedAt);
|
|
350
374
|
throw new UMPTokenLookupError(reason, diagnostics);
|
|
351
375
|
}
|
|
352
376
|
if (matchingTokens.length === 1) {
|
|
353
|
-
this.
|
|
377
|
+
this.lookupDone(lookupKind, 'found', diagnostics, startedAt);
|
|
354
378
|
return matchingTokens[0];
|
|
355
379
|
}
|
|
356
380
|
// A clean empty response is sufficient negative evidence once no verified
|
|
357
381
|
// token exists. Malformed outputs and failed peers are ignored so they cannot
|
|
358
382
|
// deny onboarding by advertising corrupt data or remaining unavailable.
|
|
359
383
|
if (resolution.progress.emptyHosts > 0) {
|
|
360
|
-
this.
|
|
384
|
+
this.lookupDone(lookupKind, 'not-found', diagnostics, startedAt);
|
|
361
385
|
return undefined;
|
|
362
386
|
}
|
|
363
387
|
const reason = resolution.answer.outputs.length > 0 ? 'token-malformed' : 'lookup-incomplete';
|
|
364
|
-
this.
|
|
388
|
+
this.lookupFailed(lookupKind, reason, diagnostics, startedAt);
|
|
365
389
|
throw new UMPTokenLookupError(reason, diagnostics);
|
|
366
390
|
}
|
|
367
391
|
/**
|
|
@@ -395,7 +419,7 @@ class OverlayUMPTokenInteractor {
|
|
|
395
419
|
continue;
|
|
396
420
|
const evidence = evidenceByCandidate.get(outpoint) ?? { txs: [], spent: new Set() };
|
|
397
421
|
evidence.txs.push(tx);
|
|
398
|
-
this.
|
|
422
|
+
this.collectSpends(tx, evidence.spent, new Set());
|
|
399
423
|
evidenceByCandidate.set(outpoint, evidence);
|
|
400
424
|
}
|
|
401
425
|
catch {
|
|
@@ -418,7 +442,7 @@ class OverlayUMPTokenInteractor {
|
|
|
418
442
|
const provenContinuations = survivors.filter(outpoint => {
|
|
419
443
|
const evidence = evidenceByCandidate.get(outpoint);
|
|
420
444
|
const token = candidates.get(outpoint);
|
|
421
|
-
return
|
|
445
|
+
return evidence != null && token != null && evidence.txs.some(tx => this.consumesIdentity(tx, token));
|
|
422
446
|
});
|
|
423
447
|
if (provenContinuations.length !== 1)
|
|
424
448
|
return undefined;
|
|
@@ -430,9 +454,9 @@ class OverlayUMPTokenInteractor {
|
|
|
430
454
|
* hash — on-chain proof that the candidate is an update of a same-identity
|
|
431
455
|
* predecessor rather than an independently minted token.
|
|
432
456
|
*/
|
|
433
|
-
|
|
434
|
-
const presentationHash =
|
|
435
|
-
const recoveryHash =
|
|
457
|
+
consumesIdentity(tx, token) {
|
|
458
|
+
const presentationHash = (0, utils_1.toHex)(token.presentationHash);
|
|
459
|
+
const recoveryHash = (0, utils_1.toHex)(token.recoveryHash);
|
|
436
460
|
for (const input of tx.inputs) {
|
|
437
461
|
const source = input.sourceTransaction;
|
|
438
462
|
if (source == null || input.sourceOutputIndex == null)
|
|
@@ -441,13 +465,10 @@ class OverlayUMPTokenInteractor {
|
|
|
441
465
|
if (sourceOutput == null)
|
|
442
466
|
continue;
|
|
443
467
|
try {
|
|
444
|
-
const
|
|
445
|
-
if (decoded.fields == null)
|
|
446
|
-
continue;
|
|
447
|
-
const fields = stripVerifiedPushDropSignature(decoded.fields, decoded.lockingPublicKey);
|
|
468
|
+
const { fields } = decodeAuthenticatedUMPFields(sourceOutput.lockingScript);
|
|
448
469
|
if (fields.length < 11 || fields[6]?.length !== 32 || fields[7]?.length !== 32)
|
|
449
470
|
continue;
|
|
450
|
-
if (
|
|
471
|
+
if ((0, utils_1.toHex)(fields[6]) === presentationHash || (0, utils_1.toHex)(fields[7]) === recoveryHash) {
|
|
451
472
|
return true;
|
|
452
473
|
}
|
|
453
474
|
}
|
|
@@ -463,7 +484,7 @@ class OverlayUMPTokenInteractor {
|
|
|
463
484
|
* renditions are absent from the lookup answer. Iterative so arbitrarily
|
|
464
485
|
* long update chains cannot exhaust the call stack.
|
|
465
486
|
*/
|
|
466
|
-
|
|
487
|
+
collectSpends(tx, spent, visited) {
|
|
467
488
|
const pending = [tx];
|
|
468
489
|
while (pending.length > 0) {
|
|
469
490
|
const current = pending.pop();
|
|
@@ -482,7 +503,7 @@ class OverlayUMPTokenInteractor {
|
|
|
482
503
|
}
|
|
483
504
|
}
|
|
484
505
|
}
|
|
485
|
-
|
|
506
|
+
emptyStats(correlationId) {
|
|
486
507
|
return {
|
|
487
508
|
hostCount: 0,
|
|
488
509
|
completedHosts: 0,
|
|
@@ -495,7 +516,7 @@ class OverlayUMPTokenInteractor {
|
|
|
495
516
|
...(correlationId !== undefined ? { correlationId } : {})
|
|
496
517
|
};
|
|
497
518
|
}
|
|
498
|
-
|
|
519
|
+
diagnosticsFor(resolution) {
|
|
499
520
|
const progress = resolution.progress;
|
|
500
521
|
return {
|
|
501
522
|
hostCount: progress.hostCount,
|
|
@@ -509,7 +530,7 @@ class OverlayUMPTokenInteractor {
|
|
|
509
530
|
...(progress.correlationId !== undefined ? { correlationId: progress.correlationId } : {})
|
|
510
531
|
};
|
|
511
532
|
}
|
|
512
|
-
|
|
533
|
+
lookupAttrs(diagnostics) {
|
|
513
534
|
return {
|
|
514
535
|
hostCount: diagnostics.hostCount,
|
|
515
536
|
completedHosts: diagnostics.completedHosts,
|
|
@@ -521,7 +542,7 @@ class OverlayUMPTokenInteractor {
|
|
|
521
542
|
outputCount: diagnostics.outputCount
|
|
522
543
|
};
|
|
523
544
|
}
|
|
524
|
-
|
|
545
|
+
lookupDone(lookupKind, result, diagnostics, startedAt, extraAttributes = {}) {
|
|
525
546
|
this.telemetry.capture({
|
|
526
547
|
name: 'wallet-toolbox.ump.lookup.completed',
|
|
527
548
|
component: 'wallet-toolbox.ump',
|
|
@@ -531,12 +552,12 @@ class OverlayUMPTokenInteractor {
|
|
|
531
552
|
lookupKind,
|
|
532
553
|
result,
|
|
533
554
|
durationMs: Date.now() - startedAt,
|
|
534
|
-
...this.
|
|
555
|
+
...this.lookupAttrs(diagnostics),
|
|
535
556
|
...extraAttributes
|
|
536
557
|
}
|
|
537
558
|
});
|
|
538
559
|
}
|
|
539
|
-
|
|
560
|
+
lookupFailed(lookupKind, reason, diagnostics, startedAt, error) {
|
|
540
561
|
this.telemetry.capture({
|
|
541
562
|
name: 'wallet-toolbox.ump.lookup.indeterminate',
|
|
542
563
|
component: 'wallet-toolbox.ump',
|
|
@@ -546,7 +567,7 @@ class OverlayUMPTokenInteractor {
|
|
|
546
567
|
lookupKind,
|
|
547
568
|
reason,
|
|
548
569
|
durationMs: Date.now() - startedAt,
|
|
549
|
-
...this.
|
|
570
|
+
...this.lookupAttrs(diagnostics)
|
|
550
571
|
},
|
|
551
572
|
error
|
|
552
573
|
});
|
|
@@ -566,13 +587,17 @@ class OverlayUMPTokenInteractor {
|
|
|
566
587
|
async buildAndSend(wallet, // This wallet MUST be the one built for the default profile
|
|
567
588
|
adminOriginator, token, oldTokenToConsume) {
|
|
568
589
|
// 1) Construct the data fields and PushDrop locking script for the new UMP token.
|
|
569
|
-
const fields = this.
|
|
590
|
+
const fields = this.tokenFields(token);
|
|
570
591
|
const script = await new sdk_1.PushDrop(wallet, adminOriginator).lock(fields, [2, 'admin user management token'], '1', 'self',
|
|
571
592
|
/* forSelf= */ true,
|
|
572
593
|
/* includeSignature= */ true);
|
|
573
|
-
const
|
|
594
|
+
const tokenScript = script.toHex();
|
|
595
|
+
const tokenOutput = [{ lockingScript: tokenScript, satoshis: 1, outputDescription: 'New UMP token output' }];
|
|
574
596
|
// 2) Resolve the old-token input (if provided) and create the action.
|
|
575
|
-
const { resolvedOldToken, inputToken } = await this.
|
|
597
|
+
const { resolvedOldToken, inputToken } = await this.resolveOldInput(oldTokenToConsume);
|
|
598
|
+
if (resolvedOldToken != null && inputToken != null) {
|
|
599
|
+
await this.assertOwnedUMPInput(wallet, adminOriginator, resolvedOldToken, inputToken);
|
|
600
|
+
}
|
|
576
601
|
const inputs = resolvedOldToken?.currentOutpoint
|
|
577
602
|
? [
|
|
578
603
|
{
|
|
@@ -582,21 +607,40 @@ class OverlayUMPTokenInteractor {
|
|
|
582
607
|
}
|
|
583
608
|
]
|
|
584
609
|
: [];
|
|
585
|
-
const
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
610
|
+
const createArgs = {
|
|
611
|
+
description: resolvedOldToken == null ? 'Create new UMP token' : 'Renew UMP token (consume old, create new)',
|
|
612
|
+
inputs,
|
|
613
|
+
outputs: tokenOutput,
|
|
614
|
+
inputBEEF: inputToken?.beef,
|
|
615
|
+
options: { randomizeOutputs: false, acceptDelayedBroadcast: false }
|
|
616
|
+
};
|
|
617
|
+
const inputSigners = Object.create(null);
|
|
618
|
+
if (resolvedOldToken?.currentOutpoint != null) {
|
|
619
|
+
const unlocker = new sdk_1.PushDrop(wallet, adminOriginator).unlock([2, 'admin user management token'], '1', 'self');
|
|
620
|
+
inputSigners[resolvedOldToken.currentOutpoint] = async (transaction, inputIndex) => await unlocker.sign(transaction, inputIndex);
|
|
589
621
|
}
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
return await this.signAndBroadcastWithOldToken(wallet, adminOriginator, reference, partialTx);
|
|
622
|
+
const operation = resolvedOldToken == null ? 'create' : 'renew';
|
|
623
|
+
let transaction;
|
|
624
|
+
try {
|
|
625
|
+
transaction = await this.completeUMPAction(wallet, createArgs, inputSigners, adminOriginator);
|
|
595
626
|
}
|
|
596
|
-
|
|
627
|
+
catch (error) {
|
|
628
|
+
this.telemetry.capture({
|
|
629
|
+
name: 'wallet-toolbox.ump.action.failed',
|
|
630
|
+
component: 'wallet-toolbox.ump',
|
|
631
|
+
severity: 'error',
|
|
632
|
+
attributes: {
|
|
633
|
+
operation,
|
|
634
|
+
oldTokenInputRequired: resolvedOldToken != null
|
|
635
|
+
},
|
|
636
|
+
error
|
|
637
|
+
});
|
|
638
|
+
throw error;
|
|
639
|
+
}
|
|
640
|
+
return await this.broadcastUMPTransaction(transaction, tokenScript, operation);
|
|
597
641
|
}
|
|
598
642
|
/** Assembles the ordered number[][] fields array from a UMPToken. */
|
|
599
|
-
|
|
643
|
+
tokenFields(token) {
|
|
600
644
|
const fields = [];
|
|
601
645
|
fields[0] = token.passwordSalt;
|
|
602
646
|
fields[1] = token.passwordPresentationPrimary;
|
|
@@ -614,7 +658,7 @@ class OverlayUMPTokenInteractor {
|
|
|
614
658
|
if (token.umpVersion === 3 && token.passwordKdf != null) {
|
|
615
659
|
const vi = token.profilesEncrypted == null ? 11 : 12;
|
|
616
660
|
fields[vi] = [token.umpVersion];
|
|
617
|
-
fields[vi + 1] =
|
|
661
|
+
fields[vi + 1] = (0, utils_1.toArray)(token.passwordKdf.algorithm, 'utf8');
|
|
618
662
|
const kdfParams = { iterations: token.passwordKdf.iterations };
|
|
619
663
|
if (token.passwordKdf.memoryKiB !== undefined)
|
|
620
664
|
kdfParams.memoryKiB = token.passwordKdf.memoryKiB;
|
|
@@ -622,85 +666,61 @@ class OverlayUMPTokenInteractor {
|
|
|
622
666
|
kdfParams.parallelism = token.passwordKdf.parallelism;
|
|
623
667
|
if (token.passwordKdf.hashLength !== undefined)
|
|
624
668
|
kdfParams.hashLength = token.passwordKdf.hashLength;
|
|
625
|
-
fields[vi + 2] =
|
|
669
|
+
fields[vi + 2] = (0, utils_1.toArray)(JSON.stringify(kdfParams), 'utf8');
|
|
626
670
|
}
|
|
627
671
|
return fields;
|
|
628
672
|
}
|
|
629
673
|
/** Looks up the old token on the overlay; returns undefined resolved token if not found. */
|
|
630
|
-
async
|
|
674
|
+
async resolveOldInput(oldTokenToConsume) {
|
|
631
675
|
if (!oldTokenToConsume?.currentOutpoint)
|
|
632
676
|
return { resolvedOldToken: undefined, inputToken: undefined };
|
|
633
677
|
const inputToken = await this.findByOutpoint(oldTokenToConsume.currentOutpoint);
|
|
634
678
|
if (inputToken == null) {
|
|
635
|
-
throw new Error('
|
|
679
|
+
throw new Error('Previous UMP token unavailable; update refused.');
|
|
636
680
|
}
|
|
637
681
|
return { resolvedOldToken: oldTokenToConsume, inputToken };
|
|
638
682
|
}
|
|
639
|
-
/**
|
|
640
|
-
async
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
const
|
|
680
|
-
const signResult = await wallet.signAction({ reference, spends: { 0: { unlockingScript: unlockingScript.toHex() } } }, adminOriginator);
|
|
681
|
-
const finalTxid = signResult.txid || (signResult.tx == null ? '' : sdk_1.Transaction.fromAtomicBEEF(signResult.tx).id('hex'));
|
|
682
|
-
if (!finalTxid)
|
|
683
|
-
throw new Error('Could not finalize transaction for renewed UMP token.');
|
|
684
|
-
if (signResult.tx == null)
|
|
685
|
-
throw new Error('Final transaction data missing after signing renewed UMP token.');
|
|
686
|
-
const result = await this.broadcaster.broadcast(sdk_1.Transaction.fromAtomicBEEF(signResult.tx));
|
|
687
|
-
this.assertSuccessfulBroadcast(result, 'renew');
|
|
688
|
-
return `${finalTxid}.0`;
|
|
689
|
-
}
|
|
690
|
-
/** Signs without input spending and broadcasts — used when creating a brand-new UMP token. */
|
|
691
|
-
async signAndBroadcastNewToken(wallet, adminOriginator, reference) {
|
|
692
|
-
const signResult = await wallet.signAction({ reference, spends: {} }, adminOriginator);
|
|
693
|
-
const finalTxid = signResult.txid || (signResult.tx == null ? '' : sdk_1.Transaction.fromAtomicBEEF(signResult.tx).id('hex'));
|
|
694
|
-
if (!finalTxid)
|
|
695
|
-
throw new Error('Failed to finalize new UMP token transaction.');
|
|
696
|
-
if (signResult.tx == null)
|
|
697
|
-
throw new Error('Final transaction data missing after signing new UMP token.');
|
|
698
|
-
const result = await this.broadcaster.broadcast(sdk_1.Transaction.fromAtomicBEEF(signResult.tx));
|
|
699
|
-
this.assertSuccessfulBroadcast(result, 'create');
|
|
700
|
-
return `${finalTxid}.0`;
|
|
701
|
-
}
|
|
702
|
-
assertSuccessfulBroadcast(result, operation) {
|
|
703
|
-
const succeeded = result.status === 'success';
|
|
683
|
+
/** Proves the exact predecessor is an authenticated token controlled by this wallet. */
|
|
684
|
+
async assertOwnedUMPInput(wallet, adminOriginator, oldToken, inputToken) {
|
|
685
|
+
const transaction = sdk_1.Transaction.fromBEEF(inputToken.beef);
|
|
686
|
+
const sourceOutput = transaction.outputs[inputToken.outputIndex];
|
|
687
|
+
if (sourceOutput == null)
|
|
688
|
+
throw new Error('Previous UMP token source output is missing.');
|
|
689
|
+
const decoded = decodeAuthenticatedUMPFields(sourceOutput.lockingScript);
|
|
690
|
+
if (decoded.fields[6]?.length !== 32 ||
|
|
691
|
+
decoded.fields[7]?.length !== 32 ||
|
|
692
|
+
(0, utils_1.toHex)(decoded.fields[6]) !== (0, utils_1.toHex)(oldToken.presentationHash) ||
|
|
693
|
+
(0, utils_1.toHex)(decoded.fields[7]) !== (0, utils_1.toHex)(oldToken.recoveryHash)) {
|
|
694
|
+
throw new Error('Previous UMP token identity does not match its authenticated source.');
|
|
695
|
+
}
|
|
696
|
+
const { publicKey } = await wallet.getPublicKey({
|
|
697
|
+
protocolID: [2, 'admin user management token'],
|
|
698
|
+
keyID: '1',
|
|
699
|
+
counterparty: 'self',
|
|
700
|
+
forSelf: true
|
|
701
|
+
}, adminOriginator);
|
|
702
|
+
if (publicKey.toLowerCase() !== decoded.lockingPublicKey.toString().toLowerCase()) {
|
|
703
|
+
throw new Error('Previous UMP token is not controlled by this wallet.');
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
/** Completes an action only after exact request, input, output, and final-transaction binding. */
|
|
707
|
+
async completeUMPAction(wallet, createArgs, inputSigners, adminOriginator) {
|
|
708
|
+
return await (0, sdk_1.completeBoundAction)(wallet, createArgs, { inputSigners }, adminOriginator);
|
|
709
|
+
}
|
|
710
|
+
/** Broadcasts a bound UMP transaction and returns the exact, uniquely matching token output. */
|
|
711
|
+
async broadcastUMPTransaction(transaction, tokenScript, operation) {
|
|
712
|
+
const normalizedScript = tokenScript.toLowerCase();
|
|
713
|
+
const matchingOutputs = transaction.outputs.flatMap((output, index) => output.satoshis === 1 && output.lockingScript.toHex().toLowerCase() === normalizedScript ? [index] : []);
|
|
714
|
+
if (matchingOutputs.length !== 1) {
|
|
715
|
+
throw new Error('Final UMP transaction must contain exactly one requested token output.');
|
|
716
|
+
}
|
|
717
|
+
const txid = transaction.id('hex');
|
|
718
|
+
const result = await this.broadcaster.broadcast(transaction);
|
|
719
|
+
this.assertBroadcast(result, operation, txid);
|
|
720
|
+
return `${txid}.${matchingOutputs[0]}`;
|
|
721
|
+
}
|
|
722
|
+
assertBroadcast(result, operation, expectedTxid) {
|
|
723
|
+
const succeeded = result.status === 'success' && result.txid.toLowerCase() === expectedTxid.toLowerCase();
|
|
704
724
|
this.telemetry.capture({
|
|
705
725
|
name: succeeded ? 'wallet-toolbox.ump.broadcast.completed' : 'wallet-toolbox.ump.broadcast.failed',
|
|
706
726
|
component: 'wallet-toolbox.ump',
|
|
@@ -712,7 +732,8 @@ class OverlayUMPTokenInteractor {
|
|
|
712
732
|
}
|
|
713
733
|
});
|
|
714
734
|
if (!succeeded) {
|
|
715
|
-
|
|
735
|
+
const reason = result.status === 'error' ? result.code : 'transaction ID mismatch';
|
|
736
|
+
throw new Error(`UMP token broadcast failed (${reason}).`);
|
|
716
737
|
}
|
|
717
738
|
}
|
|
718
739
|
/**
|
|
@@ -731,23 +752,19 @@ class OverlayUMPTokenInteractor {
|
|
|
731
752
|
return [];
|
|
732
753
|
const tokens = [];
|
|
733
754
|
for (const output of answer.outputs) {
|
|
734
|
-
const token = this.
|
|
755
|
+
const token = this.parseOutput(output);
|
|
735
756
|
if (token != null)
|
|
736
757
|
tokens.push(token);
|
|
737
758
|
}
|
|
738
759
|
return tokens;
|
|
739
760
|
}
|
|
740
|
-
|
|
761
|
+
parseOutput(output) {
|
|
741
762
|
try {
|
|
742
763
|
const tx = sdk_1.Transaction.fromBEEF(output.beef);
|
|
743
764
|
const txOutput = tx.outputs[output.outputIndex];
|
|
744
765
|
if (txOutput == null)
|
|
745
766
|
return undefined;
|
|
746
|
-
const
|
|
747
|
-
if (decoded.fields == null || decoded.fields.length < 11 || decoded.fields.length > 16) {
|
|
748
|
-
return undefined;
|
|
749
|
-
}
|
|
750
|
-
const protocolFields = stripVerifiedPushDropSignature(decoded.fields, decoded.lockingPublicKey);
|
|
767
|
+
const { fields: protocolFields } = decodeAuthenticatedUMPFields(txOutput.lockingScript);
|
|
751
768
|
if (protocolFields.length < 11 ||
|
|
752
769
|
protocolFields.slice(0, 11).some(field => field.length === 0 || field.length > exports.MAX_STATE_SNAPSHOT_BYTES)) {
|
|
753
770
|
return undefined;
|
|
@@ -787,6 +804,14 @@ class OverlayUMPTokenInteractor {
|
|
|
787
804
|
async findByOutpoint(outpoint) {
|
|
788
805
|
const correlationId = this.telemetry.enabled === true ? this.telemetry.createCorrelationId() : undefined;
|
|
789
806
|
const startedAt = Date.now();
|
|
807
|
+
const match = /^([0-9a-f]{64})\.(0|[1-9]\d*)$/i.exec(outpoint);
|
|
808
|
+
const requestedOutputIndex = match == null ? Number.NaN : Number(match[2]);
|
|
809
|
+
if (match == null || !Number.isSafeInteger(requestedOutputIndex) || requestedOutputIndex > 0xffffffff) {
|
|
810
|
+
const diagnostics = this.emptyStats(correlationId);
|
|
811
|
+
this.lookupFailed('outpoint', 'token-malformed', diagnostics, startedAt);
|
|
812
|
+
throw new UMPTokenLookupError('token-malformed', diagnostics);
|
|
813
|
+
}
|
|
814
|
+
const normalizedOutpoint = `${match[1].toLowerCase()}.${requestedOutputIndex}`;
|
|
790
815
|
let resolution;
|
|
791
816
|
try {
|
|
792
817
|
resolution = await this.resolver.queryDetailed({
|
|
@@ -800,20 +825,44 @@ class OverlayUMPTokenInteractor {
|
|
|
800
825
|
});
|
|
801
826
|
}
|
|
802
827
|
catch (error) {
|
|
803
|
-
const diagnostics = this.
|
|
804
|
-
this.
|
|
828
|
+
const diagnostics = this.emptyStats(correlationId);
|
|
829
|
+
this.lookupFailed('outpoint', 'lookup-unavailable', diagnostics, startedAt, error);
|
|
805
830
|
throw new UMPTokenLookupError('lookup-unavailable', diagnostics, { cause: error });
|
|
806
831
|
}
|
|
807
832
|
if (resolution.answer.outputs.length === 0) {
|
|
808
833
|
const p = resolution.progress;
|
|
809
834
|
if (p.emptyHosts === 0) {
|
|
810
|
-
const diagnostics = this.
|
|
811
|
-
this.
|
|
835
|
+
const diagnostics = this.diagnosticsFor(resolution);
|
|
836
|
+
this.lookupFailed('outpoint', 'lookup-incomplete', diagnostics, startedAt);
|
|
812
837
|
throw new UMPTokenLookupError('lookup-incomplete', diagnostics);
|
|
813
838
|
}
|
|
814
839
|
return undefined;
|
|
815
840
|
}
|
|
816
|
-
|
|
841
|
+
const diagnostics = this.diagnosticsFor(resolution);
|
|
842
|
+
const matchingOutputs = [];
|
|
843
|
+
try {
|
|
844
|
+
for (const output of resolution.answer.outputs) {
|
|
845
|
+
if (!Number.isSafeInteger(output.outputIndex) || output.outputIndex < 0 || output.outputIndex > 0xffffffff) {
|
|
846
|
+
throw new Error('UMP lookup returned an invalid output index');
|
|
847
|
+
}
|
|
848
|
+
const transaction = sdk_1.Transaction.fromBEEF(output.beef);
|
|
849
|
+
if (transaction.outputs[output.outputIndex] == null ||
|
|
850
|
+
`${transaction.id('hex')}.${output.outputIndex}` !== normalizedOutpoint) {
|
|
851
|
+
throw new Error('UMP lookup substituted the requested outpoint');
|
|
852
|
+
}
|
|
853
|
+
matchingOutputs.push(output);
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
catch (error) {
|
|
857
|
+
this.lookupFailed('outpoint', 'token-malformed', diagnostics, startedAt, error);
|
|
858
|
+
throw new UMPTokenLookupError('token-malformed', diagnostics, { cause: error });
|
|
859
|
+
}
|
|
860
|
+
if (matchingOutputs.length === 0) {
|
|
861
|
+
this.lookupFailed('outpoint', 'token-malformed', diagnostics, startedAt);
|
|
862
|
+
throw new UMPTokenLookupError('token-malformed', diagnostics);
|
|
863
|
+
}
|
|
864
|
+
matchingOutputs.sort((left, right) => right.beef.length - left.beef.length);
|
|
865
|
+
return matchingOutputs[0];
|
|
817
866
|
}
|
|
818
867
|
}
|
|
819
868
|
exports.OverlayUMPTokenInteractor = OverlayUMPTokenInteractor;
|
|
@@ -955,21 +1004,21 @@ class CWIStyleWalletManager {
|
|
|
955
1004
|
if (this._initSnapshot !== undefined) {
|
|
956
1005
|
this.telemetry.capture({
|
|
957
1006
|
name: 'wallet-toolbox.snapshot.initialization.started',
|
|
958
|
-
component:
|
|
1007
|
+
component: CWI_COMPONENT,
|
|
959
1008
|
severity: 'debug'
|
|
960
1009
|
});
|
|
961
1010
|
try {
|
|
962
1011
|
await this.loadSnapshot(this._initSnapshot);
|
|
963
1012
|
this.telemetry.capture({
|
|
964
1013
|
name: 'wallet-toolbox.snapshot.initialization.completed',
|
|
965
|
-
component:
|
|
1014
|
+
component: CWI_COMPONENT,
|
|
966
1015
|
severity: 'info'
|
|
967
1016
|
});
|
|
968
1017
|
}
|
|
969
1018
|
catch (error) {
|
|
970
1019
|
this.telemetry.capture({
|
|
971
1020
|
name: 'wallet-toolbox.snapshot.initialization.failed',
|
|
972
|
-
component:
|
|
1021
|
+
component: CWI_COMPONENT,
|
|
973
1022
|
severity: 'error',
|
|
974
1023
|
error
|
|
975
1024
|
});
|
|
@@ -979,9 +1028,11 @@ class CWIStyleWalletManager {
|
|
|
979
1028
|
}
|
|
980
1029
|
// --- Authentication Methods ---
|
|
981
1030
|
/**
|
|
982
|
-
* Provides the presentation key.
|
|
1031
|
+
* Provides the presentation key. A WAB operator pin may be supplied by the
|
|
1032
|
+
* authentication manager; normal lookup and lineage resolution always run
|
|
1033
|
+
* before this ambiguity-only fallback.
|
|
983
1034
|
*/
|
|
984
|
-
async providePresentationKey(key) {
|
|
1035
|
+
async providePresentationKey(key, lookupOptions) {
|
|
985
1036
|
if (this.authenticated) {
|
|
986
1037
|
throw new Error('User is already authenticated');
|
|
987
1038
|
}
|
|
@@ -992,22 +1043,22 @@ class CWIStyleWalletManager {
|
|
|
992
1043
|
throw new TypeError('Presentation key must contain exactly 32 bytes.');
|
|
993
1044
|
}
|
|
994
1045
|
this.authenticationFlow = 'unknown';
|
|
995
|
-
const hash =
|
|
1046
|
+
const hash = (0, Hash_1.sha256)(key);
|
|
996
1047
|
const startedAt = Date.now();
|
|
997
1048
|
this.telemetry.capture({
|
|
998
1049
|
name: 'wallet-toolbox.authentication.account-lookup.started',
|
|
999
|
-
component:
|
|
1050
|
+
component: CWI_COMPONENT,
|
|
1000
1051
|
severity: 'debug',
|
|
1001
1052
|
attributes: { lookupKind: 'presentation' }
|
|
1002
1053
|
});
|
|
1003
1054
|
let token;
|
|
1004
1055
|
try {
|
|
1005
|
-
token = await this.UMPTokenInteractor.findByPresentationKeyHash(hash);
|
|
1056
|
+
token = await this.UMPTokenInteractor.findByPresentationKeyHash(hash, lookupOptions);
|
|
1006
1057
|
}
|
|
1007
1058
|
catch (error) {
|
|
1008
1059
|
this.telemetry.capture({
|
|
1009
1060
|
name: 'wallet-toolbox.authentication.account-lookup.failed',
|
|
1010
|
-
component:
|
|
1061
|
+
component: CWI_COMPONENT,
|
|
1011
1062
|
severity: 'warn',
|
|
1012
1063
|
attributes: {
|
|
1013
1064
|
lookupKind: 'presentation',
|
|
@@ -1030,7 +1081,7 @@ class CWIStyleWalletManager {
|
|
|
1030
1081
|
}
|
|
1031
1082
|
this.telemetry.capture({
|
|
1032
1083
|
name: 'wallet-toolbox.authentication.account-lookup.completed',
|
|
1033
|
-
component:
|
|
1084
|
+
component: CWI_COMPONENT,
|
|
1034
1085
|
severity: 'info',
|
|
1035
1086
|
attributes: {
|
|
1036
1087
|
lookupKind: 'presentation',
|
|
@@ -1052,17 +1103,17 @@ class CWIStyleWalletManager {
|
|
|
1052
1103
|
throw new Error('Determine account status with a presentation or recovery key before providing a password.');
|
|
1053
1104
|
}
|
|
1054
1105
|
if (this.authenticationFlow === 'existing-user') {
|
|
1055
|
-
await this.
|
|
1106
|
+
await this.unlockExisting(password);
|
|
1056
1107
|
}
|
|
1057
1108
|
else {
|
|
1058
|
-
await this.
|
|
1109
|
+
await this.createNewUser(password);
|
|
1059
1110
|
}
|
|
1060
1111
|
}
|
|
1061
1112
|
/** Handles the password step for an existing user — derives keys, sets up infrastructure. */
|
|
1062
|
-
async
|
|
1113
|
+
async unlockExisting(password) {
|
|
1063
1114
|
if (this.currentUMPToken == null)
|
|
1064
1115
|
throw new Error('Provide presentation or recovery key first.');
|
|
1065
|
-
const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken,
|
|
1116
|
+
const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken, (0, utils_1.toArray)(password, 'utf8'));
|
|
1066
1117
|
let rootPrimaryKey;
|
|
1067
1118
|
let rootPrivilegedKey;
|
|
1068
1119
|
if (this.authenticationMode === 'presentation-key-and-password') {
|
|
@@ -1078,11 +1129,11 @@ class CWIStyleWalletManager {
|
|
|
1078
1129
|
rootPrimaryKey = new sdk_1.SymmetricKey(primaryDecryptionKey).decrypt(this.currentUMPToken.passwordRecoveryPrimary);
|
|
1079
1130
|
rootPrivilegedKey = new sdk_1.SymmetricKey(this.XOR(rootPrimaryKey, derivedPasswordKey)).decrypt(this.currentUMPToken.passwordPrimaryPrivileged);
|
|
1080
1131
|
}
|
|
1081
|
-
await this.
|
|
1132
|
+
await this.setupRoot(rootPrimaryKey, rootPrivilegedKey);
|
|
1082
1133
|
await this.switchProfile(this.activeProfileId);
|
|
1083
1134
|
}
|
|
1084
1135
|
/** Handles the password step for a new user — generates keys, builds UMP token, publishes on-chain. */
|
|
1085
|
-
async
|
|
1136
|
+
async createNewUser(password) {
|
|
1086
1137
|
if (this.authenticationMode !== 'presentation-key-and-password') {
|
|
1087
1138
|
throw new Error('New-user flow requires presentation key and password mode.');
|
|
1088
1139
|
}
|
|
@@ -1092,7 +1143,7 @@ class CWIStyleWalletManager {
|
|
|
1092
1143
|
const recoveryKey = (0, sdk_1.Random)(32);
|
|
1093
1144
|
await this.recoveryKeySaver(recoveryKey);
|
|
1094
1145
|
const passwordSalt = (0, sdk_1.Random)(32);
|
|
1095
|
-
const passwordKey = await derivePasswordKey({ passwordSalt, passwordKdf: this.kdfConfig },
|
|
1146
|
+
const passwordKey = await derivePasswordKey({ passwordSalt, passwordKdf: this.kdfConfig }, (0, utils_1.toArray)(password, 'utf8'));
|
|
1096
1147
|
const rootPrimaryKey = (0, sdk_1.Random)(32);
|
|
1097
1148
|
const rootPrivilegedKey = (0, sdk_1.Random)(32);
|
|
1098
1149
|
// Build XOR-combined symmetric keys
|
|
@@ -1111,8 +1162,8 @@ class CWIStyleWalletManager {
|
|
|
1111
1162
|
presentationRecoveryPrimary: presentationRecovery.encrypt(rootPrimaryKey),
|
|
1112
1163
|
passwordPrimaryPrivileged: primaryPassword.encrypt(rootPrivilegedKey),
|
|
1113
1164
|
presentationRecoveryPrivileged: presentationRecovery.encrypt(rootPrivilegedKey),
|
|
1114
|
-
presentationHash:
|
|
1115
|
-
recoveryHash:
|
|
1165
|
+
presentationHash: (0, Hash_1.sha256)(this.presentationKey),
|
|
1166
|
+
recoveryHash: (0, Hash_1.sha256)(recoveryKey),
|
|
1116
1167
|
presentationKeyEncrypted: await wrapKey(this.presentationKey),
|
|
1117
1168
|
passwordKeyEncrypted: await wrapKey(passwordKey),
|
|
1118
1169
|
recoveryKeyEncrypted: await wrapKey(recoveryKey),
|
|
@@ -1121,7 +1172,7 @@ class CWIStyleWalletManager {
|
|
|
1121
1172
|
passwordKdf: this.kdfConfig
|
|
1122
1173
|
};
|
|
1123
1174
|
this.currentUMPToken = newToken;
|
|
1124
|
-
await this.
|
|
1175
|
+
await this.setupRoot(rootPrimaryKey);
|
|
1125
1176
|
await this.switchProfile(exports.DEFAULT_PROFILE_ID);
|
|
1126
1177
|
// Fund the *default* wallet if funder provided
|
|
1127
1178
|
if (this.newWalletFunder != null && this.underlying != null) {
|
|
@@ -1131,7 +1182,7 @@ class CWIStyleWalletManager {
|
|
|
1131
1182
|
catch (error) {
|
|
1132
1183
|
this.telemetry.capture({
|
|
1133
1184
|
name: 'wallet-toolbox.authentication.new-wallet-funding.failed',
|
|
1134
|
-
component:
|
|
1185
|
+
component: CWI_COMPONENT,
|
|
1135
1186
|
severity: 'error',
|
|
1136
1187
|
error: new Error('New wallet funding failed.')
|
|
1137
1188
|
});
|
|
@@ -1161,7 +1212,7 @@ class CWIStyleWalletManager {
|
|
|
1161
1212
|
}
|
|
1162
1213
|
if (this.authenticationMode === 'recovery-key-and-password') {
|
|
1163
1214
|
// Wait for password
|
|
1164
|
-
const hash =
|
|
1215
|
+
const hash = (0, Hash_1.sha256)(recoveryKey);
|
|
1165
1216
|
const token = await this.UMPTokenInteractor.findByRecoveryKeyHash(hash);
|
|
1166
1217
|
if (token == null)
|
|
1167
1218
|
throw new Error('No user found with this recovery key');
|
|
@@ -1179,7 +1230,7 @@ class CWIStyleWalletManager {
|
|
|
1179
1230
|
const rootPrimaryKey = new sdk_1.SymmetricKey(xorKey).decrypt(this.currentUMPToken.presentationRecoveryPrimary);
|
|
1180
1231
|
const rootPrivilegedKey = new sdk_1.SymmetricKey(xorKey).decrypt(this.currentUMPToken.presentationRecoveryPrivileged);
|
|
1181
1232
|
// Build root infrastructure, load profiles, switch to default
|
|
1182
|
-
await this.
|
|
1233
|
+
await this.setupRoot(rootPrimaryKey, rootPrivilegedKey);
|
|
1183
1234
|
await this.switchProfile(this.activeProfileId);
|
|
1184
1235
|
}
|
|
1185
1236
|
}
|
|
@@ -1196,7 +1247,7 @@ class CWIStyleWalletManager {
|
|
|
1196
1247
|
throw new Error('No root primary key or current UMP token set');
|
|
1197
1248
|
}
|
|
1198
1249
|
const snapshotKey = (0, sdk_1.Random)(32);
|
|
1199
|
-
const snapshotPreimageWriter = new
|
|
1250
|
+
const snapshotPreimageWriter = new utils_1.Writer();
|
|
1200
1251
|
// Write root primary key
|
|
1201
1252
|
snapshotPreimageWriter.write(this.rootPrimaryKey);
|
|
1202
1253
|
// Write serialized UMP token (must have outpoint)
|
|
@@ -1210,7 +1261,7 @@ class CWIStyleWalletManager {
|
|
|
1210
1261
|
const snapshotPreimage = snapshotPreimageWriter.toArray();
|
|
1211
1262
|
const snapshotPayload = new sdk_1.SymmetricKey(snapshotKey).encrypt(snapshotPreimage);
|
|
1212
1263
|
// Build final snapshot (Version 2)
|
|
1213
|
-
const snapshotWriter = new
|
|
1264
|
+
const snapshotWriter = new utils_1.Writer();
|
|
1214
1265
|
snapshotWriter.writeUInt8(2); // Version
|
|
1215
1266
|
snapshotWriter.write(snapshotKey);
|
|
1216
1267
|
snapshotWriter.write(this.activeProfileId); // Active profile ID
|
|
@@ -1221,7 +1272,7 @@ class CWIStyleWalletManager {
|
|
|
1221
1272
|
}
|
|
1222
1273
|
this.telemetry.capture({
|
|
1223
1274
|
name: 'wallet-toolbox.snapshot.saved',
|
|
1224
|
-
component:
|
|
1275
|
+
component: CWI_COMPONENT,
|
|
1225
1276
|
severity: 'info',
|
|
1226
1277
|
attributes: {
|
|
1227
1278
|
formatVersion: 2,
|
|
@@ -1243,7 +1294,7 @@ class CWIStyleWalletManager {
|
|
|
1243
1294
|
snapshot.some(byte => !Number.isInteger(byte) || byte < 0 || byte > 255)) {
|
|
1244
1295
|
throw new Error('Snapshot is empty, oversized, or contains invalid bytes.');
|
|
1245
1296
|
}
|
|
1246
|
-
const reader = new
|
|
1297
|
+
const reader = new utils_1.Reader(snapshot);
|
|
1247
1298
|
const version = reader.readUInt8();
|
|
1248
1299
|
let snapshotKey;
|
|
1249
1300
|
let encryptedPayload;
|
|
@@ -1262,22 +1313,22 @@ class CWIStyleWalletManager {
|
|
|
1262
1313
|
}
|
|
1263
1314
|
// Decrypt payload
|
|
1264
1315
|
const decryptedPayload = new sdk_1.SymmetricKey(snapshotKey).decrypt(encryptedPayload);
|
|
1265
|
-
const payloadReader = new
|
|
1316
|
+
const payloadReader = new utils_1.Reader(decryptedPayload);
|
|
1266
1317
|
// Read root primary key
|
|
1267
1318
|
const rootPrimaryKey = payloadReader.read(32);
|
|
1268
1319
|
// Read serialized UMP token
|
|
1269
|
-
const tokenLen = payloadReader.
|
|
1320
|
+
const tokenLen = payloadReader.readVarIntNumStrict(false);
|
|
1270
1321
|
const tokenBytes = payloadReader.read(tokenLen);
|
|
1271
1322
|
const token = this.deserializeUMPToken(tokenBytes);
|
|
1272
1323
|
// Assign loaded data
|
|
1273
1324
|
this.currentUMPToken = token;
|
|
1274
1325
|
// Setup root infrastructure, load profiles, and switch to the loaded active profile
|
|
1275
|
-
await this.
|
|
1326
|
+
await this.setupRoot(rootPrimaryKey); // Will automatically load profiles
|
|
1276
1327
|
await this.switchProfile(activeProfileId); // Switch to the profile saved in the snapshot
|
|
1277
1328
|
this.authenticationFlow = 'existing-user'; // Loading implies existing user
|
|
1278
1329
|
this.telemetry.capture({
|
|
1279
1330
|
name: 'wallet-toolbox.snapshot.loaded',
|
|
1280
|
-
component:
|
|
1331
|
+
component: CWI_COMPONENT,
|
|
1281
1332
|
severity: 'info',
|
|
1282
1333
|
attributes: {
|
|
1283
1334
|
formatVersion: version,
|
|
@@ -1289,7 +1340,7 @@ class CWIStyleWalletManager {
|
|
|
1289
1340
|
this.destroy(); // Clear state on error
|
|
1290
1341
|
this.telemetry.capture({
|
|
1291
1342
|
name: 'wallet-toolbox.snapshot.load-failed',
|
|
1292
|
-
component:
|
|
1343
|
+
component: CWI_COMPONENT,
|
|
1293
1344
|
severity: 'error',
|
|
1294
1345
|
error
|
|
1295
1346
|
});
|
|
@@ -1318,7 +1369,7 @@ class CWIStyleWalletManager {
|
|
|
1318
1369
|
return false;
|
|
1319
1370
|
}
|
|
1320
1371
|
this.currentUMPToken = refreshed;
|
|
1321
|
-
await this.
|
|
1372
|
+
await this.setupRoot(this.rootPrimaryKey);
|
|
1322
1373
|
this.saveSnapshot();
|
|
1323
1374
|
return true;
|
|
1324
1375
|
}
|
|
@@ -1395,7 +1446,7 @@ class CWIStyleWalletManager {
|
|
|
1395
1446
|
};
|
|
1396
1447
|
this.profiles.push(newProfile);
|
|
1397
1448
|
// Update the UMP token with the new profile list
|
|
1398
|
-
await this.
|
|
1449
|
+
await this.updateFactors(this.currentUMPToken.passwordSalt,
|
|
1399
1450
|
// Need to re-derive/decrypt factors needed for re-encryption
|
|
1400
1451
|
await this.getFactor('passwordKey'), await this.getFactor('presentationKey'), await this.getFactor('recoveryKey'), this.rootPrimaryKey, await this.getFactor('privilegedKey'), // Get ROOT privileged key
|
|
1401
1452
|
this.profiles // Pass the updated profile list
|
|
@@ -1430,7 +1481,7 @@ class CWIStyleWalletManager {
|
|
|
1430
1481
|
await this.switchProfile(exports.DEFAULT_PROFILE_ID); // This rebuilds the wallet
|
|
1431
1482
|
}
|
|
1432
1483
|
// Update the UMP token
|
|
1433
|
-
await this.
|
|
1484
|
+
await this.updateFactors(this.currentUMPToken.passwordSalt, await this.getFactor('passwordKey'), await this.getFactor('presentationKey'), await this.getFactor('recoveryKey'), this.rootPrimaryKey, await this.getFactor('privilegedKey'), // Get ROOT privileged key
|
|
1434
1485
|
this.profiles // Pass updated list
|
|
1435
1486
|
);
|
|
1436
1487
|
}
|
|
@@ -1494,12 +1545,12 @@ class CWIStyleWalletManager {
|
|
|
1494
1545
|
passwordSalt,
|
|
1495
1546
|
passwordKdf: kdfToUse
|
|
1496
1547
|
};
|
|
1497
|
-
const newPasswordKey = await derivePasswordKey(tempTokenForKdf,
|
|
1548
|
+
const newPasswordKey = await derivePasswordKey(tempTokenForKdf, (0, utils_1.toArray)(newPassword, 'utf8'));
|
|
1498
1549
|
// Decrypt existing factors needed for re-encryption, using the *root* privileged key manager
|
|
1499
1550
|
const recoveryKey = await this.getFactor('recoveryKey');
|
|
1500
1551
|
const presentationKey = await this.getFactor('presentationKey');
|
|
1501
1552
|
const rootPrivilegedKey = await this.getFactor('privilegedKey'); // Get ROOT privileged key
|
|
1502
|
-
await this.
|
|
1553
|
+
await this.updateFactors(passwordSalt, newPasswordKey, presentationKey, recoveryKey, this.rootPrimaryKey, rootPrivilegedKey, // Pass the explicitly fetched root key
|
|
1503
1554
|
this.profiles // Preserve existing profiles
|
|
1504
1555
|
);
|
|
1505
1556
|
}
|
|
@@ -1510,7 +1561,7 @@ class CWIStyleWalletManager {
|
|
|
1510
1561
|
if (!this.authenticated || this.currentUMPToken == null || this.rootPrivilegedKeyManager == null) {
|
|
1511
1562
|
throw new Error('Not authenticated or missing required data.');
|
|
1512
1563
|
}
|
|
1513
|
-
return
|
|
1564
|
+
return this.getFactor('recoveryKey');
|
|
1514
1565
|
}
|
|
1515
1566
|
/**
|
|
1516
1567
|
* Changes the user's recovery key. Prompts user to save the new key.
|
|
@@ -1529,7 +1580,7 @@ class CWIStyleWalletManager {
|
|
|
1529
1580
|
// Generate and save new recovery key
|
|
1530
1581
|
const newRecoveryKey = (0, sdk_1.Random)(32);
|
|
1531
1582
|
await this.recoveryKeySaver(newRecoveryKey);
|
|
1532
|
-
await this.
|
|
1583
|
+
await this.updateFactors(this.currentUMPToken.passwordSalt, passwordKey, presentationKey, newRecoveryKey, // Use the new key
|
|
1533
1584
|
this.rootPrimaryKey, rootPrivilegedKey, this.profiles // Preserve profiles
|
|
1534
1585
|
);
|
|
1535
1586
|
}
|
|
@@ -1550,7 +1601,7 @@ class CWIStyleWalletManager {
|
|
|
1550
1601
|
const recoveryKey = await this.getFactor('recoveryKey');
|
|
1551
1602
|
const passwordKey = await this.getFactor('passwordKey');
|
|
1552
1603
|
const rootPrivilegedKey = await this.getFactor('privilegedKey'); // Get ROOT privileged key
|
|
1553
|
-
await this.
|
|
1604
|
+
await this.updateFactors(this.currentUMPToken.passwordSalt, passwordKey, newPresentationKey, // Use the new key
|
|
1554
1605
|
recoveryKey, this.rootPrimaryKey, rootPrivilegedKey, this.profiles // Preserve profiles
|
|
1555
1606
|
);
|
|
1556
1607
|
// Update the temporarily stored key if it was set
|
|
@@ -1620,7 +1671,7 @@ class CWIStyleWalletManager {
|
|
|
1620
1671
|
catch (error) {
|
|
1621
1672
|
this.telemetry.capture({
|
|
1622
1673
|
name: 'wallet-toolbox.authentication.factor-decryption.failed',
|
|
1623
|
-
component:
|
|
1674
|
+
component: CWI_COMPONENT,
|
|
1624
1675
|
severity: 'error',
|
|
1625
1676
|
attributes: { factor: factorName },
|
|
1626
1677
|
error
|
|
@@ -1633,7 +1684,7 @@ class CWIStyleWalletManager {
|
|
|
1633
1684
|
* Recomputes UMP token fields with updated factors and profiles, then publishes the update.
|
|
1634
1685
|
* This operation requires the *root* privileged key and the *default* profile wallet.
|
|
1635
1686
|
*/
|
|
1636
|
-
async
|
|
1687
|
+
async updateFactors(passwordSalt, passwordKey, presentationKey, recoveryKey, rootPrimaryKey, rootPrivilegedKey, // Explicitly pass the root key bytes
|
|
1637
1688
|
profiles // Pass current/new profiles list
|
|
1638
1689
|
) {
|
|
1639
1690
|
if (!this.authenticated || this.rootPrimaryKey == null || this.currentUMPToken == null) {
|
|
@@ -1655,7 +1706,7 @@ class CWIStyleWalletManager {
|
|
|
1655
1706
|
let profilesEncrypted;
|
|
1656
1707
|
if (profiles != null && profiles.length > 0) {
|
|
1657
1708
|
const profilesJson = JSON.stringify(profiles);
|
|
1658
|
-
const profilesBytes =
|
|
1709
|
+
const profilesBytes = (0, utils_1.toArray)(profilesJson, 'utf8');
|
|
1659
1710
|
profilesEncrypted = new sdk_1.SymmetricKey(rootPrimaryKey).encrypt(profilesBytes);
|
|
1660
1711
|
}
|
|
1661
1712
|
// Construct the new UMP token data.
|
|
@@ -1670,8 +1721,8 @@ class CWIStyleWalletManager {
|
|
|
1670
1721
|
presentationRecoveryPrimary: presentationRecovery.encrypt(rootPrimaryKey),
|
|
1671
1722
|
passwordPrimaryPrivileged: primaryPassword.encrypt(rootPrivilegedKey),
|
|
1672
1723
|
presentationRecoveryPrivileged: presentationRecovery.encrypt(rootPrivilegedKey),
|
|
1673
|
-
presentationHash:
|
|
1674
|
-
recoveryHash:
|
|
1724
|
+
presentationHash: (0, Hash_1.sha256)(presentationKey),
|
|
1725
|
+
recoveryHash: (0, Hash_1.sha256)(recoveryKey),
|
|
1675
1726
|
presentationKeyEncrypted: (await tempRootPrivilegedKeyManager.encrypt({
|
|
1676
1727
|
plaintext: presentationKey,
|
|
1677
1728
|
protocolID: [2, 'admin key wrapping'],
|
|
@@ -1703,7 +1754,7 @@ class CWIStyleWalletManager {
|
|
|
1703
1754
|
if (!currentActiveId.every(x => x === 0)) {
|
|
1704
1755
|
this.telemetry.capture({
|
|
1705
1756
|
name: 'wallet-toolbox.ump.profile-switch.started',
|
|
1706
|
-
component:
|
|
1757
|
+
component: CWI_COMPONENT,
|
|
1707
1758
|
severity: 'debug',
|
|
1708
1759
|
attributes: { reason: 'token-update' }
|
|
1709
1760
|
});
|
|
@@ -1727,7 +1778,7 @@ class CWIStyleWalletManager {
|
|
|
1727
1778
|
await this.switchProfile(currentActiveId);
|
|
1728
1779
|
this.telemetry.capture({
|
|
1729
1780
|
name: 'wallet-toolbox.ump.profile-switch.completed',
|
|
1730
|
-
component:
|
|
1781
|
+
component: CWI_COMPONENT,
|
|
1731
1782
|
severity: 'debug',
|
|
1732
1783
|
attributes: { reason: 'token-update' }
|
|
1733
1784
|
});
|
|
@@ -1742,7 +1793,7 @@ class CWIStyleWalletManager {
|
|
|
1742
1793
|
if (!token.currentOutpoint) {
|
|
1743
1794
|
throw new Error('Token must have outpoint for serialization');
|
|
1744
1795
|
}
|
|
1745
|
-
const writer = new
|
|
1796
|
+
const writer = new utils_1.Writer();
|
|
1746
1797
|
const hasKdfMetadata = token.umpVersion === 3 && token.passwordKdf;
|
|
1747
1798
|
writer.writeUInt8(hasKdfMetadata ? 3 : 2); // Version 3 for KDF, 2 for legacy
|
|
1748
1799
|
const writeArray = (arr) => {
|
|
@@ -1773,7 +1824,7 @@ class CWIStyleWalletManager {
|
|
|
1773
1824
|
if (hasKdfMetadata) {
|
|
1774
1825
|
writer.writeUInt8(1); // Flag indicating KDF metadata present
|
|
1775
1826
|
writer.writeUInt8(token.umpVersion); // On-chain UMP version
|
|
1776
|
-
const algorithmBytes =
|
|
1827
|
+
const algorithmBytes = (0, utils_1.toArray)(token.passwordKdf.algorithm, 'utf8');
|
|
1777
1828
|
writeArray(algorithmBytes);
|
|
1778
1829
|
// Serialize KDF params as JSON
|
|
1779
1830
|
const kdfParams = {
|
|
@@ -1788,7 +1839,7 @@ class CWIStyleWalletManager {
|
|
|
1788
1839
|
if (token.passwordKdf.hashLength !== undefined) {
|
|
1789
1840
|
kdfParams.hashLength = token.passwordKdf.hashLength;
|
|
1790
1841
|
}
|
|
1791
|
-
const kdfParamsBytes =
|
|
1842
|
+
const kdfParamsBytes = (0, utils_1.toArray)(JSON.stringify(kdfParams), 'utf8');
|
|
1792
1843
|
writeArray(kdfParamsBytes);
|
|
1793
1844
|
}
|
|
1794
1845
|
else if (writer.toArray()[0] === 3) {
|
|
@@ -1796,7 +1847,7 @@ class CWIStyleWalletManager {
|
|
|
1796
1847
|
writer.writeUInt8(0); // Flag indicating no KDF metadata
|
|
1797
1848
|
}
|
|
1798
1849
|
// Write outpoint string
|
|
1799
|
-
const outpointBytes =
|
|
1850
|
+
const outpointBytes = (0, utils_1.toArray)(token.currentOutpoint, 'utf8');
|
|
1800
1851
|
writer.writeVarIntNum(outpointBytes.length);
|
|
1801
1852
|
writer.write(outpointBytes);
|
|
1802
1853
|
return writer.toArray();
|
|
@@ -1805,13 +1856,13 @@ class CWIStyleWalletManager {
|
|
|
1805
1856
|
* Deserializes a UMP token from binary format (Handles Version 1, 2, and 3).
|
|
1806
1857
|
*/
|
|
1807
1858
|
deserializeUMPToken(bin) {
|
|
1808
|
-
const reader = new
|
|
1859
|
+
const reader = new utils_1.Reader(bin);
|
|
1809
1860
|
const version = reader.readUInt8();
|
|
1810
1861
|
if (version !== 1 && version !== 2 && version !== 3) {
|
|
1811
1862
|
throw new Error(`Unsupported UMP token serialization version: ${version}`);
|
|
1812
1863
|
}
|
|
1813
1864
|
const readArray = () => {
|
|
1814
|
-
const length = reader.
|
|
1865
|
+
const length = reader.readVarIntNumStrict(false);
|
|
1815
1866
|
if (length <= 0 || length > exports.MAX_STATE_SNAPSHOT_BYTES) {
|
|
1816
1867
|
throw new Error('UMP token field exceeds allowed bounds.');
|
|
1817
1868
|
}
|
|
@@ -1845,9 +1896,9 @@ class CWIStyleWalletManager {
|
|
|
1845
1896
|
if (kdfFlag === 1) {
|
|
1846
1897
|
umpVersion = reader.readUInt8(); // On-chain UMP version
|
|
1847
1898
|
const algorithmBytes = readArray();
|
|
1848
|
-
const algorithm =
|
|
1899
|
+
const algorithm = (0, utils_1.toUTF8)(algorithmBytes);
|
|
1849
1900
|
const kdfParamsBytes = readArray();
|
|
1850
|
-
const kdfParamsJson =
|
|
1901
|
+
const kdfParamsJson = (0, utils_1.toUTF8)(kdfParamsBytes);
|
|
1851
1902
|
const kdfParams = JSON.parse(kdfParamsJson);
|
|
1852
1903
|
passwordKdf = {
|
|
1853
1904
|
algorithm,
|
|
@@ -1862,9 +1913,9 @@ class CWIStyleWalletManager {
|
|
|
1862
1913
|
}
|
|
1863
1914
|
}
|
|
1864
1915
|
// Read outpoint string
|
|
1865
|
-
const outpointLen = reader.
|
|
1916
|
+
const outpointLen = reader.readVarIntNumStrict(false);
|
|
1866
1917
|
const outpointBytes = reader.read(outpointLen);
|
|
1867
|
-
const currentOutpoint =
|
|
1918
|
+
const currentOutpoint = (0, utils_1.toUTF8)(outpointBytes);
|
|
1868
1919
|
if (currentOutpoint.length > 128 || !/^[^\s.:]+[.:]\d+$/.test(currentOutpoint)) {
|
|
1869
1920
|
throw new Error('Serialized UMP token contains an invalid outpoint.');
|
|
1870
1921
|
}
|
|
@@ -1895,11 +1946,11 @@ class CWIStyleWalletManager {
|
|
|
1895
1946
|
* @param rootPrimaryKey The user's root primary key (32 bytes).
|
|
1896
1947
|
* @param ephemeralRootPrivilegedKey Optional root privileged key (e.g., during recovery flows).
|
|
1897
1948
|
*/
|
|
1898
|
-
async
|
|
1949
|
+
async setupRoot(rootKey, ephemeralRootPrivilegedKey) {
|
|
1899
1950
|
if (this.currentUMPToken == null) {
|
|
1900
1951
|
throw new Error('A UMP token must exist before setting up root infrastructure!');
|
|
1901
1952
|
}
|
|
1902
|
-
this.rootPrimaryKey =
|
|
1953
|
+
this.rootPrimaryKey = rootKey;
|
|
1903
1954
|
// Store ephemeral key if provided, for one-time use by the manager
|
|
1904
1955
|
let oneTimePrivilegedKey = ephemeralRootPrivilegedKey == null ? undefined : new sdk_1.PrivateKey(ephemeralRootPrivilegedKey);
|
|
1905
1956
|
// Create the ROOT PrivilegedKeyManager
|
|
@@ -1913,7 +1964,7 @@ class CWIStyleWalletManager {
|
|
|
1913
1964
|
// 2. Otherwise, derive from password
|
|
1914
1965
|
const password = await this.passwordRetriever(reason, async (passwordCandidate) => {
|
|
1915
1966
|
try {
|
|
1916
|
-
const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken,
|
|
1967
|
+
const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken, (0, utils_1.toArray)(passwordCandidate, 'utf8'));
|
|
1917
1968
|
const privilegedDecryptor = this.XOR(this.rootPrimaryKey, derivedPasswordKey);
|
|
1918
1969
|
const decryptedPrivileged = new sdk_1.SymmetricKey(privilegedDecryptor).decrypt(this.currentUMPToken.passwordPrimaryPrivileged);
|
|
1919
1970
|
return !!decryptedPrivileged; // Test passes if decryption works
|
|
@@ -1926,7 +1977,7 @@ class CWIStyleWalletManager {
|
|
|
1926
1977
|
}
|
|
1927
1978
|
});
|
|
1928
1979
|
// Decrypt the root privileged key using the confirmed password (with token-driven KDF)
|
|
1929
|
-
const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken,
|
|
1980
|
+
const derivedPasswordKey = await derivePasswordKey(this.currentUMPToken, (0, utils_1.toArray)(password, 'utf8'));
|
|
1930
1981
|
const privilegedDecryptor = this.XOR(this.rootPrimaryKey, derivedPasswordKey);
|
|
1931
1982
|
const rootPrivilegedBytes = new sdk_1.SymmetricKey(privilegedDecryptor).decrypt(this.currentUMPToken.passwordPrimaryPrivileged);
|
|
1932
1983
|
return new sdk_1.PrivateKey(rootPrivilegedBytes); // Return the ROOT key object
|
|
@@ -1935,8 +1986,8 @@ class CWIStyleWalletManager {
|
|
|
1935
1986
|
this.profiles = []; // Clear existing profiles before loading
|
|
1936
1987
|
if (this.currentUMPToken.profilesEncrypted != null && this.currentUMPToken.profilesEncrypted.length > 0) {
|
|
1937
1988
|
try {
|
|
1938
|
-
const decryptedProfileBytes = new sdk_1.SymmetricKey(
|
|
1939
|
-
const profilesJson =
|
|
1989
|
+
const decryptedProfileBytes = new sdk_1.SymmetricKey(rootKey).decrypt(this.currentUMPToken.profilesEncrypted);
|
|
1990
|
+
const profilesJson = (0, utils_1.toUTF8)(decryptedProfileBytes);
|
|
1940
1991
|
const profiles = JSON.parse(profilesJson);
|
|
1941
1992
|
if (!Array.isArray(profiles) || profiles.length > 1000 || !profiles.every(isValidProfile)) {
|
|
1942
1993
|
throw new Error('Decrypted profile data is invalid or exceeds supported bounds.');
|
|
@@ -1947,7 +1998,7 @@ class CWIStyleWalletManager {
|
|
|
1947
1998
|
this.profiles = [];
|
|
1948
1999
|
this.telemetry.capture({
|
|
1949
2000
|
name: 'wallet-toolbox.profile.load-failed',
|
|
1950
|
-
component:
|
|
2001
|
+
component: CWI_COMPONENT,
|
|
1951
2002
|
severity: 'error',
|
|
1952
2003
|
error
|
|
1953
2004
|
});
|
|
@@ -1965,7 +2016,7 @@ class CWIStyleWalletManager {
|
|
|
1965
2016
|
* Includes authentication checks and admin originator protection.
|
|
1966
2017
|
* ---------------------------------------------------------------------------------------
|
|
1967
2018
|
*/
|
|
1968
|
-
|
|
2019
|
+
assertReady(originator) {
|
|
1969
2020
|
if (!this.authenticated) {
|
|
1970
2021
|
throw new Error('User is not authenticated.');
|
|
1971
2022
|
}
|
|
@@ -1979,92 +2030,92 @@ class CWIStyleWalletManager {
|
|
|
1979
2030
|
}
|
|
1980
2031
|
// Example proxy method (repeat pattern for all others)
|
|
1981
2032
|
async getPublicKey(args, originator) {
|
|
1982
|
-
this.
|
|
1983
|
-
return
|
|
2033
|
+
this.assertReady(originator);
|
|
2034
|
+
return this.underlying.getPublicKey(args, originator);
|
|
1984
2035
|
}
|
|
1985
2036
|
async revealCounterpartyKeyLinkage(args, originator) {
|
|
1986
|
-
this.
|
|
1987
|
-
return
|
|
2037
|
+
this.assertReady(originator);
|
|
2038
|
+
return this.underlying.revealCounterpartyKeyLinkage(args, originator);
|
|
1988
2039
|
}
|
|
1989
2040
|
async revealSpecificKeyLinkage(args, originator) {
|
|
1990
|
-
this.
|
|
1991
|
-
return
|
|
2041
|
+
this.assertReady(originator);
|
|
2042
|
+
return this.underlying.revealSpecificKeyLinkage(args, originator);
|
|
1992
2043
|
}
|
|
1993
2044
|
async encrypt(args, originator) {
|
|
1994
|
-
this.
|
|
1995
|
-
return
|
|
2045
|
+
this.assertReady(originator);
|
|
2046
|
+
return this.underlying.encrypt(args, originator);
|
|
1996
2047
|
}
|
|
1997
2048
|
async decrypt(args, originator) {
|
|
1998
|
-
this.
|
|
1999
|
-
return
|
|
2049
|
+
this.assertReady(originator);
|
|
2050
|
+
return this.underlying.decrypt(args, originator);
|
|
2000
2051
|
}
|
|
2001
2052
|
async createHmac(args, originator) {
|
|
2002
|
-
this.
|
|
2003
|
-
return
|
|
2053
|
+
this.assertReady(originator);
|
|
2054
|
+
return this.underlying.createHmac(args, originator);
|
|
2004
2055
|
}
|
|
2005
2056
|
async verifyHmac(args, originator) {
|
|
2006
|
-
this.
|
|
2007
|
-
return
|
|
2057
|
+
this.assertReady(originator);
|
|
2058
|
+
return this.underlying.verifyHmac(args, originator);
|
|
2008
2059
|
}
|
|
2009
2060
|
async createSignature(args, originator) {
|
|
2010
|
-
this.
|
|
2011
|
-
return
|
|
2061
|
+
this.assertReady(originator);
|
|
2062
|
+
return this.underlying.createSignature(args, originator);
|
|
2012
2063
|
}
|
|
2013
2064
|
async verifySignature(args, originator) {
|
|
2014
|
-
this.
|
|
2015
|
-
return
|
|
2065
|
+
this.assertReady(originator);
|
|
2066
|
+
return this.underlying.verifySignature(args, originator);
|
|
2016
2067
|
}
|
|
2017
2068
|
async createAction(args, originator) {
|
|
2018
|
-
this.
|
|
2019
|
-
return
|
|
2069
|
+
this.assertReady(originator);
|
|
2070
|
+
return this.underlying.createAction(args, originator);
|
|
2020
2071
|
}
|
|
2021
2072
|
async signAction(args, originator) {
|
|
2022
|
-
this.
|
|
2023
|
-
return
|
|
2073
|
+
this.assertReady(originator);
|
|
2074
|
+
return this.underlying.signAction(args, originator);
|
|
2024
2075
|
}
|
|
2025
2076
|
async abortAction(args, originator) {
|
|
2026
|
-
this.
|
|
2027
|
-
return
|
|
2077
|
+
this.assertReady(originator);
|
|
2078
|
+
return this.underlying.abortAction(args, originator);
|
|
2028
2079
|
}
|
|
2029
2080
|
async listActions(args, originator) {
|
|
2030
|
-
this.
|
|
2031
|
-
return
|
|
2081
|
+
this.assertReady(originator);
|
|
2082
|
+
return this.underlying.listActions(args, originator);
|
|
2032
2083
|
}
|
|
2033
2084
|
async internalizeAction(args, originator) {
|
|
2034
|
-
this.
|
|
2035
|
-
return
|
|
2085
|
+
this.assertReady(originator);
|
|
2086
|
+
return this.underlying.internalizeAction(args, originator);
|
|
2036
2087
|
}
|
|
2037
2088
|
async listOutputs(args, originator) {
|
|
2038
|
-
this.
|
|
2039
|
-
return
|
|
2089
|
+
this.assertReady(originator);
|
|
2090
|
+
return this.underlying.listOutputs(args, originator);
|
|
2040
2091
|
}
|
|
2041
2092
|
async relinquishOutput(args, originator) {
|
|
2042
|
-
this.
|
|
2043
|
-
return
|
|
2093
|
+
this.assertReady(originator);
|
|
2094
|
+
return this.underlying.relinquishOutput(args, originator);
|
|
2044
2095
|
}
|
|
2045
2096
|
async acquireCertificate(args, originator) {
|
|
2046
|
-
this.
|
|
2047
|
-
return
|
|
2097
|
+
this.assertReady(originator);
|
|
2098
|
+
return this.underlying.acquireCertificate(args, originator);
|
|
2048
2099
|
}
|
|
2049
2100
|
async listCertificates(args, originator) {
|
|
2050
|
-
this.
|
|
2051
|
-
return
|
|
2101
|
+
this.assertReady(originator);
|
|
2102
|
+
return this.underlying.listCertificates(args, originator);
|
|
2052
2103
|
}
|
|
2053
2104
|
async proveCertificate(args, originator) {
|
|
2054
|
-
this.
|
|
2055
|
-
return
|
|
2105
|
+
this.assertReady(originator);
|
|
2106
|
+
return this.underlying.proveCertificate(args, originator);
|
|
2056
2107
|
}
|
|
2057
2108
|
async relinquishCertificate(args, originator) {
|
|
2058
|
-
this.
|
|
2059
|
-
return
|
|
2109
|
+
this.assertReady(originator);
|
|
2110
|
+
return this.underlying.relinquishCertificate(args, originator);
|
|
2060
2111
|
}
|
|
2061
2112
|
async discoverByIdentityKey(args, originator) {
|
|
2062
|
-
this.
|
|
2063
|
-
return
|
|
2113
|
+
this.assertReady(originator);
|
|
2114
|
+
return this.underlying.discoverByIdentityKey(args, originator);
|
|
2064
2115
|
}
|
|
2065
2116
|
async discoverByAttributes(args, originator) {
|
|
2066
|
-
this.
|
|
2067
|
-
return
|
|
2117
|
+
this.assertReady(originator);
|
|
2118
|
+
return this.underlying.discoverByAttributes(args, originator);
|
|
2068
2119
|
}
|
|
2069
2120
|
async isAuthenticated(_, originator) {
|
|
2070
2121
|
if (!this.authenticated) {
|
|
@@ -2082,23 +2133,23 @@ class CWIStyleWalletManager {
|
|
|
2082
2133
|
while (!this.authenticated || this.underlying == null) {
|
|
2083
2134
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
2084
2135
|
}
|
|
2085
|
-
return
|
|
2136
|
+
return this.underlying.waitForAuthentication({}, originator);
|
|
2086
2137
|
}
|
|
2087
2138
|
async getHeight(_, originator) {
|
|
2088
|
-
this.
|
|
2089
|
-
return
|
|
2139
|
+
this.assertReady(originator);
|
|
2140
|
+
return this.underlying.getHeight({}, originator);
|
|
2090
2141
|
}
|
|
2091
2142
|
async getHeaderForHeight(args, originator) {
|
|
2092
|
-
this.
|
|
2093
|
-
return
|
|
2143
|
+
this.assertReady(originator);
|
|
2144
|
+
return this.underlying.getHeaderForHeight(args, originator);
|
|
2094
2145
|
}
|
|
2095
2146
|
async getNetwork(_, originator) {
|
|
2096
|
-
this.
|
|
2097
|
-
return
|
|
2147
|
+
this.assertReady(originator);
|
|
2148
|
+
return this.underlying.getNetwork({}, originator);
|
|
2098
2149
|
}
|
|
2099
2150
|
async getVersion(_, originator) {
|
|
2100
|
-
this.
|
|
2101
|
-
return
|
|
2151
|
+
this.assertReady(originator);
|
|
2152
|
+
return this.underlying.getVersion({}, originator);
|
|
2102
2153
|
}
|
|
2103
2154
|
}
|
|
2104
2155
|
exports.CWIStyleWalletManager = CWIStyleWalletManager;
|