@bopen-io/wallet-toolbox 2.6.2-brc153.5 → 2.14.5
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 +4 -3
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +3 -1
- 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 +12 -2
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.js +12 -17
- package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -1
- package/out/src/storage/StorageIdb.d.ts +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 +390 -105
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts +15 -5
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +187 -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 +32 -30
- 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 +359 -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 +372 -9
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
- package/out/src/storage/remoting/StorageMobile.d.ts +5 -0
- package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageMobile.js +13 -11
- package/out/src/storage/remoting/StorageMobile.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts +10 -1
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +221 -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 +4 -0
- package/out/src/storage/remoting/syncChunkBinary.d.ts.map +1 -0
- package/out/src/storage/remoting/syncChunkBinary.js +38 -0
- package/out/src/storage/remoting/syncChunkBinary.js.map +1 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.d.ts +5 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.d.ts.map +1 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.js +82 -0
- package/out/src/storage/remoting/validateRpcSyncProofs.js.map +1 -0
- package/out/src/storage/schema/KnexMigrations.d.ts +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 +36 -32
- package/docs/open-rpc/index.html +0 -46
package/CHANGELOG.md
CHANGED
|
@@ -4,8 +4,751 @@ This document captures the history of significant changes to the wallet-toolbox
|
|
|
4
4
|
The git commit history contains the details but is unable to draw
|
|
5
5
|
attention to changes that materially alter behavior or extend functionality.
|
|
6
6
|
|
|
7
|
+
## wallet-toolbox 2.14.5
|
|
8
|
+
|
|
9
|
+
- `WalletPermissionsManager` retires no-send transaction ownership and reference
|
|
10
|
+
aliases when `createAction` or `signAction` reports them as `sending` or
|
|
11
|
+
`unproven`, including sendWith-only calls and successful members of an
|
|
12
|
+
undelayed batch's review error. Failed or unreported actions retain their
|
|
13
|
+
originator binding for retry or abort. Cleanup visits only the retired
|
|
14
|
+
transaction's references instead of scanning the session's history.
|
|
15
|
+
|
|
16
|
+
## wallet-toolbox 2.14.4
|
|
17
|
+
|
|
18
|
+
- `discoverByIdentityKey` and `discoverByAttributes` keep each certificate's
|
|
19
|
+
`certifierInfo.description` within BRC-100's 5-50 UTF-8 bytes. The default
|
|
20
|
+
SocialCert (56 bytes) and Metanet Trust Services (55 bytes) descriptions
|
|
21
|
+
exceeded it, so `@bsv/sdk` 2.8.8+ rejected every discovery result from one of
|
|
22
|
+
them with `Invalid discoverByAttributes result
|
|
23
|
+
certificates[n].certifierInfo.description: expected 5–50 UTF-8 bytes`, which
|
|
24
|
+
broke `IdentityClient.resolveByAttributes` and `resolveByIdentityKey`. Both
|
|
25
|
+
defaults are shortened. Trust settings still accept descriptions of up to 500
|
|
26
|
+
bytes so stored settings stay readable; a longer one is cut at a code point
|
|
27
|
+
boundary when the result is built, and one under 5 bytes becomes
|
|
28
|
+
`Trusted certifier`.
|
|
29
|
+
- A non-admin `createAction` with `noSend` that `WalletPermissionsManager`
|
|
30
|
+
signs internally returned `noSendChange` outpoints on the unsigned txid next
|
|
31
|
+
to the signed `txid`, so `@bsv/sdk` 2.8.8+ rejected it with `Invalid
|
|
32
|
+
createAction result noSendChange[0]: expected an outpoint of the returned
|
|
33
|
+
transaction`. The outpoints now name the signed transaction (vouts are
|
|
34
|
+
unchanged by signing).
|
|
35
|
+
- That same no-send action could not be released: the caller only gets its
|
|
36
|
+
`txid`, and `abortAction` from a non-admin originator accepted only references
|
|
37
|
+
the manager had issued, which it drops once it signs. The originator that
|
|
38
|
+
created a no-send action can now abort it by that `txid`; other originators
|
|
39
|
+
still cannot, and a broadcast action is never abortable this way. The same
|
|
40
|
+
applies when the caller signs a `signAndProcess: false` no-send action itself
|
|
41
|
+
with `signAction`: it can then abort it by the `reference` it signed or by the
|
|
42
|
+
signed `txid`, where before `abortAction` failed with `The action reference
|
|
43
|
+
was not issued by this permissions manager.`
|
|
44
|
+
- `discoverByIdentityKey` and `discoverByAttributes` return the requested
|
|
45
|
+
`limit`/`offset` page (limit 10 when omitted). They returned every trusted
|
|
46
|
+
match, and `@bsv/sdk` rejects a page longer than the limit. `totalCertificates`
|
|
47
|
+
still counts every trusted match.
|
|
48
|
+
- `ChaintracksServiceClient`, `BHServiceClient` and `GoChaintracksServiceClient`
|
|
49
|
+
called `fetch` as a method of the client, which browsers refuse ("Failed to
|
|
50
|
+
execute 'fetch' on 'Window': Illegal invocation" in Chrome, "Can only call
|
|
51
|
+
Window.fetch on instances of Window" in WebKit). Any in-page wallet verifying
|
|
52
|
+
a merkle proof through them failed, for example `internalizeAction` of a BRC-29
|
|
53
|
+
payment. They now call the default or supplied `fetch` with no receiver.
|
|
54
|
+
|
|
55
|
+
## wallet-toolbox 2.14.3
|
|
56
|
+
|
|
57
|
+
- Surplus change shaping no longer splits change into outputs below the dust
|
|
58
|
+
floor. Baskets still on the legacy 32-sat `minimumDesiredUTXOValue` produced
|
|
59
|
+
split outputs that were later folded away, leaving a fee sized for the larger
|
|
60
|
+
transaction and failing with `generateChangeSdk error: required fee error`.
|
|
61
|
+
Each split output now gets at least `max(dustFloor, changeInitialSatoshis)`.
|
|
62
|
+
- `WalletPermissionsManager.abortAction` lets the admin originator abort any of
|
|
63
|
+
the wallet's actions, including signed `noSend` actions and actions from an
|
|
64
|
+
earlier session, which the in-memory pending-reference map no longer holds.
|
|
65
|
+
Other originators still need a reference this manager issued to them.
|
|
66
|
+
|
|
67
|
+
## wallet-toolbox 2.14.2
|
|
68
|
+
|
|
69
|
+
- Match complete English text tokens and default stopwords consistently with SDK 2.8.7; preserve quoted and excluded phrases. Scan ordered literal tokens without a combined wildcard expression. Direct filtering ignores inherited attributes and rejects non-string requested values without coercion.
|
|
70
|
+
|
|
71
|
+
- `discoverByAttributes` no longer drops every overlay result for `any`
|
|
72
|
+
searches. `filterCertificatesByAttributes` treated the identity overlay's
|
|
73
|
+
all-fields `any` search as a literal field name, so no certificate matched.
|
|
74
|
+
It now accepts a certificate when searchable decrypted fields satisfy the requested text terms,
|
|
75
|
+
and named attributes use the overlay's fuzzy matching (`userName` stays
|
|
76
|
+
exact). `any` follows the overlay's MongoDB text search: case- and
|
|
77
|
+
diacritic-insensitive, quoted phrases required, `-term` excluded, and
|
|
78
|
+
`profilePhoto`/`icon` not searched. Word stemming is not reproduced, so a
|
|
79
|
+
stem-only overlay match can still be dropped. Blank named attributes are
|
|
80
|
+
ignored, as on the overlay; a query with no usable attribute matches nothing.
|
|
81
|
+
Results are still bound to the query they answered.
|
|
82
|
+
|
|
83
|
+
## wallet-toolbox 2.14.1
|
|
84
|
+
|
|
85
|
+
- Keep exact action-spend metadata in a shared local WeakMap, preserving storage
|
|
86
|
+
service-charge authorization across permission-module transforms and separately
|
|
87
|
+
loaded core, client and mobile bundles without adding keys to public results.
|
|
88
|
+
- Consume the legacy internal Symbol before returning permission-managed results.
|
|
89
|
+
Completed and two-step `createAction` responses now pass the existing strict
|
|
90
|
+
binary BRC-100 codec. No app, wire, database, BRC-39 or recovery migration is
|
|
91
|
+
required; upgrade the wallet host and permission manager together. Reconcile
|
|
92
|
+
history before retrying an older host's failed response because the transaction
|
|
93
|
+
may already exist.
|
|
94
|
+
|
|
7
95
|
## wallet-toolbox (unreleased)
|
|
8
96
|
|
|
97
|
+
- Raise the `@bsv/sdk` peer dependency floor to `^2.8.0` in `@bsv/wallet-toolbox`,
|
|
98
|
+
`@bsv/wallet-toolbox-client`, and `@bsv/wallet-toolbox-mobile`. Value imports
|
|
99
|
+
used by the built mobile/client bundles and by internal helpers
|
|
100
|
+
(`TransactionEvidenceCoordinator`, `TransactionEvidenceError`,
|
|
101
|
+
`completeBoundAction`, `createPublicHTTPSFetch`, `decodeCanonicalPushDrop`,
|
|
102
|
+
`defaultTransactionEvidenceLimits`, `toUTF8Strict`,
|
|
103
|
+
`MAXIMUM_SEND_WITH_TRANSACTIONS`) do not exist in `@bsv/sdk` 2.4.1 through
|
|
104
|
+
2.7.1 despite the prior `^2.4.1` peer range; confirmed against the published
|
|
105
|
+
tarballs for each version.
|
|
106
|
+
- `Monitor`'s scheduler no longer stops running every task when the optional
|
|
107
|
+
Chaintracks header/reorg push subscription setup fails or is unimplemented.
|
|
108
|
+
`runOnce`/`startTasks` previously awaited `ready` directly, so any
|
|
109
|
+
`chaintracksWithEvents` failure (e.g. the built-in HTTP-polling
|
|
110
|
+
`ChaintracksServiceClient`, which documents `supportsReorgEvents: false` and
|
|
111
|
+
throws `Method not implemented.` from `subscribeHeaders`/`subscribeReorgs`)
|
|
112
|
+
rejected the whole task loop and permanently stopped `startTasks()`. Monitor
|
|
113
|
+
now skips the subscription attempt entirely when an event source declares
|
|
114
|
+
`supportsReorgEvents: false`, and otherwise retries subscription setup
|
|
115
|
+
opportunistically on the next tick, logging a `chaintracksEventsError`
|
|
116
|
+
monitor event, while every other scheduled task keeps running. A genuine
|
|
117
|
+
configured-chain mismatch still fails closed: subscriptions are never
|
|
118
|
+
registered against a `chaintracksWithEvents` source reporting the wrong
|
|
119
|
+
chain.
|
|
120
|
+
- Confirm `relinquishOutput`'s `basket` argument against the output's actual
|
|
121
|
+
current basket (looked up inside the same transaction) before clearing
|
|
122
|
+
`basketId`, instead of clearing it unconditionally. Rejects a basket that
|
|
123
|
+
does not contain the output, a basket name that does not exist, and an
|
|
124
|
+
already-unbasketed output, each with `WERR_INVALID_PARAMETER`. Without this,
|
|
125
|
+
`WalletPermissionsManager.relinquishOutput` (which only checks the
|
|
126
|
+
originator's access to the _claimed_ basket) let an app with permission on
|
|
127
|
+
any basket relinquish any output by outpoint, including another app's basket
|
|
128
|
+
output or the admin `default` change basket.
|
|
129
|
+
- Reject `internalizeAction` basket-insertion merges that would reclassify an
|
|
130
|
+
existing output out of a different basket it already occupies, closing a gap
|
|
131
|
+
where `validateBasketMerges()` only rejected reclassifying wallet-managed
|
|
132
|
+
change. An app with insertion permission on basket X could previously
|
|
133
|
+
internalize an already-known transaction and move another app's output from
|
|
134
|
+
basket Y into X, then spend it. Idempotent re-internalization into the same
|
|
135
|
+
basket, and inserting a currently unbasketed (non-managed-change) output —
|
|
136
|
+
including the documented default-basket legacy-recovery sweep — keep
|
|
137
|
+
working. The requested basket is resolved with a plain lookup so a rejected
|
|
138
|
+
request never creates it.
|
|
139
|
+
- Fix `WalletPermissionsManager` rejecting every sendMax `createAction` call.
|
|
140
|
+
`verifyRequestedOutputsPresent` now matches fixed-amount outputs first by
|
|
141
|
+
exact (script, satoshis), then matches any output requested with the
|
|
142
|
+
`maxPossibleSatoshis` sentinel by locking script alone against whatever is
|
|
143
|
+
left unused, and returns the resolved real amount per requested output.
|
|
144
|
+
`computeNetSpend` bills that resolved amount instead of the sentinel, so
|
|
145
|
+
spending authorization reflects the real funded value (previously ~21
|
|
146
|
+
million BSV) instead of throwing `The transaction returned for signing does
|
|
147
|
+
not contain caller-requested output ...`.
|
|
148
|
+
- Additively export `WalletMonitorTask`, `attemptToPostReqsToNetwork` (with its
|
|
149
|
+
`PostReqsToNetworkResult` type), `parseJsonRpc`/`stringifyJsonRpc`, and
|
|
150
|
+
`verifyUnlockScripts` (with its `UnlockScriptVerificationResult` type) from
|
|
151
|
+
`src/index.mobile.ts` and `src/index.client.ts`. The published
|
|
152
|
+
`@bsv/wallet-toolbox-mobile` and `@bsv/wallet-toolbox-client` bundles do not
|
|
153
|
+
support deep imports, so hosts implementing a custom `Monitor.addTask` task,
|
|
154
|
+
posting signed requests to the network directly, exchanging the storage
|
|
155
|
+
remoting wire format, or verifying unlock scripts previously could not reach
|
|
156
|
+
these symbols at all.
|
|
157
|
+
- Keep cold raw-transaction reads on the caller's transaction, including SQLite
|
|
158
|
+
with one connection; do not cache uncommitted settings or start background
|
|
159
|
+
work. Accept missing optional inputBEEF when returning stored raw bytes.
|
|
160
|
+
- Reject unresolved output-basket mappings before sync writes. Apply valid newer
|
|
161
|
+
basket assignments/removals, preserving equal/older local relinquishment and
|
|
162
|
+
transaction rollback/retry. Included in unpublished 2.13.2; no schema migration.
|
|
163
|
+
- Restore transactional SQLite migrations in the unpublished 2.13.2 candidate.
|
|
164
|
+
DDL, migration journal and lock changes roll back after an interrupted attempt;
|
|
165
|
+
foreign-key enforcement is restored after success or failure. Existing stores
|
|
166
|
+
with unjournaled partial schema need operator-reviewed recovery; this change
|
|
167
|
+
does not delete or automatically reconcile historical wallet data.
|
|
168
|
+
|
|
169
|
+
- Implement `BHServiceClient.findChainTipHash()` by delegating to its existing
|
|
170
|
+
`findChainTipHeader()` call against `/api/v1/chain/tip/longest`, instead of
|
|
171
|
+
throwing `Not implemented`. `ChaintracksChainTracker.getVerificationContextToken()`
|
|
172
|
+
calls `findChainTipHash()` on every verification attempt, so any wallet
|
|
173
|
+
configured with a `BHServiceClient` as `options.chaintracks`, or as a
|
|
174
|
+
`LocalChainTracker` participating source, previously failed on every
|
|
175
|
+
attempt. No `ChaintracksClientApi` contract change; no migration required.
|
|
176
|
+
|
|
177
|
+
- Preserve valid compound proofs with multiple marked transactions. Rotate
|
|
178
|
+
unresolved proof repairs behind waiting heights across monitor restarts, and
|
|
179
|
+
retain retries that become temporarily ineligible after the chain tip
|
|
180
|
+
retreats. Existing checkpoints remain compatible; no migration is required.
|
|
181
|
+
|
|
182
|
+
- Validate every newly acquired and replacement Merkle proof against the active
|
|
183
|
+
ChainTracks root before persistence, continue to later providers when an
|
|
184
|
+
earlier provider returns an orphan proof, and retain unresolved reorg heights
|
|
185
|
+
for bounded per-run retries without stopping the forward review cursor. No
|
|
186
|
+
schema or consumer migration is required.
|
|
187
|
+
|
|
188
|
+
- Require mutually authenticated responses from remote wallet storage, pin the
|
|
189
|
+
authenticated server identity for each client instance, optionally accept an
|
|
190
|
+
independently validated `serverIdentityKey`, and bind the distinct advertised
|
|
191
|
+
storage identity to that channel, with an optional independent
|
|
192
|
+
`storageIdentityKey` pin. Strictly correlate JSON-RPC version and request ID,
|
|
193
|
+
require one unambiguous result or error, keep remote response details out of
|
|
194
|
+
transport diagnostics, and preserve an explicit null result for void server
|
|
195
|
+
methods.
|
|
196
|
+
|
|
197
|
+
- Complete WAB faucet funding through one exact wallet-owned BRC-29 output.
|
|
198
|
+
Fee-adjusted output amounts are bounded without weakening exact script
|
|
199
|
+
binding, real Wallet Toolbox symbol metadata remains accessor-safe, and the
|
|
200
|
+
redemption is staged and labeled before broadcast. Interrupted retries
|
|
201
|
+
recover the same transaction from its dedicated basket or recognize the
|
|
202
|
+
already-internalized action instead of signing the faucet input again.
|
|
203
|
+
|
|
204
|
+
- Make ChainTracks lifecycle and event delivery fail closed. Startup errors are
|
|
205
|
+
awaited and retryable, failed or cold instances can be fully destroyed,
|
|
206
|
+
long-running source promises are drained, subscriptions are bounded and
|
|
207
|
+
deleted rather than tombstoned, and every listener receives an isolated
|
|
208
|
+
header snapshot. Provider heights, bulk results, type guards, direct source
|
|
209
|
+
options, and diagnostics are now bounded and accessor-safe. WhatsOnChain
|
|
210
|
+
options and shared chain-info results cannot be mutated after validation.
|
|
211
|
+
Filesystem cache mutation is serialized per digest across processes, caller
|
|
212
|
+
metadata/bytes are snapshotted before awaits, and bulk revalidation takes the
|
|
213
|
+
writer lock. Bulk-file reconciliation and multi-record replacement are atomic
|
|
214
|
+
in Knex and IndexedDB, ordinary mutations reach durable storage before memory,
|
|
215
|
+
failed writes restore the prior manager state, and remote manifests cannot
|
|
216
|
+
supply local storage identities. Custom storage implementations must add the
|
|
217
|
+
optional atomic replacement method before performing multi-file changes.
|
|
218
|
+
Remote clients require complete live metadata and bounded event topology,
|
|
219
|
+
subscription state, timers, and single-line diagnostics. Destructive Knex
|
|
220
|
+
rollback failures now propagate. The wallet monitor independently binds its
|
|
221
|
+
event source to the configured network, authenticates and copies every
|
|
222
|
+
reorganization header, bounds and deduplicates deactivation retries,
|
|
223
|
+
coalesces prepared-proof invalidation, cleans up partial subscriptions, and
|
|
224
|
+
contains application callback failures without implicit console output.
|
|
225
|
+
|
|
226
|
+
- Make Arcade transaction-status SSE a bounded, ordered durable stream. Client
|
|
227
|
+
options are snapshotted without accessors; credentials, cursors, payloads,
|
|
228
|
+
fields, queued count, and queued bytes have explicit ceilings; and event data
|
|
229
|
+
is validated and copied. Only one event reaches storage at a time, its cursor
|
|
230
|
+
advances only after processing and persistence succeed, and a malformed,
|
|
231
|
+
excessive, or failed event closes the stream without dispatching later queued
|
|
232
|
+
events. Logging is silent by default and transport errors never forward the
|
|
233
|
+
credential-bearing EventSource object. Monitor task setup retains one pending
|
|
234
|
+
event, retries storage/checkpoint failures, and closes on removal or teardown.
|
|
235
|
+
|
|
236
|
+
- Repair monitor and daemon lifecycle ordering. Every scheduled or standalone
|
|
237
|
+
run now awaits retryable ChainTracks subscriptions, standalone runs initialize
|
|
238
|
+
every task, transient setup failures retry, and loop failures reset running
|
|
239
|
+
state. The daemon starts subscriptions before ChainTracks and tasks, can stop
|
|
240
|
+
after a successful start, and destroys monitor resources before storage even
|
|
241
|
+
when cleanup fails. Monitor event/task names and diagnostic text are bounded;
|
|
242
|
+
library logging is opt-in and dotenv loading is quiet.
|
|
243
|
+
|
|
244
|
+
- Authenticate every ordinary Merkle-proof result before it can create a
|
|
245
|
+
`ProvenTx` or restore a failed transaction. Provider responses are copied and
|
|
246
|
+
structurally bounded, must contain a leaf matching the requested txid
|
|
247
|
+
(independently of the optional `txid` marker),
|
|
248
|
+
must compute the canonical header root at the same height, and must resolve
|
|
249
|
+
through a proof-of-work-valid wallet header. Monitor consumers additionally
|
|
250
|
+
require the local ChainTracks root verdict and bind the request's raw
|
|
251
|
+
transaction to its txid. WhatsOnChain, Bitails, and Arcade enforce the same
|
|
252
|
+
invariant when called directly; TSC conversion rejects malformed, sparse,
|
|
253
|
+
oversized, and unsafe-integer proofs. `TaskUnFail` uses a one-shot internal
|
|
254
|
+
authorization guard and re-reads its first mutating page so batches over 100
|
|
255
|
+
cannot be skipped. Existing wire formats and public method signatures remain
|
|
256
|
+
compatible; the optional root-validator argument is additive.
|
|
257
|
+
|
|
258
|
+
- Authenticate external transaction-status results before they can influence
|
|
259
|
+
wallet state. Results must be uniquely bound to requested txids and have
|
|
260
|
+
consistent mined/known/unknown depth, terminal, and input-conflict fields;
|
|
261
|
+
provider attribution is local, while descriptions and competing txids are
|
|
262
|
+
copied and bounded. Malformed providers fail over instead of supplying
|
|
263
|
+
failure, quarantine, abort-protection, or double-spend evidence. Arcade also
|
|
264
|
+
validates and binds its complete transaction-data response before status
|
|
265
|
+
classification or proof parsing, and WhatsOnChain rejects impossible depth.
|
|
266
|
+
Monitor proof, no-send, and abandonment scans now preserve stable pagination
|
|
267
|
+
while rows leave their query, and a rejected proof counts as one attempt.
|
|
268
|
+
|
|
269
|
+
- Bound raw-transaction and proof-provider envelopes before inspection.
|
|
270
|
+
Raw results are txid-bound, accessor-free owned byte arrays capped at 32 MiB;
|
|
271
|
+
malformed providers fail over and cannot forge local attribution or mutate
|
|
272
|
+
accepted bytes. Merkle provider notes are copied as bounded scalar data and
|
|
273
|
+
legacy custom services may supply at most eight dense proof candidates.
|
|
274
|
+
Monitor options, task work controls, persisted checkpoints, and polled block
|
|
275
|
+
headers are also validated and copied before they control background work.
|
|
276
|
+
|
|
277
|
+
- Contain UTXO-oracle evidence and invalid-change review work. Provider results
|
|
278
|
+
are accessor-free, bounded, outpoint-consistent owned data with locally
|
|
279
|
+
configured attribution; malformed responses fail over and never become spent
|
|
280
|
+
evidence. Manual and admin review require canonical identities and exact
|
|
281
|
+
modes, booleans, pages, offsets, tags, and safe monetary totals. Whole-wallet
|
|
282
|
+
compatibility scans have a 10,000-candidate ceiling, and a release rebinds the
|
|
283
|
+
exact classified outpoint, value, basket, ownership, and allocation state
|
|
284
|
+
under the write lock before changing spendability.
|
|
285
|
+
|
|
286
|
+
- Authenticate and bound script-history and transaction-broadcast provider
|
|
287
|
+
boundaries. History is hash/endian-bound, accessor-free, deduplicated, and
|
|
288
|
+
capped; all WhatsOnChain calls carry validated whole-request deadlines and
|
|
289
|
+
chain responses are copied before use. BEEF and direct raw submissions are
|
|
290
|
+
size- and txid-bound, providers receive isolated snapshots, result identities
|
|
291
|
+
and state invariants are enforced with local attribution, and sensitive or
|
|
292
|
+
excessive diagnostics are discarded. Malformed, throwing, or hung providers
|
|
293
|
+
fail over without forging the wallet's internal timeout marker. A broadcast
|
|
294
|
+
double-spend claim is terminal only after at least one exact input is
|
|
295
|
+
conclusively observed spent; unknown oracle evidence remains retryable.
|
|
296
|
+
|
|
297
|
+
- Enforce one atomic `sendWith` resource invariant from SDK validation and
|
|
298
|
+
binary decoding through storage, action-batch commit, provider submission,
|
|
299
|
+
and delayed monitor retry. Broadcast sets contain at most 1,000 unique,
|
|
300
|
+
canonical transaction IDs, including the newly created or signed
|
|
301
|
+
transaction. Malformed storage flags cannot diverge from the actual list,
|
|
302
|
+
and an oversized legacy batch is reported and skipped as a whole rather than
|
|
303
|
+
partially broadcast or expanded without bound. If any member cannot be
|
|
304
|
+
resolved or assembled, no ready subset is scheduled or broadcast; members
|
|
305
|
+
already known by the network remain compatible with retrying the rest.
|
|
306
|
+
|
|
307
|
+
- Make user provisioning and schema lifecycle failure-atomic. A newly inserted
|
|
308
|
+
user and its mandatory managed-change basket now share one transaction, and
|
|
309
|
+
creation-race retry restarts the whole transaction. Knex migration and
|
|
310
|
+
destructive rollback errors propagate, explicit empty-schema state is the
|
|
311
|
+
only rollback terminator, and SQLite foreign-key enforcement is restored in
|
|
312
|
+
`finally` after both successful and failed migration work.
|
|
313
|
+
|
|
314
|
+
- Keep secrets and untrusted wallet material out of implicit process logs.
|
|
315
|
+
`Setup.makeEnv()` returns generated development keys without printing them;
|
|
316
|
+
invalid BEEF, identity/certificate parsing, permission batching, provisioning
|
|
317
|
+
races, migration failures, and IndexedDB orphan handling no longer emit raw
|
|
318
|
+
objects, transaction/proof data, database details, or row identifiers. The
|
|
319
|
+
existing explicit wallet logger receives only a generic BEEF-validation
|
|
320
|
+
message when a caller opts into it.
|
|
321
|
+
|
|
322
|
+
- Preserve wallet write atomicity across metadata revival, entity insertion,
|
|
323
|
+
and abort-time chain checks. Soft-deleted baskets, labels, label mappings,
|
|
324
|
+
output tags, and tag mappings now revive in the caller's exact transaction;
|
|
325
|
+
new proof-request and sync-state entities retain that transaction as well.
|
|
326
|
+
`abortAction` queries external chain status before opening an IndexedDB write
|
|
327
|
+
scope, then rebinds the observation to the exact transaction ID and txid
|
|
328
|
+
under the write lock before committing its decision.
|
|
329
|
+
|
|
330
|
+
- Keep shared-storage schema and process lifecycle under operator authority.
|
|
331
|
+
Authenticated remote migration requests are compatibility no-ops, matching
|
|
332
|
+
remote destroy requests, so a wallet tenant cannot contend on global DDL or
|
|
333
|
+
initialize shared storage metadata.
|
|
334
|
+
|
|
335
|
+
- Bound authenticated proof-request reads before database and memory work.
|
|
336
|
+
Knex and IndexedDB apply wallet ownership in the same query/cursor scan as
|
|
337
|
+
status, partial, offset, and limit filtering. Custom providers retain a
|
|
338
|
+
bounded compatibility path and must supply exact txids or a provider-native
|
|
339
|
+
scoped query for wallets with more than 10,000 proof requests.
|
|
340
|
+
|
|
341
|
+
- Bound caller-selected Wallet Storage RPC offsets as well as page sizes.
|
|
342
|
+
Top-level list offsets, nested find paging, and synchronization checkpoints
|
|
343
|
+
are rejected before database/cursor work when they exceed the selected
|
|
344
|
+
resource profile. Operators can raise the explicit ceiling for larger
|
|
345
|
+
histories without changing the wire format.
|
|
346
|
+
|
|
347
|
+
- Redact internal Wallet Storage failures at every authenticated HTTP response
|
|
348
|
+
boundary. JSON-RPC and action-batch upload routes preserve explicit public
|
|
349
|
+
wallet errors, but generic exceptions and custom `WERR_INTERNAL` diagnostics
|
|
350
|
+
now return only the stable internal-error name and default message. Detailed
|
|
351
|
+
provider, database, and filesystem failures remain available through
|
|
352
|
+
explicitly configured operator logging and telemetry.
|
|
353
|
+
|
|
354
|
+
- Clarify local-contact authority throughout SDK and Wallet Toolbox identity
|
|
355
|
+
documentation. A saved contact is an authoritative wallet-local trust anchor
|
|
356
|
+
based on the user's independent validation, analogous to accepting a
|
|
357
|
+
self-signed certificate. Its infinite trust is intentionally local—not a
|
|
358
|
+
third-party certification or transferable trust claim—and authenticated
|
|
359
|
+
contact storage proves retention of that decision rather than the underlying
|
|
360
|
+
real-world identity.
|
|
361
|
+
|
|
362
|
+
- Re-bind cryptographically authenticated identity-overlay certificates to the
|
|
363
|
+
exact lookup they answer before applying trust thresholds. A dishonest lookup
|
|
364
|
+
host can no longer answer an identity-key or public-attribute query with a
|
|
365
|
+
different valid trusted certificate. Local contacts remain authoritative;
|
|
366
|
+
contact lookup matching continues to follow the caller-installed source's
|
|
367
|
+
explicit local trust contract.
|
|
368
|
+
|
|
369
|
+
- Harden local ChainTracks persistence and legacy bulk tooling. Memory-backed
|
|
370
|
+
trackers no longer share state, IndexedDB and Knex require unique active
|
|
371
|
+
headers and consecutive parent linkage, reorganization walks are bounded and
|
|
372
|
+
fail atomically, direct admissions are authenticated, and Knex serializes tip
|
|
373
|
+
mutation through an internal state row. MySQL now stores 64-character hex
|
|
374
|
+
values as `VARCHAR(64)` and multi-megabyte header objects as `LONGBLOB`; the
|
|
375
|
+
additive migration clears the rebuildable legacy live-header cache before
|
|
376
|
+
widening fields that permissive MySQL could already have truncated. Bulk
|
|
377
|
+
manifests, local readers, exporters, filesystem operations, and lock queues
|
|
378
|
+
now have canonical path, byte, count, continuity, genesis, digest,
|
|
379
|
+
proof-of-work, and progress bounds. Filesystem cache reads are bounded before
|
|
380
|
+
allocation and authenticate writes, while the durable download budget now
|
|
381
|
+
serializes reservations across processes and fails closed on an abandoned
|
|
382
|
+
lock instead of silently resetting or losing allowance.
|
|
383
|
+
|
|
384
|
+
- Fix the legacy `BHServiceClient` Merkle-root cache so rejected, stale, or
|
|
385
|
+
externally written roots can never become authoritative. Every verdict now
|
|
386
|
+
resolves a bounded canonical header, validates its computed hash and proof
|
|
387
|
+
of work, and binds it to the requested height or hash. Its HTTP reads reject
|
|
388
|
+
redirects and malformed endpoints, retain whole-body deadlines, and enforce
|
|
389
|
+
response and batch ceilings. ChainTracks core options are validated before
|
|
390
|
+
startup, and all library/factory logging is now silent unless the embedding
|
|
391
|
+
application supplies the existing optional logger.
|
|
392
|
+
|
|
393
|
+
- Treat every remote ChainTracks HTTP/SSE and WhatsOnChain HTTP/CDN/WebSocket
|
|
394
|
+
response as untrusted input: retain the
|
|
395
|
+
deadline through bounded body consumption, bound and idle-timeout streams,
|
|
396
|
+
prohibit redirects and ambiguous endpoint URLs, validate canonical header
|
|
397
|
+
bytes and proof of work, and bind network, height, hash, and reorganization
|
|
398
|
+
results to each request before returning or queueing them. Submitted and live
|
|
399
|
+
header queues are copy-isolated, deduplicated where applicable, and bounded.
|
|
400
|
+
Service-discovered CDN links must remain credential-free public HTTPS with
|
|
401
|
+
DNS-pinned Node connections, legacy history streams are range-ordered and
|
|
402
|
+
chunked, and no declared target contributes to bulk chain selection before
|
|
403
|
+
its complete header and proof of work have been authenticated.
|
|
404
|
+
|
|
405
|
+
- Authenticate every discovered permission token against its exact BEEF
|
|
406
|
+
outpoint, canonical signed PushDrop fields, locally derived locking key, and
|
|
407
|
+
signed grant content. Basket membership and tags remain selectors only. Bind
|
|
408
|
+
public partial actions and all token mint, renewal, coalescing, and revocation
|
|
409
|
+
flows to the exact authorized final transaction and actual input indexes.
|
|
410
|
+
Include signer-authenticated storage service charges in the exact spend sent
|
|
411
|
+
for permission approval, without changing the BRC-100 API or wire format, and
|
|
412
|
+
fail closed on inconsistent sources or unsafe monetary arithmetic. The exact
|
|
413
|
+
packed platform measurements are 2,184,519 / 520,753 / 397,289 bytes for Vite
|
|
414
|
+
and 1,704,383 / 471,571 / 370,439 for esbuild (raw/gzip/Brotli), with reviewed
|
|
415
|
+
ceilings of 2,230,000 / 535,000 / 410,000 and
|
|
416
|
+
1,740,000 / 485,000 / 380,000 respectively. Mobile measures
|
|
417
|
+
2,344,815 / 597,625 / 454,020 for Metro and
|
|
418
|
+
4,579,110 / 1,919,816 / 1,489,229 for optimized Hermes bytecode, with reviewed
|
|
419
|
+
ceilings of 2,400,000 / 610,000 / 465,000 and
|
|
420
|
+
4,675,000 / 1,960,000 / 1,520,000 respectively.
|
|
421
|
+
|
|
422
|
+
- Bind UMP renewal to an exact canonical, field-signed predecessor owned by the
|
|
423
|
+
local wallet and require one exact replacement token in the completed action.
|
|
424
|
+
Bind WAB faucet funding to its exact Atomic BEEF target, output-zero R-puzzle
|
|
425
|
+
commitment, actual wallet input index, and returned final transaction ID.
|
|
426
|
+
|
|
427
|
+
- Bind legacy P2PKH funding imports to the exact atomic signing target and
|
|
428
|
+
final wallet transaction. Reject result-only transaction IDs, ambiguous
|
|
429
|
+
outpoints, oversized or redirected provider responses, and unbounded BEEF
|
|
430
|
+
recursion/source graphs before signing or allocation.
|
|
431
|
+
|
|
432
|
+
- Atomically consume BRC-103 signed-message nonces across StorageServer replicas.
|
|
433
|
+
The additive `2026-09-16-001 add auth message replay claims` migration creates
|
|
434
|
+
`auth_message_nonces` with a composite session-or-identity scope/nonce
|
|
435
|
+
uniqueness constraint and expiry index. Signed follow-up and unsigned
|
|
436
|
+
initial-request replays are both rejected. Run the migration before deploying
|
|
437
|
+
the new runtime; otherwise authentication processing fails closed.
|
|
438
|
+
|
|
439
|
+
- Integrate upstream security corrections without dropping the sync recovery contracts.
|
|
440
|
+
Record combined browser/mobile artifact costs and limits in the sync transfer guide.
|
|
441
|
+
|
|
442
|
+
- Validate replacement proofs across providers before reconciling stale RPC sync metadata; preserve raw transactions and checkpoints on failure.
|
|
443
|
+
|
|
444
|
+
- Start sync copies conservatively and adapt page work after committed responses.
|
|
445
|
+
Validate at most eight remote proofs concurrently, draining failure work before
|
|
446
|
+
rejecting the page. Preserve all proof and checkpoint checks. Record-transfer
|
|
447
|
+
candidates now use 2.13.0 to distinguish them from published 2.12.0.
|
|
448
|
+
|
|
449
|
+
- Require an affirmative certifier-signature verification result before
|
|
450
|
+
storing directly acquired or issuer-returned certificates. Identity overlay
|
|
451
|
+
results are verified before decryption and trust scoring, so forged
|
|
452
|
+
certificates cannot become wallet-held or trusted discovered identities. The
|
|
453
|
+
synchronized browser Vite ceilings advance to 1,695,000 raw and 401,000 gzip,
|
|
454
|
+
covering measured 1,694,211-byte and 400,048-byte bundles; Brotli is unchanged.
|
|
455
|
+
The mobile Metro raw ceiling advances to 1,750,000 for the measured
|
|
456
|
+
1,748,892-byte bundle. The browser esbuild raw ceiling advances to 1,323,000
|
|
457
|
+
for the measured 1,321,768-byte bundle, its gzip ceiling advances to 365,000
|
|
458
|
+
for the measured 364,413-byte bundle, and the optimized Hermes gzip ceiling
|
|
459
|
+
advances to 1,442,000 for the measured 1,441,531-byte bytecode; remaining
|
|
460
|
+
compressed ceilings are unchanged.
|
|
461
|
+
- Never cache, coalesce, or reuse spending approvals, give each prompt a
|
|
462
|
+
distinct request identity, and paginate the complete action history before
|
|
463
|
+
calculating an authorization token's prior spending.
|
|
464
|
+
- Require HTTPS for credential-bearing remote storage and Arcade SSE outside
|
|
465
|
+
explicit loopback development, disable dependency debug output, and avoid
|
|
466
|
+
serializing credential-bearing transport errors. Snapshot formats remain
|
|
467
|
+
unchanged and are documented as wallet-equivalent secrets.
|
|
468
|
+
- Make new WAB account creation resumable when wallet setup, funding, KDF, UMP
|
|
469
|
+
publication, or the final acknowledgement is interrupted. The manager accepts
|
|
470
|
+
a clean missing-token result only for a server-declared pending registration,
|
|
471
|
+
finalizes after successful publication, repairs a lost acknowledgement on the
|
|
472
|
+
next login, and preserves fail-closed continuity for active and legacy WABs.
|
|
473
|
+
- Add optional bounded sync transfers for oversized records, authenticated pieces,
|
|
474
|
+
durable Knex staging, full-frame SHA-256 verification, and stale-checkpoint
|
|
475
|
+
rejection before merging. Add the two staging tables through migration
|
|
476
|
+
`2026-09-09-001`; reverse only that migration before restarting older code. Frames are limited
|
|
477
|
+
to 64 MiB and ordinary pages keep their existing transport. See
|
|
478
|
+
[the transport and migration guide](./docs/sync-transfer.md).
|
|
479
|
+
|
|
480
|
+
- Upgrade IndexedDB to schema version 6 with a non-unique transaction-ID/user
|
|
481
|
+
index. Use existing reference, reclaim, commission, and relation keys for
|
|
482
|
+
sync lookups, avoiding repeated scans as a local wallet grows. Preserve
|
|
483
|
+
user filtering, pagination, existing bytes, and duplicate transaction IDs.
|
|
484
|
+
Proof-batch preflight checks resolve only requested transaction IDs through
|
|
485
|
+
the existing index, preserving proof validation and primary-key ordering.
|
|
486
|
+
Older clients requesting schema version 5 cannot open the upgraded database.
|
|
487
|
+
|
|
488
|
+
- Add negotiated compact sync checkpoints, reusing committed page progress while
|
|
489
|
+
retaining complete writer-side ID mappings and the legacy provider fallback.
|
|
490
|
+
Avoid per-scalar reviver callbacks when decoding binary JSON pages without
|
|
491
|
+
changing marker escaping or byte semantics. Use the already negotiated binary
|
|
492
|
+
codec for large schema-defined sync response byte arrays, reducing wire and
|
|
493
|
+
authentication payload size while preserving legacy arrays and unrelated data.
|
|
494
|
+
Retain authenticated full-copy,
|
|
495
|
+
resume, malformed-input, and transport CPU/payload regression coverage.
|
|
496
|
+
Local packed measurements are 1,701,711 raw / 401,038 gzip / 314,272 Brotli
|
|
497
|
+
bytes (Vite), 1,327,368 / 364,550 / 293,224 (esbuild),
|
|
498
|
+
1,753,648 / 445,136 / 345,369 (Metro), and
|
|
499
|
+
3,557,663 / 1,426,740 / 1,121,821 (Hermes). The raw ceilings become
|
|
500
|
+
1,702,000, 1,327,500, 1,755,000, and 3,558,500 respectively.
|
|
501
|
+
Vite and esbuild gzip ceilings increase to 402,000 and 366,000 bytes.
|
|
502
|
+
Hosted Linux measures 365,818 esbuild gzip bytes and 1,445,624 Hermes gzip
|
|
503
|
+
bytes; the Hermes gzip ceiling becomes 1,446,500.
|
|
504
|
+
The esbuild Brotli ceiling is 293,750 bytes. Asynchronous platform hashing
|
|
505
|
+
for large SDK signature payloads brings the Vite Brotli ceiling to 314,500
|
|
506
|
+
bytes, the Hermes raw ceiling to 3,560,000 bytes, and its Brotli ceiling to
|
|
507
|
+
1,125,000 bytes (measured 1,124,446); other compressed ceilings remain unchanged.
|
|
508
|
+
The added portable sync/progress and decoding paths account for
|
|
509
|
+
the increase; no Node-only backend is introduced into portable bundles.
|
|
510
|
+
|
|
511
|
+
- Keep Argon2id-backed UMP v3 wallets available in React Native and other
|
|
512
|
+
runtimes without WebAssembly by falling back to an asynchronously yielding,
|
|
513
|
+
standards-compatible JavaScript implementation. The same KDF parameters and
|
|
514
|
+
derived bytes are preserved, so existing tokens require no migration and
|
|
515
|
+
WebAssembly-capable runtimes retain the faster path. The existing public
|
|
516
|
+
`hash-wasm`-compatible utility contract remains intact: secret-bearing,
|
|
517
|
+
non-binary-output, and non-byte-array requests stay on `hash-wasm` and are
|
|
518
|
+
never reinterpreted by a host backend or fallback. Native registration is
|
|
519
|
+
available from both mobile and client roots, concurrent cold callers share
|
|
520
|
+
one preload attempt, and both alternative implementations validate result
|
|
521
|
+
type and length. Unrelated validation errors propagate even without the
|
|
522
|
+
WebAssembly global. The current-main macOS
|
|
523
|
+
reference fixtures measure 1,690,925 raw / 398,461 gzip / 311,955 Brotli
|
|
524
|
+
bytes with Vite, 1,319,059 raw / 362,220 gzip / 291,206 Brotli bytes with
|
|
525
|
+
esbuild, 1,746,067 raw / 442,648 gzip / 343,342 Brotli bytes with Metro, and
|
|
526
|
+
3,542,034 raw / 1,419,515 gzip / 1,117,531 Brotli bytes as optimized Hermes
|
|
527
|
+
bytecode; hosted Linux measures 1,439,166 gzip bytes. Combined with the
|
|
528
|
+
interrupted-registration recovery path above, current measurements are
|
|
529
|
+
1,694,823 raw / 399,940 gzip / 312,528 Brotli bytes with Vite, 1,322,223 raw
|
|
530
|
+
/ 364,260 gzip / 291,914 Brotli bytes with esbuild, 1,749,694 raw / 443,665
|
|
531
|
+
gzip / 344,059 Brotli bytes with Metro, and 3,549,495 raw / 1,441,622 gzip /
|
|
532
|
+
1,119,600 Brotli bytes as optimized Hermes bytecode. The reviewed ceilings
|
|
533
|
+
advance to 1,697,000 raw / 400,000 gzip Vite bytes, 1,324,000 raw / 365,000
|
|
534
|
+
gzip esbuild bytes, 1,752,000 raw Metro bytes, and 3,552,000 raw / 1,442,000
|
|
535
|
+
gzip Hermes bytes; Brotli ceilings remain unchanged.
|
|
536
|
+
|
|
537
|
+
- Extend the BRC-98/99/111 permission-module interface with an optional semantic
|
|
538
|
+
`handleRequest` hook. A module can now return a conforming BRC-100 result
|
|
539
|
+
directly or invoke the underlying wallet operation at most once, while
|
|
540
|
+
existing `onRequest`/`onResponse` transformation modules remain compatible.
|
|
541
|
+
The companion `@bsv/ecpm-permission-module` uses this hook to implement
|
|
542
|
+
`p ecpm` point multiplication without adding a BRC-100 method or wire call.
|
|
543
|
+
|
|
544
|
+
- Add opt-in prepared BEEF storage for Knex-backed normal `createAction`
|
|
545
|
+
funding. COOK (Create Once, Output Kept) stores a user-scoped, exact,
|
|
546
|
+
independently verified and checksummed proof closure, merges valid hits
|
|
547
|
+
without invoking the canonical builder, and treats every miss or cache
|
|
548
|
+
failure as the existing canonical path. Missing roots and newly finalized
|
|
549
|
+
managed-change transactions are queued only after foreground action work is
|
|
550
|
+
complete; bounded writes, reads, and gradual backfill are separately
|
|
551
|
+
controlled and default off. Reorganizations stale derived artifacts, a
|
|
552
|
+
database proof epoch fences in-flight cross-process writes, purge removes
|
|
553
|
+
unused rows, and prepared data remains outside wallet sync. The
|
|
554
|
+
Knex worker is excluded from portable bundles. Reviewed Vite ceilings advance
|
|
555
|
+
to 1,610,250 raw / 379,750 gzip / 298,000 Brotli bytes and esbuild ceilings
|
|
556
|
+
to 1,255,000 raw / 346,250 gzip / 278,000 Brotli, covering local measurements
|
|
557
|
+
of 1,609,783 / 379,492 / 297,253 and 1,254,603 / 344,792 / 277,384 bytes;
|
|
558
|
+
hosted Linux Vite Brotli and esbuild gzip measured 297,585 and 345,711 bytes.
|
|
559
|
+
The Hermes raw / gzip ceilings advance to 3,374,500 / 1,369,000 bytes,
|
|
560
|
+
covering local measurements of 3,372,554 / 1,348,354 and hosted Linux
|
|
561
|
+
measurements of 3,373,560 / 1,368,128 bytes; Metro and Hermes Brotli
|
|
562
|
+
ceilings remain unchanged.
|
|
563
|
+
- Add the built-in BRC-177 `p nosend expiry` module for seconds, Unix timestamp,
|
|
564
|
+
and block-height deadlines. Protected actions are prefunded through an
|
|
565
|
+
accepted transaction, contain no wallet change, and retain a pre-signed
|
|
566
|
+
reclaim across restarts, synchronized storage, devices, and keyless remote
|
|
567
|
+
monitors. Atomic lifecycle transitions, active-storage ownership,
|
|
568
|
+
fail-closed status checks, backoff-controlled recovery of terminally rejected
|
|
569
|
+
reclaims, quarantined race outputs, and locally validated proof finality
|
|
570
|
+
prevent duplicate reclaim activation and unsafe state regression. Wallet
|
|
571
|
+
Permissions Manager authorizes module use and spending
|
|
572
|
+
before prefunding, attributes the funding fee to the requesting originator,
|
|
573
|
+
and rechecks the current monthly ledger before releasing the protected
|
|
574
|
+
action. Existing actions and ordinary `noSend` calls are unchanged. The
|
|
575
|
+
current-main macOS reference fixtures measure 1,662,220 raw / 388,763 gzip /
|
|
576
|
+
305,307 Brotli bytes with Vite, 1,297,621 raw / 355,579 gzip / 285,031 Brotli
|
|
577
|
+
bytes with esbuild, 1,710,494 raw / 430,613 gzip / 334,490 Brotli bytes with
|
|
578
|
+
Metro, and 3,474,604 raw / 1,406,878 gzip / 1,090,948 Brotli bytes as
|
|
579
|
+
optimized Hermes bytecode. The reviewed ceilings advance to 1,665,000 /
|
|
580
|
+
390,000 / 307,000 Vite bytes, 1,300,000 / 357,000 / 287,000 esbuild bytes,
|
|
581
|
+
1,712,000 / 455,000 / 360,000 Metro bytes, and 3,480,000 / 1,410,000 /
|
|
582
|
+
1,095,000 Hermes bytes.
|
|
583
|
+
|
|
584
|
+
- Report `listOutputs` `totalOutputs` as the size of the whole result set on
|
|
585
|
+
every page, in both the IndexedDB and Knex storage providers. A short final
|
|
586
|
+
page previously returned only that page's length, so a client paging a large
|
|
587
|
+
basket saw the total collapse to the size of the last page; an offset at or
|
|
588
|
+
past the end now counts instead of inferring, and the managed-change spec-op
|
|
589
|
+
no longer discards the total it already computed. Full pages, first pages,
|
|
590
|
+
and empty result sets are unchanged, so no consumer migration is required.
|
|
591
|
+
`balanceAndUtxos` now terminates from page progress instead of relying on the
|
|
592
|
+
former collapsing total, preventing a zero-progress loop after the final page.
|
|
593
|
+
The reviewed Vite raw-size ceiling advances by 500 bytes to 1,607,500,
|
|
594
|
+
covering the hosted Linux measurement of 1,607,015 bytes; the Vite compressed
|
|
595
|
+
and esbuild ceilings remain unchanged.
|
|
596
|
+
|
|
597
|
+
- Serialize typed AtomicBEEF and competing BEEF in wallet review errors as
|
|
598
|
+
portable JSON arrays, keeping HTTP and relay error recovery compatible with
|
|
599
|
+
both historical array wallets and current binary Wallet Wire wallets.
|
|
600
|
+
- Serialize real typed arrays portably in outbound WAB requests while
|
|
601
|
+
preserving arbitrary inbound WAB JSON objects exactly.
|
|
602
|
+
|
|
603
|
+
- Accept legacy BRC-95 payment envelopes that include unrelated BEEF branches
|
|
604
|
+
by reducing them to the declared transaction and its dependency closure
|
|
605
|
+
before strict proof and BRC-29 validation. Malformed transactions, invalid
|
|
606
|
+
proofs, and incorrectly locked payment outputs remain rejected. The shared
|
|
607
|
+
helper adds 137 bytes to the local optimized Hermes fixture. The reviewed
|
|
608
|
+
ceilings advance by 1,000 bytes to 3,361,000 raw and 1,362,000 gzip, covering
|
|
609
|
+
the measured macOS raw size of 3,360,137 bytes and hosted Linux gzip size of
|
|
610
|
+
1,361,509 bytes; the Brotli ceiling remains unchanged.
|
|
611
|
+
|
|
612
|
+
- Commit each received wallet-storage sync page and its durable checkpoint in
|
|
613
|
+
one provider transaction. Large IndexedDB replications avoid thousands of
|
|
614
|
+
transaction startup/commit cycles, failed pages roll back without advancing
|
|
615
|
+
the checkpoint, and abort cleanup preserves the original storage error.
|
|
616
|
+
|
|
617
|
+
- Fill wallet-storage sync pages with adaptive, size-aware source queries and
|
|
618
|
+
add composite SQL indexes for user-scoped proof lookups. Sync clients may
|
|
619
|
+
request optional source record totals for exact progress and ETA displays;
|
|
620
|
+
older clients and providers remain wire-compatible and do not incur count
|
|
621
|
+
queries unless totals are requested. Remote clients also recover from a
|
|
622
|
+
provider's HTTP 413 response ceiling by retrying the read-only sync request
|
|
623
|
+
with a smaller chunk budget and reusing the working limit for later pages.
|
|
624
|
+
Runtime validation rejects malformed remote totals, and MySQL rollback
|
|
625
|
+
restores the foreign-key support index before removing the new composites.
|
|
626
|
+
The retained authenticated candidate-provider benchmark fills a 250-record
|
|
627
|
+
proof page with three source reads (`10, 80, 160`) on SQLite and MySQL.
|
|
628
|
+
Clean macOS fixtures measure Vite at 1,609,916 raw, 379,552 gzip, and 297,188
|
|
629
|
+
Brotli bytes; esbuild at 1,254,827 raw, 344,883 gzip, and 277,729 Brotli
|
|
630
|
+
bytes; Metro at 1,662,714 raw, 419,740 gzip, and 326,785 Brotli bytes; and
|
|
631
|
+
Hermes at 3,371,236 raw, 1,347,950 gzip, and 1,061,946 Brotli bytes. The
|
|
632
|
+
reviewed ceilings advance to 1,611,000/380,000/297,500 for Vite,
|
|
633
|
+
1,256,000/346,000/278,200 for esbuild, and 3,373,000/1,368,000 raw/gzip for
|
|
634
|
+
Hermes. Metro and the Hermes Brotli ceiling remain unchanged.
|
|
635
|
+
|
|
636
|
+
- Make verified phone changes interruption-safe by staging the replacement key
|
|
637
|
+
in WAB, publishing the UMP rotation, and then finalizing WAB. Authentication
|
|
638
|
+
can recover an interrupted transition from the current or pending key and
|
|
639
|
+
idempotently finish it without creating a second UMP update.
|
|
640
|
+
|
|
641
|
+
- Prune `inputBEEF` to the dependency closure of explicitly declared action
|
|
642
|
+
inputs before remote request serialization and repeat the pruning on the
|
|
643
|
+
server before verification and persistence. Unrelated proof branches no
|
|
644
|
+
longer consume transfer or validation work or cause an otherwise valid
|
|
645
|
+
action to fail; proof data required by a declared input is still fully
|
|
646
|
+
validated.
|
|
647
|
+
|
|
648
|
+
- Add a local-first ChainTracks control plane for browser, mobile, and Node
|
|
649
|
+
wallets, including explicit local-primary/remote-only mode, independently
|
|
650
|
+
sourced consistency checks, quorum-backed exceptional fallback, local-clear
|
|
651
|
+
hooks, and opt-in divergence recovery. Add a portable packaged-checkpoint
|
|
652
|
+
cache contract and a Node filesystem implementation with validated reads and
|
|
653
|
+
atomic writes. Coalesce concurrent immutable-file misses, centralize bounded
|
|
654
|
+
fetch retries, enforce whole-response deadlines and byte ceilings, and expose
|
|
655
|
+
cache/download counters and an optional upstream-byte budget. Bulk and live
|
|
656
|
+
ingestion now enforce each header's declared proof-of-work target, and local
|
|
657
|
+
consistency checks detect both quorum-confirmed divergence and a
|
|
658
|
+
quorum-confirmed stuck height before optional recovery. The reviewed platform
|
|
659
|
+
service seam also accepts a composed SDK `chainTracker` directly while
|
|
660
|
+
retaining the existing client-wrapping default. The reviewed platform
|
|
661
|
+
ceilings advance to 1,601,000 Vite bytes, 1,249,000 esbuild bytes, and
|
|
662
|
+
3,358,000 Hermes bytes; their matching gzip/Brotli ceilings are
|
|
663
|
+
377,000/296,000, 344,000/276,000, and 1,360,000/1,070,000 bytes.
|
|
664
|
+
- Keep ChainTracks availability independent of immutable-header verification:
|
|
665
|
+
stale heights now return immediately behind a single refresh, complete
|
|
666
|
+
digest/linkage/chain-work/proof-of-work validation can run in a bounded Node
|
|
667
|
+
worker pool, and historical reads release the manager lock before disk,
|
|
668
|
+
network, or worker waits. Filesystem caches use content-addressed objects,
|
|
669
|
+
quarantine rejected entries, and promote validated legacy files without
|
|
670
|
+
deleting the only retained copy. A crash-safe download ledger reserves every
|
|
671
|
+
physical retry before network I/O and survives restarts; failed objects back
|
|
672
|
+
off before another attempt. The reference server keeps probes local, applies
|
|
673
|
+
separate historical concurrency admission, and publishes complete CDN
|
|
674
|
+
generations behind an atomic pointer while retaining rollback generations.
|
|
675
|
+
- Age proactive pending-transaction review from immutable request creation
|
|
676
|
+
time, so repeated proof polling cannot keep a rejected transaction below the
|
|
677
|
+
reconciliation threshold forever. A descendant of a locally terminal parent
|
|
678
|
+
now fails from that durable storage evidence; failed-parent outputs remain
|
|
679
|
+
quarantined while unrelated inputs are released for reuse. The shared change
|
|
680
|
+
adds about 1.1 kB to the Vite browser artifact and 3.8 kB to Hermes bytecode;
|
|
681
|
+
the reviewed raw ceilings advance to 1,585,000 and 3,322,000 bytes while all
|
|
682
|
+
compressed ceilings remain unchanged; the esbuild raw ceiling advances to
|
|
683
|
+
1,238,000 bytes.
|
|
684
|
+
- Keep mainnet and testnet ChainTracks usable from browser and webview wallets:
|
|
685
|
+
browser runtimes temporarily select the CORS-enabled legacy service while
|
|
686
|
+
Node runtimes retain Arcade/go-chaintracks v2. `Services.getHeight` now falls
|
|
687
|
+
back to WhatsOnChain if ChainTracks is unavailable and preserves the original
|
|
688
|
+
ChainTracks error when both providers fail.
|
|
689
|
+
- Route `ttn` wallets through the isolated `teratestnet` overlay preset and
|
|
690
|
+
enable the public TTN Arcade broadcaster/proof provider by default. TTN does
|
|
691
|
+
not register the incompatible legacy ARC BEEF fallback. Other chain defaults
|
|
692
|
+
are unchanged, and an empty Arcade URL explicitly disables Arcade.
|
|
693
|
+
- Reconcile Arcade broadcast outcomes as durable wallet state. Retryable
|
|
694
|
+
locktime and parent conditions remain pending, while validator failures fail
|
|
695
|
+
the request and explicit missing-input or conflict evidence atomically fails
|
|
696
|
+
every local transaction copy and quarantines its wallet-owned inputs without
|
|
697
|
+
depending on WhatsOnChain. Cached accepted/seen labels can no longer revive a
|
|
698
|
+
terminal conflict; only a mined event whose Merkle proof validates through
|
|
699
|
+
the configured chain tracker may repair it. Arcade also participates in the
|
|
700
|
+
shared transaction-status service so double-spend review remains conservative
|
|
701
|
+
on networks with no explorer. A scheduled paged pass also reconciles aged
|
|
702
|
+
pending requests from durable Arcade lifecycle state, including orphan-mempool
|
|
703
|
+
losers whose SSE event was missed; mined/known evidence wins over rejection.
|
|
704
|
+
Inconclusive or absent UTXO providers no longer
|
|
705
|
+
masquerade as a spent-output verdict in invalid-change release, stale-input
|
|
706
|
+
reconciliation, proof recovery, or storage diagnostics. Invalid-change review
|
|
707
|
+
returns conclusive read-only findings plus unknown diagnostics. Direct release
|
|
708
|
+
blocks atomically with machine-readable `WERR_UTXO_REVIEW_INCONCLUSIVE` when
|
|
709
|
+
any result is unknown. Monitor Admin uses bounded, five-second-deadline pages
|
|
710
|
+
and can explicitly release the confirmed-spent subset while retaining unknowns;
|
|
711
|
+
every mutation rechecks ownership/allocation under lock and records audit
|
|
712
|
+
evidence. Monitor Admin scans by default and requires explicit confirmation.
|
|
713
|
+
The
|
|
714
|
+
Arcade SSE cursor advances only after both event storage work and cursor
|
|
715
|
+
persistence succeed; either failure leaves the event queued for ordered retry.
|
|
716
|
+
- Replace 32-satoshi default-basket fragments with a progressive liquidity
|
|
717
|
+
policy targeting 144 useful 5,000-satoshi outputs. New actions create at most
|
|
718
|
+
eight outputs from real surplus and migrate at most four fee-positive legacy
|
|
719
|
+
fragments, while a same-tier compatibility plan guarantees that optional
|
|
720
|
+
shaping cannot refuse an action the former planner could fund. Explicitly
|
|
721
|
+
funded actions materialize change from their existing surplus without
|
|
722
|
+
gathering pool inputs, and SQLite policy migrations use sync-compatible UTC
|
|
723
|
+
ISO timestamps.
|
|
724
|
+
- Prefer completed, then unproven, then sending parents. Plans above 16 inputs
|
|
725
|
+
compare exact transaction-plus-BEEF bytes before accepting pending ancestry;
|
|
726
|
+
pending change remains an unconditional last-resort funding source. Align
|
|
727
|
+
action-batch reservation/planning and add a read-only Monitor liquidity
|
|
728
|
+
report. All work limits are configurable and accept `-1` for explicit
|
|
729
|
+
operator-selected unlimited behavior.
|
|
730
|
+
- Restore delayed broadcast for durable permission-token persistence. Permission
|
|
731
|
+
grants no longer inherit network-broadcast latency; the managed-change policy
|
|
732
|
+
handles queued ancestry without hiding it or preferring it over settled funds.
|
|
733
|
+
- Isolate each in-memory action batch by explicit staged-output or `sendWith`
|
|
734
|
+
membership, so unrelated immediate actions and `noSend` roots cannot be
|
|
735
|
+
captured by or commit a workspace. Add an exact-input resume protocol for
|
|
736
|
+
expired leases, structured lifecycle errors, and a provider-enforced
|
|
737
|
+
cumulative reservation limit that defaults to 256 outputs and can be
|
|
738
|
+
configured, including `-1` for operator-selected unlimited operation.
|
|
739
|
+
- Keep the combined action-batch, managed-liquidity, browser-fallback, and
|
|
740
|
+
fail-safe reconciliation browser/mobile cost bounded by exact packed-artifact
|
|
741
|
+
contracts. Local verification measures 1,557,683 raw / 366,927 gzip / 287,337
|
|
742
|
+
Brotli bytes with Vite, 1,215,983 raw / 333,466 gzip / 268,497 Brotli bytes
|
|
743
|
+
with esbuild, 1,617,544 raw Metro bytes, and 3,271,146 raw / 1,302,110 gzip /
|
|
744
|
+
1,025,812 Brotli Hermes bytes. Reviewed raw ceilings are 1,561,000 Vite bytes,
|
|
745
|
+
1,220,000 esbuild bytes, 1,710,000 Metro bytes, and 3,275,000 Hermes bytes;
|
|
746
|
+
compressed ceilings remain independently governed.
|
|
747
|
+
- Fix `WalletStorageManager.getStoreEndpointURL` / `getStores().endpointURL` to
|
|
748
|
+
duck-type provider `endpointUrl` instead of matching
|
|
749
|
+
`constructor.name === 'StorageClient'`. Production minifiers rename classes,
|
|
750
|
+
so the name check left remote stores with `endpointURL: undefined` while
|
|
751
|
+
sync still worked; clients that select a backup by URL (make primary) failed.
|
|
9
752
|
- Let Storage Server operators select an explicit listener host while retaining
|
|
10
753
|
the historical omitted-host behavior for existing callers. The official
|
|
11
754
|
Wallet Infrastructure image uses this to bind direct-mode traffic on IPv4
|
|
@@ -222,7 +965,7 @@ attention to changes that materially alter behavior or extend functionality.
|
|
|
222
965
|
|
|
223
966
|
## wallet-toolbox 2.1.27
|
|
224
967
|
|
|
225
|
-
- Add optional `contactSource` (and exported `ContactSource` / `ContactRecord` interfaces) on `WalletArgs` and the `Wallet` class. When provided, `Wallet.discoverByIdentityKey` consults the local contacts source **before** the in-process `_overlayCache` and before any network call; on a hit, the overlay is not queried at all. `Wallet.discoverByAttributes` consults the contact source's optional `findByAttributes` when present. Contact-source failures are swallowed and fall through to the existing network path so the network is never gated on a flaky contact store.
|
|
968
|
+
- Add optional `contactSource` (and exported `ContactSource` / `ContactRecord` interfaces) on `WalletArgs` and the `Wallet` class. When provided, `Wallet.discoverByIdentityKey` consults the local contacts source **before** the in-process `_overlayCache` and before any network call; on a hit, the overlay is not queried at all. `Wallet.discoverByAttributes` consults the contact source's optional `findByAttributes` when present. Contact-source failures are swallowed and fall through to the existing network path so the network is never gated on a flaky contact store. A caller-installed contact source is an explicit personal trust anchor: its records are locally authoritative, not third-party certifier attestations. Synthetic contact results default to type `contact`, use empty certificate-proof fields, and receive infinite trust to express that local policy decision.
|
|
226
969
|
- `Wallet.discoverByIdentityKey` and `Wallet.discoverByAttributes` accept `forceRefresh?: boolean`. When `true`, both the contacts short-circuit and the 2-minute `_overlayCache` are bypassed so the network is consulted fresh — useful for a manual refresh action.
|
|
227
970
|
- `identityUtils.parseResults` now yields to the host runtime between certificates on UI runtimes (browser / React Native, detected at call time). On Node the yield is skipped to avoid timer overhead. Same total work; the JS thread no longer owns the frame for the duration of the loop, so menu taps and scroll keep working while a large identity result is parsed.
|
|
228
971
|
- `identityUtils.parseResults$` — new async-iterable form that emits each successfully parsed `VerifiableCertificate` as soon as it's ready, for callers that want progressive rendering.
|