@bopen-io/wallet-toolbox 2.1.21-parity-fix.2 → 2.6.2-brc153.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +232 -6
- package/LICENSE.txt +58 -0
- package/README.md +236 -47
- package/docs/README.md +3 -1
- package/docs/action-batch-planning.md +220 -0
- package/docs/authentication-observability.md +106 -0
- package/docs/client.md +55 -14
- package/docs/managed-change-policy.md +79 -0
- package/docs/monitor.md +3 -2
- package/docs/setup.md +24 -4
- package/docs/storage.md +16 -6
- package/docs/wallet.md +55 -14
- package/out/src/CWIStyleWalletManager.d.ts +122 -12
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -1
- package/out/src/CWIStyleWalletManager.js +1006 -461
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/Setup.d.ts +13 -6
- package/out/src/Setup.d.ts.map +1 -1
- package/out/src/Setup.js +15 -16
- package/out/src/Setup.js.map +1 -1
- package/out/src/SetupClient.d.ts +8 -6
- package/out/src/SetupClient.d.ts.map +1 -1
- package/out/src/SetupClient.js +11 -12
- package/out/src/SetupClient.js.map +1 -1
- package/out/src/SetupWallet.d.ts +6 -0
- package/out/src/SetupWallet.d.ts.map +1 -1
- package/out/src/ShamirWalletManager.d.ts +5 -5
- package/out/src/ShamirWalletManager.d.ts.map +1 -1
- package/out/src/ShamirWalletManager.js +16 -9
- package/out/src/ShamirWalletManager.js.map +1 -1
- package/out/src/SimpleWalletManager.d.ts +12 -2
- package/out/src/SimpleWalletManager.d.ts.map +1 -1
- package/out/src/SimpleWalletManager.js +73 -31
- package/out/src/SimpleWalletManager.js.map +1 -1
- package/out/src/Wallet.d.ts +88 -14
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +410 -249
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletAuthenticationManager.d.ts +31 -7
- package/out/src/WalletAuthenticationManager.d.ts.map +1 -1
- package/out/src/WalletAuthenticationManager.js +219 -35
- package/out/src/WalletAuthenticationManager.js.map +1 -1
- package/out/src/WalletLogger.d.ts.map +1 -1
- package/out/src/WalletLogger.js +45 -32
- package/out/src/WalletLogger.js.map +1 -1
- package/out/src/WalletPermissionsManager.d.ts +163 -19
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +1232 -1180
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/WalletSettingsManager.d.ts +2 -2
- package/out/src/WalletSettingsManager.d.ts.map +1 -1
- package/out/src/WalletSettingsManager.js +3 -0
- package/out/src/WalletSettingsManager.js.map +1 -1
- package/out/src/entropy/EntropyCollector.d.ts +1 -1
- package/out/src/entropy/EntropyCollector.d.ts.map +1 -1
- package/out/src/entropy/EntropyCollector.js +18 -20
- package/out/src/entropy/EntropyCollector.js.map +1 -1
- package/out/src/fundWalletP2PKH.d.ts +2 -2
- package/out/src/fundWalletP2PKH.d.ts.map +1 -1
- package/out/src/fundWalletP2PKH.js +15 -15
- package/out/src/fundWalletP2PKH.js.map +1 -1
- package/out/src/index.all.d.ts +2 -0
- package/out/src/index.all.d.ts.map +1 -1
- package/out/src/index.all.js +2 -0
- package/out/src/index.all.js.map +1 -1
- package/out/src/index.client.d.ts +2 -0
- package/out/src/index.client.d.ts.map +1 -1
- package/out/src/index.client.js +2 -0
- package/out/src/index.client.js.map +1 -1
- package/out/src/index.mobile.d.ts +3 -0
- package/out/src/index.mobile.d.ts.map +1 -1
- package/out/src/index.mobile.js +3 -0
- package/out/src/index.mobile.js.map +1 -1
- package/out/src/mockchain/MockChainMigrations.d.ts +3 -3
- package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -1
- package/out/src/mockchain/MockChainMigrations.js +1 -1
- package/out/src/mockchain/MockChainMigrations.js.map +1 -1
- package/out/src/mockchain/MockChainStorage.d.ts.map +1 -1
- package/out/src/mockchain/MockChainStorage.js +9 -8
- package/out/src/mockchain/MockChainStorage.js.map +1 -1
- package/out/src/mockchain/MockChainTracker.d.ts.map +1 -1
- package/out/src/mockchain/MockChainTracker.js +12 -10
- package/out/src/mockchain/MockChainTracker.js.map +1 -1
- package/out/src/mockchain/MockMiner.d.ts.map +1 -1
- package/out/src/mockchain/MockMiner.js +5 -5
- package/out/src/mockchain/MockMiner.js.map +1 -1
- package/out/src/mockchain/MockServices.d.ts +13 -0
- package/out/src/mockchain/MockServices.d.ts.map +1 -1
- package/out/src/mockchain/MockServices.js +232 -283
- package/out/src/mockchain/MockServices.js.map +1 -1
- package/out/src/mockchain/merkleTree.d.ts.map +1 -1
- package/out/src/mockchain/merkleTree.js +61 -57
- package/out/src/mockchain/merkleTree.js.map +1 -1
- package/out/src/monitor/Monitor.d.ts +24 -4
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +158 -148
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/MonitorDaemon.d.ts +5 -2
- package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
- package/out/src/monitor/MonitorDaemon.js +79 -69
- package/out/src/monitor/MonitorDaemon.js.map +1 -1
- package/out/src/monitor/index.all.js.map +1 -1
- package/out/src/monitor/tasks/TaskArcSSE.d.ts +12 -5
- package/out/src/monitor/tasks/TaskArcSSE.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskArcSSE.js +143 -135
- package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts +6 -4
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +141 -129
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +63 -3
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js +103 -13
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts +13 -0
- package/out/src/monitor/tasks/TaskCleanupActionBatches.d.ts.map +1 -0
- package/out/src/monitor/tasks/TaskCleanupActionBatches.js +24 -0
- package/out/src/monitor/tasks/TaskCleanupActionBatches.js.map +1 -0
- package/out/src/monitor/tasks/TaskClock.d.ts +2 -2
- package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskClock.js +4 -3
- package/out/src/monitor/tasks/TaskClock.js.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js +2 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
- package/out/src/monitor/tasks/TaskMineBlock.d.ts +4 -2
- package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskMineBlock.js +5 -2
- package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts +1 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js +3 -2
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts +5 -4
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +22 -8
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/src/monitor/tasks/TaskPurge.d.ts +4 -2
- package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskPurge.js +9 -5
- package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.d.ts +1 -1
- package/out/src/monitor/tasks/TaskReorg.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.js +6 -4
- package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts +4 -2
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +22 -17
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts +4 -2
- package/out/src/monitor/tasks/TaskReviewProvenTxs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js +12 -5
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewStatus.d.ts +4 -2
- package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewStatus.js +16 -7
- package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts +4 -2
- package/out/src/monitor/tasks/TaskReviewUtxos.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js +8 -2
- package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts +4 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js +63 -50
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts +2 -2
- package/out/src/monitor/tasks/TaskSyncWhenIdle.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskSyncWhenIdle.js +4 -6
- package/out/src/monitor/tasks/TaskSyncWhenIdle.js.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.d.ts +4 -2
- package/out/src/monitor/tasks/TaskUnFail.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.js +13 -67
- package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
- package/out/src/monitor/tasks/WalletMonitorTask.d.ts.map +1 -1
- package/out/src/monitor/tasks/WalletMonitorTask.js +10 -5
- package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
- package/out/src/monitor/tasks/index.all.d.ts +1 -0
- package/out/src/monitor/tasks/index.all.d.ts.map +1 -1
- package/out/src/monitor/tasks/index.all.js +1 -0
- package/out/src/monitor/tasks/index.all.js.map +1 -1
- package/out/src/sdk/ActionBatch.interfaces.d.ts +159 -0
- package/out/src/sdk/ActionBatch.interfaces.d.ts.map +1 -0
- package/out/src/sdk/ActionBatch.interfaces.js +3 -0
- package/out/src/sdk/ActionBatch.interfaces.js.map +1 -0
- package/out/src/sdk/CertOpsWallet.d.ts +3 -3
- package/out/src/sdk/CertOpsWallet.d.ts.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.d.ts +3 -3
- package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.js +75 -50
- package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
- package/out/src/sdk/WERR_errors.d.ts +3 -3
- package/out/src/sdk/WERR_errors.d.ts.map +1 -1
- package/out/src/sdk/WERR_errors.js +29 -14
- package/out/src/sdk/WERR_errors.js.map +1 -1
- package/out/src/sdk/WalletError.d.ts +4 -1
- package/out/src/sdk/WalletError.d.ts.map +1 -1
- package/out/src/sdk/WalletError.js +63 -58
- 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 +1 -3
- package/out/src/sdk/WalletErrorFromJson.js.map +1 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +45 -20
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts +92 -64
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/sdk/index.d.ts +1 -0
- package/out/src/sdk/index.d.ts.map +1 -1
- package/out/src/sdk/index.js +1 -0
- package/out/src/sdk/index.js.map +1 -1
- package/out/src/sdk/types.d.ts +14 -5
- package/out/src/sdk/types.d.ts.map +1 -1
- package/out/src/sdk/types.js +13 -4
- package/out/src/sdk/types.js.map +1 -1
- package/out/src/services/ServiceCollection.d.ts +6 -6
- package/out/src/services/ServiceCollection.d.ts.map +1 -1
- package/out/src/services/ServiceCollection.js +14 -9
- package/out/src/services/ServiceCollection.js.map +1 -1
- package/out/src/services/Services.d.ts +16 -2
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +320 -241
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.d.ts +7 -7
- package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.js +22 -16
- package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +5 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js +61 -19
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +8 -6
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +11 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +29 -10
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +369 -259
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +6 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +39 -44
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +3 -3
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +24 -15
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts +64 -0
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js +318 -0
- package/out/src/services/chaintracker/chaintracks/GoChaintracksServiceClient.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +9 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts +1 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +10 -3
- 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 +27 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js +64 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorChaintracks.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +6 -5
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +3 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +4 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts +24 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js +68 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorChaintracksSSE.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts +2 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js +3 -10
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorTeranodeP2P.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +13 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +50 -10
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +4 -3
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +14 -4
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +120 -143
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +22 -8
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +106 -54
- 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 +12 -17
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts +3 -3
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js +15 -14
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksKnexMigrations.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +3 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +85 -66
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts +4 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +128 -101
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts +6 -2
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js +170 -158
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageKnex.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageMemory.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageMemory.js +0 -21
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageMemory.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +9 -2
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +142 -92
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts +58 -0
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js +143 -28
- package/out/src/services/chaintracker/chaintracks/configureChaintracksIngestors.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts +18 -0
- package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js +24 -0
- package/out/src/services/chaintracker/chaintracks/configureKnexChaintracks.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts +2 -3
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js +4 -22
- package/out/src/services/chaintracker/chaintracks/createDefaultIdbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts +2 -4
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +14 -29
- package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +2 -3
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +4 -22
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js +3 -15
- package/out/src/services/chaintracker/chaintracks/createIdbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts +2 -2
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js +3 -15
- package/out/src/services/chaintracker/chaintracks/createKnexChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts +2 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +3 -15
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/index.mobile.d.ts +6 -1
- 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/BulkFileDataManager.d.ts +8 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +282 -252
- 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 +12 -7
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +53 -29
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +5 -5
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +34 -11
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +8 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +54 -13
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts +10 -12
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js +30 -34
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +28 -18
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +2 -2
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +4 -6
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +2 -12
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +72 -63
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js +4 -2
- package/out/src/services/chaintracker/chaintracks/util/dirtyHashes.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +9 -10
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.d.ts +33 -1
- package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.js +94 -15
- package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
- package/out/src/services/networkConfig.d.ts +18 -0
- package/out/src/services/networkConfig.d.ts.map +1 -0
- package/out/src/services/networkConfig.js +92 -0
- package/out/src/services/networkConfig.js.map +1 -0
- package/out/src/services/providers/ARC.d.ts +8 -0
- package/out/src/services/providers/ARC.d.ts.map +1 -1
- package/out/src/services/providers/ARC.js +167 -92
- package/out/src/services/providers/ARC.js.map +1 -1
- package/out/src/services/providers/ArcSSEClient.d.ts +1 -0
- package/out/src/services/providers/ArcSSEClient.d.ts.map +1 -1
- package/out/src/services/providers/ArcSSEClient.js +21 -17
- package/out/src/services/providers/ArcSSEClient.js.map +1 -1
- package/out/src/services/providers/Arcade.d.ts +77 -0
- package/out/src/services/providers/Arcade.d.ts.map +1 -0
- package/out/src/services/providers/Arcade.js +356 -0
- package/out/src/services/providers/Arcade.js.map +1 -0
- package/out/src/services/providers/Bitails.d.ts.map +1 -1
- package/out/src/services/providers/Bitails.js +128 -103
- package/out/src/services/providers/Bitails.js.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.js +18 -3
- package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
- package/out/src/services/providers/WhatsOnChain.d.ts +10 -2
- package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/WhatsOnChain.js +145 -236
- package/out/src/services/providers/WhatsOnChain.js.map +1 -1
- package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
- package/out/src/services/providers/exchangeRates.js +4 -4
- package/out/src/services/providers/exchangeRates.js.map +1 -1
- package/out/src/services/providers/getBeefForTxid.d.ts +1 -1
- package/out/src/services/providers/getBeefForTxid.d.ts.map +1 -1
- package/out/src/services/providers/getBeefForTxid.js +2 -1
- package/out/src/services/providers/getBeefForTxid.js.map +1 -1
- package/out/src/services/providers/whatsOnChainHelpers.d.ts +68 -0
- package/out/src/services/providers/whatsOnChainHelpers.d.ts.map +1 -0
- package/out/src/services/providers/whatsOnChainHelpers.js +147 -0
- package/out/src/services/providers/whatsOnChainHelpers.js.map +1 -0
- package/out/src/signer/WalletSigner.d.ts.map +1 -1
- package/out/src/signer/WalletSigner.js +4 -1
- package/out/src/signer/WalletSigner.js.map +1 -1
- package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts +29 -0
- package/out/src/signer/actionBatch/ActionBatchPlanner.d.ts.map +1 -0
- package/out/src/signer/actionBatch/ActionBatchPlanner.js +346 -0
- package/out/src/signer/actionBatch/ActionBatchPlanner.js.map +1 -0
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts +33 -0
- package/out/src/signer/actionBatch/ActionBatchWorkspace.d.ts.map +1 -0
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js +869 -0
- package/out/src/signer/actionBatch/ActionBatchWorkspace.js.map +1 -0
- package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts +11 -0
- package/out/src/signer/actionBatch/actionBatchBootstrap.d.ts.map +1 -0
- package/out/src/signer/actionBatch/actionBatchBootstrap.js +38 -0
- package/out/src/signer/actionBatch/actionBatchBootstrap.js.map +1 -0
- package/out/src/signer/methods/acquireDirectCertificate.js +2 -3
- package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.d.ts +54 -0
- package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.js +215 -100
- package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
- package/out/src/signer/methods/completeSignedTransaction.d.ts +3 -7
- package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/completeSignedTransaction.js +78 -80
- package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +81 -41
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/internalizeAction.d.ts +16 -5
- package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/signer/methods/internalizeAction.js +34 -18
- package/out/src/signer/methods/internalizeAction.js.map +1 -1
- package/out/src/signer/methods/proveCertificate.js +1 -1
- package/out/src/signer/methods/proveCertificate.js.map +1 -1
- package/out/src/signer/methods/resultBeef.d.ts +4 -0
- package/out/src/signer/methods/resultBeef.d.ts.map +1 -0
- package/out/src/signer/methods/resultBeef.js +12 -0
- package/out/src/signer/methods/resultBeef.js.map +1 -0
- package/out/src/signer/methods/signAction.d.ts.map +1 -1
- package/out/src/signer/methods/signAction.js +42 -15
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/signer/methods/verifyUnlockScripts.d.ts +17 -0
- package/out/src/signer/methods/verifyUnlockScripts.d.ts.map +1 -0
- package/out/src/signer/methods/verifyUnlockScripts.js +373 -0
- package/out/src/signer/methods/verifyUnlockScripts.js.map +1 -0
- package/out/src/storage/StorageIdb.d.ts +51 -6
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +929 -1324
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +51 -3
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +751 -314
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +117 -2
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +735 -254
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReader.d.ts +13 -5
- package/out/src/storage/StorageReader.d.ts.map +1 -1
- package/out/src/storage/StorageReader.js +21 -15
- package/out/src/storage/StorageReader.js.map +1 -1
- package/out/src/storage/StorageReaderWriter.d.ts +0 -1
- package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
- package/out/src/storage/StorageReaderWriter.js +32 -35
- package/out/src/storage/StorageReaderWriter.js.map +1 -1
- package/out/src/storage/StorageSyncReader.d.ts.map +1 -1
- package/out/src/storage/StorageSyncReader.js +6 -4
- package/out/src/storage/StorageSyncReader.js.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts +13 -0
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +179 -103
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/adminServer/adminServer.d.ts +80 -1
- package/out/src/storage/adminServer/adminServer.d.ts.map +1 -1
- package/out/src/storage/adminServer/adminServer.js +90 -72
- 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.map +1 -1
- package/out/src/storage/idbHelpers.d.ts +44 -0
- package/out/src/storage/idbHelpers.d.ts.map +1 -0
- package/out/src/storage/idbHelpers.js +395 -0
- package/out/src/storage/idbHelpers.js.map +1 -0
- package/out/src/storage/index.all.d.ts +6 -0
- package/out/src/storage/index.all.d.ts.map +1 -1
- package/out/src/storage/index.all.js +6 -0
- package/out/src/storage/index.all.js.map +1 -1
- package/out/src/storage/index.client.d.ts +4 -0
- package/out/src/storage/index.client.d.ts.map +1 -1
- package/out/src/storage/index.client.js +4 -0
- package/out/src/storage/index.client.js.map +1 -1
- package/out/src/storage/index.mobile.d.ts +3 -0
- package/out/src/storage/index.mobile.d.ts.map +1 -1
- package/out/src/storage/index.mobile.js +3 -0
- package/out/src/storage/index.mobile.js.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.d.ts +6 -1
- package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.js +75 -9
- package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts +2 -0
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.js +43 -29
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
- package/out/src/storage/methods/actionBatch.d.ts +15 -0
- package/out/src/storage/methods/actionBatch.d.ts.map +1 -0
- package/out/src/storage/methods/actionBatch.js +725 -0
- package/out/src/storage/methods/actionBatch.js.map +1 -0
- package/out/src/storage/methods/actionBatchBlobs.d.ts +15 -0
- package/out/src/storage/methods/actionBatchBlobs.d.ts.map +1 -0
- package/out/src/storage/methods/actionBatchBlobs.js +184 -0
- package/out/src/storage/methods/actionBatchBlobs.js.map +1 -0
- package/out/src/storage/methods/actionBatchValidation.d.ts +17 -0
- package/out/src/storage/methods/actionBatchValidation.d.ts.map +1 -0
- package/out/src/storage/methods/actionBatchValidation.js +416 -0
- package/out/src/storage/methods/actionBatchValidation.js.map +1 -0
- package/out/src/storage/methods/actionPlanning.d.ts +26 -0
- package/out/src/storage/methods/actionPlanning.d.ts.map +1 -0
- package/out/src/storage/methods/actionPlanning.js +103 -0
- package/out/src/storage/methods/actionPlanning.js.map +1 -0
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts +63 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +245 -92
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
- package/out/src/storage/methods/availableManagedChange.d.ts +11 -0
- package/out/src/storage/methods/availableManagedChange.d.ts.map +1 -0
- package/out/src/storage/methods/availableManagedChange.js +25 -0
- package/out/src/storage/methods/availableManagedChange.js.map +1 -0
- package/out/src/storage/methods/createAction.d.ts +1 -1
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +783 -416
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts +2 -2
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +188 -127
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.d.ts +7 -0
- package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +291 -63
- 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 +11 -8
- package/out/src/storage/methods/getSyncChunk.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts +77 -6
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +372 -139
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
- package/out/src/storage/methods/listActionsIdb.js +87 -110
- package/out/src/storage/methods/listActionsIdb.js.map +1 -1
- package/out/src/storage/methods/listActionsKnex.d.ts +1 -1
- package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listActionsKnex.js +97 -118
- package/out/src/storage/methods/listActionsKnex.js.map +1 -1
- package/out/src/storage/methods/listCertificates.d.ts +2 -2
- package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
- package/out/src/storage/methods/listCertificates.js +8 -8
- package/out/src/storage/methods/listCertificates.js.map +1 -1
- package/out/src/storage/methods/listOutputsIdb.d.ts +1 -1
- package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsIdb.js +144 -150
- package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.d.ts +2 -2
- package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.js +217 -246
- package/out/src/storage/methods/listOutputsKnex.js.map +1 -1
- package/out/src/storage/methods/managedChange.d.ts +26 -0
- package/out/src/storage/methods/managedChange.d.ts.map +1 -0
- package/out/src/storage/methods/managedChange.js +42 -0
- package/out/src/storage/methods/managedChange.js.map +1 -0
- package/out/src/storage/methods/offsetKey.d.ts +1 -1
- package/out/src/storage/methods/offsetKey.d.ts.map +1 -1
- package/out/src/storage/methods/offsetKey.js +3 -6
- package/out/src/storage/methods/offsetKey.js.map +1 -1
- package/out/src/storage/methods/processAction.d.ts +2 -11
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +173 -106
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/methods/purgeData.d.ts +1 -1
- package/out/src/storage/methods/purgeData.d.ts.map +1 -1
- package/out/src/storage/methods/purgeData.js +169 -172
- package/out/src/storage/methods/purgeData.js.map +1 -1
- package/out/src/storage/methods/purgeDataIdb.d.ts +1 -1
- package/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -1
- package/out/src/storage/methods/purgeDataIdb.js +2 -2
- package/out/src/storage/methods/purgeDataIdb.js.map +1 -1
- package/out/src/storage/methods/reviewStatus.d.ts +4 -3
- package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
- package/out/src/storage/methods/reviewStatus.js +54 -14
- package/out/src/storage/methods/reviewStatus.js.map +1 -1
- package/out/src/storage/methods/reviewStatusIdb.d.ts +3 -3
- package/out/src/storage/methods/reviewStatusIdb.d.ts.map +1 -1
- package/out/src/storage/methods/reviewStatusIdb.js +54 -13
- package/out/src/storage/methods/reviewStatusIdb.js.map +1 -1
- package/out/src/storage/methods/utils.Buffer.d.ts.map +1 -1
- package/out/src/storage/methods/utils.Buffer.js.map +1 -1
- package/out/src/storage/methods/utils.d.ts.map +1 -1
- package/out/src/storage/methods/utils.js +7 -1
- package/out/src/storage/methods/utils.js.map +1 -1
- package/out/src/storage/portable/index.d.ts +55 -0
- package/out/src/storage/portable/index.d.ts.map +1 -0
- package/out/src/storage/portable/index.js +872 -0
- package/out/src/storage/portable/index.js.map +1 -0
- package/out/src/storage/remoting/BinaryJson.d.ts +10 -0
- package/out/src/storage/remoting/BinaryJson.d.ts.map +1 -0
- package/out/src/storage/remoting/BinaryJson.js +218 -0
- package/out/src/storage/remoting/BinaryJson.js.map +1 -0
- package/out/src/storage/remoting/KnexPaymentReplayStore.d.ts +12 -0
- package/out/src/storage/remoting/KnexPaymentReplayStore.d.ts.map +1 -0
- package/out/src/storage/remoting/KnexPaymentReplayStore.js +46 -0
- package/out/src/storage/remoting/KnexPaymentReplayStore.js.map +1 -0
- package/out/src/storage/remoting/KnexSessionManager.d.ts +57 -0
- package/out/src/storage/remoting/KnexSessionManager.d.ts.map +1 -0
- package/out/src/storage/remoting/KnexSessionManager.js +256 -0
- package/out/src/storage/remoting/KnexSessionManager.js.map +1 -0
- package/out/src/storage/remoting/RateLimitPolicy.d.ts +10 -0
- package/out/src/storage/remoting/RateLimitPolicy.d.ts.map +1 -0
- package/out/src/storage/remoting/RateLimitPolicy.js +37 -0
- package/out/src/storage/remoting/RateLimitPolicy.js.map +1 -0
- package/out/src/storage/remoting/StorageClient.d.ts +7 -271
- package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +87 -458
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.d.ts +318 -0
- package/out/src/storage/remoting/StorageClientBase.d.ts.map +1 -0
- package/out/src/storage/remoting/StorageClientBase.js +474 -0
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -0
- package/out/src/storage/remoting/StorageMobile.d.ts +8 -276
- package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageMobile.js +43 -435
- package/out/src/storage/remoting/StorageMobile.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts +106 -9
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +628 -225
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/remoting/edgePolicy.d.ts +84 -0
- package/out/src/storage/remoting/edgePolicy.d.ts.map +1 -0
- package/out/src/storage/remoting/edgePolicy.js +570 -0
- package/out/src/storage/remoting/edgePolicy.js.map +1 -0
- package/out/src/storage/remoting/entityValidationHelpers.d.ts +29 -0
- package/out/src/storage/remoting/entityValidationHelpers.d.ts.map +1 -0
- package/out/src/storage/remoting/entityValidationHelpers.js +108 -0
- package/out/src/storage/remoting/entityValidationHelpers.js.map +1 -0
- package/out/src/storage/schema/KnexMigrations.d.ts +7 -3
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +173 -11
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/schema/StorageIdbSchema.d.ts +27 -1
- package/out/src/storage/schema/StorageIdbSchema.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityBase.js +1 -0
- package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificate.js +5 -4
- package/out/src/storage/schema/entities/EntityCertificate.js.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificateField.js +5 -7
- package/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -1
- package/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityCommission.js +6 -8
- package/out/src/storage/schema/entities/EntityCommission.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.js +21 -24
- 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 +7 -7
- package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTag.js +2 -2
- package/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.js +4 -6
- package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +8 -4
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +77 -64
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +11 -2
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js +122 -74
- package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +40 -45
- package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.js +30 -31
- package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabel.js +2 -2
- package/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.js +4 -6
- package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -1
- package/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityUser.js +3 -3
- package/out/src/storage/schema/entities/EntityUser.js.map +1 -1
- package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
- package/out/src/storage/schema/entities/MergeEntity.js +17 -18
- package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
- package/out/src/storage/schema/tables/TableActionBatch.d.ts +26 -0
- package/out/src/storage/schema/tables/TableActionBatch.d.ts.map +1 -0
- package/out/src/storage/schema/tables/TableActionBatch.js +3 -0
- package/out/src/storage/schema/tables/TableActionBatch.js.map +1 -0
- package/out/src/storage/schema/tables/TableAuthSession.d.ts +20 -0
- package/out/src/storage/schema/tables/TableAuthSession.d.ts.map +1 -0
- package/out/src/storage/schema/tables/TableAuthSession.js +15 -0
- package/out/src/storage/schema/tables/TableAuthSession.js.map +1 -0
- package/out/src/storage/schema/tables/TableCertificate.d.ts +2 -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 +3 -2
- package/out/src/storage/schema/tables/TableOutput.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutput.js +1 -1
- package/out/src/storage/schema/tables/TableOutput.js.map +1 -1
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutputBasket.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutputTag.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutputTag.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts +1 -1
- package/out/src/storage/schema/tables/TableOutputTagMap.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableProvenTx.d.ts +1 -1
- package/out/src/storage/schema/tables/TableProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts +24 -1
- package/out/src/storage/schema/tables/TableProvenTxReq.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableSettings.d.ts +1 -1
- package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableSyncState.d.ts +1 -1
- package/out/src/storage/schema/tables/TableSyncState.d.ts.map +1 -1
- package/out/src/storage/schema/tables/TableTransaction.d.ts +1 -1
- package/out/src/storage/schema/tables/TableTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/tables/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/schema/tables/index.d.ts +2 -0
- package/out/src/storage/schema/tables/index.d.ts.map +1 -1
- package/out/src/storage/schema/tables/index.js +2 -0
- package/out/src/storage/schema/tables/index.js.map +1 -1
- package/out/src/storage/storageProviderHelpers.d.ts +35 -0
- package/out/src/storage/storageProviderHelpers.d.ts.map +1 -0
- package/out/src/storage/storageProviderHelpers.js +106 -0
- package/out/src/storage/storageProviderHelpers.js.map +1 -0
- package/out/src/storage/sync/StorageMySQLDojoReader.d.ts +4 -2
- package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.js +65 -46
- package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
- package/out/src/utility/Format.d.ts.map +1 -1
- package/out/src/utility/Format.js +15 -49
- package/out/src/utility/Format.js.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.d.ts +3 -2
- package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.js +22 -11
- package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
- package/out/src/utility/actionBatchDigest.d.ts +9 -0
- package/out/src/utility/actionBatchDigest.d.ts.map +1 -0
- package/out/src/utility/actionBatchDigest.js +86 -0
- package/out/src/utility/actionBatchDigest.js.map +1 -0
- package/out/src/utility/actionBatchPack.d.ts +16 -0
- package/out/src/utility/actionBatchPack.d.ts.map +1 -0
- package/out/src/utility/actionBatchPack.js +220 -0
- package/out/src/utility/actionBatchPack.js.map +1 -0
- package/out/src/utility/aggregateResults.d.ts +1 -1
- package/out/src/utility/aggregateResults.d.ts.map +1 -1
- package/out/src/utility/aggregateResults.js +2 -2
- package/out/src/utility/aggregateResults.js.map +1 -1
- package/out/src/utility/beefForTxids.d.ts +9 -0
- package/out/src/utility/beefForTxids.d.ts.map +1 -0
- package/out/src/utility/beefForTxids.js +35 -0
- package/out/src/utility/beefForTxids.js.map +1 -0
- package/out/src/utility/brc114ActionTimeLabels.d.ts +2 -2
- package/out/src/utility/brc114ActionTimeLabels.d.ts.map +1 -1
- package/out/src/utility/brc114ActionTimeLabels.js +31 -28
- package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
- package/out/src/utility/brc153ReferenceLabels.d.ts +23 -0
- package/out/src/utility/brc153ReferenceLabels.d.ts.map +1 -0
- package/out/src/utility/brc153ReferenceLabels.js +51 -0
- package/out/src/utility/brc153ReferenceLabels.js.map +1 -0
- package/out/src/utility/formatUnknown.d.ts +6 -0
- package/out/src/utility/formatUnknown.d.ts.map +1 -0
- package/out/src/utility/formatUnknown.js +39 -0
- package/out/src/utility/formatUnknown.js.map +1 -0
- package/out/src/utility/hashWasm.d.ts +5 -0
- package/out/src/utility/hashWasm.d.ts.map +1 -0
- package/out/src/utility/hashWasm.js +15 -0
- package/out/src/utility/hashWasm.js.map +1 -0
- package/out/src/utility/identityUtils.d.ts +12 -6
- package/out/src/utility/identityUtils.d.ts.map +1 -1
- package/out/src/utility/identityUtils.js +82 -38
- 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 +5 -5
- package/out/src/utility/parseTxScriptOffsets.d.ts.map +1 -1
- package/out/src/utility/parseTxScriptOffsets.js +1 -1
- package/out/src/utility/parseTxScriptOffsets.js.map +1 -1
- package/out/src/utility/stampLog.d.ts.map +1 -1
- package/out/src/utility/stampLog.js +53 -44
- package/out/src/utility/stampLog.js.map +1 -1
- package/out/src/utility/traceContext.d.ts +13 -0
- package/out/src/utility/traceContext.d.ts.map +1 -0
- package/out/src/utility/traceContext.js +34 -0
- package/out/src/utility/traceContext.js.map +1 -0
- package/out/src/utility/tscProofToMerklePath.js +1 -1
- package/out/src/utility/tscProofToMerklePath.js.map +1 -1
- package/out/src/utility/utilityHelpers.buffer.d.ts +5 -3
- package/out/src/utility/utilityHelpers.buffer.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.buffer.js +3 -3
- package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
- package/out/src/utility/utilityHelpers.d.ts +3 -4
- package/out/src/utility/utilityHelpers.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.js +24 -16
- package/out/src/utility/utilityHelpers.js.map +1 -1
- package/out/src/utility/utilityHelpers.noBuffer.d.ts +7 -3
- package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.noBuffer.js +7 -8
- package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
- package/out/src/wab-client/WABClient.d.ts +36 -90
- package/out/src/wab-client/WABClient.d.ts.map +1 -1
- package/out/src/wab-client/WABClient.js +103 -150
- package/out/src/wab-client/WABClient.js.map +1 -1
- package/out/src/wab-client/WABTransport.d.ts +81 -0
- package/out/src/wab-client/WABTransport.d.ts.map +1 -0
- package/out/src/wab-client/WABTransport.js +420 -0
- package/out/src/wab-client/WABTransport.js.map +1 -0
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +10 -10
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +16 -21
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +1 -4
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +1 -4
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +2 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +14 -3
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
- package/package.json +89 -36
- package/license.md +0 -28
- package/out/src/__tests/CWIStyleWalletManager.test.d.ts +0 -2
- package/out/src/__tests/CWIStyleWalletManager.test.d.ts.map +0 -1
- package/out/src/__tests/CWIStyleWalletManager.test.js +0 -809
- package/out/src/__tests/CWIStyleWalletManager.test.js.map +0 -1
- package/out/src/__tests/ShamirWalletManager.test.d.ts +0 -2
- package/out/src/__tests/ShamirWalletManager.test.d.ts.map +0 -1
- package/out/src/__tests/ShamirWalletManager.test.js +0 -299
- package/out/src/__tests/ShamirWalletManager.test.js.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts +0 -2
- package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.callbacks.test.js +0 -373
- package/out/src/__tests/WalletPermissionsManager.callbacks.test.js.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts +0 -2
- package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.checks.test.js +0 -642
- package/out/src/__tests/WalletPermissionsManager.checks.test.js.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts +0 -2
- package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.encryption.test.js +0 -335
- package/out/src/__tests/WalletPermissionsManager.encryption.test.js.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts +0 -87
- package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.fixtures.js +0 -290
- package/out/src/__tests/WalletPermissionsManager.fixtures.js.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts +0 -2
- package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.flows.test.js +0 -613
- package/out/src/__tests/WalletPermissionsManager.flows.test.js.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts +0 -2
- package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.initialization.test.js +0 -227
- package/out/src/__tests/WalletPermissionsManager.initialization.test.js.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.pmodules.test.d.ts +0 -2
- package/out/src/__tests/WalletPermissionsManager.pmodules.test.d.ts.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.pmodules.test.js +0 -735
- package/out/src/__tests/WalletPermissionsManager.pmodules.test.js.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts +0 -2
- package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.proxying.test.js +0 -584
- package/out/src/__tests/WalletPermissionsManager.proxying.test.js.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts +0 -2
- package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts.map +0 -1
- package/out/src/__tests/WalletPermissionsManager.tokens.test.js +0 -415
- package/out/src/__tests/WalletPermissionsManager.tokens.test.js.map +0 -1
- package/out/src/entropy/__tests/EntropyCollector.test.d.ts +0 -2
- package/out/src/entropy/__tests/EntropyCollector.test.d.ts.map +0 -1
- package/out/src/entropy/__tests/EntropyCollector.test.js +0 -137
- package/out/src/entropy/__tests/EntropyCollector.test.js.map +0 -1
- package/out/src/monitor/__test/MonitorDaemon.man.test.d.ts +0 -2
- package/out/src/monitor/__test/MonitorDaemon.man.test.d.ts.map +0 -1
- package/out/src/monitor/__test/MonitorDaemon.man.test.js +0 -41
- package/out/src/monitor/__test/MonitorDaemon.man.test.js.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts +0 -2
- package/out/src/monitor/tasks/__tests/TaskArcSSE.test.d.ts.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js +0 -257
- package/out/src/monitor/tasks/__tests/TaskArcSSE.test.js.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts +0 -2
- package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.d.ts.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js +0 -161
- package/out/src/monitor/tasks/__tests/TaskReviewDoubleSpends.test.js.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts +0 -2
- package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.d.ts.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js +0 -214
- package/out/src/monitor/tasks/__tests/TaskReviewProvenTxs.test.js.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts +0 -2
- package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.d.ts.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js +0 -92
- package/out/src/monitor/tasks/__tests/TaskReviewUtxos.test.js.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts +0 -2
- package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.d.ts.map +0 -1
- package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js +0 -139
- package/out/src/monitor/tasks/__tests/TaskSendWaiting.test.js.map +0 -1
- package/out/src/sdk/__test/CertificateLifeCycle.test.d.ts +0 -2
- package/out/src/sdk/__test/CertificateLifeCycle.test.d.ts.map +0 -1
- package/out/src/sdk/__test/CertificateLifeCycle.test.js +0 -62
- package/out/src/sdk/__test/CertificateLifeCycle.test.js.map +0 -1
- package/out/src/sdk/__test/PrivilegedKeyManager.test.d.ts +0 -2
- package/out/src/sdk/__test/PrivilegedKeyManager.test.d.ts.map +0 -1
- package/out/src/sdk/__test/PrivilegedKeyManager.test.js +0 -647
- package/out/src/sdk/__test/PrivilegedKeyManager.test.js.map +0 -1
- package/out/src/sdk/__test/WalletError.test.d.ts +0 -2
- package/out/src/sdk/__test/WalletError.test.d.ts.map +0 -1
- package/out/src/sdk/__test/WalletError.test.js +0 -255
- package/out/src/sdk/__test/WalletError.test.js.map +0 -1
- package/out/src/sdk/__test/validationHelpers.test.d.ts +0 -2
- package/out/src/sdk/__test/validationHelpers.test.d.ts.map +0 -1
- package/out/src/sdk/__test/validationHelpers.test.js +0 -20
- package/out/src/sdk/__test/validationHelpers.test.js.map +0 -1
- package/out/src/services/__tests/ARC.man.test.d.ts +0 -2
- package/out/src/services/__tests/ARC.man.test.d.ts.map +0 -1
- package/out/src/services/__tests/ARC.man.test.js +0 -104
- package/out/src/services/__tests/ARC.man.test.js.map +0 -1
- package/out/src/services/__tests/ARC.timeout.man.test.d.ts +0 -2
- package/out/src/services/__tests/ARC.timeout.man.test.d.ts.map +0 -1
- package/out/src/services/__tests/ARC.timeout.man.test.js +0 -74
- package/out/src/services/__tests/ARC.timeout.man.test.js.map +0 -1
- package/out/src/services/__tests/ArcGorillaPool.man.test.d.ts +0 -2
- package/out/src/services/__tests/ArcGorillaPool.man.test.d.ts.map +0 -1
- package/out/src/services/__tests/ArcGorillaPool.man.test.js +0 -93
- package/out/src/services/__tests/ArcGorillaPool.man.test.js.map +0 -1
- package/out/src/services/__tests/arcServices.test.d.ts +0 -2
- package/out/src/services/__tests/arcServices.test.d.ts.map +0 -1
- package/out/src/services/__tests/arcServices.test.js +0 -7
- package/out/src/services/__tests/arcServices.test.js.map +0 -1
- package/out/src/services/__tests/bitrails.test.d.ts +0 -2
- package/out/src/services/__tests/bitrails.test.d.ts.map +0 -1
- package/out/src/services/__tests/bitrails.test.js +0 -59
- package/out/src/services/__tests/bitrails.test.js.map +0 -1
- package/out/src/services/__tests/getFiatExchangeRate.test.d.ts +0 -2
- package/out/src/services/__tests/getFiatExchangeRate.test.d.ts.map +0 -1
- package/out/src/services/__tests/getFiatExchangeRate.test.js +0 -156
- package/out/src/services/__tests/getFiatExchangeRate.test.js.map +0 -1
- package/out/src/services/__tests/getMerklePath.test.d.ts +0 -2
- package/out/src/services/__tests/getMerklePath.test.d.ts.map +0 -1
- package/out/src/services/__tests/getMerklePath.test.js +0 -16
- package/out/src/services/__tests/getMerklePath.test.js.map +0 -1
- package/out/src/services/__tests/getRawTx.test.d.ts +0 -2
- package/out/src/services/__tests/getRawTx.test.d.ts.map +0 -1
- package/out/src/services/__tests/getRawTx.test.js +0 -16
- package/out/src/services/__tests/getRawTx.test.js.map +0 -1
- package/out/src/services/__tests/postBeef.test.d.ts +0 -2
- package/out/src/services/__tests/postBeef.test.d.ts.map +0 -1
- package/out/src/services/__tests/postBeef.test.js +0 -101
- package/out/src/services/__tests/postBeef.test.js.map +0 -1
- package/out/src/services/__tests/verifyBeef.test.d.ts +0 -2
- package/out/src/services/__tests/verifyBeef.test.d.ts.map +0 -1
- package/out/src/services/__tests/verifyBeef.test.js +0 -43
- package/out/src/services/__tests/verifyBeef.test.js.map +0 -1
- package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.d.ts +0 -2
- package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js +0 -25
- package/out/src/services/chaintracker/__tests/ChaintracksChainTracker.test.js.map +0 -1
- package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.d.ts +0 -2
- package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js +0 -27
- package/out/src/services/chaintracker/__tests/ChaintracksServiceClient.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js +0 -56
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.js +0 -40
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/LiveIngestorWhatsOnChainPoll.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js +0 -108
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.man.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js +0 -87
- package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageIdb.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js +0 -39
- package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js +0 -75
- package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js +0 -43
- package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksCDN.man.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.js +0 -164
- package/out/src/services/chaintracker/chaintracks/__tests/ChaintracksClientApi.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.d.ts +0 -12
- package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.js +0 -69
- package/out/src/services/chaintracker/chaintracks/__tests/LocalCdnServer.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js +0 -109
- package/out/src/services/chaintracker/chaintracks/__tests/bulkIngestorFailures.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js +0 -54
- package/out/src/services/chaintracker/chaintracks/__tests/createIdbChaintracks.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js +0 -255
- package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.js +0 -56
- package/out/src/services/chaintracker/chaintracks/util/__tests/ChaintracksFetch.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.js +0 -69
- package/out/src/services/chaintracker/chaintracks/util/__tests/HeightRange.test.js.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.js +0 -51
- package/out/src/services/chaintracker/chaintracks/util/__tests/SingleWriterMultiReaderLock.test.js.map +0 -1
- package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts +0 -2
- package/out/src/services/providers/__tests/ArcSSEClient.test.d.ts.map +0 -1
- package/out/src/services/providers/__tests/ArcSSEClient.test.js +0 -256
- package/out/src/services/providers/__tests/ArcSSEClient.test.js.map +0 -1
- package/out/src/services/providers/__tests/WhatsOnChain.test.d.ts +0 -2
- package/out/src/services/providers/__tests/WhatsOnChain.test.d.ts.map +0 -1
- package/out/src/services/providers/__tests/WhatsOnChain.test.js +0 -191
- package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +0 -1
- package/out/src/services/providers/__tests/exchangeRates.test.d.ts +0 -2
- package/out/src/services/providers/__tests/exchangeRates.test.d.ts.map +0 -1
- package/out/src/services/providers/__tests/exchangeRates.test.js +0 -23
- package/out/src/services/providers/__tests/exchangeRates.test.js.map +0 -1
- package/out/src/storage/__test/StorageIdb.test.d.ts +0 -2
- package/out/src/storage/__test/StorageIdb.test.d.ts.map +0 -1
- package/out/src/storage/__test/StorageIdb.test.js +0 -44
- package/out/src/storage/__test/StorageIdb.test.js.map +0 -1
- package/out/src/storage/__test/WalletStorageManager.test.d.ts +0 -2
- package/out/src/storage/__test/WalletStorageManager.test.d.ts.map +0 -1
- package/out/src/storage/__test/WalletStorageManager.test.js +0 -254
- package/out/src/storage/__test/WalletStorageManager.test.js.map +0 -1
- package/out/src/storage/__test/adminStats.man.test.d.ts +0 -2
- package/out/src/storage/__test/adminStats.man.test.d.ts.map +0 -1
- package/out/src/storage/__test/adminStats.man.test.js +0 -78
- package/out/src/storage/__test/adminStats.man.test.js.map +0 -1
- package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts +0 -2
- package/out/src/storage/__test/findStaleMerkleRoots.test.d.ts.map +0 -1
- package/out/src/storage/__test/findStaleMerkleRoots.test.js +0 -41
- package/out/src/storage/__test/findStaleMerkleRoots.test.js.map +0 -1
- package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts +0 -2
- package/out/src/storage/__test/findStaleMerkleRootsKnex.test.d.ts.map +0 -1
- package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js +0 -73
- package/out/src/storage/__test/findStaleMerkleRootsKnex.test.js.map +0 -1
- package/out/src/storage/__test/getBeefForTransaction.test.d.ts +0 -2
- package/out/src/storage/__test/getBeefForTransaction.test.d.ts.map +0 -1
- package/out/src/storage/__test/getBeefForTransaction.test.js +0 -347
- package/out/src/storage/__test/getBeefForTransaction.test.js.map +0 -1
- package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.d.ts +0 -2
- package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.d.ts.map +0 -1
- package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +0 -1111
- package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +0 -1
- package/out/src/storage/methods/__test/offsetKey.test.d.ts +0 -2
- package/out/src/storage/methods/__test/offsetKey.test.d.ts.map +0 -1
- package/out/src/storage/methods/__test/offsetKey.test.js +0 -229
- package/out/src/storage/methods/__test/offsetKey.test.js.map +0 -1
- package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts +0 -2
- package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts.map +0 -1
- package/out/src/storage/remoting/__test/StorageClient.man.test.js +0 -487
- package/out/src/storage/remoting/__test/StorageClient.man.test.js.map +0 -1
- package/out/src/storage/remoting/__test/StorageClient.test.d.ts +0 -2
- package/out/src/storage/remoting/__test/StorageClient.test.d.ts.map +0 -1
- package/out/src/storage/remoting/__test/StorageClient.test.js +0 -119
- package/out/src/storage/remoting/__test/StorageClient.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js +0 -301
- package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/CertificateTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/CertificateTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/CertificateTests.test.js +0 -308
- package/out/src/storage/schema/entities/__tests/CertificateTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/CommissionTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/CommissionTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/CommissionTests.test.js +0 -316
- package/out/src/storage/schema/entities/__tests/CommissionTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js +0 -228
- package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js +0 -191
- package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/OutputTagTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/OutputTagTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js +0 -226
- package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/OutputTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/OutputTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/OutputTests.test.js +0 -413
- package/out/src/storage/schema/entities/__tests/OutputTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js +0 -299
- package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +0 -474
- package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/SyncStateTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/SyncStateTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js +0 -234
- package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/TransactionTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/TransactionTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/TransactionTests.test.js +0 -539
- package/out/src/storage/schema/entities/__tests/TransactionTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js +0 -304
- package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/TxLabelTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/TxLabelTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js +0 -170
- package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/stampLogTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/stampLogTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/stampLogTests.test.js +0 -81
- package/out/src/storage/schema/entities/__tests/stampLogTests.test.js.map +0 -1
- package/out/src/storage/schema/entities/__tests/usersTests.test.d.ts +0 -2
- package/out/src/storage/schema/entities/__tests/usersTests.test.d.ts.map +0 -1
- package/out/src/storage/schema/entities/__tests/usersTests.test.js +0 -277
- package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +0 -1
- package/out/src/utility/__tests/utilityHelpers.noBuffer.test.d.ts +0 -2
- package/out/src/utility/__tests/utilityHelpers.noBuffer.test.d.ts.map +0 -1
- package/out/src/utility/__tests/utilityHelpers.noBuffer.test.js +0 -107
- package/out/src/utility/__tests/utilityHelpers.noBuffer.test.js.map +0 -1
- package/out/src/wab-client/__tests/WABClient.man.test.d.ts +0 -2
- package/out/src/wab-client/__tests/WABClient.man.test.d.ts.map +0 -1
- package/out/src/wab-client/__tests/WABClient.man.test.js +0 -52
- package/out/src/wab-client/__tests/WABClient.man.test.js.map +0 -1
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StorageProvider = void 0;
|
|
4
4
|
exports.validateStorageFeeModel = validateStorageFeeModel;
|
|
5
5
|
const sdk_1 = require("@bsv/sdk");
|
|
6
|
+
const storageProviderHelpers_1 = require("./storageProviderHelpers");
|
|
6
7
|
const getBeefForTransaction_1 = require("./methods/getBeefForTransaction");
|
|
7
8
|
const processAction_1 = require("./methods/processAction");
|
|
8
9
|
const attemptToPostReqsToNetwork_1 = require("./methods/attemptToPostReqsToNetwork");
|
|
@@ -15,13 +16,24 @@ const WERR_errors_1 = require("../sdk/WERR_errors");
|
|
|
15
16
|
const utilityHelpers_1 = require("../utility/utilityHelpers");
|
|
16
17
|
const WalletError_1 = require("../sdk/WalletError");
|
|
17
18
|
const utilityHelpers_noBuffer_1 = require("../utility/utilityHelpers.noBuffer");
|
|
19
|
+
const actionBatch_1 = require("./methods/actionBatch");
|
|
20
|
+
const actionBatchBlobs_1 = require("./methods/actionBatchBlobs");
|
|
21
|
+
const availableManagedChange_1 = require("./methods/availableManagedChange");
|
|
18
22
|
class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
23
|
+
isDirty = false;
|
|
24
|
+
_services;
|
|
25
|
+
feeModel;
|
|
26
|
+
commissionSatoshis;
|
|
27
|
+
commissionPubKeyHex;
|
|
28
|
+
maxRecursionDepth;
|
|
29
|
+
scriptVerifier;
|
|
19
30
|
static defaultOptions() {
|
|
20
|
-
|
|
21
|
-
feeModel: { model: 'sat/kb', value:
|
|
31
|
+
const opts = {
|
|
32
|
+
feeModel: { model: 'sat/kb', value: 100 },
|
|
22
33
|
commissionSatoshis: 0,
|
|
23
34
|
commissionPubKeyHex: undefined
|
|
24
35
|
};
|
|
36
|
+
return opts;
|
|
25
37
|
}
|
|
26
38
|
static createStorageBaseOptions(chain) {
|
|
27
39
|
const options = {
|
|
@@ -32,17 +44,183 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
32
44
|
}
|
|
33
45
|
constructor(options) {
|
|
34
46
|
super(options);
|
|
35
|
-
this.isDirty = false;
|
|
36
47
|
this.feeModel = options.feeModel;
|
|
37
48
|
this.commissionPubKeyHex = options.commissionPubKeyHex;
|
|
38
49
|
this.commissionSatoshis = options.commissionSatoshis;
|
|
39
50
|
this.maxRecursionDepth = 12;
|
|
51
|
+
this.scriptVerifier = options.scriptVerifier;
|
|
52
|
+
}
|
|
53
|
+
/** Mark a planned set of change inputs spent within the caller's transaction. */
|
|
54
|
+
async markChangeInputsSpent(outputIds, transactionId, trx) {
|
|
55
|
+
let updated = 0;
|
|
56
|
+
const current = await this.findOutputsByIds(outputIds, trx);
|
|
57
|
+
for (const outputId of outputIds) {
|
|
58
|
+
const output = current[outputId];
|
|
59
|
+
if (output == null || !output.spendable || output.spentBy != null)
|
|
60
|
+
continue;
|
|
61
|
+
updated += await this.updateOutput(outputId, { spendable: false, spentBy: transactionId }, trx);
|
|
62
|
+
}
|
|
63
|
+
return updated;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Insert outputs that do not need their generated ids returned to the
|
|
67
|
+
* caller. Engines with a multi-row insert override this common-path helper;
|
|
68
|
+
* the fallback preserves existing storage implementations unchanged.
|
|
69
|
+
*/
|
|
70
|
+
async insertOutputs(outputs, trx) {
|
|
71
|
+
for (const output of outputs)
|
|
72
|
+
await this.insertOutput(output, trx);
|
|
73
|
+
}
|
|
74
|
+
/** Return unreserved wallet-managed outputs eligible for automatic funding. */
|
|
75
|
+
async findAvailableManagedChangeInputs(userId, basketId, excludeSending, trx) {
|
|
76
|
+
return await (0, availableManagedChange_1.availableManagedChange)(this, userId, basketId, excludeSending, trx);
|
|
77
|
+
}
|
|
78
|
+
/** Read only the fields needed by the in-memory funding planner. */
|
|
79
|
+
async findAvailableManagedChangeInputCandidates(userId, basketId, excludeSending, trx) {
|
|
80
|
+
return (await this.findAvailableManagedChangeInputs(userId, basketId, excludeSending, trx))
|
|
81
|
+
.map(({ outputId, transactionId, satoshis, txid, vout }) => ({
|
|
82
|
+
outputId,
|
|
83
|
+
transactionId,
|
|
84
|
+
satoshis,
|
|
85
|
+
txid,
|
|
86
|
+
vout
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
/** Read the current status of a set of source transactions without loading raw transaction bytes. */
|
|
90
|
+
async findTransactionStatusesByIds(userId, transactionIds, trx) {
|
|
91
|
+
const statuses = new Map();
|
|
92
|
+
for (const transactionId of new Set(transactionIds)) {
|
|
93
|
+
const transaction = await this.findTransactionById(transactionId, trx, true);
|
|
94
|
+
if (transaction?.userId === userId)
|
|
95
|
+
statuses.set(transactionId, transaction.status);
|
|
96
|
+
}
|
|
97
|
+
return statuses;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Lock and return the selected funding rows whose source transaction and
|
|
101
|
+
* action-batch reservation state still permit allocation.
|
|
102
|
+
*/
|
|
103
|
+
async findFundingOutputsForUpdate(userId, outputIds, statuses, trx) {
|
|
104
|
+
const rows = await this.findOutputsByIds(outputIds, trx);
|
|
105
|
+
const reserved = new Set(await this.findReservedActionBatchOutputIds(outputIds, trx));
|
|
106
|
+
const transactionIds = [...new Set(Object.values(rows).map(output => output.transactionId))];
|
|
107
|
+
const transactionStatuses = await this.findTransactionStatusesByIds(userId, transactionIds, trx);
|
|
108
|
+
const eligible = {};
|
|
109
|
+
for (const output of Object.values(rows)) {
|
|
110
|
+
if (output.userId === userId &&
|
|
111
|
+
!reserved.has(output.outputId) &&
|
|
112
|
+
statuses.includes(transactionStatuses.get(output.transactionId)))
|
|
113
|
+
eligible[output.outputId] = output;
|
|
114
|
+
}
|
|
115
|
+
return eligible;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Resolve several transaction proofs in one storage operation when the
|
|
119
|
+
* backend supports it. The default preserves compatibility for custom
|
|
120
|
+
* providers; SQL and IndexedDB providers override this hot path.
|
|
121
|
+
*/
|
|
122
|
+
async getProvenOrRawTxs(txids, trx) {
|
|
123
|
+
const results = new Map();
|
|
124
|
+
const unique = [...new Set(txids)];
|
|
125
|
+
let cursor = 0;
|
|
126
|
+
await Promise.all(Array.from({ length: Math.min(8, unique.length) }, async () => {
|
|
127
|
+
while (cursor < unique.length) {
|
|
128
|
+
const txid = unique[cursor++];
|
|
129
|
+
results.set(txid, await this.getProvenOrRawTx(txid, trx));
|
|
130
|
+
}
|
|
131
|
+
}));
|
|
132
|
+
return results;
|
|
133
|
+
}
|
|
134
|
+
async insertActionBatch(_batch, _trx) {
|
|
135
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
136
|
+
}
|
|
137
|
+
async findActionBatch(_userId, _batchId, _trx) {
|
|
138
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
139
|
+
}
|
|
140
|
+
async findActionBatchForUpdate(userId, batchId, trx) {
|
|
141
|
+
return await this.findActionBatch(userId, batchId, trx);
|
|
142
|
+
}
|
|
143
|
+
async findExpiredActionBatches(_now, _trx) {
|
|
144
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
145
|
+
}
|
|
146
|
+
async updateActionBatch(_actionBatchId, _update, _trx) {
|
|
147
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
148
|
+
}
|
|
149
|
+
async deleteActionBatch(_actionBatchId, _trx) {
|
|
150
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
151
|
+
}
|
|
152
|
+
async reserveActionBatchOutputs(_reservations, _trx) {
|
|
153
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
154
|
+
}
|
|
155
|
+
async findActionBatchOutputIds(_actionBatchId, _trx) {
|
|
156
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
157
|
+
}
|
|
158
|
+
async findReservedActionBatchOutputIds(_outputIds, _trx) {
|
|
159
|
+
return [];
|
|
160
|
+
}
|
|
161
|
+
async deleteActionBatchOutputReservations(_actionBatchId, _trx) {
|
|
162
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
163
|
+
}
|
|
164
|
+
async putActionBatchBlobRecord(_blob, _trx) {
|
|
165
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
166
|
+
}
|
|
167
|
+
async findActionBatchBlobRecord(_actionBatchId, _digest, _trx) {
|
|
168
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
169
|
+
}
|
|
170
|
+
async findActionBatchBlobRecords(actionBatchId, digests, trx) {
|
|
171
|
+
return (await Promise.all(digests.map(async (digest) => await this.findActionBatchBlobRecord(actionBatchId, digest, trx)))).filter((blob) => blob != null);
|
|
172
|
+
}
|
|
173
|
+
async putActionBatchBlobRecords(blobs, trx) {
|
|
174
|
+
for (const blob of blobs)
|
|
175
|
+
await this.putActionBatchBlobRecord(blob, trx);
|
|
176
|
+
}
|
|
177
|
+
async deleteActionBatchBlobRecords(_actionBatchId, _trx) {
|
|
178
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED();
|
|
179
|
+
}
|
|
180
|
+
async getCapabilities() {
|
|
181
|
+
return this.supportsActionBatchPersistence() ? (0, actionBatch_1.getActionBatchCapabilities)() : {};
|
|
182
|
+
}
|
|
183
|
+
supportsActionBatchPersistence() {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
/** Custom providers may require physical expiry cleanup before reservations are queried. */
|
|
187
|
+
requiresActionBatchCleanupBeforeCreateAction() {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
async beginActionBatch(auth, args) {
|
|
191
|
+
if (!this.supportsActionBatchPersistence())
|
|
192
|
+
throw new WERR_errors_1.WERR_NOT_IMPLEMENTED('actionBatch capability is not available');
|
|
193
|
+
return await (0, actionBatch_1.beginActionBatch)(this, auth, args);
|
|
194
|
+
}
|
|
195
|
+
async extendActionBatch(auth, args) {
|
|
196
|
+
return await (0, actionBatch_1.extendActionBatch)(this, auth, args);
|
|
197
|
+
}
|
|
198
|
+
async renewActionBatch(auth, batchId) {
|
|
199
|
+
return await (0, actionBatch_1.renewActionBatch)(this, auth, batchId);
|
|
200
|
+
}
|
|
201
|
+
async prepareActionBatchCommit(auth, manifest) {
|
|
202
|
+
return await (0, actionBatchBlobs_1.prepareActionBatchCommit)(this, auth, manifest);
|
|
203
|
+
}
|
|
204
|
+
async putActionBatchBlob(auth, args) {
|
|
205
|
+
return await (0, actionBatchBlobs_1.putActionBatchBlob)(this, auth, args);
|
|
206
|
+
}
|
|
207
|
+
async putActionBatchPack(auth, args) {
|
|
208
|
+
return await (0, actionBatchBlobs_1.putActionBatchPack)(this, auth, args);
|
|
209
|
+
}
|
|
210
|
+
async commitActionBatch(auth, manifest) {
|
|
211
|
+
return await (0, actionBatch_1.commitActionBatch)(this, auth, manifest);
|
|
212
|
+
}
|
|
213
|
+
async commitActionBatchByDigest(auth, args) {
|
|
214
|
+
return await (0, actionBatch_1.commitActionBatchByDigest)(this, auth, args);
|
|
215
|
+
}
|
|
216
|
+
async abortActionBatch(auth, batchId) {
|
|
217
|
+
return await (0, actionBatch_1.abortActionBatch)(this, auth, batchId);
|
|
40
218
|
}
|
|
41
219
|
async findOutputsByIds(outputIds, trx) {
|
|
42
220
|
const byId = {};
|
|
43
221
|
for (const outputId of outputIds) {
|
|
44
222
|
const o = (0, utilityHelpers_1.verifyOneOrNone)(await this.findOutputs({ partial: { outputId }, trx }));
|
|
45
|
-
if (
|
|
223
|
+
if (o?.outputId !== undefined)
|
|
46
224
|
byId[o.outputId] = o;
|
|
47
225
|
}
|
|
48
226
|
return byId;
|
|
@@ -50,18 +228,23 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
50
228
|
async findStaleMerkleRoots(args) {
|
|
51
229
|
let provenTxs = await this.findProvenTxs({ partial: { height: args.height } });
|
|
52
230
|
provenTxs = provenTxs.filter(ptx => ptx.merkleRoot !== args.merkleRoot);
|
|
53
|
-
|
|
231
|
+
const roots = Array.from(new Set(provenTxs.map(ptx => ptx.merkleRoot)));
|
|
54
232
|
return roots;
|
|
55
233
|
}
|
|
56
234
|
async findOutputsByOutpoints(userId, outpoints, trx) {
|
|
57
235
|
const byOutpoint = {};
|
|
58
236
|
for (const { txid, vout } of outpoints) {
|
|
59
237
|
const o = (0, utilityHelpers_1.verifyOneOrNone)(await this.findOutputs({ partial: { userId, txid, vout }, trx }));
|
|
60
|
-
if (
|
|
238
|
+
if (o?.txid !== undefined && o.vout !== undefined)
|
|
61
239
|
byOutpoint[`${o.txid}.${o.vout}`] = o;
|
|
62
240
|
}
|
|
63
241
|
return byOutpoint;
|
|
64
242
|
}
|
|
243
|
+
async findOutputsByOutpointsForUpdate(userId, outpoints, trx, _noScript = false) {
|
|
244
|
+
// Backends that cannot skip hydration remain correct; optimized backends may
|
|
245
|
+
// use _noScript to keep raw-transaction I/O outside the write lock.
|
|
246
|
+
return await this.findOutputsByOutpoints(userId, outpoints, trx);
|
|
247
|
+
}
|
|
65
248
|
async findOrInsertOutputBasketsBulk(userId, names, trx) {
|
|
66
249
|
const byName = {};
|
|
67
250
|
for (const name of names)
|
|
@@ -74,6 +257,12 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
74
257
|
byTag[tag] = await this.findOrInsertOutputTag(userId, tag, trx);
|
|
75
258
|
return byTag;
|
|
76
259
|
}
|
|
260
|
+
async findOrInsertTxLabelsBulk(userId, labels, trx) {
|
|
261
|
+
const byLabel = {};
|
|
262
|
+
for (const label of labels)
|
|
263
|
+
byLabel[label] ??= await this.findOrInsertTxLabel(userId, label, trx);
|
|
264
|
+
return byLabel;
|
|
265
|
+
}
|
|
77
266
|
async sumSpendableSatoshisInBasket(userId, basketId, excludeSending, trx) {
|
|
78
267
|
const status = ['completed', 'unproven'];
|
|
79
268
|
if (!excludeSending)
|
|
@@ -84,7 +273,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
84
273
|
noScript: true,
|
|
85
274
|
trx
|
|
86
275
|
});
|
|
87
|
-
return rows.reduce((a, r) => a +
|
|
276
|
+
return rows.filter(r => r.spentBy == null).reduce((a, r) => a + (r.satoshis ?? 0), 0);
|
|
88
277
|
}
|
|
89
278
|
async recentlyActiveUsers(limit = 50, trx) {
|
|
90
279
|
const outputs = await this.findOutputs({
|
|
@@ -98,7 +287,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
98
287
|
continue;
|
|
99
288
|
const createdAt = this.validateDate(output.created_at);
|
|
100
289
|
const prior = latestByUserId.get(output.userId);
|
|
101
|
-
if (
|
|
290
|
+
if (prior == null || createdAt > prior) {
|
|
102
291
|
latestByUserId.set(output.userId, createdAt);
|
|
103
292
|
}
|
|
104
293
|
}
|
|
@@ -106,8 +295,8 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
106
295
|
.sort((a, b) => b[1].getTime() - a[1].getTime())
|
|
107
296
|
.slice(0, limit)
|
|
108
297
|
.map(([userId]) => userId);
|
|
109
|
-
const users = await Promise.all(sortedUserIds.map(userId => this.findUserById(userId, trx)));
|
|
110
|
-
return users.filter((user) =>
|
|
298
|
+
const users = await Promise.all(sortedUserIds.map(async (userId) => await this.findUserById(userId, trx)));
|
|
299
|
+
return users.filter((user) => user != null);
|
|
111
300
|
}
|
|
112
301
|
isStorageProvider() {
|
|
113
302
|
return true;
|
|
@@ -116,49 +305,129 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
116
305
|
this._services = v;
|
|
117
306
|
}
|
|
118
307
|
getServices() {
|
|
119
|
-
if (
|
|
308
|
+
if (this._services == null)
|
|
120
309
|
throw new WERR_errors_1.WERR_INVALID_OPERATION('Must setServices first.');
|
|
121
310
|
return this._services;
|
|
122
311
|
}
|
|
123
|
-
async
|
|
124
|
-
if (!auth.userId)
|
|
125
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('auth.userId', 'valid');
|
|
126
|
-
const userId = auth.userId;
|
|
312
|
+
async findAbortableTransaction(userId, args, trx) {
|
|
127
313
|
let reference = args.reference;
|
|
128
|
-
let
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
314
|
+
let tx = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTransactions({
|
|
315
|
+
partial: { reference, userId },
|
|
316
|
+
noRawTx: true,
|
|
317
|
+
trx
|
|
318
|
+
}));
|
|
319
|
+
if (tx == null && args.reference.length === 64) {
|
|
320
|
+
reference = undefined;
|
|
321
|
+
tx = (0, utilityHelpers_1.verifyOneOrNone)(await this.findTransactions({
|
|
322
|
+
partial: { txid: args.reference, userId },
|
|
132
323
|
noRawTx: true,
|
|
133
324
|
trx
|
|
134
325
|
}));
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
326
|
+
}
|
|
327
|
+
const unAbortableStatus = ['completed', 'failed', 'sending', 'unproven'];
|
|
328
|
+
if (tx == null || !tx.isOutgoing || unAbortableStatus.includes(tx.status)) {
|
|
329
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('reference', 'an inprocess, outgoing action that has not been signed and shared to the network.');
|
|
330
|
+
}
|
|
331
|
+
return { tx, reference };
|
|
332
|
+
}
|
|
333
|
+
async checkAbortChainProtection(tx, args, trx) {
|
|
334
|
+
if (tx.txid == null || tx.txid === '' || tx.status !== 'nosend') {
|
|
335
|
+
return { skipped: false, serviceUnreachable: false };
|
|
336
|
+
}
|
|
337
|
+
let serviceUnreachable = false;
|
|
338
|
+
let chainStatus;
|
|
339
|
+
try {
|
|
340
|
+
const result = await this.getServices().getStatusForTxids([tx.txid]);
|
|
341
|
+
if (result.status !== 'success') {
|
|
342
|
+
serviceUnreachable = true;
|
|
144
343
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('reference', 'an inprocess, outgoing action that has not been signed and shared to the network.');
|
|
148
|
-
await this.updateTransactionStatus('failed', tx.transactionId, userId, reference, trx);
|
|
149
|
-
if (tx.txid) {
|
|
150
|
-
const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
|
|
151
|
-
if (req) {
|
|
152
|
-
req.addHistoryNote({ what: 'abortAction', reference: args.reference });
|
|
153
|
-
req.status = 'invalid';
|
|
154
|
-
await req.updateStorageDynamicProperties(this, trx);
|
|
155
|
-
}
|
|
344
|
+
else {
|
|
345
|
+
chainStatus = result.results.find(item => item.txid === tx.txid)?.status;
|
|
156
346
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
347
|
+
}
|
|
348
|
+
catch {
|
|
349
|
+
serviceUnreachable = true;
|
|
350
|
+
}
|
|
351
|
+
if (chainStatus !== 'mined' && chainStatus !== 'known') {
|
|
352
|
+
return { skipped: false, serviceUnreachable };
|
|
353
|
+
}
|
|
354
|
+
const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
|
|
355
|
+
if (req != null) {
|
|
356
|
+
req.addHistoryNote({
|
|
357
|
+
what: 'abortAction-skipped-onchain',
|
|
358
|
+
reference: args.reference,
|
|
359
|
+
chainStatus
|
|
360
|
+
});
|
|
361
|
+
await req.updateStorageDynamicProperties(this, trx);
|
|
362
|
+
}
|
|
363
|
+
return { skipped: true, serviceUnreachable };
|
|
364
|
+
}
|
|
365
|
+
async invalidateAbortedTransaction(tx, userId, reference, originalReference, serviceUnreachable, trx) {
|
|
366
|
+
await this.updateTransactionStatus('failed', tx.transactionId, userId, reference, trx);
|
|
367
|
+
if (tx.txid != null && tx.txid !== '') {
|
|
368
|
+
const req = await entities_1.EntityProvenTxReq.fromStorageTxid(this, tx.txid, trx);
|
|
369
|
+
if (req != null) {
|
|
370
|
+
req.addHistoryNote(serviceUnreachable
|
|
371
|
+
? { what: 'abortAction-offline-fallback', reference: originalReference }
|
|
372
|
+
: { what: 'abortAction', reference: originalReference });
|
|
373
|
+
req.status = 'invalid';
|
|
374
|
+
await req.updateStorageDynamicProperties(this, trx);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
return { aborted: true };
|
|
378
|
+
}
|
|
379
|
+
async abortAction(auth, args) {
|
|
380
|
+
if (auth.userId == null)
|
|
381
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('auth.userId', 'valid');
|
|
382
|
+
const userId = auth.userId;
|
|
383
|
+
const r = await this.transaction(async (trx) => {
|
|
384
|
+
const { tx, reference } = await this.findAbortableTransaction(userId, args, trx);
|
|
385
|
+
// Chain-status protection for signed nosend txs.
|
|
386
|
+
//
|
|
387
|
+
// Background: a nosend tx (created via createAction({noSend:true}))
|
|
388
|
+
// can be externally broadcast by the caller and reach 'mined' or
|
|
389
|
+
// mempool-'known' status before any internalizeAction or Monitor
|
|
390
|
+
// cycle has retired its 'nosend' status in storage. If abortAction
|
|
391
|
+
// is invoked on it in that window, the destructive transitions
|
|
392
|
+
// below (transactions.status='failed' + proven_tx_reqs.status='invalid')
|
|
393
|
+
// orphan every output the tx produced — including auto-fund change
|
|
394
|
+
// outputs the wallet itself emitted — because listOutputs filters
|
|
395
|
+
// them out of the spendable set on parent-tx 'failed' status.
|
|
396
|
+
//
|
|
397
|
+
// Protection: if the tx has a txid AND status is 'nosend', ask
|
|
398
|
+
// the network whether it already knows about the tx before
|
|
399
|
+
// invalidating. getStatusForTxids returns 'mined' | 'known' |
|
|
400
|
+
// 'unknown' per StatusForTxidResult (WalletServices.interfaces.ts).
|
|
401
|
+
// Refuse the abort for 'mined' OR 'known' — a tx that's broadcast
|
|
402
|
+
// and propagating in mempool returns 'known' (depth===0) and
|
|
403
|
+
// protecting it avoids orphaning during the propagation window.
|
|
404
|
+
//
|
|
405
|
+
// Service-unreachable handling: proceed with abort. Refusal is
|
|
406
|
+
// reserved for positive on-chain confirmation. When the network
|
|
407
|
+
// confirmation pathway is itself unavailable (services throw or
|
|
408
|
+
// gracefully return r.status !== 'success'), confirmation is not
|
|
409
|
+
// possible — and per the BRC-100 contract callers retain the
|
|
410
|
+
// ability to abort offline. The fallback writes a forensic
|
|
411
|
+
// history note ('abortAction-offline-fallback') so an operator
|
|
412
|
+
// can grep for aborts that proceeded under uncertainty. This
|
|
413
|
+
// hole can never be 100% closed against externally-broadcast
|
|
414
|
+
// chain-confirmed txs while offline; the audit trail makes it
|
|
415
|
+
// recoverable.
|
|
416
|
+
const protection = await this.checkAbortChainProtection(tx, args, trx);
|
|
417
|
+
if (protection.skipped) {
|
|
418
|
+
// Commit the audit note before translating this sentinel to aborted:false.
|
|
419
|
+
return { __abortAction: 'skipped-onchain' };
|
|
420
|
+
}
|
|
421
|
+
return await this.invalidateAbortedTransaction(tx, userId, reference, args.reference, protection.serviceUnreachable, trx);
|
|
161
422
|
});
|
|
423
|
+
if ('__abortAction' in r) {
|
|
424
|
+
// Tone Engel review feedback (PR #122 comment 4444566147 item 3):
|
|
425
|
+
// do not throw on chain-confirmed refusal — surface it via the
|
|
426
|
+
// return value so callers can branch on it. Refusal is positive
|
|
427
|
+
// chain confirmation only; service-unreachable proceeds with
|
|
428
|
+
// abort and returns aborted:true with an audit-trail note.
|
|
429
|
+
return { aborted: false };
|
|
430
|
+
}
|
|
162
431
|
return r;
|
|
163
432
|
}
|
|
164
433
|
async internalizeAction(auth, args) {
|
|
@@ -190,43 +459,24 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
190
459
|
r.details.push(d);
|
|
191
460
|
try {
|
|
192
461
|
d.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
|
|
193
|
-
if (d.proven)
|
|
462
|
+
if (d.proven != null) {
|
|
194
463
|
d.status = 'alreadySent';
|
|
464
|
+
continue;
|
|
465
|
+
}
|
|
466
|
+
d.req = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxReqs({ partial: { txid }, trx }));
|
|
467
|
+
if (d.req == null) {
|
|
468
|
+
d.status = 'error';
|
|
469
|
+
d.error = `ERR_UNKNOWN_TXID: ${txid} was not found.`;
|
|
470
|
+
}
|
|
195
471
|
else {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
d.req
|
|
200
|
-
if (!d.req) {
|
|
201
|
-
d.status = 'error';
|
|
202
|
-
d.error = `ERR_UNKNOWN_TXID: ${txid} was not found.`;
|
|
203
|
-
}
|
|
204
|
-
else if (errorStatus.indexOf(d.req.status) > -1) {
|
|
205
|
-
d.status = 'error';
|
|
206
|
-
d.error = `ERR_INVALID_PARAMETER: ${txid} is not ready to send.`;
|
|
207
|
-
}
|
|
208
|
-
else if (alreadySentStatus.indexOf(d.req.status) > -1) {
|
|
209
|
-
d.status = 'alreadySent';
|
|
210
|
-
}
|
|
211
|
-
else if (readyToSendStatus.indexOf(d.req.status) > -1) {
|
|
212
|
-
if (!d.req.rawTx || !d.req.inputBEEF) {
|
|
213
|
-
d.status = 'error';
|
|
214
|
-
d.error = `ERR_INTERNAL: ${txid} req is missing rawTx or beef.`;
|
|
215
|
-
}
|
|
216
|
-
else
|
|
217
|
-
d.status = 'readyToSend';
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
d.status = 'error';
|
|
221
|
-
d.error = `ERR_INTERNAL: ${txid} has unexpected req status ${d.req.status}`;
|
|
222
|
-
}
|
|
223
|
-
if (d.status === 'readyToSend') {
|
|
224
|
-
await this.mergeReqToBeefToShareExternally(d.req, r.beef, knownTxids, trx);
|
|
225
|
-
}
|
|
472
|
+
(0, storageProviderHelpers_1.classifyReqStatus)(d, d.req);
|
|
473
|
+
}
|
|
474
|
+
if (d.status === 'readyToSend') {
|
|
475
|
+
await this.mergeReqToBeefToShareExternally(d.req, r.beef, knownTxids, trx);
|
|
226
476
|
}
|
|
227
477
|
}
|
|
228
|
-
catch (
|
|
229
|
-
const e = WalletError_1.WalletError.fromUnknown(
|
|
478
|
+
catch (error_) {
|
|
479
|
+
const e = WalletError_1.WalletError.fromUnknown(error_);
|
|
230
480
|
d.error = `${e.name}: ${e.message}`;
|
|
231
481
|
}
|
|
232
482
|
}
|
|
@@ -234,23 +484,13 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
234
484
|
}
|
|
235
485
|
async mergeReqToBeefToShareExternally(req, mergeToBeef, knownTxids, trx) {
|
|
236
486
|
const { rawTx, inputBEEF: beef } = req;
|
|
237
|
-
if (
|
|
238
|
-
throw new WERR_errors_1.WERR_INTERNAL(
|
|
487
|
+
if (rawTx == null || beef == null)
|
|
488
|
+
throw new WERR_errors_1.WERR_INTERNAL('req rawTx and beef must be valid.');
|
|
239
489
|
mergeToBeef.mergeRawTx((0, utilityHelpers_noBuffer_1.asArray)(rawTx));
|
|
240
490
|
mergeToBeef.mergeBeef((0, utilityHelpers_noBuffer_1.asArray)(beef));
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
throw new WERR_errors_1.WERR_INTERNAL(`req all transaction inputs must have valid sourceTXID`);
|
|
245
|
-
const txid = input.sourceTXID;
|
|
246
|
-
const btx = mergeToBeef.findTxid(txid);
|
|
247
|
-
if (!btx) {
|
|
248
|
-
if (knownTxids && knownTxids.indexOf(txid) > -1)
|
|
249
|
-
mergeToBeef.mergeTxidOnly(txid);
|
|
250
|
-
else
|
|
251
|
-
await this.getValidBeefForKnownTxid(txid, mergeToBeef, undefined, knownTxids, trx);
|
|
252
|
-
}
|
|
253
|
-
}
|
|
491
|
+
await (0, storageProviderHelpers_1.mergeInputsIntoBeef)((0, utilityHelpers_noBuffer_1.asArray)(rawTx), mergeToBeef, knownTxids, trx, async (txid, beef, _trust, knownTxids, trx) => {
|
|
492
|
+
await this.getValidBeefForKnownTxid(txid, beef, undefined, knownTxids, trx);
|
|
493
|
+
});
|
|
254
494
|
}
|
|
255
495
|
/**
|
|
256
496
|
* Checks if txid is a known valid ProvenTx and returns it if found.
|
|
@@ -266,33 +506,37 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
266
506
|
* @param trx
|
|
267
507
|
* @returns
|
|
268
508
|
*/
|
|
509
|
+
async upsertProvenTxReq(txid, newReq, trx) {
|
|
510
|
+
const existing = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxReqs({ partial: { txid }, trx }));
|
|
511
|
+
if (existing == null && newReq == null)
|
|
512
|
+
return undefined;
|
|
513
|
+
if (existing == null) {
|
|
514
|
+
await this.insertProvenTxReq(newReq, trx);
|
|
515
|
+
return newReq;
|
|
516
|
+
}
|
|
517
|
+
if (newReq != null) {
|
|
518
|
+
const req1 = new entities_1.EntityProvenTxReq(existing);
|
|
519
|
+
req1.mergeHistory(newReq, undefined, true);
|
|
520
|
+
req1.mergeNotifyTransactionIds(newReq);
|
|
521
|
+
await req1.updateStorageDynamicProperties(this, trx);
|
|
522
|
+
}
|
|
523
|
+
return existing;
|
|
524
|
+
}
|
|
269
525
|
async getProvenOrReq(txid, newReq, trx) {
|
|
270
|
-
if (newReq && txid !== newReq.txid)
|
|
271
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('newReq',
|
|
526
|
+
if (newReq != null && txid !== newReq.txid)
|
|
527
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('newReq', 'same txid');
|
|
272
528
|
const r = { proven: undefined, req: undefined };
|
|
273
529
|
r.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
|
|
274
|
-
if (r.proven)
|
|
530
|
+
if (r.proven != null)
|
|
275
531
|
return r;
|
|
276
532
|
for (let retry = 0;; retry++) {
|
|
277
533
|
try {
|
|
278
|
-
r.req =
|
|
279
|
-
if (!r.req && !newReq)
|
|
280
|
-
break;
|
|
281
|
-
if (!r.req && newReq) {
|
|
282
|
-
await this.insertProvenTxReq(newReq, trx);
|
|
283
|
-
}
|
|
284
|
-
if (r.req && newReq) {
|
|
285
|
-
// Merge history and notify into existing
|
|
286
|
-
const req1 = new entities_1.EntityProvenTxReq(r.req);
|
|
287
|
-
req1.mergeHistory(newReq, undefined, true);
|
|
288
|
-
req1.mergeNotifyTransactionIds(newReq);
|
|
289
|
-
await req1.updateStorageDynamicProperties(this, trx);
|
|
290
|
-
}
|
|
534
|
+
r.req = await this.upsertProvenTxReq(txid, newReq, trx);
|
|
291
535
|
break;
|
|
292
536
|
}
|
|
293
|
-
catch (
|
|
537
|
+
catch (error_) {
|
|
294
538
|
if (retry > 0)
|
|
295
|
-
throw
|
|
539
|
+
throw error_;
|
|
296
540
|
}
|
|
297
541
|
}
|
|
298
542
|
return r;
|
|
@@ -304,10 +548,31 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
304
548
|
}
|
|
305
549
|
}, trx);
|
|
306
550
|
}
|
|
551
|
+
async releaseInputsAllocatedToFailedTransaction(tx, trx) {
|
|
552
|
+
const t = new entities_1.EntityTransaction(tx);
|
|
553
|
+
const inputs = await t.getInputs(this, trx);
|
|
554
|
+
for (const input of inputs) {
|
|
555
|
+
// input is a prior output belonging to userId that references this transaction either by `spentBy`
|
|
556
|
+
// or by txid and vout.
|
|
557
|
+
await this.updateOutput((0, utilityHelpers_1.verifyId)(input.outputId), { spendable: true, spentBy: undefined }, trx);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
async markFailedTransactionOutputsNotSpendable(tx, trx) {
|
|
561
|
+
const outputs = await this.findOutputs({
|
|
562
|
+
partial: { transactionId: (0, utilityHelpers_1.verifyId)(tx.transactionId) },
|
|
563
|
+
trx
|
|
564
|
+
});
|
|
565
|
+
for (const output of outputs) {
|
|
566
|
+
if (!output.spendable && output.spentBy == null)
|
|
567
|
+
continue;
|
|
568
|
+
await this.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false, spentBy: undefined }, trx);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
307
571
|
/**
|
|
308
572
|
* For all `status` values besides 'failed', just updates the transaction records status property.
|
|
309
573
|
*
|
|
310
|
-
* For 'status' of 'failed', attempts to make outputs previously allocated as inputs to this transaction usable again
|
|
574
|
+
* For 'status' of 'failed', attempts to make outputs previously allocated as inputs to this transaction usable again
|
|
575
|
+
* and makes outputs generated by this transaction non-spendable.
|
|
311
576
|
*
|
|
312
577
|
* @param status
|
|
313
578
|
* @param transactionId
|
|
@@ -316,39 +581,33 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
316
581
|
* @param trx
|
|
317
582
|
*/
|
|
318
583
|
async updateTransactionStatus(status, transactionId, userId, reference, trx) {
|
|
319
|
-
if (
|
|
584
|
+
if (transactionId == null && !(userId != null && reference != null && reference !== '')) {
|
|
320
585
|
throw new WERR_errors_1.WERR_MISSING_PARAMETER('either transactionId or userId and reference');
|
|
586
|
+
}
|
|
321
587
|
await this.transaction(async (trx) => {
|
|
322
588
|
const where = {};
|
|
323
|
-
if (transactionId)
|
|
589
|
+
if (transactionId != null)
|
|
324
590
|
where.transactionId = transactionId;
|
|
325
|
-
if (userId)
|
|
591
|
+
if (userId != null)
|
|
326
592
|
where.userId = userId;
|
|
327
|
-
if (reference)
|
|
593
|
+
if (reference != null && reference !== '')
|
|
328
594
|
where.reference = reference;
|
|
329
595
|
const tx = (0, utilityHelpers_1.verifyOne)(await this.findTransactions({ partial: where, noRawTx: true, trx }));
|
|
330
|
-
//if (tx.status === status)
|
|
596
|
+
// if (tx.status === status)
|
|
331
597
|
// no change required. Assume inputs and outputs spendable and spentBy are valid for status.
|
|
332
|
-
//return
|
|
598
|
+
// return
|
|
333
599
|
// Once completed, this method cannot be used to "uncomplete" transaction.
|
|
334
|
-
if ((status !== 'completed' && tx.status === 'completed') || tx.provenTxId)
|
|
600
|
+
if ((status !== 'completed' && tx.status === 'completed') || tx.provenTxId != null) {
|
|
335
601
|
throw new WERR_errors_1.WERR_INVALID_OPERATION('The status of a "completed" transaction cannot be changed.');
|
|
602
|
+
}
|
|
336
603
|
// It is not possible to un-fail a transaction. Information is lost and not recoverable.
|
|
337
|
-
if (status !== 'failed' && tx.status === 'failed')
|
|
338
|
-
throw new WERR_errors_1.WERR_INVALID_OPERATION(
|
|
604
|
+
if (status !== 'failed' && tx.status === 'failed') {
|
|
605
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('A "failed" transaction may not be un-failed by this method.');
|
|
606
|
+
}
|
|
339
607
|
switch (status) {
|
|
340
608
|
case 'failed':
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
// Only clear input's spentBy and reset spendable = true if it references this transaction
|
|
344
|
-
const t = new entities_1.EntityTransaction(tx);
|
|
345
|
-
const inputs = await t.getInputs(this, trx);
|
|
346
|
-
for (const input of inputs) {
|
|
347
|
-
// input is a prior output belonging to userId that reference this transaction either by `spentBy`
|
|
348
|
-
// or by txid and vout.
|
|
349
|
-
await this.updateOutput((0, utilityHelpers_1.verifyId)(input.outputId), { spendable: true, spentBy: undefined }, trx);
|
|
350
|
-
}
|
|
351
|
-
}
|
|
609
|
+
await this.releaseInputsAllocatedToFailedTransaction(tx, trx);
|
|
610
|
+
await this.markFailedTransactionOutputsNotSpendable(tx, trx);
|
|
352
611
|
break;
|
|
353
612
|
case 'nosend':
|
|
354
613
|
case 'unsigned':
|
|
@@ -364,12 +623,15 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
364
623
|
}, trx);
|
|
365
624
|
}
|
|
366
625
|
async createAction(auth, args) {
|
|
367
|
-
if (
|
|
626
|
+
if (auth.userId == null)
|
|
368
627
|
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
628
|
+
if (this.supportsActionBatchPersistence() && this.requiresActionBatchCleanupBeforeCreateAction()) {
|
|
629
|
+
await (0, actionBatch_1.cleanupExpiredActionBatches)(this);
|
|
630
|
+
}
|
|
369
631
|
return await (0, createAction_1.createAction)(this, auth, args);
|
|
370
632
|
}
|
|
371
633
|
async processAction(auth, args) {
|
|
372
|
-
if (
|
|
634
|
+
if (auth.userId == null)
|
|
373
635
|
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
374
636
|
return await (0, processAction_1.processAction)(this, auth, args);
|
|
375
637
|
}
|
|
@@ -381,7 +643,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
381
643
|
}
|
|
382
644
|
async verifyKnownValidTransaction(txid, trx) {
|
|
383
645
|
const { proven, rawTx } = await this.getProvenOrRawTx(txid, trx);
|
|
384
|
-
return proven
|
|
646
|
+
return proven !== undefined || rawTx !== undefined;
|
|
385
647
|
}
|
|
386
648
|
/**
|
|
387
649
|
* Pulls data from storage to build a valid beef for a txid.
|
|
@@ -399,64 +661,72 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
399
661
|
*/
|
|
400
662
|
async getValidBeefForKnownTxid(txid, mergeToBeef, trustSelf, knownTxids, trx, requiredLevels) {
|
|
401
663
|
const beef = await this.getValidBeefForTxid(txid, mergeToBeef, trustSelf, knownTxids, trx, requiredLevels);
|
|
402
|
-
if (
|
|
664
|
+
if (beef == null)
|
|
403
665
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('txid', `known to storage. ${txid} is not known.`);
|
|
404
666
|
return beef;
|
|
405
667
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
668
|
+
/**
|
|
669
|
+
* Handles the proven-tx branch of getValidBeefForTxid.
|
|
670
|
+
*
|
|
671
|
+
* Returns the beef if the proof was merged and we can stop, or `undefined` to
|
|
672
|
+
* signal that the caller should fall through to the rawTx path. May also
|
|
673
|
+
* populate `r.rawTx` so the rawTx path can proceed without re-fetching.
|
|
674
|
+
*/
|
|
675
|
+
async handleProvenTxBranch(txid, r, beef, trustSelf, requiredLevels, chainTracker, skipInvalidProofs) {
|
|
676
|
+
const proven = r.proven;
|
|
677
|
+
if (proven == null)
|
|
678
|
+
return undefined;
|
|
679
|
+
if ((requiredLevels ?? 0) > 0) {
|
|
680
|
+
// Need more levels — caller should proceed via rawTx path
|
|
681
|
+
r.rawTx = proven.rawTx;
|
|
682
|
+
return undefined;
|
|
683
|
+
}
|
|
684
|
+
if (trustSelf === 'known') {
|
|
685
|
+
beef.mergeTxidOnly(txid);
|
|
686
|
+
return beef;
|
|
687
|
+
}
|
|
688
|
+
const mp = new entities_1.EntityProvenTx(proven).getMerklePath();
|
|
689
|
+
if (chainTracker != null) {
|
|
690
|
+
const root = mp.computeRoot();
|
|
691
|
+
const isValid = await chainTracker.isValidRootForHeight(root, proven.height);
|
|
692
|
+
if (!isValid) {
|
|
693
|
+
if (skipInvalidProofs !== true)
|
|
694
|
+
throw new WERR_errors_1.WERR_INVALID_MERKLE_ROOT(proven.blockHash, proven.height, root, txid);
|
|
695
|
+
// Proof is currently invalid — recurse deeper via rawTx path
|
|
696
|
+
r.rawTx = proven.rawTx;
|
|
697
|
+
r.proven = undefined;
|
|
698
|
+
return undefined;
|
|
437
699
|
}
|
|
438
700
|
}
|
|
439
|
-
|
|
701
|
+
// Proof is good — merge and return
|
|
702
|
+
beef.mergeRawTx(proven.rawTx);
|
|
703
|
+
beef.mergeBump(mp);
|
|
704
|
+
return beef;
|
|
705
|
+
}
|
|
706
|
+
async getValidBeefForTxid(...[txid, mergeToBeef, trustSelf, knownTxids, trx, requiredLevels, chainTracker, skipInvalidProofs]) {
|
|
707
|
+
const beef = mergeToBeef ?? new sdk_1.Beef();
|
|
708
|
+
const r = await this.getProvenOrRawTx(txid, trx);
|
|
709
|
+
// --- proven-tx path ---
|
|
710
|
+
if (r.proven != null) {
|
|
711
|
+
const result = await this.handleProvenTxBranch(txid, r, beef, trustSelf, requiredLevels, chainTracker, skipInvalidProofs);
|
|
712
|
+
if (result != null || r.rawTx == null)
|
|
713
|
+
return result;
|
|
714
|
+
}
|
|
715
|
+
// --- rawTx path ---
|
|
716
|
+
if (r.rawTx == null)
|
|
440
717
|
return undefined;
|
|
441
718
|
if (trustSelf === 'known') {
|
|
442
719
|
beef.mergeTxidOnly(txid);
|
|
443
720
|
}
|
|
444
721
|
else {
|
|
445
722
|
beef.mergeRawTx(r.rawTx);
|
|
446
|
-
if (r.inputBEEF)
|
|
723
|
+
if (r.inputBEEF != null)
|
|
447
724
|
beef.mergeBeef(r.inputBEEF);
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
if (!btx) {
|
|
454
|
-
if (!requiredLevels && knownTxids && knownTxids.indexOf(input.sourceTXID) > -1)
|
|
455
|
-
beef.mergeTxidOnly(input.sourceTXID);
|
|
456
|
-
else
|
|
457
|
-
await this.getValidBeefForKnownTxid(input.sourceTXID, beef, trustSelf, knownTxids, trx, requiredLevels);
|
|
458
|
-
}
|
|
459
|
-
}
|
|
725
|
+
if ((requiredLevels ?? 0) > 0)
|
|
726
|
+
requiredLevels = requiredLevels - 1;
|
|
727
|
+
await (0, storageProviderHelpers_1.mergeInputBeefs)(r.rawTx, beef, trustSelf, knownTxids, trx, requiredLevels, async (sourceTXID, beef, trustSelf, knownTxids, trx, requiredLevels) => {
|
|
728
|
+
await this.getValidBeefForKnownTxid(sourceTXID, beef, trustSelf, knownTxids, trx, requiredLevels);
|
|
729
|
+
});
|
|
460
730
|
}
|
|
461
731
|
return beef;
|
|
462
732
|
}
|
|
@@ -464,6 +734,9 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
464
734
|
const beef = await (0, getBeefForTransaction_1.getBeefForTransaction)(this, txid, options);
|
|
465
735
|
return beef;
|
|
466
736
|
}
|
|
737
|
+
async getBeefForTransactions(txids, options) {
|
|
738
|
+
return await (0, getBeefForTransaction_1.getBeefForTransactions)(this, txids, options);
|
|
739
|
+
}
|
|
467
740
|
async findMonitorEventById(id, trx) {
|
|
468
741
|
return (0, utilityHelpers_1.verifyOneOrNone)(await this.findMonitorEvents({ partial: { id }, trx }));
|
|
469
742
|
}
|
|
@@ -483,7 +756,7 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
483
756
|
async relinquishOutput(auth, args) {
|
|
484
757
|
const vargs = sdk_1.Validation.validateRelinquishOutputArgs(args);
|
|
485
758
|
const { txid, vout } = sdk_1.Validation.parseWalletOutpoint(vargs.output);
|
|
486
|
-
const output = (0, utilityHelpers_1.verifyOne)(await this.findOutputs({ partial: { txid, vout } }));
|
|
759
|
+
const output = (0, utilityHelpers_1.verifyOne)(await this.findOutputs({ partial: { userId: auth.userId, txid, vout } }));
|
|
487
760
|
return await this.updateOutput(output.outputId, { basketId: undefined });
|
|
488
761
|
}
|
|
489
762
|
async processSyncChunk(args, chunk) {
|
|
@@ -513,14 +786,18 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
513
786
|
async updateProvenTxReqWithNewProvenTx(args) {
|
|
514
787
|
const req = await entities_1.EntityProvenTxReq.fromStorageId(this, args.provenTxReqId);
|
|
515
788
|
let proven;
|
|
516
|
-
if (req.provenTxId) {
|
|
789
|
+
if (req.provenTxId != null && req.provenTxId > 0) {
|
|
517
790
|
// Someone beat us to it, grab what we need for results...
|
|
518
791
|
proven = new entities_1.EntityProvenTx((0, utilityHelpers_1.verifyOne)(await this.findProvenTxs({ partial: { txid: args.txid } })));
|
|
792
|
+
if (req.status !== 'completed' || req.provenTxId !== proven.provenTxId) {
|
|
793
|
+
req.status = 'completed';
|
|
794
|
+
req.provenTxId = proven.provenTxId;
|
|
795
|
+
await req.updateStorageDynamicProperties(this);
|
|
796
|
+
}
|
|
519
797
|
}
|
|
520
798
|
else {
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
const { proven: api, isNew } = await this.findOrInsertProvenTx({
|
|
799
|
+
proven = await this.transaction(async (trx) => {
|
|
800
|
+
const { proven: api } = await this.findOrInsertProvenTx({
|
|
524
801
|
created_at: new Date(),
|
|
525
802
|
updated_at: new Date(),
|
|
526
803
|
provenTxId: 0,
|
|
@@ -532,43 +809,242 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
532
809
|
blockHash: args.blockHash,
|
|
533
810
|
merkleRoot: args.merkleRoot
|
|
534
811
|
}, trx);
|
|
535
|
-
|
|
536
|
-
if (
|
|
812
|
+
const found = new entities_1.EntityProvenTx(api);
|
|
813
|
+
if (req.status !== 'completed' || req.provenTxId !== found.provenTxId) {
|
|
537
814
|
req.status = 'completed';
|
|
538
|
-
req.provenTxId =
|
|
815
|
+
req.provenTxId = found.provenTxId;
|
|
539
816
|
await req.updateStorageDynamicProperties(this, trx);
|
|
540
|
-
// upate the transaction notifications outside of storage transaction....
|
|
541
|
-
}
|
|
542
|
-
return { proven, isNew };
|
|
543
|
-
}));
|
|
544
|
-
if (isNew) {
|
|
545
|
-
const ids = req.notify.transactionIds || [];
|
|
546
|
-
if (ids.length > 0) {
|
|
547
|
-
for (const id of ids) {
|
|
548
|
-
try {
|
|
549
|
-
await this.updateTransaction(id, {
|
|
550
|
-
provenTxId: proven.provenTxId,
|
|
551
|
-
status: 'completed'
|
|
552
|
-
});
|
|
553
|
-
req.addHistoryNote({ what: 'notifyTxOfProof', transactionId: id });
|
|
554
|
-
}
|
|
555
|
-
catch (eu) {
|
|
556
|
-
const { code, description } = WalletError_1.WalletError.fromUnknown(eu);
|
|
557
|
-
const { provenTxId } = proven;
|
|
558
|
-
req.addHistoryNote({ what: 'notifyTxOfProofError', id, provenTxId, code, description });
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
await req.updateStorageDynamicProperties(this);
|
|
562
817
|
}
|
|
563
|
-
|
|
818
|
+
return found;
|
|
819
|
+
});
|
|
564
820
|
}
|
|
821
|
+
await this.reconcileProvenTxReqTransactions(req, proven);
|
|
565
822
|
const r = {
|
|
566
823
|
status: req.status,
|
|
567
824
|
history: req.apiHistory,
|
|
568
|
-
provenTxId: proven.provenTxId
|
|
825
|
+
provenTxId: proven.provenTxId,
|
|
826
|
+
notified: req.notified,
|
|
827
|
+
notify: req.apiNotify
|
|
569
828
|
};
|
|
570
829
|
return r;
|
|
571
830
|
}
|
|
831
|
+
/**
|
|
832
|
+
* Reconcile completed proof requests whose transaction fan-out previously
|
|
833
|
+
* failed or whose durable notification state drifted.
|
|
834
|
+
*
|
|
835
|
+
* This is called by TaskReviewStatus so a completed request with
|
|
836
|
+
* `notified = false` is retried and can become eligible for normal purge.
|
|
837
|
+
*/
|
|
838
|
+
async reconcileCompletedProvenTxReqs() {
|
|
839
|
+
let log = '';
|
|
840
|
+
const reqs = await this.findProvenTxReqs({
|
|
841
|
+
partial: { status: 'completed', notified: false }
|
|
842
|
+
});
|
|
843
|
+
for (const reqApi of reqs) {
|
|
844
|
+
const req = new entities_1.EntityProvenTxReq(reqApi);
|
|
845
|
+
if (req.provenTxId == null || req.provenTxId <= 0) {
|
|
846
|
+
log += `completed req ${req.id} cannot reconcile without provenTxId\n`;
|
|
847
|
+
continue;
|
|
848
|
+
}
|
|
849
|
+
const provenApi = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({
|
|
850
|
+
partial: { provenTxId: req.provenTxId }
|
|
851
|
+
}));
|
|
852
|
+
if (provenApi == null) {
|
|
853
|
+
log += `completed req ${req.id} cannot reconcile missing provenTx ${req.provenTxId}\n`;
|
|
854
|
+
continue;
|
|
855
|
+
}
|
|
856
|
+
await this.reconcileProvenTxReqTransactions(req, new entities_1.EntityProvenTx(provenApi));
|
|
857
|
+
if (req.notified)
|
|
858
|
+
log += `completed req ${req.id} transaction notifications reconciled\n`;
|
|
859
|
+
}
|
|
860
|
+
return { log };
|
|
861
|
+
}
|
|
862
|
+
async prepareProofRecoveryOutputVerdicts(transactions) {
|
|
863
|
+
const verdicts = new Map();
|
|
864
|
+
if (transactions.length === 0)
|
|
865
|
+
return verdicts;
|
|
866
|
+
const services = this.getServices();
|
|
867
|
+
for (const transaction of transactions) {
|
|
868
|
+
const outputs = await this.findOutputs({
|
|
869
|
+
partial: {
|
|
870
|
+
userId: transaction.userId,
|
|
871
|
+
transactionId: transaction.transactionId
|
|
872
|
+
}
|
|
873
|
+
});
|
|
874
|
+
for (const output of outputs) {
|
|
875
|
+
const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
|
|
876
|
+
await this.validateOutputScript(output);
|
|
877
|
+
verdicts.set(outputId, output.lockingScript == null ? undefined : await services.isUtxo(output));
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
return verdicts;
|
|
881
|
+
}
|
|
882
|
+
async restoreProofRecoveryInputs(tx, bsvtx, indent, trx) {
|
|
883
|
+
let log = '';
|
|
884
|
+
for (const [vin, input] of bsvtx.inputs.entries()) {
|
|
885
|
+
const sourceTXID = input.sourceTXID;
|
|
886
|
+
if (sourceTXID == null) {
|
|
887
|
+
log += ' '.repeat(indent + 2) + `input ${vin} has no source transaction id\n`;
|
|
888
|
+
continue;
|
|
889
|
+
}
|
|
890
|
+
const outputs = await this.findOutputs({
|
|
891
|
+
partial: {
|
|
892
|
+
userId: tx.userId,
|
|
893
|
+
txid: sourceTXID,
|
|
894
|
+
vout: input.sourceOutputIndex
|
|
895
|
+
},
|
|
896
|
+
trx
|
|
897
|
+
});
|
|
898
|
+
if (outputs.length !== 1) {
|
|
899
|
+
log += ' '.repeat(indent + 2) + `input ${vin} not matched to user's outputs\n`;
|
|
900
|
+
continue;
|
|
901
|
+
}
|
|
902
|
+
const output = outputs[0];
|
|
903
|
+
log +=
|
|
904
|
+
' '.repeat(indent + 2) +
|
|
905
|
+
`input ${vin} matched to output ${output.outputId} updated spentBy ${tx.transactionId}\n`;
|
|
906
|
+
await this.updateOutput((0, utilityHelpers_1.verifyId)(output.outputId), { spendable: false, spentBy: tx.transactionId }, trx);
|
|
907
|
+
}
|
|
908
|
+
return log;
|
|
909
|
+
}
|
|
910
|
+
async restoreProofRecoveryOutputs(tx, outputVerdicts, indent, trx) {
|
|
911
|
+
let log = '';
|
|
912
|
+
const outputs = await this.findOutputs({
|
|
913
|
+
partial: { userId: tx.userId, transactionId: tx.transactionId },
|
|
914
|
+
trx
|
|
915
|
+
});
|
|
916
|
+
for (const output of outputs) {
|
|
917
|
+
const outputId = (0, utilityHelpers_1.verifyId)(output.outputId);
|
|
918
|
+
if (!outputVerdicts.has(outputId)) {
|
|
919
|
+
throw new WERR_errors_1.WERR_INTERNAL(`Output ${outputId} changed while preparing proof recovery.`);
|
|
920
|
+
}
|
|
921
|
+
const isUtxo = outputVerdicts.get(outputId);
|
|
922
|
+
if (isUtxo == null) {
|
|
923
|
+
log +=
|
|
924
|
+
' '.repeat(indent + 2) +
|
|
925
|
+
`output ${output.outputId} does not have a valid locking script\n`;
|
|
926
|
+
continue;
|
|
927
|
+
}
|
|
928
|
+
if (isUtxo === output.spendable) {
|
|
929
|
+
log += ' '.repeat(indent + 2) + `output ${output.outputId} unchanged\n`;
|
|
930
|
+
continue;
|
|
931
|
+
}
|
|
932
|
+
log +=
|
|
933
|
+
' '.repeat(indent + 2) +
|
|
934
|
+
`output ${output.outputId} set to ${isUtxo ? 'spendable' : 'spent'}\n`;
|
|
935
|
+
await this.updateOutput(outputId, { spendable: isUtxo }, trx);
|
|
936
|
+
}
|
|
937
|
+
return log;
|
|
938
|
+
}
|
|
939
|
+
async restoreTransactionForProof(tx, bsvtx, preparedTransactionIds, outputVerdicts, indent, trx) {
|
|
940
|
+
if (bsvtx == null || !preparedTransactionIds.has(tx.transactionId)) {
|
|
941
|
+
throw new WERR_errors_1.WERR_INTERNAL(`Transaction ${tx.transactionId} changed while preparing proof recovery.`);
|
|
942
|
+
}
|
|
943
|
+
await this.updateTransaction(tx.transactionId, { status: 'unproven' }, trx);
|
|
944
|
+
let log = ' '.repeat(indent) +
|
|
945
|
+
`transaction ${tx.transactionId} status is now 'unproven'\n`;
|
|
946
|
+
log += await this.restoreProofRecoveryInputs(tx, bsvtx, indent, trx);
|
|
947
|
+
log += await this.restoreProofRecoveryOutputs(tx, outputVerdicts, indent, trx);
|
|
948
|
+
return log;
|
|
949
|
+
}
|
|
950
|
+
/**
|
|
951
|
+
* Restore every failed local copy of a transaction before proof completion.
|
|
952
|
+
* Also heals the request's notification set from the authoritative txid
|
|
953
|
+
* lookup so TaskUnFail cannot omit a local copy after notification drift.
|
|
954
|
+
*/
|
|
955
|
+
async unfailTransactionsForProof(req, indent = 0, requestUpdate) {
|
|
956
|
+
const transactions = await this.findTransactions({
|
|
957
|
+
partial: { txid: req.txid },
|
|
958
|
+
noRawTx: true
|
|
959
|
+
});
|
|
960
|
+
const transactionsToRepair = transactions.filter(transaction => requestUpdate != null || transaction.status === 'failed');
|
|
961
|
+
// Proof completion is the hot path. If no failed transaction needs repair,
|
|
962
|
+
// notification reconciliation below will perform the required atomic work;
|
|
963
|
+
// avoid an otherwise empty refresh/write transaction here.
|
|
964
|
+
if (transactionsToRepair.length === 0 && requestUpdate == null)
|
|
965
|
+
return '';
|
|
966
|
+
// Refresh only after deciding recovery is required, while the caller has
|
|
967
|
+
// not yet applied an intended request transition. TaskUnFail passes that
|
|
968
|
+
// transition separately so it is persisted atomically with bookkeeping.
|
|
969
|
+
await req.refreshFromStorage(this);
|
|
970
|
+
const preparedTransactionIds = new Set(transactionsToRepair.map(transaction => transaction.transactionId));
|
|
971
|
+
const bsvtx = transactionsToRepair.length > 0 ? sdk_1.Transaction.fromBinary(req.rawTx) : undefined;
|
|
972
|
+
// UTXO checks can call external services. Complete every check before
|
|
973
|
+
// opening the write transaction so network latency never holds DB locks.
|
|
974
|
+
const outputVerdicts = await this.prepareProofRecoveryOutputVerdicts(transactionsToRepair);
|
|
975
|
+
return await this.transaction(async (trx) => {
|
|
976
|
+
let log = '';
|
|
977
|
+
await req.refreshFromStorage(this, trx);
|
|
978
|
+
const currentTransactions = await this.findTransactions({
|
|
979
|
+
partial: { txid: req.txid },
|
|
980
|
+
noRawTx: true,
|
|
981
|
+
trx
|
|
982
|
+
});
|
|
983
|
+
const knownNotificationIds = new Set(req.notify.transactionIds ?? []);
|
|
984
|
+
if (requestUpdate != null) {
|
|
985
|
+
req.status = requestUpdate.status;
|
|
986
|
+
req.attempts = requestUpdate.attempts;
|
|
987
|
+
}
|
|
988
|
+
for (const tx of currentTransactions) {
|
|
989
|
+
if (!knownNotificationIds.has(tx.transactionId)) {
|
|
990
|
+
req.addNotifyTransactionId(tx.transactionId);
|
|
991
|
+
knownNotificationIds.add(tx.transactionId);
|
|
992
|
+
}
|
|
993
|
+
const shouldRepair = requestUpdate != null || tx.status === 'failed';
|
|
994
|
+
if (!shouldRepair)
|
|
995
|
+
continue;
|
|
996
|
+
log += await this.restoreTransactionForProof(tx, bsvtx, preparedTransactionIds, outputVerdicts, indent, trx);
|
|
997
|
+
}
|
|
998
|
+
await req.updateStorageDynamicProperties(this, trx);
|
|
999
|
+
return log;
|
|
1000
|
+
});
|
|
1001
|
+
}
|
|
1002
|
+
async reconcileProvenTxReqTransactions(req, proven) {
|
|
1003
|
+
// A transaction can be internalized concurrently by several users. Their
|
|
1004
|
+
// transaction rows share a txid but race while merging the JSON notify
|
|
1005
|
+
// list, so a last-writer-wins update can omit one local copy. A valid proof
|
|
1006
|
+
// is authoritative for every local transaction with this txid: discover
|
|
1007
|
+
// them from the indexed transaction table and atomically heal both the
|
|
1008
|
+
// durable notify set and any row that missed the original completion.
|
|
1009
|
+
// Keep the clean proof-completion path identical to the normal notification
|
|
1010
|
+
// transaction. Only leave it when failed rows require external UTXO checks,
|
|
1011
|
+
// which must run without an open transaction.
|
|
1012
|
+
let repairAttempts = 0;
|
|
1013
|
+
for (;;) {
|
|
1014
|
+
const needsRepair = await this.transaction(async (trx) => {
|
|
1015
|
+
await req.refreshFromStorage(this, trx);
|
|
1016
|
+
const transactions = await this.findTransactions({ partial: { txid: req.txid }, trx });
|
|
1017
|
+
if (transactions.some(transaction => transaction.status === 'failed'))
|
|
1018
|
+
return true;
|
|
1019
|
+
const knownNotificationIds = new Set(req.notify.transactionIds ?? []);
|
|
1020
|
+
for (const transaction of transactions) {
|
|
1021
|
+
if (!knownNotificationIds.has(transaction.transactionId)) {
|
|
1022
|
+
req.addNotifyTransactionId(transaction.transactionId);
|
|
1023
|
+
knownNotificationIds.add(transaction.transactionId);
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
const transactionIdsNeedingProof = transactions
|
|
1027
|
+
.filter(transaction => transaction.status !== 'completed' || transaction.provenTxId !== proven.provenTxId)
|
|
1028
|
+
.map(transaction => transaction.transactionId);
|
|
1029
|
+
const updatesSucceeded = await (0, storageProviderHelpers_1.notifyTransactionsOfProof)(transactionIdsNeedingProof, proven.provenTxId, note => req.addHistoryNote(note), async (id, update) => {
|
|
1030
|
+
await this.updateTransaction(id, update, trx);
|
|
1031
|
+
});
|
|
1032
|
+
const completedTransactions = await this.findTransactions({ partial: { txid: req.txid }, trx });
|
|
1033
|
+
req.notified =
|
|
1034
|
+
updatesSucceeded &&
|
|
1035
|
+
completedTransactions.every(transaction => transaction.status === 'completed' && transaction.provenTxId === proven.provenTxId);
|
|
1036
|
+
await req.updateStorageDynamicProperties(this, trx);
|
|
1037
|
+
return false;
|
|
1038
|
+
});
|
|
1039
|
+
if (!needsRepair)
|
|
1040
|
+
return;
|
|
1041
|
+
if (repairAttempts >= 2) {
|
|
1042
|
+
throw new WERR_errors_1.WERR_INTERNAL(`Transactions for ${req.txid} repeatedly changed to failed during proof recovery.`);
|
|
1043
|
+
}
|
|
1044
|
+
repairAttempts++;
|
|
1045
|
+
await this.unfailTransactionsForProof(req);
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
572
1048
|
/**
|
|
573
1049
|
* For each spendable output in the 'default' basket of the authenticated user,
|
|
574
1050
|
* verify that the output script, satoshis, vout and txid match that of an output
|
|
@@ -579,56 +1055,56 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
579
1055
|
async confirmSpendableOutputs() {
|
|
580
1056
|
const invalidSpendableOutputs = [];
|
|
581
1057
|
const users = await this.findUsers({ partial: {} });
|
|
1058
|
+
const services = this.getServices();
|
|
582
1059
|
for (const { userId } of users) {
|
|
583
1060
|
const defaultBasket = (0, utilityHelpers_1.verifyOne)(await this.findOutputBaskets({ partial: { userId, name: 'default' } }));
|
|
584
|
-
const
|
|
585
|
-
userId,
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
const oid = (0, utilityHelpers_1.verifyId)(o.outputId);
|
|
594
|
-
if (o.spendable) {
|
|
595
|
-
let ok = false;
|
|
596
|
-
if (o.lockingScript && o.lockingScript.length > 0) {
|
|
597
|
-
const hash = services.hashOutputScript((0, utilityHelpers_noBuffer_1.asString)(o.lockingScript));
|
|
598
|
-
const r = await services.getUtxoStatus(hash, undefined, `${o.txid}.${o.vout}`);
|
|
599
|
-
if (r.isUtxo === true)
|
|
600
|
-
ok = true;
|
|
601
|
-
}
|
|
602
|
-
if (!ok)
|
|
603
|
-
invalidSpendableOutputs.push(o);
|
|
604
|
-
}
|
|
1061
|
+
const outputs = await this.findOutputs({
|
|
1062
|
+
partial: { userId, basketId: defaultBasket.basketId, spendable: true }
|
|
1063
|
+
});
|
|
1064
|
+
for (const o of outputs) {
|
|
1065
|
+
if (!o.spendable)
|
|
1066
|
+
continue;
|
|
1067
|
+
const isUtxo = await this.checkOutputIsUtxo(o, services);
|
|
1068
|
+
if (!isUtxo)
|
|
1069
|
+
invalidSpendableOutputs.push(o);
|
|
605
1070
|
}
|
|
606
1071
|
}
|
|
607
1072
|
return { invalidSpendableOutputs };
|
|
608
1073
|
}
|
|
1074
|
+
async checkOutputIsUtxo(o, services) {
|
|
1075
|
+
if (o.lockingScript == null || o.lockingScript.length === 0)
|
|
1076
|
+
return false;
|
|
1077
|
+
const hash = services.hashOutputScript((0, utilityHelpers_noBuffer_1.asString)(o.lockingScript));
|
|
1078
|
+
const r = await services.getUtxoStatus(hash, undefined, `${o.txid ?? ''}.${o.vout ?? ''}`);
|
|
1079
|
+
return r.isUtxo === true;
|
|
1080
|
+
}
|
|
609
1081
|
async updateProvenTxReqDynamics(id, update, trx) {
|
|
610
1082
|
const partial = {};
|
|
611
|
-
if (update
|
|
612
|
-
partial
|
|
613
|
-
if (update
|
|
614
|
-
partial
|
|
615
|
-
if (update
|
|
616
|
-
partial
|
|
617
|
-
if (Number.isInteger(update
|
|
618
|
-
partial
|
|
619
|
-
if (update
|
|
620
|
-
partial
|
|
621
|
-
if (update
|
|
622
|
-
partial
|
|
623
|
-
if (update
|
|
624
|
-
partial
|
|
625
|
-
if (update
|
|
626
|
-
partial
|
|
1083
|
+
if (update.updated_at != null)
|
|
1084
|
+
partial.updated_at = update.updated_at;
|
|
1085
|
+
if (update.provenTxId != null && update.provenTxId > 0)
|
|
1086
|
+
partial.provenTxId = update.provenTxId;
|
|
1087
|
+
if (update.status != null)
|
|
1088
|
+
partial.status = update.status;
|
|
1089
|
+
if (Number.isInteger(update.attempts))
|
|
1090
|
+
partial.attempts = update.attempts;
|
|
1091
|
+
if (update.notified !== undefined)
|
|
1092
|
+
partial.notified = update.notified;
|
|
1093
|
+
if (update.batch != null && update.batch !== '')
|
|
1094
|
+
partial.batch = update.batch;
|
|
1095
|
+
if (update.history != null && update.history !== '')
|
|
1096
|
+
partial.history = update.history;
|
|
1097
|
+
if (update.notify != null && update.notify !== '')
|
|
1098
|
+
partial.notify = update.notify;
|
|
1099
|
+
if (update.wasBroadcast !== undefined)
|
|
1100
|
+
partial.wasBroadcast = update.wasBroadcast ?? false;
|
|
1101
|
+
if (Number.isInteger(update.rebroadcastAttempts))
|
|
1102
|
+
partial.rebroadcastAttempts = update.rebroadcastAttempts ?? 0;
|
|
627
1103
|
return await this.updateProvenTxReq(id, partial, trx);
|
|
628
1104
|
}
|
|
629
1105
|
async extendOutput(o, includeBasket = false, includeTags = false, trx) {
|
|
630
1106
|
const ox = o;
|
|
631
|
-
if (includeBasket && ox.basketId)
|
|
1107
|
+
if (includeBasket && ox.basketId != null && ox.basketId > 0)
|
|
632
1108
|
ox.basket = await this.findOutputBasketById(o.basketId, trx);
|
|
633
1109
|
if (includeTags) {
|
|
634
1110
|
ox.tags = await this.getTagsForOutputId(o.outputId);
|
|
@@ -637,14 +1113,19 @@ class StorageProvider extends StorageReaderWriter_1.StorageReaderWriter {
|
|
|
637
1113
|
}
|
|
638
1114
|
async validateOutputScript(o, trx) {
|
|
639
1115
|
// without offset and length values return what we have (make no changes)
|
|
640
|
-
if (
|
|
1116
|
+
if (o.scriptLength == null ||
|
|
1117
|
+
o.scriptLength === 0 ||
|
|
1118
|
+
o.scriptOffset == null ||
|
|
1119
|
+
o.scriptOffset === 0 ||
|
|
1120
|
+
o.txid == null ||
|
|
1121
|
+
o.txid === '')
|
|
641
1122
|
return;
|
|
642
1123
|
// if there is an outputScript and its length is the expected length return what we have.
|
|
643
|
-
if (o.lockingScript
|
|
1124
|
+
if (o.lockingScript?.length === o.scriptLength)
|
|
644
1125
|
return;
|
|
645
1126
|
// outputScript is missing or has incorrect length...
|
|
646
1127
|
const script = await this.getRawTxOfKnownValidTransaction(o.txid, o.scriptOffset, o.scriptLength, trx);
|
|
647
|
-
if (
|
|
1128
|
+
if (script == null)
|
|
648
1129
|
return;
|
|
649
1130
|
o.lockingScript = script;
|
|
650
1131
|
}
|
|
@@ -653,11 +1134,11 @@ exports.StorageProvider = StorageProvider;
|
|
|
653
1134
|
function validateStorageFeeModel(v) {
|
|
654
1135
|
const r = {
|
|
655
1136
|
model: 'sat/kb',
|
|
656
|
-
value:
|
|
1137
|
+
value: 100
|
|
657
1138
|
};
|
|
658
1139
|
if (typeof v === 'object') {
|
|
659
1140
|
if (v.model !== 'sat/kb')
|
|
660
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('StorageFeeModel.model',
|
|
1141
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('StorageFeeModel.model', '"sat/kb"');
|
|
661
1142
|
if (typeof v.value === 'number') {
|
|
662
1143
|
r.value = v.value;
|
|
663
1144
|
}
|