@bopen-io/wallet-toolbox 2.6.2-brc153.5 → 2.15.0-bopen.1
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 +789 -1
- package/LICENSES/Open-BSV-License-4-wallet-pre-2026.txt +28 -0
- package/README.md +889 -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 +11241 -2525
- 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 +411 -85
- package/docs/no-send-expiry.md +167 -0
- package/docs/prepared-beef.md +197 -0
- package/docs/services.md +5163 -2157
- package/docs/setup.md +153 -57
- package/docs/storage.md +5051 -851
- package/docs/sync-transfer.md +144 -0
- package/docs/wab-shamir.md +5 -1
- package/docs/wallet.md +10202 -10670
- 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 +24 -0
- package/out/src/Setup.d.ts.map +1 -1
- package/out/src/Setup.js +30 -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 +2 -0
- package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
- package/out/src/monitor/MonitorDaemon.js +73 -17
- 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 +8 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +248 -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 +71 -7
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +616 -262
- 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 +41 -90
- 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/reqReviewQuery.d.ts +41 -0
- package/out/src/storage/adminServer/reqReviewQuery.d.ts.map +1 -0
- package/out/src/storage/adminServer/reqReviewQuery.js +67 -0
- package/out/src/storage/adminServer/reqReviewQuery.js.map +1 -0
- 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 +4 -0
- package/out/src/storage/index.all.d.ts.map +1 -1
- package/out/src/storage/index.all.js +4 -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/knexPostgres.d.ts +16 -0
- package/out/src/storage/knexPostgres.d.ts.map +1 -0
- package/out/src/storage/knexPostgres.js +34 -0
- package/out/src/storage/knexPostgres.js.map +1 -0
- 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 +21 -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 +31 -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 +18 -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.js +4 -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 +63 -27
- 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 +27 -5
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +243 -33
- 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 +13 -2
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +334 -43
- 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 +35 -30
- package/docs/open-rpc/index.html +0 -46
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# Identity overlay verification
|
|
2
|
+
|
|
3
|
+
This page records the current C01, C02, and C03 source contract for identity
|
|
4
|
+
results returned by Wallet Toolbox. The implementation and its tests remain
|
|
5
|
+
under review; this page is not a claim that the wider verification plan or
|
|
6
|
+
release gates have completed.
|
|
7
|
+
|
|
8
|
+
## Evidence boundary
|
|
9
|
+
|
|
10
|
+
An overlay result is a host-supplied `LookupAnswer`. A host TXID hint and
|
|
11
|
+
`context` are metadata, never chain authority. [`queryOverlayEvidence`](../src/utility/identityUtils.ts)
|
|
12
|
+
copies the BEEF and context bytes received through the additive resolver
|
|
13
|
+
`onEvidence` callback. Resolver callback intake defaults to 512 outputs and
|
|
14
|
+
16 MiB per query and accepts `evidenceLimits: { maxOutputs?, maxBytes? }` as
|
|
15
|
+
configurable local policy. It uses a 300 ms identity grace window. Older or
|
|
16
|
+
custom resolvers that do not invoke the callback remain usable through the
|
|
17
|
+
legacy output-list fallback.
|
|
18
|
+
|
|
19
|
+
Direct `queryOverlayEvidence` callers can configure
|
|
20
|
+
`{ candidateBytes?, retainedBytes?, outputs? }`. To admit larger valid
|
|
21
|
+
evidence, pass matching byte limits to both this intake option and the third
|
|
22
|
+
`IdentityEvidenceVerifier` constructor argument (`TransactionEvidenceLimits`).
|
|
23
|
+
The resolver and verifier limits are separate admission boundaries and are not
|
|
24
|
+
consensus limits.
|
|
25
|
+
|
|
26
|
+
[`TransactionEvidenceCoordinator`](../../../sdk/src/transaction/TransactionEvidenceCoordinator.ts)
|
|
27
|
+
parses the owned bytes, derives the selected transaction ID, compares any
|
|
28
|
+
supplied hint, checks the selected output, validates the complete unconfirmed
|
|
29
|
+
graph, and performs fresh canonical-root checks through the caller's
|
|
30
|
+
`ChainTracker`. It checks source transaction/value/script bindings, source TXID
|
|
31
|
+
consistency, duplicate spent outpoints, input/script limits, and rejects an
|
|
32
|
+
unconfirmed zero-input leaf. A successful result identifies a transaction
|
|
33
|
+
output and locking script; it does not establish service relevance, current
|
|
34
|
+
unspentness, ownership, or freshness.
|
|
35
|
+
|
|
36
|
+
The coordinator's `chainNamespace` and `policyId` are explicit caller-owned
|
|
37
|
+
trust context. An optional synchronous
|
|
38
|
+
`ChainTracker.getVerificationContext(): string | number` is a provider,
|
|
39
|
+
policy, or recovery-generation marker. The optional
|
|
40
|
+
`getVerificationContextToken(signal?)` obtains a fresh trusted tip/context
|
|
41
|
+
token and brackets canonical-root and height checks. Chaintracks and local
|
|
42
|
+
adapters include monotonic reorganization/reset epochs and fence reset entry
|
|
43
|
+
and failure paths. `LocalChainTracker` tokens cover only the providers
|
|
44
|
+
participating in the current attempt: remote-only uses fallback identity,
|
|
45
|
+
local-primary uses local identity. An unused provider cannot stand in, and a
|
|
46
|
+
missing participating identity fails closed. Built-in remote ChainTracks
|
|
47
|
+
clients advertise reorg-event capability explicitly; method presence is not
|
|
48
|
+
capability. `Services.getChainTracker()` publishes one coalesced wrapper
|
|
49
|
+
before yielding. `BHServiceClient` always re-reads the canonical header for
|
|
50
|
+
`isValidRootForHeight` and never treats a previously queried root as a reusable
|
|
51
|
+
positive. A remote tip equality read cannot detect an unobserved ABA
|
|
52
|
+
transition, and a token over multiple sources is not an atomic multi-source
|
|
53
|
+
snapshot. Canonical roots and observed heights remain dependencies that are
|
|
54
|
+
rechecked on each use, including positive-cache reuse. Existing trackers may
|
|
55
|
+
omit either optional method and may ignore optional abort signals.
|
|
56
|
+
|
|
57
|
+
`EvidenceScriptWork` in the SDK now shares bounded script work by a binding that
|
|
58
|
+
covers the actual transaction, all input source-output bytes and values, and
|
|
59
|
+
script policy/backend parameters. The binding is transaction-wide rather than
|
|
60
|
+
an input-index-only key. A cache hit can skip cryptographic script execution
|
|
61
|
+
only. It still performs source/value binding, complete graph traversal,
|
|
62
|
+
canonical chain calls, and policy/context checks. Non-batch individual
|
|
63
|
+
executions preserve each entry's fulfilled or rejected result so a failed
|
|
64
|
+
sibling cannot reject a successful shared ancestor. Only a backend batch-level
|
|
65
|
+
failure rejects the whole batch. Non-abortable backend work remains counted
|
|
66
|
+
until its actual promise settles, and in-flight owners are isolated. A normal
|
|
67
|
+
block arrival before the next reuse does not erase exact cryptographic script
|
|
68
|
+
work when its transaction/source/policy binding remains valid; canonical roots
|
|
69
|
+
and fresh context are still checked.
|
|
70
|
+
|
|
71
|
+
## Identity envelope
|
|
72
|
+
|
|
73
|
+
The interoperable identity output is the standard subject-signed PushDrop
|
|
74
|
+
created by [`IdentityClient.publiclyRevealAttributes`](../../../sdk/src/identity/IdentityClient.ts):
|
|
75
|
+
protocol ID `[1, 'identity']`, key ID `'1'`, token amount `1`, and output index
|
|
76
|
+
`0`. [`IdentityTopicManager`](../../../../packages/overlays/topics/src/identity/IdentityTopicManager.ts)
|
|
77
|
+
checks the same protocol and key, then certificate validity and nonempty
|
|
78
|
+
attributes. `IdentityClientOptions` exposes custom protocol and key values, but
|
|
79
|
+
the current server topic does not accept arbitrary values; custom values remain
|
|
80
|
+
a compatibility characterization item and C01 does not widen server
|
|
81
|
+
acceptance.
|
|
82
|
+
|
|
83
|
+
The parser checks the subject signature, requires `VerifiableCertificate.verify()`
|
|
84
|
+
to return `true`, decrypts the fields, and requires nonempty decrypted fields.
|
|
85
|
+
`ProtoWallet.verifySignature` throws on a cryptographic failure today; the
|
|
86
|
+
parser catches and rejects that candidate. C01 does not claim an invalid
|
|
87
|
+
certificate can bypass this throw. There is no existing topic contract for an
|
|
88
|
+
arbitrary `lockingPublicKey` equality rule, so none is added.
|
|
89
|
+
|
|
90
|
+
## Search binding
|
|
91
|
+
|
|
92
|
+
SDK 2.8.7 and Toolbox 2.14.2 interpret the `any` key as a search across public
|
|
93
|
+
fields other than `profilePhoto` and `icon`. Two-character searches retain the
|
|
94
|
+
overlay's fuzzy behavior. Longer searches compare complete English tokens,
|
|
95
|
+
ignore the default English stopwords, require each quoted phrase and at least
|
|
96
|
+
one positive indexed term, and exclude requested words or phrases. Punctuation
|
|
97
|
+
separates tokens; ASCII apostrophes remain part of English names. Text matching
|
|
98
|
+
is case- and diacritic-insensitive. Named attributes retain ordered literal
|
|
99
|
+
matching on one line, and `userName` remains exact after query whitespace
|
|
100
|
+
normalization. Empty optional named fields are ignored.
|
|
101
|
+
|
|
102
|
+
This follows the ordinary word/phrase behavior documented for
|
|
103
|
+
[MongoDB text queries](https://www.mongodb.com/docs/manual/reference/operator/query/text/),
|
|
104
|
+
with explicit limits: language-specific suffix stemming and custom index
|
|
105
|
+
languages are not implemented in this client-side binding. A stem-only overlay
|
|
106
|
+
match can still be omitted. Use a complete public name/username token or the
|
|
107
|
+
named-field search when that distinction matters. This is not a claim of full
|
|
108
|
+
MongoDB linguistic equivalence, and the release does not change the server's
|
|
109
|
+
index or lookup protocol. Local MongoDB 8.2.6 characterization covers the
|
|
110
|
+
ordinary complete-word, punctuation, phrase, exclusion and stopword cases.
|
|
111
|
+
|
|
112
|
+
## Cache and contact boundaries
|
|
113
|
+
|
|
114
|
+
The wallet keeps three distinct boundaries:
|
|
115
|
+
|
|
116
|
+
- Transaction evidence is revalidated through the current chain tracker on
|
|
117
|
+
every use. Coordinator positive results are bounded by configurable generic
|
|
118
|
+
SDK limits, including 128 entries, 16 MiB retained bytes, and 60 seconds.
|
|
119
|
+
- Decrypted certificate JSON is wallet-owned and copied on return. Its cache is
|
|
120
|
+
bounded at 2 MiB, 128 entries, and 60 seconds.
|
|
121
|
+
- Raw overlay lookup receipts are copied into a wallet cache bounded at 32
|
|
122
|
+
queries, 16 MiB, and 120 seconds. A rejected or incomplete parse evicts that
|
|
123
|
+
query entry so a later call can fetch again.
|
|
124
|
+
|
|
125
|
+
The wallet obtains the tracker from `getServices().getChainTracker()` and
|
|
126
|
+
reuses the configured instance. Direct [`queryOverlay`](../src/utility/identityUtils.ts),
|
|
127
|
+
`parseResults`, and `parseResults$` calls fail closed when no tracker is
|
|
128
|
+
provided. [`verifyOverlayOutput`](../src/utility/verifyOverlayOutput.ts)
|
|
129
|
+
requires an explicit tracker. Local contacts remain a separate wallet-owned
|
|
130
|
+
source and retain their existing short-circuit and trust behavior; contact
|
|
131
|
+
results must retain local provenance and are not overlay SPV results. Invalid
|
|
132
|
+
candidate evidence is dropped, while typed `limit` and `timeout` outcomes
|
|
133
|
+
propagate to the wallet caller instead of becoming a definitive empty result.
|
|
134
|
+
|
|
135
|
+
## Compatibility characterization
|
|
136
|
+
|
|
137
|
+
C01, C02, and C03 preserve existing Promise and `parseResults$` async-iterable
|
|
138
|
+
shapes. The resolver's `onEvidence` callback is optional and additive. Legacy
|
|
139
|
+
resolver answers continue to aggregate by TXID/output index with first-wins
|
|
140
|
+
suppression; a host hint is only a resolver fast path and must be re-derived
|
|
141
|
+
and checked by security-sensitive consumers. The callback is the bounded path
|
|
142
|
+
for consumers that need each host receipt before that suppression. Existing
|
|
143
|
+
2-second lookup and 5-second tracker-wait defaults remain unchanged.
|
|
144
|
+
|
|
145
|
+
Permission negotiation and pagination are unchanged. The interface
|
|
146
|
+
characterization still records that documentation says `seekPermission`
|
|
147
|
+
defaults to true while the validator currently applies false. Identity lookup
|
|
148
|
+
also retains the existing limit/offset validation and forwarding
|
|
149
|
+
characterization; this evidence work does not silently change either contract.
|
|
150
|
+
|
|
151
|
+
The standard topic envelope characterization and custom `IdentityClientOptions`
|
|
152
|
+
behavior above remain required for interoperability. No arbitrary locking-key
|
|
153
|
+
equality rule is implied. Chaintracks and local adapters now expose monotonic
|
|
154
|
+
reorganization/reset epochs and fence reset lifecycle races, including reset
|
|
155
|
+
ownership checks after disposal and before a destructive hook. Remote tip
|
|
156
|
+
equality still cannot detect an unobserved ABA transition, and no adapter token
|
|
157
|
+
provides an atomic multi-source snapshot. C03 therefore makes no general
|
|
158
|
+
reorganization-safety claim.
|
|
159
|
+
|
|
160
|
+
## Usage
|
|
161
|
+
|
|
162
|
+
Wallet callers use the existing Services configuration:
|
|
163
|
+
|
|
164
|
+
```ts
|
|
165
|
+
const tracker = await wallet.getServices().getChainTracker()
|
|
166
|
+
const certificates = await parseResults(answer, tracker)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Omitting the utility tracker remains source-compatible but returns no verified
|
|
170
|
+
overlay identities. There is no bypass toggle. Wallet RPC shapes, stored data,
|
|
171
|
+
permission defaults, and pagination behavior require no migration from this
|
|
172
|
+
source work.
|
|
173
|
+
|
|
174
|
+
On browser and React Native runtimes, `parseResults$` cooperatively yields
|
|
175
|
+
between certificates. This is a current-runtime scheduling behavior, with no
|
|
176
|
+
worker, throughput, latency, resource-isolation, or deployment guarantee.
|
|
177
|
+
C04/C05 work and any whole-plan completion claim remain future scope.
|
|
178
|
+
|
|
179
|
+
## Requirement and verification mapping
|
|
180
|
+
|
|
181
|
+
The scoped source supports V1 (independent transaction evidence), the
|
|
182
|
+
byte-binding portion of V2 (BEEF-derived TXID versus any hint), and V5
|
|
183
|
+
(certificate success and trust policy). T04, T07, T09, T10, and T13 remain the
|
|
184
|
+
relevant characterization cases for false hints, graph and anchor checks,
|
|
185
|
+
envelope/certificate validity, permissions/cache/contacts, and Promise/
|
|
186
|
+
pagination compatibility. The synthetic shared-ancestor fixture is 556 BEEF
|
|
187
|
+
bytes with three reachable transactions, three inputs, and 314 serialized
|
|
188
|
+
script bytes; two child graphs produce three actual script executions. Current
|
|
189
|
+
tests are evidence for these slices only; validation is not final until the
|
|
190
|
+
required package and consumer checks pass.
|
|
191
|
+
|
|
192
|
+
## Historical C01 bundle measurements
|
|
193
|
+
|
|
194
|
+
The following measurements are retained as historical C01 evidence for the
|
|
195
|
+
2.11.1 artifacts. They are measurements only, not passing platform gates and
|
|
196
|
+
not a release decision. C02/C03 source changes require fresh package and
|
|
197
|
+
consumer validation.
|
|
198
|
+
|
|
199
|
+
Measurements used Node 24.15.0 and pnpm 10.33.2 on the same macOS host, with
|
|
200
|
+
base commit `2bc799a8d8e535242e6de2d305f426ce3975ea7b` extracted into a temporary
|
|
201
|
+
source tree and the same SDK/dependency graph. A temporary copy of the
|
|
202
|
+
platform checker printed each size instead of evaluating budgets. The original
|
|
203
|
+
checker was not modified.
|
|
204
|
+
|
|
205
|
+
Each cell lists raw / gzip / Brotli bytes:
|
|
206
|
+
|
|
207
|
+
| Consumer | Base | C01 | Reviewed maximum |
|
|
208
|
+
| -------- | --------------------------------: | --------------------------------: | --------------------------------: |
|
|
209
|
+
| Vite | 1,692,309 / 399,380 / 312,207 | 1,694,805 / 400,062 / 312,426 | 1,696,000 / 401,000 / 314,000 |
|
|
210
|
+
| esbuild | 1,320,184 / 363,792 / 291,500 | 1,322,211 / 364,400 / 291,926 | 1,324,000 / 365,000 / 293,000 |
|
|
211
|
+
| Metro | 1,747,262 / 443,100 / 343,780 | 1,749,640 / 443,811 / 343,927 | 1,751,000 / 455,000 / 360,000 |
|
|
212
|
+
| Hermes | 3,544,570 / 1,440,174 / 1,117,759 | 3,550,004 / 1,442,134 / 1,120,813 | 3,553,000 / 1,443,000 / 1,123,000 |
|
|
213
|
+
|
|
214
|
+
The historical C01 result measured raw growth of 2,496 / 2,027 / 2,378 /
|
|
215
|
+
5,434 bytes for Vite, esbuild, Metro, and Hermes respectively. The C01
|
|
216
|
+
composition retained the same dependencies and did not add a platform-only
|
|
217
|
+
import. The original `test:browser` and `test:mobile` commands remain the
|
|
218
|
+
executable gates for any current release evidence.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Local-first ChainTracks
|
|
2
|
+
|
|
3
|
+
Wallet applications can keep and validate their own header chain instead of
|
|
4
|
+
making a remote service the normal validation boundary. The browser package
|
|
5
|
+
exports IndexedDB ChainTracks. Browser and mobile packages both export the
|
|
6
|
+
portable checkpoint cache contract, bounded fetching, local ChainTracks
|
|
7
|
+
components, and `LocalChainTracker`; the full package additionally exports a
|
|
8
|
+
filesystem checkpoint cache.
|
|
9
|
+
|
|
10
|
+
## Trust and data flow
|
|
11
|
+
|
|
12
|
+
1. The release pipeline embeds a checkpoint manifest and immutable 80-byte
|
|
13
|
+
header files in the application artifact. Each manifest entry includes its
|
|
14
|
+
chain, height range, SHA-256 digest, previous hash, last hash, and cumulative
|
|
15
|
+
chain work.
|
|
16
|
+
2. A `BulkFileDataCacheApi` implementation reads an embedded object first and
|
|
17
|
+
mutable application storage second. A downloaded replacement is written to
|
|
18
|
+
mutable storage atomically where the platform permits it.
|
|
19
|
+
3. `createIdbChaintracks` or another local factory consumes that cache through
|
|
20
|
+
the final `ChaintracksSourceOptions` argument. The manager validates object
|
|
21
|
+
length, digest, genesis, header linkage, declared chain work, and every
|
|
22
|
+
header's proof of work before the object can answer a query.
|
|
23
|
+
4. Live ingestion follows bounded binary batches and a reconnecting tip stream
|
|
24
|
+
in the background. IndexedDB in browsers, or the application's durable
|
|
25
|
+
mobile storage adapter, retains the current height and recent headers across
|
|
26
|
+
application restarts.
|
|
27
|
+
5. `LocalChainTracker` is supplied to wallet services as the SDK
|
|
28
|
+
`ChainTracker`. A definitive local `false` result is never changed to
|
|
29
|
+
`true` by a remote source.
|
|
30
|
+
|
|
31
|
+
The embedded checkpoint is a bootstrap optimization, not a bypass. Its bytes
|
|
32
|
+
are revalidated locally before use. Release builds should fail when an asset is
|
|
33
|
+
missing, its digest differs from the manifest, the manifest is not contiguous,
|
|
34
|
+
or the checkpoint age exceeds the application's release policy.
|
|
35
|
+
|
|
36
|
+
## Portable checkpoint cache
|
|
37
|
+
|
|
38
|
+
Applications implement the small portable contract below. Packaged assets are
|
|
39
|
+
immutable; mutable objects belong in an application-private database or file
|
|
40
|
+
area, not a shared HTTP cache.
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
import type { BulkFileDataCacheApi, BulkHeaderFileInfo } from '@bsv/wallet-toolbox-client'
|
|
44
|
+
|
|
45
|
+
class ApplicationHeaderCache implements BulkFileDataCacheApi {
|
|
46
|
+
async get(file: Readonly<BulkHeaderFileInfo>): Promise<Uint8Array | undefined> {
|
|
47
|
+
return (await readPackagedAsset(file.fileName)) ?? readApplicationData(file.fileName)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async set(file: Readonly<BulkHeaderFileInfo>, data: Uint8Array): Promise<void> {
|
|
51
|
+
await writeApplicationDataAtomically(file.fileName, data)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async delete(file: Readonly<BulkHeaderFileInfo>): Promise<void> {
|
|
55
|
+
await deleteApplicationData(file.fileName)
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Pass the instance as `sources.bulkFileCache` in the final ChainTracks factory
|
|
61
|
+
argument. `sources.bulkFileDownloadBudget` can reserve remote bytes before a
|
|
62
|
+
bulk request begins. The manager coalesces concurrent requests for the same
|
|
63
|
+
immutable object, bounds each response, retries from one layer only, and never
|
|
64
|
+
persists bytes until all validation succeeds.
|
|
65
|
+
|
|
66
|
+
## Local-primary tracker
|
|
67
|
+
|
|
68
|
+
Wrap the resulting local client with `LocalChainTracker`. Use at least two
|
|
69
|
+
independently operated reference clients when automatic recovery or fallback
|
|
70
|
+
validation can affect an acceptance decision.
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { LocalChainTracker } from '@bsv/wallet-toolbox-client'
|
|
74
|
+
|
|
75
|
+
const tracker = new LocalChainTracker({
|
|
76
|
+
local: localChaintracks,
|
|
77
|
+
fallbacks: independentReferences,
|
|
78
|
+
mode: 'local-primary',
|
|
79
|
+
requiredFallbackAgreement: 2,
|
|
80
|
+
requiredConsistencyAgreement: 2,
|
|
81
|
+
maxHeightLag: 6,
|
|
82
|
+
autoRecover: true,
|
|
83
|
+
recoverLocal: rebuildLocalFromCheckpoint,
|
|
84
|
+
clearLocal: clearAndRebuildLocal
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
await tracker.synchronize()
|
|
88
|
+
const walletServices = new Services({
|
|
89
|
+
...Services.createDefaultOptions(chain),
|
|
90
|
+
chainTracker: tracker
|
|
91
|
+
})
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
`checkConsistency()` compares all available views at a common height and derives
|
|
95
|
+
the reference height reached by the configured quorum. A single stale or
|
|
96
|
+
inflated reference cannot declare divergence or lag when the configured
|
|
97
|
+
agreement is two. Automatic recovery receives the reason, local and reference
|
|
98
|
+
heights, lag, comparison height, expected hash, and agreement count; it should
|
|
99
|
+
quarantine the old database, rebuild from a verified checkpoint, synchronize,
|
|
100
|
+
and return the replacement local client. If the references do not agree, retain
|
|
101
|
+
local state and surface diagnostics instead of resetting it.
|
|
102
|
+
|
|
103
|
+
Remote fallback is exceptional. It is used only in `remote-only` mode or after
|
|
104
|
+
the local client throws, and it must reach the configured agreement. A local
|
|
105
|
+
proof rejection remains authoritative.
|
|
106
|
+
|
|
107
|
+
## Application lifecycle and controls
|
|
108
|
+
|
|
109
|
+
Start synchronization after durable storage is available. Keep it alive while
|
|
110
|
+
the platform grants background execution, checkpoint progress on suspension,
|
|
111
|
+
and resume immediately on connectivity restoration. Use exponential reconnect
|
|
112
|
+
backoff and avoid overlapping synchronization jobs.
|
|
113
|
+
|
|
114
|
+
An application's advanced chain-management surface should expose:
|
|
115
|
+
|
|
116
|
+
- local-primary and remote-only modes, with local-primary as the default;
|
|
117
|
+
- local height, tip hash, last sync, consistency state, active source, last
|
|
118
|
+
fallback, last recovery, and bounded diagnostic error;
|
|
119
|
+
- a manual synchronize action and a quorum consistency check;
|
|
120
|
+
- local header storage size and a destructive clear/rebuild action with an
|
|
121
|
+
explicit confirmation;
|
|
122
|
+
- checkpoint version/height and the configured independent references.
|
|
123
|
+
|
|
124
|
+
For migration, preserve the existing remote endpoint as a fallback, create the
|
|
125
|
+
local database without blocking the rest of the wallet, and switch the saved
|
|
126
|
+
default to local-primary only after initial synchronization succeeds. A user
|
|
127
|
+
who explicitly selected remote-only remains remote-only across upgrades.
|
|
128
|
+
Clearing local data must not clear keys, transactions, proofs, or other wallet
|
|
129
|
+
state.
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# Managed-change liquidity policy
|
|
2
|
+
|
|
3
|
+
Wallet-managed change is both the wallet's balance and its concurrency pool.
|
|
4
|
+
An output that is technically spendable but too small to carry a useful action
|
|
5
|
+
at the current fee rate does not provide useful liquidity. Conversely, creating
|
|
6
|
+
the entire pool in one transaction makes every child carry a large common BEEF
|
|
7
|
+
ancestor and creates unnecessary linkage.
|
|
8
|
+
|
|
9
|
+
This policy keeps `createAction` available to existing callers while gradually
|
|
10
|
+
moving new and existing wallets toward useful, parallel funding units.
|
|
11
|
+
|
|
12
|
+
## Invariants
|
|
13
|
+
|
|
14
|
+
The implementation treats these as non-negotiable:
|
|
15
|
+
|
|
16
|
+
1. A policy preference cannot make an action fail if the former planner could
|
|
17
|
+
fund it. Each parent-status tier retries the compatibility funding shape
|
|
18
|
+
before the planner widens to less-preferred ancestry.
|
|
19
|
+
2. `completed` parents are preferred, then `unproven`, then `sending`.
|
|
20
|
+
Pending outputs are never withheld: they remain a last-resort source and
|
|
21
|
+
are selected when settled liquidity cannot fund the action.
|
|
22
|
+
3. A large settled-input plan may be compared with pending alternatives, but
|
|
23
|
+
only after the configurable comparison threshold. The comparison uses the
|
|
24
|
+
actual serialized BEEF bytes plus the planned transaction bytes; input
|
|
25
|
+
count and satoshi value are not used as BEEF-size proxies.
|
|
26
|
+
4. Pool growth consumes only surplus already present after the requested
|
|
27
|
+
action and its exact incremental fee are funded. The wallet does not gather
|
|
28
|
+
another input merely to manufacture change outputs.
|
|
29
|
+
5. An output below the preferred value is permitted when it is the only
|
|
30
|
+
fundable remainder. The preferred value is not a dust rule and cannot turn
|
|
31
|
+
a valid payment into `WERR_INSUFFICIENT_FUNDS`.
|
|
32
|
+
6. Legacy fragments migrate only on a caller-authorized `createAction`, only
|
|
33
|
+
when their value exceeds their marginal input fee, and only within the
|
|
34
|
+
configured per-action budget.
|
|
35
|
+
7. Action-batch workspaces reserve disjoint outputs and use the same change
|
|
36
|
+
values and per-action shaping limits as the legacy `createAction` path.
|
|
37
|
+
8. Permission-token persistence retains delayed broadcast so a permission
|
|
38
|
+
grant does not inherit network-broadcast latency. The funding policy makes
|
|
39
|
+
queued change available only after preferred alternatives are exhausted.
|
|
40
|
+
|
|
41
|
+
## Defaults
|
|
42
|
+
|
|
43
|
+
| Setting | Default | Purpose |
|
|
44
|
+
| ---------------------------------- | -------------: | ---------------------------------------------------------------------------------------------------------------- |
|
|
45
|
+
| Default-basket target | 144 outputs | Supports many independently planned actions without requiring one large fanout transaction. |
|
|
46
|
+
| Preferred output value | 5,000 satoshis | Keeps a liquidity unit useful at fee rates materially above the historical 32-satoshi era. |
|
|
47
|
+
| New outputs per action | 8 | Builds the pool progressively and bounds any one transaction's fanout and descendant BEEF footprint. |
|
|
48
|
+
| Legacy migration inputs per action | 4 | Retires old fragments progressively without recreating 178-input permission transactions. |
|
|
49
|
+
| Pending-comparison threshold | 16 inputs | Keeps the common settled path fast; above this point the planner measures alternatives by exact serialized cost. |
|
|
50
|
+
|
|
51
|
+
At the Wallet Toolbox default of 100 satoshis/kB, a 148-byte managed input adds
|
|
52
|
+
about 15 satoshis of fee and a minimal one-input/one-output transaction costs
|
|
53
|
+
about 20 satoshis. A 5,000-satoshi preferred unit is therefore roughly 250
|
|
54
|
+
minimal-spend fees at that rate. Even at 1,000 satoshis/kB it remains roughly
|
|
55
|
+
26 minimal-spend fees. The value is intentionally a liquidity target, not a
|
|
56
|
+
consensus or economic-dust boundary.
|
|
57
|
+
|
|
58
|
+
A completely filled default pool represents 720,000 satoshis. Wallets with a
|
|
59
|
+
smaller balance do not attempt to manufacture that reserve. They retain fewer
|
|
60
|
+
outputs, and a remainder below 5,000 satoshis is kept when that is the only
|
|
61
|
+
available shape.
|
|
62
|
+
|
|
63
|
+
## Funding and ancestry selection
|
|
64
|
+
|
|
65
|
+
For each action, storage loads unreserved managed change once and plans in this
|
|
66
|
+
order:
|
|
67
|
+
|
|
68
|
+
1. completed parents;
|
|
69
|
+
2. completed plus unproven parents;
|
|
70
|
+
3. completed, unproven, and sending parents.
|
|
71
|
+
|
|
72
|
+
Within each tier, the new surplus-only shape runs first. If that shape reports
|
|
73
|
+
insufficient funds, the same tier is immediately retried with the former
|
|
74
|
+
funding algorithm and the allocator's economic floor for its first remainder.
|
|
75
|
+
This is deliberately at least as permissive as the historical 32-satoshi
|
|
76
|
+
basket. An inability to create a preferred 5,000-satoshi change output is not
|
|
77
|
+
evidence that settled funds cannot pay the requested output.
|
|
78
|
+
|
|
79
|
+
The first successful plan is accepted immediately when it uses no more than 16
|
|
80
|
+
managed inputs. Above that threshold, later status tiers are also planned and
|
|
81
|
+
the wallet compares:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
serialized cost = planned transaction bytes + exact input BEEF bytes
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The smallest measured plan wins. If proof retrieval needed only for comparison
|
|
88
|
+
is unavailable, that alternative receives an infinite comparison cost; the
|
|
89
|
+
already fundable baseline remains available. This optimization can therefore
|
|
90
|
+
improve latency and BEEF size but cannot become a new availability dependency.
|
|
91
|
+
|
|
92
|
+
Using a `sending` parent necessarily extends the unconfirmed BEEF chain and a
|
|
93
|
+
failed ancestor can invalidate its descendants. That is why it is last in the
|
|
94
|
+
normal order. It remains supported because refusing a fundable user action is
|
|
95
|
+
worse than reluctantly extending the chain after all safer liquidity is
|
|
96
|
+
exhausted.
|
|
97
|
+
|
|
98
|
+
## Progressive pool shaping
|
|
99
|
+
|
|
100
|
+
Explicit or fixed inputs can already cover the requested outputs and fee. In
|
|
101
|
+
that case the planner materializes the first change output directly from that
|
|
102
|
+
existing surplus before considering optional fragment migration. It does not
|
|
103
|
+
call the managed-change allocator merely to create pool outputs. This keeps
|
|
104
|
+
consolidations and externally funded actions on the same shaping policy while
|
|
105
|
+
preserving the invariant that pool growth never gathers compulsory inputs.
|
|
106
|
+
When the surplus cannot pay both the marginal output fee and the economic dust
|
|
107
|
+
floor, the bounded remainder stays in the transaction fee instead of causing a
|
|
108
|
+
compatibility retry to gather another input solely to manufacture change.
|
|
109
|
+
|
|
110
|
+
After compulsory funding succeeds, the planner may consume up to four
|
|
111
|
+
undersized outputs. A fragment is skipped when spending it would cost at least
|
|
112
|
+
its value. Optional migration never supplies a missing satoshi for the caller's
|
|
113
|
+
requested outputs and never runs when the basket is already at its target.
|
|
114
|
+
|
|
115
|
+
The resulting surplus is split into at most eight outputs and only when every
|
|
116
|
+
new output can meet the preferred value after paying the exact added output
|
|
117
|
+
fee. Otherwise the wallet keeps one output. Excess is distributed through the
|
|
118
|
+
existing randomized change algorithm, and ordinary output randomization still
|
|
119
|
+
applies. The policy therefore preserves the existing privacy intent and
|
|
120
|
+
non-uniform values whenever surplus exists instead of replacing it with a
|
|
121
|
+
fixed deterministic denomination scheme. When the available value is exactly
|
|
122
|
+
the sum of the preferred minima, equal minima are unavoidable; the wallet does
|
|
123
|
+
not create a smaller output merely to force cosmetic variance.
|
|
124
|
+
|
|
125
|
+
The target is based on healthy outputs (those at or above the basket's
|
|
126
|
+
preferred value), not raw output count. Consuming a legacy fragment and
|
|
127
|
+
creating a useful output moves the pool forward; merely retaining another
|
|
128
|
+
32-satoshi fragment does not make the pool appear healthy.
|
|
129
|
+
|
|
130
|
+
## Existing-wallet migration
|
|
131
|
+
|
|
132
|
+
The SQL and IndexedDB providers recognize only the exact historical untouched
|
|
133
|
+
default:
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
basket name = default
|
|
137
|
+
target count = 144
|
|
138
|
+
minimum value = 32
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Those baskets advance to a 5,000-satoshi preferred value during the normal
|
|
142
|
+
provider migration. Other basket names, custom target counts, and custom
|
|
143
|
+
minimum values are unchanged. The migration does not consolidate, sign, or
|
|
144
|
+
broadcast a transaction. Future `createAction` calls progressively consume at
|
|
145
|
+
most the configured number of fee-positive fragments and create useful change
|
|
146
|
+
only from real surplus.
|
|
147
|
+
|
|
148
|
+
The SQL data migration is intentionally one-way. Rolling code back does not
|
|
149
|
+
rewrite a migrated preference to 32 or fragment funds. Older code can still
|
|
150
|
+
read and honor the 5,000-satoshi basket value. SQLite writes the migrated
|
|
151
|
+
row's timestamp in UTC ISO form, matching incremental-sync query values and
|
|
152
|
+
keeping that metadata immediately sync-visible. MySQL retains its native
|
|
153
|
+
millisecond timestamp expression.
|
|
154
|
+
|
|
155
|
+
## Operator configuration
|
|
156
|
+
|
|
157
|
+
The defaults are suitable for a general wallet. Local Knex and IndexedDB
|
|
158
|
+
operators can tune the work budgets without rebuilding the package:
|
|
159
|
+
|
|
160
|
+
```ts
|
|
161
|
+
const setup = await Setup.createWalletKnex({
|
|
162
|
+
...args,
|
|
163
|
+
managedChangePolicy: {
|
|
164
|
+
maxOutputsPerAction: 8,
|
|
165
|
+
migrationInputsPerAction: 4,
|
|
166
|
+
pendingComparisonInputs: 16
|
|
167
|
+
}
|
|
168
|
+
})
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
The same `managedChangePolicy` option is accepted by `StorageKnex`,
|
|
172
|
+
`StorageIdb`, `Setup.createStorageKnex`, and `SetupClient.createStorageIdb`.
|
|
173
|
+
The basket target and preferred value remain user-wallet settings and can be
|
|
174
|
+
changed through `wallet.setWalletChangeParams(count, satoshis)`.
|
|
175
|
+
|
|
176
|
+
Each policy limit accepts `-1`, with deliberately different meanings:
|
|
177
|
+
|
|
178
|
+
- `maxOutputsPerAction: -1` makes the basket target the only fanout bound;
|
|
179
|
+
- `migrationInputsPerAction: -1` permits all fee-positive legacy fragments in
|
|
180
|
+
one authorized action;
|
|
181
|
+
- `pendingComparisonInputs: -1` disables optional pending-plan comparison, but
|
|
182
|
+
pending funds remain available when earlier tiers are insufficient.
|
|
183
|
+
|
|
184
|
+
Unlimited modes can create large transactions or BEEF payloads and should be
|
|
185
|
+
used only by operators that have measured their workload. They do not remove
|
|
186
|
+
the wallet's economic-dust check, transaction validity checks, action-batch
|
|
187
|
+
reservation limit, or available-funding bound.
|
|
188
|
+
|
|
189
|
+
The official `wallet-infra` image exposes the same settings as validated
|
|
190
|
+
environment values:
|
|
191
|
+
|
|
192
|
+
```dotenv
|
|
193
|
+
WALLET_STORAGE_MANAGED_CHANGE_MAX_OUTPUTS_PER_ACTION=8
|
|
194
|
+
WALLET_STORAGE_MANAGED_CHANGE_MIGRATION_INPUTS_PER_ACTION=4
|
|
195
|
+
WALLET_STORAGE_MANAGED_CHANGE_PENDING_COMPARISON_INPUTS=16
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
This lets a hosted Wallet Storage provider choose the policy without rebuilding
|
|
199
|
+
the image. Invalid, unsafe-integer, or out-of-range values fail startup instead
|
|
200
|
+
of silently falling back. The API and singleton Monitor roles must use the same
|
|
201
|
+
values so planning, reservation, and operator reporting describe one policy.
|
|
202
|
+
|
|
203
|
+
## Action batches and concurrent workspaces
|
|
204
|
+
|
|
205
|
+
An action-batch begin response carries the effective output and migration
|
|
206
|
+
limits when the provider supports them. Older and third-party providers can
|
|
207
|
+
omit the optional policy; clients then use the same defaults. Initial and
|
|
208
|
+
extended reservation selection prefers completed parents, then unproven, then
|
|
209
|
+
sending, while still reserving enough last-resort liquidity to avoid wedging a
|
|
210
|
+
workspace.
|
|
211
|
+
|
|
212
|
+
Workspaces remain isolated by explicit transaction-graph membership and their
|
|
213
|
+
reservations remain disjoint. Pool-shaping state is local to each plan; there
|
|
214
|
+
is no global in-memory "current batch" whose change can be consumed by an
|
|
215
|
+
unrelated action.
|
|
216
|
+
|
|
217
|
+
## Monitoring and rollout
|
|
218
|
+
|
|
219
|
+
Wallet Storage can optionally prepare the exact verified BEEF closure for a
|
|
220
|
+
managed-change source after the foreground action finishes. This COOK
|
|
221
|
+
(Create Once, Output Kept) optimization does not alter funding selection,
|
|
222
|
+
transaction state, or the canonical fallback. See
|
|
223
|
+
[Prepared BEEF (COOK)](./prepared-beef.md) for the asynchronous timing
|
|
224
|
+
contract, storage controls, proof-reorganization handling, and staged rollout.
|
|
225
|
+
|
|
226
|
+
`TaskReviewUtxos.reviewManagedChangeByIdentityKey(identityKey)` is a read-only
|
|
227
|
+
operator report. It returns:
|
|
228
|
+
|
|
229
|
+
- total and target managed-change counts;
|
|
230
|
+
- healthy and undersized counts;
|
|
231
|
+
- active action-batch reservations;
|
|
232
|
+
- completed, unproven, and sending parent counts;
|
|
233
|
+
- total satoshis and the preferred minimum.
|
|
234
|
+
|
|
235
|
+
Monitor has no signing authority and does not perform consolidation. This
|
|
236
|
+
keeps migration tied to normal user-authorized actions and makes rollout
|
|
237
|
+
observable without creating surprise transactions. The official Monitor admin
|
|
238
|
+
UI exposes the same report as the **managed-change liquidity (read only)** UTXO
|
|
239
|
+
review mode.
|
|
240
|
+
|
|
241
|
+
Recommended rollout checks are:
|
|
242
|
+
|
|
243
|
+
1. record the report before upgrade;
|
|
244
|
+
2. migrate the storage provider and confirm only exact legacy defaults changed;
|
|
245
|
+
3. exercise a small immediate action, a delayed permission action, and two
|
|
246
|
+
concurrent action-batch workspaces;
|
|
247
|
+
4. confirm undersized count declines gradually and sending-parent use remains
|
|
248
|
+
exceptional;
|
|
249
|
+
5. watch action input count, serialized BEEF bytes, fee, and broadcast failure
|
|
250
|
+
rates before changing defaults or selecting an unlimited mode.
|
|
251
|
+
|
|
252
|
+
## Compatibility surface
|
|
253
|
+
|
|
254
|
+
No BRC-100 method, Wallet Wire method, Storage Server RPC method, or persisted
|
|
255
|
+
transaction format changes. The action-batch policy field is optional. Existing
|
|
256
|
+
custom basket settings remain authoritative. A same-tier compatibility plan,
|
|
257
|
+
followed by the retained pending-parent fallback, ensures the new preferences
|
|
258
|
+
do not add a refusal where the previous wallet could create an action.
|
|
@@ -43,7 +43,7 @@ without allowing them into balance or automatic funding.
|
|
|
43
43
|
| Request | New output | Existing custom output | Existing managed change |
|
|
44
44
|
| --- | --- | --- | --- |
|
|
45
45
|
| `wallet payment` | Store as managed change in `default` | Promote to managed change after BRC-29 script verification | Idempotent when already in `default` |
|
|
46
|
-
| `basket insertion` to a non-default basket | Store as custom | Move/update as custom; no wallet-balance adjustment | Reject; managed change cannot be reclassified |
|
|
46
|
+
| `basket insertion` to a non-default basket | Store as custom | Move/update as custom; no wallet-balance adjustment\* | Reject; managed change cannot be reclassified |
|
|
47
47
|
| `basket insertion` to `default` | Reject | Reject | Reject |
|
|
48
48
|
|
|
49
49
|
The wallet signer verifies that `paymentRemittance` derives the transaction
|
|
@@ -51,6 +51,19 @@ output's locking script before storage can promote it. This is the supported
|
|
|
51
51
|
way to repair a genuine BRC-29 payment that was previously classified as
|
|
52
52
|
custom. Merely recognizing a P2PKH locking script is not enough.
|
|
53
53
|
|
|
54
|
+
\* Only when the existing custom output is currently unbasketed, already in
|
|
55
|
+
the target basket (idempotent re-internalization), or in `default` (see
|
|
56
|
+
[Sweeping and recovery](#sweeping-and-recovery)). A `basket insertion` cannot
|
|
57
|
+
reclassify an existing custom output that already belongs to a *different*
|
|
58
|
+
real, named basket; that request is rejected with `WERR_INVALID_PARAMETER`
|
|
59
|
+
even though the caller holds insertion permission for the requested basket.
|
|
60
|
+
Storage does not know which application "owns" a basket — permission checks
|
|
61
|
+
for the requested basket happen at the `WalletPermissionsManager` layer, not
|
|
62
|
+
here — so without this check an app with insertion permission on basket X
|
|
63
|
+
could internalize an already-known transaction and move another app's output
|
|
64
|
+
out of basket Y into X, then spend it. The requested basket is resolved with a
|
|
65
|
+
read-only lookup, so a rejected request never creates it.
|
|
66
|
+
|
|
54
67
|
## Sweeping and recovery
|
|
55
68
|
|
|
56
69
|
"Sweep" means moving an incompatible custom row out of the default basket with
|