@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
|
@@ -10,16 +10,67 @@ const listOutputsKnex_1 = require("./methods/listOutputsKnex");
|
|
|
10
10
|
const reviewStatus_1 = require("./methods/reviewStatus");
|
|
11
11
|
const WERR_errors_1 = require("../sdk/WERR_errors");
|
|
12
12
|
const utilityHelpers_1 = require("../utility/utilityHelpers");
|
|
13
|
+
const managedChange_1 = require("./methods/managedChange");
|
|
14
|
+
// Keep bulk statements below conservative SQLite/MySQL bind-parameter
|
|
15
|
+
// ceilings. The surrounding transaction still makes a complete pack atomic.
|
|
16
|
+
const ACTION_BATCH_BLOB_SQL_CHUNK = 500;
|
|
17
|
+
const OUTPUT_INSERT_SQL_CHUNK = 500;
|
|
13
18
|
class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
19
|
+
knex;
|
|
20
|
+
querySpans = new Map();
|
|
21
|
+
onQuery = (query) => {
|
|
22
|
+
if (!this.telemetry.enabled || query.__knexQueryUid == null)
|
|
23
|
+
return;
|
|
24
|
+
const span = this.telemetry.startSpan('wallet.storage.db.query', {
|
|
25
|
+
component: 'wallet-storage-knex',
|
|
26
|
+
kind: 'client',
|
|
27
|
+
attributes: {
|
|
28
|
+
'db.system': this.databaseSystem(),
|
|
29
|
+
'db.operation': query.method ?? 'unknown'
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
this.querySpans.set(query.__knexQueryUid, span);
|
|
33
|
+
};
|
|
34
|
+
onQueryResponse = (_response, query) => {
|
|
35
|
+
this.endQuerySpan(query);
|
|
36
|
+
};
|
|
37
|
+
onQueryError = (error, query) => {
|
|
38
|
+
this.endQuerySpan(query, error);
|
|
39
|
+
};
|
|
14
40
|
constructor(options) {
|
|
15
41
|
super(options);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('options.knex', `valid`);
|
|
42
|
+
if (options.knex == null)
|
|
43
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('options.knex', 'valid');
|
|
19
44
|
this.knex = options.knex;
|
|
45
|
+
if (this.telemetry.enabled) {
|
|
46
|
+
this.knex.on('query', this.onQuery);
|
|
47
|
+
this.knex.on('query-response', this.onQueryResponse);
|
|
48
|
+
this.knex.on('query-error', this.onQueryError);
|
|
49
|
+
}
|
|
20
50
|
}
|
|
51
|
+
databaseSystem() {
|
|
52
|
+
const clientName = this.knex.client.config?.client ?? '';
|
|
53
|
+
if (clientName.includes('sqlite'))
|
|
54
|
+
return 'sqlite';
|
|
55
|
+
if (clientName.includes('mysql'))
|
|
56
|
+
return 'mysql';
|
|
57
|
+
if (clientName.includes('pg') || clientName.includes('postgres'))
|
|
58
|
+
return 'postgresql';
|
|
59
|
+
return 'unknown';
|
|
60
|
+
}
|
|
61
|
+
endQuerySpan(query, error) {
|
|
62
|
+
if (query.__knexQueryUid == null)
|
|
63
|
+
return;
|
|
64
|
+
const span = this.querySpans.get(query.__knexQueryUid);
|
|
65
|
+
if (span == null)
|
|
66
|
+
return;
|
|
67
|
+
this.querySpans.delete(query.__knexQueryUid);
|
|
68
|
+
span.end(error == null ? {} : { status: 'error', error });
|
|
69
|
+
}
|
|
70
|
+
supportsActionBatchPersistence() { return true; }
|
|
71
|
+
requiresActionBatchCleanupBeforeCreateAction() { return false; }
|
|
21
72
|
async readSettings() {
|
|
22
|
-
return this.validateEntity((0, utilityHelpers_1.verifyOne)(await this.toDb(
|
|
73
|
+
return this.validateEntity((0, utilityHelpers_1.verifyOne)(await this.toDb()('settings')));
|
|
23
74
|
}
|
|
24
75
|
async getProvenOrRawTx(txid, trx) {
|
|
25
76
|
const k = this.toDb(trx);
|
|
@@ -28,70 +79,95 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
28
79
|
rawTx: undefined,
|
|
29
80
|
inputBEEF: undefined
|
|
30
81
|
};
|
|
31
|
-
r.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid
|
|
32
|
-
if (
|
|
82
|
+
r.proven = (0, utilityHelpers_1.verifyOneOrNone)(await this.findProvenTxs({ partial: { txid }, trx }));
|
|
83
|
+
if (r.proven == null) {
|
|
33
84
|
const reqRawTx = (0, utilityHelpers_1.verifyOneOrNone)(await k('proven_tx_reqs')
|
|
34
85
|
.where('txid', txid)
|
|
35
86
|
.whereIn('status', ['unsent', 'unmined', 'unconfirmed', 'sending', 'nosend', 'completed'])
|
|
36
87
|
.select('rawTx', 'inputBEEF'));
|
|
37
|
-
if (reqRawTx) {
|
|
88
|
+
if (reqRawTx != null) {
|
|
38
89
|
r.rawTx = Array.from(reqRawTx.rawTx);
|
|
39
90
|
r.inputBEEF = Array.from(reqRawTx.inputBEEF);
|
|
40
91
|
}
|
|
41
92
|
}
|
|
42
93
|
return r;
|
|
43
94
|
}
|
|
95
|
+
async getProvenOrRawTxs(txids, trx) {
|
|
96
|
+
const unique = [...new Set(txids)];
|
|
97
|
+
const results = new Map();
|
|
98
|
+
if (unique.length === 0)
|
|
99
|
+
return results;
|
|
100
|
+
const proven = await this.findProvenTxs({ partial: {}, txids: unique, trx });
|
|
101
|
+
const provenTxids = new Set(proven.map(transaction => transaction.txid));
|
|
102
|
+
for (const transaction of proven) {
|
|
103
|
+
results.set(transaction.txid, { proven: transaction, rawTx: undefined, inputBEEF: undefined });
|
|
104
|
+
}
|
|
105
|
+
const unresolved = unique.filter(txid => !provenTxids.has(txid));
|
|
106
|
+
if (unresolved.length > 0) {
|
|
107
|
+
const requests = await this.findProvenTxReqs({
|
|
108
|
+
partial: {},
|
|
109
|
+
txids: unresolved,
|
|
110
|
+
status: ['unsent', 'unmined', 'unconfirmed', 'sending', 'nosend', 'completed'],
|
|
111
|
+
trx
|
|
112
|
+
});
|
|
113
|
+
for (const request of requests) {
|
|
114
|
+
results.set(request.txid, {
|
|
115
|
+
proven: undefined,
|
|
116
|
+
rawTx: Array.from(request.rawTx),
|
|
117
|
+
inputBEEF: request.inputBEEF == null ? undefined : Array.from(request.inputBEEF)
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
for (const txid of unique) {
|
|
122
|
+
if (!results.has(txid))
|
|
123
|
+
results.set(txid, { proven: undefined, rawTx: undefined, inputBEEF: undefined });
|
|
124
|
+
}
|
|
125
|
+
return results;
|
|
126
|
+
}
|
|
44
127
|
dbTypeSubstring(source, fromOffset, forLength) {
|
|
45
128
|
if (this.dbtype === 'MySQL')
|
|
46
|
-
return `substring(${source} from ${fromOffset} for ${forLength})`;
|
|
47
|
-
return `substr(${source}, ${fromOffset}, ${forLength})`;
|
|
129
|
+
return `substring(${source} from ${fromOffset} for ${String(forLength)})`;
|
|
130
|
+
return `substr(${source}, ${fromOffset}, ${String(forLength)})`;
|
|
131
|
+
}
|
|
132
|
+
normaliseKnexRawResult(rs) {
|
|
133
|
+
if (this.dbtype === 'MySQL')
|
|
134
|
+
return rs[0];
|
|
135
|
+
return rs;
|
|
136
|
+
}
|
|
137
|
+
async getRawTxSlice(txid, offset, length, trx) {
|
|
138
|
+
const sub = this.dbTypeSubstring('rawTx', offset + 1, length);
|
|
139
|
+
let rs = await this.toDb(trx).raw(`select ${sub} as rawTx from proven_txs where txid = '${txid}'`);
|
|
140
|
+
const proven = (0, utilityHelpers_1.verifyOneOrNone)(this.normaliseKnexRawResult(rs));
|
|
141
|
+
if (proven?.rawTx != null)
|
|
142
|
+
return Array.from(proven.rawTx);
|
|
143
|
+
rs = await this.toDb(trx).raw(`select ${sub} as rawTx from proven_tx_reqs where txid = '${txid}' and status in ('unsent', 'nosend', 'sending', 'unmined', 'completed', 'unfail')`);
|
|
144
|
+
const req = (0, utilityHelpers_1.verifyOneOrNone)(this.normaliseKnexRawResult(rs));
|
|
145
|
+
return req?.rawTx != null ? Array.from(req.rawTx) : undefined;
|
|
48
146
|
}
|
|
49
147
|
async getRawTxOfKnownValidTransaction(txid, offset, length, trx) {
|
|
50
|
-
if (
|
|
148
|
+
if (txid == null || txid === '')
|
|
51
149
|
return undefined;
|
|
52
150
|
if (!this.isAvailable())
|
|
53
151
|
await this.makeAvailable();
|
|
54
|
-
let rawTx = undefined;
|
|
55
152
|
if (Number.isInteger(offset) && Number.isInteger(length)) {
|
|
56
|
-
|
|
57
|
-
if (this.dbtype === 'MySQL')
|
|
58
|
-
rs = rs[0];
|
|
59
|
-
const r = (0, utilityHelpers_1.verifyOneOrNone)(rs);
|
|
60
|
-
if (r && r.rawTx) {
|
|
61
|
-
rawTx = Array.from(r.rawTx);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
let rs = await this.toDb(trx).raw(`select ${this.dbTypeSubstring('rawTx', offset + 1, length)} as rawTx from proven_tx_reqs where txid = '${txid}' and status in ('unsent', 'nosend', 'sending', 'unmined', 'completed', 'unfail')`);
|
|
65
|
-
if (this.dbtype === 'MySQL')
|
|
66
|
-
rs = rs[0];
|
|
67
|
-
const r = (0, utilityHelpers_1.verifyOneOrNone)(rs);
|
|
68
|
-
if (r && r.rawTx) {
|
|
69
|
-
rawTx = Array.from(r.rawTx);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
const r = await this.getProvenOrRawTx(txid, trx);
|
|
75
|
-
if (r.proven)
|
|
76
|
-
rawTx = r.proven.rawTx;
|
|
77
|
-
else
|
|
78
|
-
rawTx = r.rawTx;
|
|
153
|
+
return await this.getRawTxSlice(txid, offset, length, trx);
|
|
79
154
|
}
|
|
80
|
-
|
|
155
|
+
const r = await this.getProvenOrRawTx(txid, trx);
|
|
156
|
+
return r.proven != null ? r.proven.rawTx : r.rawTx;
|
|
81
157
|
}
|
|
82
158
|
getProvenTxsForUserQuery(args) {
|
|
83
159
|
const k = this.toDb(args.trx);
|
|
84
160
|
let q = k('proven_txs').where(function () {
|
|
85
|
-
this.whereExists(k
|
|
161
|
+
void this.whereExists(k
|
|
86
162
|
.select('*')
|
|
87
163
|
.from('transactions')
|
|
88
164
|
.whereRaw(`proven_txs.provenTxId = transactions.provenTxId and transactions.userId = ${args.userId}`));
|
|
89
165
|
});
|
|
90
|
-
if (args.paged) {
|
|
166
|
+
if (args.paged != null) {
|
|
91
167
|
q = q.limit(args.paged.limit);
|
|
92
|
-
q = q.offset(args.paged.offset
|
|
168
|
+
q = q.offset(args.paged.offset ?? 0);
|
|
93
169
|
}
|
|
94
|
-
if (args.since)
|
|
170
|
+
if (args.since != null)
|
|
95
171
|
q = q.where('updated_at', '>=', this.validateDateForWhere(args.since));
|
|
96
172
|
return q;
|
|
97
173
|
}
|
|
@@ -103,16 +179,16 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
103
179
|
getProvenTxReqsForUserQuery(args) {
|
|
104
180
|
const k = this.toDb(args.trx);
|
|
105
181
|
let q = k('proven_tx_reqs').where(function () {
|
|
106
|
-
this.whereExists(k
|
|
182
|
+
void this.whereExists(k
|
|
107
183
|
.select('*')
|
|
108
184
|
.from('transactions')
|
|
109
185
|
.whereRaw(`proven_tx_reqs.txid = transactions.txid and transactions.userId = ${args.userId}`));
|
|
110
186
|
});
|
|
111
|
-
if (args.paged) {
|
|
187
|
+
if (args.paged != null) {
|
|
112
188
|
q = q.limit(args.paged.limit);
|
|
113
|
-
q = q.offset(args.paged.offset
|
|
189
|
+
q = q.offset(args.paged.offset ?? 0);
|
|
114
190
|
}
|
|
115
|
-
if (args.since)
|
|
191
|
+
if (args.since != null)
|
|
116
192
|
q = q.where('updated_at', '>=', this.validateDateForWhere(args.since));
|
|
117
193
|
return q;
|
|
118
194
|
}
|
|
@@ -127,11 +203,11 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
127
203
|
.select('*')
|
|
128
204
|
.from('tx_labels')
|
|
129
205
|
.whereRaw(`tx_labels.txLabelId = tx_labels_map.txLabelId and tx_labels.userId = ${args.userId}`));
|
|
130
|
-
if (args.since)
|
|
206
|
+
if (args.since != null)
|
|
131
207
|
q = q.where('updated_at', '>=', this.validateDateForWhere(args.since));
|
|
132
|
-
if (args.paged) {
|
|
208
|
+
if (args.paged != null) {
|
|
133
209
|
q = q.limit(args.paged.limit);
|
|
134
|
-
q = q.offset(args.paged.offset
|
|
210
|
+
q = q.offset(args.paged.offset ?? 0);
|
|
135
211
|
}
|
|
136
212
|
return q;
|
|
137
213
|
}
|
|
@@ -146,11 +222,11 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
146
222
|
.select('*')
|
|
147
223
|
.from('output_tags')
|
|
148
224
|
.whereRaw(`output_tags.outputTagId = output_tags_map.outputTagId and output_tags.userId = ${args.userId}`));
|
|
149
|
-
if (args.since)
|
|
225
|
+
if (args.since != null)
|
|
150
226
|
q = q.where('updated_at', '>=', this.validateDateForWhere(args.since));
|
|
151
|
-
if (args.paged) {
|
|
227
|
+
if (args.paged != null) {
|
|
152
228
|
q = q.limit(args.paged.limit);
|
|
153
|
-
q = q.offset(args.paged.offset
|
|
229
|
+
q = q.offset(args.paged.offset ?? 0);
|
|
154
230
|
}
|
|
155
231
|
return q;
|
|
156
232
|
}
|
|
@@ -160,12 +236,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
160
236
|
return this.validateEntities(rs, undefined, ['isDeleted']);
|
|
161
237
|
}
|
|
162
238
|
async listActions(auth, vargs) {
|
|
163
|
-
if (
|
|
239
|
+
if (auth.userId == null)
|
|
164
240
|
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
165
241
|
return await (0, listActionsKnex_1.listActions)(this, auth, vargs);
|
|
166
242
|
}
|
|
167
243
|
async listOutputs(auth, vargs) {
|
|
168
|
-
if (
|
|
244
|
+
if (auth.userId == null)
|
|
169
245
|
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
170
246
|
return await (0, listOutputsKnex_1.listOutputs)(this, auth, vargs);
|
|
171
247
|
}
|
|
@@ -177,6 +253,129 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
177
253
|
tx.provenTxId = id;
|
|
178
254
|
return tx.provenTxId;
|
|
179
255
|
}
|
|
256
|
+
async insertActionBatch(batch, trx) {
|
|
257
|
+
const e = await this.validateEntityForInsert(batch, trx, ['expiresAt', 'hardExpiresAt']);
|
|
258
|
+
if (e.actionBatchId === 0)
|
|
259
|
+
delete e.actionBatchId;
|
|
260
|
+
const [id] = await this.toDb(trx)('action_batches').insert(e);
|
|
261
|
+
batch.actionBatchId = id;
|
|
262
|
+
return id;
|
|
263
|
+
}
|
|
264
|
+
async findActionBatch(userId, batchId, trx) {
|
|
265
|
+
const row = await this.toDb(trx)('action_batches').where({ userId, batchId }).first();
|
|
266
|
+
return row == null ? undefined : this.validateEntity(row, ['expiresAt', 'hardExpiresAt']);
|
|
267
|
+
}
|
|
268
|
+
async findActionBatchForUpdate(userId, batchId, trx) {
|
|
269
|
+
const row = await this.toDb(trx)('action_batches')
|
|
270
|
+
.where({ userId, batchId })
|
|
271
|
+
.forUpdate()
|
|
272
|
+
.first();
|
|
273
|
+
return row == null ? undefined : this.validateEntity(row, ['expiresAt', 'hardExpiresAt']);
|
|
274
|
+
}
|
|
275
|
+
async findExpiredActionBatches(now, trx) {
|
|
276
|
+
const rows = await this.toDb(trx)('action_batches')
|
|
277
|
+
.whereIn('status', ['active', 'prepared'])
|
|
278
|
+
.andWhere(builder => {
|
|
279
|
+
void builder
|
|
280
|
+
.where('expiresAt', '<=', this.validateDateForWhere(now))
|
|
281
|
+
.orWhere('hardExpiresAt', '<=', this.validateDateForWhere(now));
|
|
282
|
+
});
|
|
283
|
+
return this.validateEntities(rows, ['expiresAt', 'hardExpiresAt']);
|
|
284
|
+
}
|
|
285
|
+
async updateActionBatch(actionBatchId, update, trx) {
|
|
286
|
+
return await this.toDb(trx)('action_batches')
|
|
287
|
+
.where({ actionBatchId })
|
|
288
|
+
.update(this.validatePartialForUpdate(update, ['expiresAt', 'hardExpiresAt']));
|
|
289
|
+
}
|
|
290
|
+
async deleteActionBatch(actionBatchId, trx) {
|
|
291
|
+
await this.toDb(trx)('action_batches').where({ actionBatchId }).delete();
|
|
292
|
+
}
|
|
293
|
+
async reserveActionBatchOutputs(reservations, trx) {
|
|
294
|
+
if (reservations.length === 0)
|
|
295
|
+
return;
|
|
296
|
+
const rows = await Promise.all(reservations.map(async (r) => await this.validateEntityForInsert(r, trx)));
|
|
297
|
+
await this.toDb(trx)('action_batch_outputs').insert(rows);
|
|
298
|
+
}
|
|
299
|
+
async findActionBatchOutputIds(actionBatchId, trx) {
|
|
300
|
+
const rows = await this.toDb(trx)('action_batch_outputs')
|
|
301
|
+
.where({ actionBatchId })
|
|
302
|
+
.select('outputId');
|
|
303
|
+
return rows.map(r => r.outputId);
|
|
304
|
+
}
|
|
305
|
+
async findReservedActionBatchOutputIds(outputIds, trx) {
|
|
306
|
+
if (outputIds.length === 0)
|
|
307
|
+
return [];
|
|
308
|
+
const now = new Date();
|
|
309
|
+
const rows = await this.toDb(trx)('action_batch_outputs')
|
|
310
|
+
.join('action_batches', 'action_batch_outputs.actionBatchId', 'action_batches.actionBatchId')
|
|
311
|
+
.whereIn('outputId', outputIds)
|
|
312
|
+
.whereIn('action_batches.status', ['active', 'prepared'])
|
|
313
|
+
.where('action_batches.expiresAt', '>', now)
|
|
314
|
+
.where('action_batches.hardExpiresAt', '>', now)
|
|
315
|
+
.select('action_batch_outputs.outputId');
|
|
316
|
+
return rows.map(r => r.outputId);
|
|
317
|
+
}
|
|
318
|
+
async deleteActionBatchOutputReservations(actionBatchId, trx) {
|
|
319
|
+
await this.toDb(trx)('action_batch_outputs').where({ actionBatchId }).delete();
|
|
320
|
+
}
|
|
321
|
+
async putActionBatchBlobRecord(blob, trx) {
|
|
322
|
+
const e = await this.validateEntityForInsert(blob, trx);
|
|
323
|
+
if (e.actionBatchBlobId === 0)
|
|
324
|
+
delete e.actionBatchBlobId;
|
|
325
|
+
await this.toDb(trx)('action_batch_blobs')
|
|
326
|
+
.insert(e)
|
|
327
|
+
.onConflict(['actionBatchId', 'digest'])
|
|
328
|
+
.ignore();
|
|
329
|
+
}
|
|
330
|
+
async findActionBatchBlobRecord(actionBatchId, digest, trx) {
|
|
331
|
+
const row = await this.toDb(trx)('action_batch_blobs')
|
|
332
|
+
.where({ actionBatchId, digest })
|
|
333
|
+
.first();
|
|
334
|
+
if (row == null)
|
|
335
|
+
return undefined;
|
|
336
|
+
if (Buffer.isBuffer(row.bytes)) {
|
|
337
|
+
row.bytes = new Uint8Array(row.bytes.buffer, row.bytes.byteOffset, row.bytes.byteLength);
|
|
338
|
+
}
|
|
339
|
+
this.deserialiseFromKnex(row);
|
|
340
|
+
return this.validateEntity(row);
|
|
341
|
+
}
|
|
342
|
+
async findActionBatchBlobRecords(actionBatchId, digests, trx) {
|
|
343
|
+
if (digests.length === 0)
|
|
344
|
+
return [];
|
|
345
|
+
const rows = [];
|
|
346
|
+
const uniqueDigests = [...new Set(digests)];
|
|
347
|
+
for (let offset = 0; offset < uniqueDigests.length; offset += ACTION_BATCH_BLOB_SQL_CHUNK) {
|
|
348
|
+
rows.push(...await this.toDb(trx)('action_batch_blobs')
|
|
349
|
+
.where({ actionBatchId })
|
|
350
|
+
.whereIn('digest', uniqueDigests.slice(offset, offset + ACTION_BATCH_BLOB_SQL_CHUNK)));
|
|
351
|
+
}
|
|
352
|
+
for (const row of rows) {
|
|
353
|
+
if (Buffer.isBuffer(row.bytes)) {
|
|
354
|
+
row.bytes = new Uint8Array(row.bytes.buffer, row.bytes.byteOffset, row.bytes.byteLength);
|
|
355
|
+
}
|
|
356
|
+
this.deserialiseFromKnex(row);
|
|
357
|
+
}
|
|
358
|
+
return this.validateEntities(rows);
|
|
359
|
+
}
|
|
360
|
+
async putActionBatchBlobRecords(blobs, trx) {
|
|
361
|
+
if (blobs.length === 0)
|
|
362
|
+
return;
|
|
363
|
+
const rows = await Promise.all(blobs.map(async (blob) => {
|
|
364
|
+
const row = await this.validateEntityForInsert(blob, trx);
|
|
365
|
+
if (row.actionBatchBlobId === 0)
|
|
366
|
+
delete row.actionBatchBlobId;
|
|
367
|
+
return row;
|
|
368
|
+
}));
|
|
369
|
+
for (let offset = 0; offset < rows.length; offset += ACTION_BATCH_BLOB_SQL_CHUNK) {
|
|
370
|
+
await this.toDb(trx)('action_batch_blobs')
|
|
371
|
+
.insert(rows.slice(offset, offset + ACTION_BATCH_BLOB_SQL_CHUNK))
|
|
372
|
+
.onConflict(['actionBatchId', 'digest'])
|
|
373
|
+
.ignore();
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
async deleteActionBatchBlobRecords(actionBatchId, trx) {
|
|
377
|
+
await this.toDb(trx)('action_batch_blobs').where({ actionBatchId }).delete();
|
|
378
|
+
}
|
|
180
379
|
async insertProvenTxReq(tx, trx) {
|
|
181
380
|
const e = await this.validateEntityForInsert(tx, trx);
|
|
182
381
|
if (e.provenTxReqId === 0)
|
|
@@ -194,7 +393,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
194
393
|
return user.userId;
|
|
195
394
|
}
|
|
196
395
|
async insertCertificateAuth(auth, certificate) {
|
|
197
|
-
if (
|
|
396
|
+
if (auth.userId == null || (certificate.userId != null && certificate.userId !== 0 && certificate.userId !== auth.userId))
|
|
198
397
|
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
199
398
|
certificate.userId = auth.userId;
|
|
200
399
|
return await this.insertCertificate(certificate);
|
|
@@ -203,15 +402,14 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
203
402
|
const e = await this.validateEntityForInsert(certificate, trx, undefined, ['isDeleted']);
|
|
204
403
|
if (e.certificateId === 0)
|
|
205
404
|
delete e.certificateId;
|
|
206
|
-
|
|
207
|
-
if (e.logger)
|
|
405
|
+
if (e.logger != null)
|
|
208
406
|
delete e.logger;
|
|
209
407
|
const fields = e.fields;
|
|
210
|
-
if (e.fields)
|
|
408
|
+
if (e.fields != null)
|
|
211
409
|
delete e.fields;
|
|
212
410
|
const [id] = await this.toDb(trx)('certificates').insert(e);
|
|
213
411
|
certificate.certificateId = id;
|
|
214
|
-
if (fields) {
|
|
412
|
+
if (fields != null) {
|
|
215
413
|
for (const field of fields) {
|
|
216
414
|
field.certificateId = id;
|
|
217
415
|
field.userId = certificate.userId;
|
|
@@ -249,16 +447,24 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
249
447
|
return commission.commissionId;
|
|
250
448
|
}
|
|
251
449
|
async insertOutput(output, trx) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
450
|
+
const e = await this.validateEntityForInsert(output, trx);
|
|
451
|
+
if (e.outputId === 0)
|
|
452
|
+
delete e.outputId;
|
|
453
|
+
const [id] = await this.toDb(trx)('outputs').insert(e);
|
|
454
|
+
output.outputId = id;
|
|
455
|
+
return output.outputId;
|
|
456
|
+
}
|
|
457
|
+
async insertOutputs(outputs, trx) {
|
|
458
|
+
if (outputs.length === 0)
|
|
459
|
+
return;
|
|
460
|
+
const rows = await Promise.all(outputs.map(async (output) => {
|
|
461
|
+
const row = await this.validateEntityForInsert(output, trx);
|
|
462
|
+
if (row.outputId === 0)
|
|
463
|
+
delete row.outputId;
|
|
464
|
+
return row;
|
|
465
|
+
}));
|
|
466
|
+
for (let offset = 0; offset < rows.length; offset += OUTPUT_INSERT_SQL_CHUNK) {
|
|
467
|
+
await this.toDb(trx)('outputs').insert(rows.slice(offset, offset + OUTPUT_INSERT_SQL_CHUNK));
|
|
262
468
|
}
|
|
263
469
|
}
|
|
264
470
|
async insertOutputTag(tag, trx) {
|
|
@@ -271,7 +477,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
271
477
|
}
|
|
272
478
|
async insertOutputTagMap(tagMap, trx) {
|
|
273
479
|
const e = await this.validateEntityForInsert(tagMap, trx, undefined, ['isDeleted']);
|
|
274
|
-
|
|
480
|
+
await this.toDb(trx)('output_tags_map').insert(e);
|
|
275
481
|
}
|
|
276
482
|
async insertTxLabel(label, trx) {
|
|
277
483
|
const e = await this.validateEntityForInsert(label, trx, undefined, ['isDeleted']);
|
|
@@ -283,7 +489,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
283
489
|
}
|
|
284
490
|
async insertTxLabelMap(labelMap, trx) {
|
|
285
491
|
const e = await this.validateEntityForInsert(labelMap, trx, undefined, ['isDeleted']);
|
|
286
|
-
|
|
492
|
+
await this.toDb(trx)('tx_labels_map').insert(e);
|
|
287
493
|
}
|
|
288
494
|
async insertMonitorEvent(event, trx) {
|
|
289
495
|
const e = await this.validateEntityForInsert(event, trx);
|
|
@@ -379,12 +585,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
379
585
|
if (Array.isArray(id)) {
|
|
380
586
|
r = await this.toDb(trx)('transactions')
|
|
381
587
|
.whereIn('transactionId', id)
|
|
382
|
-
.update(
|
|
588
|
+
.update(this.validatePartialForUpdate(update));
|
|
383
589
|
}
|
|
384
590
|
else if (Number.isInteger(id)) {
|
|
385
591
|
r = await this.toDb(trx)('transactions')
|
|
386
592
|
.where({ transactionId: id })
|
|
387
|
-
.update(
|
|
593
|
+
.update(this.validatePartialForUpdate(update));
|
|
388
594
|
}
|
|
389
595
|
else {
|
|
390
596
|
throw new WERR_errors_1.WERR_INVALID_PARAMETER('id', 'transactionId or array of transactionId');
|
|
@@ -414,12 +620,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
414
620
|
.update(this.validatePartialForUpdate(update));
|
|
415
621
|
}
|
|
416
622
|
setupQuery(table, args) {
|
|
417
|
-
|
|
418
|
-
if (args.partial && Object.keys(args.partial).length > 0)
|
|
419
|
-
q.where(args.partial);
|
|
420
|
-
if (args.since)
|
|
421
|
-
q.where('updated_at', '>=', this.validateDateForWhere(args.since));
|
|
422
|
-
if (args.orderDescending) {
|
|
623
|
+
const q = this.toDb(args.trx)(table);
|
|
624
|
+
if (args.partial != null && Object.keys(args.partial).length > 0)
|
|
625
|
+
void q.where(args.partial);
|
|
626
|
+
if (args.since != null)
|
|
627
|
+
void q.where('updated_at', '>=', this.validateDateForWhere(args.since));
|
|
628
|
+
if (args.orderDescending === true) {
|
|
423
629
|
let sortColumn = '';
|
|
424
630
|
switch (table) {
|
|
425
631
|
case 'certificates':
|
|
@@ -462,12 +668,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
462
668
|
break;
|
|
463
669
|
}
|
|
464
670
|
if (sortColumn !== '') {
|
|
465
|
-
q.orderBy(sortColumn, 'desc');
|
|
671
|
+
void q.orderBy(sortColumn, 'desc');
|
|
466
672
|
}
|
|
467
673
|
}
|
|
468
|
-
if (args.paged) {
|
|
469
|
-
q.limit(args.paged.limit);
|
|
470
|
-
q.offset(args.paged.offset
|
|
674
|
+
if (args.paged != null) {
|
|
675
|
+
void q.limit(args.paged.limit);
|
|
676
|
+
void q.offset(args.paged.offset ?? 0);
|
|
471
677
|
}
|
|
472
678
|
return q;
|
|
473
679
|
}
|
|
@@ -476,97 +682,111 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
476
682
|
}
|
|
477
683
|
findCertificatesQuery(args) {
|
|
478
684
|
const q = this.setupQuery('certificates', args);
|
|
479
|
-
if (args.certifiers && args.certifiers.length > 0)
|
|
480
|
-
q.whereIn('certifier', args.certifiers);
|
|
481
|
-
if (args.types && args.types.length > 0)
|
|
482
|
-
q.whereIn('type', args.types);
|
|
685
|
+
if ((args.certifiers != null) && args.certifiers.length > 0)
|
|
686
|
+
void q.whereIn('certifier', args.certifiers);
|
|
687
|
+
if ((args.types != null) && args.types.length > 0)
|
|
688
|
+
void q.whereIn('type', args.types);
|
|
483
689
|
return q;
|
|
484
690
|
}
|
|
485
691
|
findCommissionsQuery(args) {
|
|
486
|
-
if (args.partial.lockingScript)
|
|
487
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('partial.lockingScript',
|
|
692
|
+
if (args.partial.lockingScript != null) {
|
|
693
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('partial.lockingScript', 'undefined. Commissions may not be found by lockingScript value.');
|
|
694
|
+
}
|
|
488
695
|
return this.setupQuery('commissions', args);
|
|
489
696
|
}
|
|
490
697
|
findOutputBasketsQuery(args) {
|
|
491
698
|
return this.setupQuery('output_baskets', args);
|
|
492
699
|
}
|
|
493
700
|
findOutputsQuery(args, count) {
|
|
494
|
-
if (args.partial.lockingScript)
|
|
495
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.lockingScript',
|
|
701
|
+
if (args.partial.lockingScript != null) {
|
|
702
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.lockingScript', 'undefined. Outputs may not be found by lockingScript value.');
|
|
703
|
+
}
|
|
496
704
|
const q = this.setupQuery('outputs', args);
|
|
497
|
-
if (args.txStatus && args.txStatus.length > 0) {
|
|
498
|
-
q.whereRaw(`(select status from transactions where transactions.transactionId = outputs.transactionId) in (${args.txStatus.map(s =>
|
|
705
|
+
if ((args.txStatus != null) && args.txStatus.length > 0) {
|
|
706
|
+
void q.whereRaw(`(select status from transactions where transactions.transactionId = outputs.transactionId) in (${args.txStatus.map(s => "'" + s + "'").join(',')})`);
|
|
499
707
|
}
|
|
500
|
-
if (args.noScript &&
|
|
708
|
+
if ((args.noScript === true) && count !== true) {
|
|
501
709
|
const columns = tables_1.outputColumnsWithoutLockingScript.map(c => `outputs.${c}`);
|
|
502
|
-
q.select(columns);
|
|
710
|
+
void q.select(columns);
|
|
503
711
|
}
|
|
504
712
|
return q;
|
|
505
713
|
}
|
|
506
714
|
findOutputTagMapsQuery(args) {
|
|
507
715
|
const q = this.setupQuery('output_tags_map', args);
|
|
508
|
-
if (args.tagIds && args.tagIds.length > 0)
|
|
509
|
-
q.whereIn('outputTagId', args.tagIds);
|
|
716
|
+
if ((args.tagIds != null) && args.tagIds.length > 0)
|
|
717
|
+
void q.whereIn('outputTagId', args.tagIds);
|
|
510
718
|
return q;
|
|
511
719
|
}
|
|
512
720
|
findOutputTagsQuery(args) {
|
|
513
721
|
return this.setupQuery('output_tags', args);
|
|
514
722
|
}
|
|
515
723
|
findProvenTxReqsQuery(args) {
|
|
516
|
-
if (args.partial.rawTx)
|
|
517
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx',
|
|
518
|
-
|
|
519
|
-
|
|
724
|
+
if (args.partial.rawTx != null) {
|
|
725
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', 'undefined. ProvenTxReqs may not be found by rawTx value.');
|
|
726
|
+
}
|
|
727
|
+
if (args.partial.inputBEEF != null) {
|
|
728
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.inputBEEF', 'undefined. ProvenTxReqs may not be found by inputBEEF value.');
|
|
729
|
+
}
|
|
520
730
|
const q = this.setupQuery('proven_tx_reqs', args);
|
|
521
|
-
if (args.status && args.status.length > 0)
|
|
522
|
-
q.whereIn('status', args.status);
|
|
523
|
-
if (args.txids) {
|
|
731
|
+
if ((args.status != null) && args.status.length > 0)
|
|
732
|
+
void q.whereIn('status', args.status);
|
|
733
|
+
if (args.txids != null) {
|
|
524
734
|
const txids = args.txids.filter(txid => txid !== undefined);
|
|
525
735
|
if (txids.length > 0)
|
|
526
|
-
q.whereIn('txid', txids);
|
|
736
|
+
void q.whereIn('txid', txids);
|
|
527
737
|
}
|
|
528
738
|
return q;
|
|
529
739
|
}
|
|
530
740
|
findProvenTxsQuery(args) {
|
|
531
|
-
if (args.partial.rawTx)
|
|
532
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx',
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
741
|
+
if (args.partial.rawTx != null) {
|
|
742
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', 'undefined. ProvenTxs may not be found by rawTx value.');
|
|
743
|
+
}
|
|
744
|
+
if (args.partial.merklePath != null) {
|
|
745
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.merklePath', 'undefined. ProvenTxs may not be found by merklePath value.');
|
|
746
|
+
}
|
|
747
|
+
const q = this.setupQuery('proven_txs', args);
|
|
748
|
+
if (args.txids != null) {
|
|
749
|
+
const txids = [...new Set(args.txids.filter(txid => txid !== undefined))];
|
|
750
|
+
if (txids.length > 0)
|
|
751
|
+
void q.whereIn('txid', txids);
|
|
752
|
+
}
|
|
753
|
+
return q;
|
|
536
754
|
}
|
|
537
755
|
findStaleMerkleRootsQuery(args) {
|
|
538
|
-
|
|
539
|
-
q.where('height', '=', args.height);
|
|
540
|
-
q.where('merkleRoot', '!=', args.merkleRoot);
|
|
541
|
-
q.select('merkleRoot');
|
|
542
|
-
q.distinct('merkleRoot');
|
|
756
|
+
const q = this.toDb(args.trx)('proven_txs');
|
|
757
|
+
void q.where('height', '=', args.height);
|
|
758
|
+
void q.where('merkleRoot', '!=', args.merkleRoot);
|
|
759
|
+
void q.select('merkleRoot');
|
|
760
|
+
void q.distinct('merkleRoot');
|
|
543
761
|
return q;
|
|
544
762
|
}
|
|
545
763
|
findSyncStatesQuery(args) {
|
|
546
764
|
return this.setupQuery('sync_states', args);
|
|
547
765
|
}
|
|
548
766
|
findTransactionsQuery(args, count) {
|
|
549
|
-
if (args.partial.rawTx)
|
|
550
|
-
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx',
|
|
551
|
-
|
|
552
|
-
|
|
767
|
+
if (args.partial.rawTx != null) {
|
|
768
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.rawTx', 'undefined. Transactions may not be found by rawTx value.');
|
|
769
|
+
}
|
|
770
|
+
if (args.partial.inputBEEF != null) {
|
|
771
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('args.partial.inputBEEF', 'undefined. Transactions may not be found by inputBEEF value.');
|
|
772
|
+
}
|
|
553
773
|
const q = this.setupQuery('transactions', args);
|
|
554
|
-
if (args.status && args.status.length > 0)
|
|
555
|
-
q.whereIn('status', args.status);
|
|
556
|
-
if (args.from)
|
|
557
|
-
q.where('created_at', '>=', this.validateDateForWhere(args.from));
|
|
558
|
-
if (args.to)
|
|
559
|
-
q.where('created_at', '<', this.validateDateForWhere(args.to));
|
|
560
|
-
if (args.noRawTx &&
|
|
774
|
+
if ((args.status != null) && args.status.length > 0)
|
|
775
|
+
void q.whereIn('status', args.status);
|
|
776
|
+
if (args.from != null)
|
|
777
|
+
void q.where('created_at', '>=', this.validateDateForWhere(args.from));
|
|
778
|
+
if (args.to != null)
|
|
779
|
+
void q.where('created_at', '<', this.validateDateForWhere(args.to));
|
|
780
|
+
if ((args.noRawTx === true) && count !== true) {
|
|
561
781
|
const columns = tables_1.transactionColumnsWithoutRawTx.map(c => `transactions.${c}`);
|
|
562
|
-
q.select(columns);
|
|
782
|
+
void q.select(columns);
|
|
563
783
|
}
|
|
564
784
|
return q;
|
|
565
785
|
}
|
|
566
786
|
findTxLabelMapsQuery(args) {
|
|
567
787
|
const q = this.setupQuery('tx_labels_map', args);
|
|
568
|
-
if (args.labelIds && args.labelIds.length > 0)
|
|
569
|
-
q.whereIn('txLabelId', args.labelIds);
|
|
788
|
+
if ((args.labelIds != null) && args.labelIds.length > 0)
|
|
789
|
+
void q.whereIn('txLabelId', args.labelIds);
|
|
570
790
|
return q;
|
|
571
791
|
}
|
|
572
792
|
findTxLabelsQuery(args) {
|
|
@@ -579,19 +799,19 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
579
799
|
return this.setupQuery('monitor_events', args);
|
|
580
800
|
}
|
|
581
801
|
async findCertificatesAuth(auth, args) {
|
|
582
|
-
if (
|
|
802
|
+
if (auth.userId == null || (args.partial.userId != null && args.partial.userId !== 0 && args.partial.userId !== auth.userId))
|
|
583
803
|
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
584
804
|
args.partial.userId = auth.userId;
|
|
585
805
|
return await this.findCertificates(args);
|
|
586
806
|
}
|
|
587
807
|
async findOutputBasketsAuth(auth, args) {
|
|
588
|
-
if (
|
|
808
|
+
if (auth.userId == null || (args.partial.userId != null && args.partial.userId !== 0 && args.partial.userId !== auth.userId))
|
|
589
809
|
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
590
810
|
args.partial.userId = auth.userId;
|
|
591
811
|
return await this.findOutputBaskets(args);
|
|
592
812
|
}
|
|
593
813
|
async findOutputsAuth(auth, args) {
|
|
594
|
-
if (
|
|
814
|
+
if (auth.userId == null || (args.partial.userId != null && args.partial.userId !== 0 && args.partial.userId !== auth.userId))
|
|
595
815
|
throw new WERR_errors_1.WERR_UNAUTHORIZED();
|
|
596
816
|
args.partial.userId = auth.userId;
|
|
597
817
|
return await this.findOutputs(args);
|
|
@@ -603,7 +823,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
603
823
|
const q = this.findCertificatesQuery(args);
|
|
604
824
|
let r = await q;
|
|
605
825
|
r = this.validateEntities(r, undefined, ['isDeleted']);
|
|
606
|
-
if (args.includeFields) {
|
|
826
|
+
if (args.includeFields === true) {
|
|
607
827
|
for (const c of r) {
|
|
608
828
|
c.fields = this.validateEntities(await this.findCertificateFields({
|
|
609
829
|
partial: { certificateId: c.certificateId, userId: c.userId },
|
|
@@ -626,7 +846,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
626
846
|
async findOutputs(args) {
|
|
627
847
|
const q = this.findOutputsQuery(args);
|
|
628
848
|
const r = await q;
|
|
629
|
-
if (
|
|
849
|
+
if (args.noScript !== true) {
|
|
630
850
|
for (const o of r) {
|
|
631
851
|
await this.validateOutputScript(o, args.trx);
|
|
632
852
|
}
|
|
@@ -646,7 +866,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
646
866
|
async findProvenTxReqs(args) {
|
|
647
867
|
const q = this.findProvenTxReqsQuery(args);
|
|
648
868
|
const r = await q;
|
|
649
|
-
return this.validateEntities(r, undefined, ['notified']);
|
|
869
|
+
return this.validateEntities(r, undefined, ['notified', 'wasBroadcast']);
|
|
650
870
|
}
|
|
651
871
|
async findProvenTxs(args) {
|
|
652
872
|
const q = this.findProvenTxsQuery(args);
|
|
@@ -666,7 +886,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
666
886
|
async findTransactions(args) {
|
|
667
887
|
const q = this.findTransactionsQuery(args);
|
|
668
888
|
const r = await q;
|
|
669
|
-
if (
|
|
889
|
+
if (args.noRawTx !== true) {
|
|
670
890
|
for (const t of r) {
|
|
671
891
|
await this.validateRawTransaction(t, args.trx);
|
|
672
892
|
}
|
|
@@ -705,10 +925,10 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
705
925
|
async findMonitorEvents(args) {
|
|
706
926
|
const q = this.findMonitorEventsQuery(args);
|
|
707
927
|
const r = await q;
|
|
708
|
-
return this.validateEntities(r, ['when']
|
|
928
|
+
return this.validateEntities(r, ['when']);
|
|
709
929
|
}
|
|
710
930
|
async getCount(q) {
|
|
711
|
-
q.count();
|
|
931
|
+
void q.count();
|
|
712
932
|
const r = await q;
|
|
713
933
|
return r[0]['count(*)'];
|
|
714
934
|
}
|
|
@@ -758,13 +978,17 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
758
978
|
return await this.getCount(this.findMonitorEventsQuery(args));
|
|
759
979
|
}
|
|
760
980
|
async destroy() {
|
|
761
|
-
|
|
762
|
-
|
|
981
|
+
this.knex.off('query', this.onQuery);
|
|
982
|
+
this.knex.off('query-response', this.onQueryResponse);
|
|
983
|
+
this.knex.off('query-error', this.onQueryError);
|
|
984
|
+
for (const span of this.querySpans.values())
|
|
985
|
+
span.end({ status: 'cancelled' });
|
|
986
|
+
this.querySpans.clear();
|
|
987
|
+
await this.knex?.destroy();
|
|
763
988
|
}
|
|
764
989
|
async migrate(storageName, storageIdentityKey) {
|
|
765
|
-
var _a;
|
|
766
990
|
// Check if this is a SQLite database by looking at the Knex client config
|
|
767
|
-
const clientName =
|
|
991
|
+
const clientName = this.knex.client.config?.client ?? '';
|
|
768
992
|
const isSQLite = clientName.includes('sqlite');
|
|
769
993
|
// For SQLite, disable transactions during migrations and turn off foreign keys.
|
|
770
994
|
// PRAGMA foreign_keys is silently ignored inside transactions, so we must
|
|
@@ -786,11 +1010,10 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
786
1010
|
return version;
|
|
787
1011
|
}
|
|
788
1012
|
async dropAllData() {
|
|
789
|
-
var _a;
|
|
790
1013
|
// Only using migrations to migrate down, don't need valid properties for settings table.
|
|
791
1014
|
const migrationSource = new KnexMigrations_1.KnexMigrations('test', '', '', 1024);
|
|
792
1015
|
// Check if this is a SQLite database by looking at the Knex client config
|
|
793
|
-
const clientName =
|
|
1016
|
+
const clientName = this.knex.client.config?.client ?? '';
|
|
794
1017
|
const isSQLite = clientName.includes('sqlite');
|
|
795
1018
|
// For SQLite, disable transactions during migrations and turn off foreign keys.
|
|
796
1019
|
// PRAGMA foreign_keys is silently ignored inside transactions, so we must
|
|
@@ -809,12 +1032,15 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
809
1032
|
for (let i = 0; i < count; i++) {
|
|
810
1033
|
try {
|
|
811
1034
|
const r = await this.knex.migrate.down(config);
|
|
812
|
-
if (
|
|
813
|
-
console.error(
|
|
1035
|
+
if (r == null) {
|
|
1036
|
+
console.error('Migration returned falsy result await this.knex.migrate.down(config)');
|
|
814
1037
|
break;
|
|
815
1038
|
}
|
|
816
1039
|
}
|
|
817
|
-
catch (
|
|
1040
|
+
catch (migrationError) {
|
|
1041
|
+
// migrate.down throws when there are no more migrations to roll back — this is
|
|
1042
|
+
// the expected terminal condition, so we stop iterating rather than propagating.
|
|
1043
|
+
console.debug('migrate.down stopped (no more migrations or error):', migrationError);
|
|
818
1044
|
break;
|
|
819
1045
|
}
|
|
820
1046
|
}
|
|
@@ -824,7 +1050,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
824
1050
|
}
|
|
825
1051
|
}
|
|
826
1052
|
async transaction(scope, trx) {
|
|
827
|
-
if (trx)
|
|
1053
|
+
if (trx != null)
|
|
828
1054
|
return await scope(trx);
|
|
829
1055
|
return await this.knex.transaction(async (knextrx) => {
|
|
830
1056
|
const trx = knextrx;
|
|
@@ -835,22 +1061,24 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
835
1061
|
* Convert the standard optional `TrxToken` parameter into either a direct knex database instance,
|
|
836
1062
|
* or a Knex.Transaction as appropriate.
|
|
837
1063
|
*/
|
|
1064
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
838
1065
|
toDb(trx) {
|
|
839
1066
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
840
|
-
const db =
|
|
1067
|
+
const db = (trx == null) ? this.knex : trx;
|
|
841
1068
|
this.whenLastAccess = new Date();
|
|
842
1069
|
return db;
|
|
843
1070
|
}
|
|
844
1071
|
async validateRawTransaction(t, trx) {
|
|
845
1072
|
// if there is no txid or there is a rawTransaction return what we have.
|
|
846
|
-
if (t.rawTx ||
|
|
1073
|
+
if (t.rawTx != null || t.txid == null || t.txid === '')
|
|
847
1074
|
return;
|
|
848
1075
|
// rawTransaction is missing, see if we moved it ...
|
|
849
1076
|
const rawTx = await this.getRawTxOfKnownValidTransaction(t.txid, undefined, undefined, trx);
|
|
850
|
-
if (
|
|
1077
|
+
if (rawTx == null)
|
|
851
1078
|
return;
|
|
852
1079
|
t.rawTx = rawTx;
|
|
853
1080
|
}
|
|
1081
|
+
_verifiedReadyForDatabaseAccess = false;
|
|
854
1082
|
/**
|
|
855
1083
|
* Make sure database is ready for access:
|
|
856
1084
|
*
|
|
@@ -860,9 +1088,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
860
1088
|
* @param trx
|
|
861
1089
|
*/
|
|
862
1090
|
async verifyReadyForDatabaseAccess(trx) {
|
|
863
|
-
|
|
864
|
-
this._settings = await this.readSettings();
|
|
865
|
-
}
|
|
1091
|
+
this._settings ??= await this.readSettings();
|
|
866
1092
|
// Always run the PRAGMA for SQLite to ensure foreign key constraints are enabled.
|
|
867
1093
|
// This is necessary because PRAGMA foreign_keys is a per-connection setting,
|
|
868
1094
|
// and connection pools may create new connections that don't have it set.
|
|
@@ -873,43 +1099,61 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
873
1099
|
this._verifiedReadyForDatabaseAccess = true;
|
|
874
1100
|
return this._settings.dbtype;
|
|
875
1101
|
}
|
|
1102
|
+
/** Convert every byte-array value to a Buffer and every undefined to null on an arbitrary object. */
|
|
1103
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1104
|
+
serialiseForKnex(v) {
|
|
1105
|
+
for (const key of Object.keys(v)) {
|
|
1106
|
+
const val = v[key];
|
|
1107
|
+
if (Array.isArray(val) && (val.length === 0 || typeof val[0] === 'number')) {
|
|
1108
|
+
v[key] = Buffer.from(val);
|
|
1109
|
+
}
|
|
1110
|
+
else if (val instanceof Uint8Array) {
|
|
1111
|
+
v[key] = Buffer.from(val.buffer, val.byteOffset, val.byteLength);
|
|
1112
|
+
}
|
|
1113
|
+
else if (val === undefined) {
|
|
1114
|
+
v[key] = null;
|
|
1115
|
+
}
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
/** Apply optional date-field coercion list in-place. */
|
|
1119
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1120
|
+
coerceDateFields(v, dateFields) {
|
|
1121
|
+
if (dateFields == null)
|
|
1122
|
+
return;
|
|
1123
|
+
for (const df of dateFields) {
|
|
1124
|
+
if (v[df] != null)
|
|
1125
|
+
v[df] = this.validateOptionalEntityDate(v[df]);
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
/** Apply optional boolean-field coercion list in-place. */
|
|
1129
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1130
|
+
coerceBooleanFields(v, booleanFields) {
|
|
1131
|
+
if (booleanFields == null)
|
|
1132
|
+
return;
|
|
1133
|
+
for (const df of booleanFields) {
|
|
1134
|
+
if (v[df] !== undefined)
|
|
1135
|
+
v[df] = v[df] != null && v[df] !== false ? 1 : 0;
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
876
1138
|
/**
|
|
877
1139
|
* Helper to force uniform behavior across database engines.
|
|
878
1140
|
* Use to process the update template for entities being updated.
|
|
879
1141
|
*/
|
|
880
1142
|
validatePartialForUpdate(update, dateFields, booleanFields) {
|
|
881
|
-
if (
|
|
1143
|
+
if (this.dbtype == null)
|
|
882
1144
|
throw new WERR_errors_1.WERR_INTERNAL('must call verifyReadyForDatabaseAccess first');
|
|
1145
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
883
1146
|
const v = update;
|
|
884
|
-
if (v.created_at)
|
|
1147
|
+
if (v.created_at != null)
|
|
885
1148
|
v.created_at = this.validateEntityDate(v.created_at);
|
|
886
|
-
if (v.updated_at)
|
|
1149
|
+
if (v.updated_at != null)
|
|
887
1150
|
v.updated_at = this.validateEntityDate(v.updated_at);
|
|
888
|
-
if (
|
|
1151
|
+
if (v.created_at == null)
|
|
889
1152
|
delete v.created_at;
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
if (v[df])
|
|
895
|
-
v[df] = this.validateOptionalEntityDate(v[df]);
|
|
896
|
-
}
|
|
897
|
-
}
|
|
898
|
-
if (booleanFields) {
|
|
899
|
-
for (const df of booleanFields) {
|
|
900
|
-
if (update[df] !== undefined)
|
|
901
|
-
update[df] = !!update[df] ? 1 : 0;
|
|
902
|
-
}
|
|
903
|
-
}
|
|
904
|
-
for (const key of Object.keys(v)) {
|
|
905
|
-
const val = v[key];
|
|
906
|
-
if (Array.isArray(val) && (val.length === 0 || typeof val[0] === 'number')) {
|
|
907
|
-
v[key] = Buffer.from(val);
|
|
908
|
-
}
|
|
909
|
-
else if (val === undefined) {
|
|
910
|
-
v[key] = null;
|
|
911
|
-
}
|
|
912
|
-
}
|
|
1153
|
+
v.updated_at ??= this.validateEntityDate(new Date());
|
|
1154
|
+
this.coerceDateFields(v, dateFields);
|
|
1155
|
+
this.coerceBooleanFields(update, booleanFields);
|
|
1156
|
+
this.serialiseForKnex(v);
|
|
913
1157
|
this.isDirty = true;
|
|
914
1158
|
return v;
|
|
915
1159
|
}
|
|
@@ -917,36 +1161,21 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
917
1161
|
* Helper to force uniform behavior across database engines.
|
|
918
1162
|
* Use to process new entities being inserted into the database.
|
|
919
1163
|
*/
|
|
920
|
-
async validateEntityForInsert(entity, trx, dateFields, booleanFields
|
|
1164
|
+
async validateEntityForInsert(entity, trx, dateFields, booleanFields
|
|
1165
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1166
|
+
) {
|
|
921
1167
|
await this.verifyReadyForDatabaseAccess(trx);
|
|
1168
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
922
1169
|
const v = { ...entity };
|
|
923
|
-
v.created_at = this.validateOptionalEntityDate(v.created_at, true);
|
|
924
|
-
v.updated_at = this.validateOptionalEntityDate(v.updated_at, true);
|
|
925
|
-
if (
|
|
1170
|
+
v.created_at = this.validateOptionalEntityDate(v.created_at, true) ?? new Date();
|
|
1171
|
+
v.updated_at = this.validateOptionalEntityDate(v.updated_at, true) ?? new Date();
|
|
1172
|
+
if (v.created_at == null)
|
|
926
1173
|
delete v.created_at;
|
|
927
|
-
if (
|
|
1174
|
+
if (v.updated_at == null)
|
|
928
1175
|
delete v.updated_at;
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
v[df] = this.validateOptionalEntityDate(v[df]);
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
if (booleanFields) {
|
|
936
|
-
for (const df of booleanFields) {
|
|
937
|
-
if (entity[df] !== undefined)
|
|
938
|
-
entity[df] = !!entity[df] ? 1 : 0;
|
|
939
|
-
}
|
|
940
|
-
}
|
|
941
|
-
for (const key of Object.keys(v)) {
|
|
942
|
-
const val = v[key];
|
|
943
|
-
if (Array.isArray(val) && (val.length === 0 || typeof val[0] === 'number')) {
|
|
944
|
-
v[key] = Buffer.from(val);
|
|
945
|
-
}
|
|
946
|
-
else if (val === undefined) {
|
|
947
|
-
v[key] = null;
|
|
948
|
-
}
|
|
949
|
-
}
|
|
1176
|
+
this.coerceDateFields(v, dateFields);
|
|
1177
|
+
this.coerceBooleanFields(entity, booleanFields);
|
|
1178
|
+
this.serialiseForKnex(v);
|
|
950
1179
|
this.isDirty = true;
|
|
951
1180
|
return v;
|
|
952
1181
|
}
|
|
@@ -975,7 +1204,8 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
975
1204
|
return await (0, reviewStatus_1.reviewStatus)(this, args);
|
|
976
1205
|
}
|
|
977
1206
|
/**
|
|
978
|
-
* Counts
|
|
1207
|
+
* Counts wallet-managed BRC-29 change outputs for userId in basketId that
|
|
1208
|
+
* are currently eligible for automatic allocation
|
|
979
1209
|
* AND whose transaction status is one of:
|
|
980
1210
|
* - completed
|
|
981
1211
|
* - unproven
|
|
@@ -985,13 +1215,103 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
985
1215
|
const status = ['completed', 'unproven'];
|
|
986
1216
|
if (!excludeSending)
|
|
987
1217
|
status.push('sending');
|
|
1218
|
+
const now = new Date();
|
|
988
1219
|
const q = this.knex('outputs as o')
|
|
989
1220
|
.join('transactions as t', 'o.transactionId', 't.transactionId')
|
|
990
|
-
.where({
|
|
1221
|
+
.where({
|
|
1222
|
+
'o.userId': userId,
|
|
1223
|
+
'o.spendable': true,
|
|
1224
|
+
'o.basketId': basketId,
|
|
1225
|
+
'o.type': managedChange_1.managedChangeOutputFields.type,
|
|
1226
|
+
'o.change': managedChange_1.managedChangeOutputFields.change,
|
|
1227
|
+
'o.providedBy': managedChange_1.managedChangeOutputFields.providedBy,
|
|
1228
|
+
'o.purpose': managedChange_1.managedChangeOutputFields.purpose
|
|
1229
|
+
})
|
|
1230
|
+
.whereNull('o.spentBy')
|
|
1231
|
+
.whereNotNull('o.derivationPrefix')
|
|
1232
|
+
.whereNot('o.derivationPrefix', '')
|
|
1233
|
+
.whereNotNull('o.derivationSuffix')
|
|
1234
|
+
.whereNot('o.derivationSuffix', '')
|
|
1235
|
+
.whereNotExists(function () {
|
|
1236
|
+
void this.select(1)
|
|
1237
|
+
.from('action_batch_outputs as abo')
|
|
1238
|
+
.join('action_batches as ab', 'abo.actionBatchId', 'ab.actionBatchId')
|
|
1239
|
+
.whereRaw('abo.outputId = o.outputId')
|
|
1240
|
+
.whereIn('ab.status', ['active', 'prepared'])
|
|
1241
|
+
.where('ab.expiresAt', '>', now)
|
|
1242
|
+
.where('ab.hardExpiresAt', '>', now);
|
|
1243
|
+
})
|
|
991
1244
|
.whereIn('t.status', status);
|
|
992
1245
|
const count = await this.getCount(q);
|
|
993
1246
|
return count;
|
|
994
1247
|
}
|
|
1248
|
+
async findAvailableManagedChangeInputs(userId, basketId, excludeSending, trx) {
|
|
1249
|
+
const statuses = ['completed', 'unproven'];
|
|
1250
|
+
if (!excludeSending)
|
|
1251
|
+
statuses.push('sending');
|
|
1252
|
+
const now = new Date();
|
|
1253
|
+
const rows = await this.toDb(trx)('outputs as o')
|
|
1254
|
+
.join('transactions as t', 'o.transactionId', 't.transactionId')
|
|
1255
|
+
.where({
|
|
1256
|
+
'o.userId': userId,
|
|
1257
|
+
'o.basketId': basketId,
|
|
1258
|
+
'o.spendable': true,
|
|
1259
|
+
'o.type': managedChange_1.managedChangeOutputFields.type,
|
|
1260
|
+
'o.change': managedChange_1.managedChangeOutputFields.change,
|
|
1261
|
+
'o.providedBy': managedChange_1.managedChangeOutputFields.providedBy,
|
|
1262
|
+
'o.purpose': managedChange_1.managedChangeOutputFields.purpose
|
|
1263
|
+
})
|
|
1264
|
+
.whereNull('o.spentBy')
|
|
1265
|
+
.whereNotNull('o.derivationPrefix')
|
|
1266
|
+
.whereNot('o.derivationPrefix', '')
|
|
1267
|
+
.whereNotNull('o.derivationSuffix')
|
|
1268
|
+
.whereNot('o.derivationSuffix', '')
|
|
1269
|
+
.whereNotExists(function () {
|
|
1270
|
+
void this.select(1)
|
|
1271
|
+
.from('action_batch_outputs as abo')
|
|
1272
|
+
.join('action_batches as ab', 'abo.actionBatchId', 'ab.actionBatchId')
|
|
1273
|
+
.whereRaw('abo.outputId = o.outputId')
|
|
1274
|
+
.whereIn('ab.status', ['active', 'prepared'])
|
|
1275
|
+
.where('ab.expiresAt', '>', now)
|
|
1276
|
+
.where('ab.hardExpiresAt', '>', now);
|
|
1277
|
+
})
|
|
1278
|
+
.whereIn('t.status', statuses)
|
|
1279
|
+
.select(tables_1.outputColumnsWithoutLockingScript.map(column => `o.${column}`));
|
|
1280
|
+
return this.validateEntities(rows, undefined, ['spendable', 'change']);
|
|
1281
|
+
}
|
|
1282
|
+
async findAvailableManagedChangeInputCandidates(userId, basketId, excludeSending, trx) {
|
|
1283
|
+
const statuses = ['completed', 'unproven'];
|
|
1284
|
+
if (!excludeSending)
|
|
1285
|
+
statuses.push('sending');
|
|
1286
|
+
const now = new Date();
|
|
1287
|
+
return await this.toDb(trx)('outputs as o')
|
|
1288
|
+
.join('transactions as t', 'o.transactionId', 't.transactionId')
|
|
1289
|
+
.where({
|
|
1290
|
+
'o.userId': userId,
|
|
1291
|
+
'o.basketId': basketId,
|
|
1292
|
+
'o.spendable': true,
|
|
1293
|
+
'o.type': managedChange_1.managedChangeOutputFields.type,
|
|
1294
|
+
'o.change': managedChange_1.managedChangeOutputFields.change,
|
|
1295
|
+
'o.providedBy': managedChange_1.managedChangeOutputFields.providedBy,
|
|
1296
|
+
'o.purpose': managedChange_1.managedChangeOutputFields.purpose
|
|
1297
|
+
})
|
|
1298
|
+
.whereNull('o.spentBy')
|
|
1299
|
+
.whereNotNull('o.derivationPrefix')
|
|
1300
|
+
.whereNot('o.derivationPrefix', '')
|
|
1301
|
+
.whereNotNull('o.derivationSuffix')
|
|
1302
|
+
.whereNot('o.derivationSuffix', '')
|
|
1303
|
+
.whereNotExists(function () {
|
|
1304
|
+
void this.select(1)
|
|
1305
|
+
.from('action_batch_outputs as abo')
|
|
1306
|
+
.join('action_batches as ab', 'abo.actionBatchId', 'ab.actionBatchId')
|
|
1307
|
+
.whereRaw('abo.outputId = o.outputId')
|
|
1308
|
+
.whereIn('ab.status', ['active', 'prepared'])
|
|
1309
|
+
.where('ab.expiresAt', '>', now)
|
|
1310
|
+
.where('ab.hardExpiresAt', '>', now);
|
|
1311
|
+
})
|
|
1312
|
+
.whereIn('t.status', statuses)
|
|
1313
|
+
.select('o.outputId', 'o.transactionId', 'o.satoshis', 'o.txid', 'o.vout');
|
|
1314
|
+
}
|
|
995
1315
|
async findOutputsByIds(outputIds, trx) {
|
|
996
1316
|
const byId = {};
|
|
997
1317
|
if (outputIds.length < 1)
|
|
@@ -1020,14 +1340,79 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
1020
1340
|
.whereIn('vout', vouts)
|
|
1021
1341
|
.select('*');
|
|
1022
1342
|
// Only return requested outpoints, vouts of one txid may end up matching another txid that was not requested.
|
|
1023
|
-
const filteredRows = rows.filter(r => outpointSet.has(`${r.txid}.${r.vout}`));
|
|
1343
|
+
const filteredRows = rows.filter(r => outpointSet.has(`${String(r.txid)}.${String(r.vout)}`));
|
|
1024
1344
|
const vrows = this.validateEntities(filteredRows, undefined, ['spendable', 'change']);
|
|
1025
1345
|
for (const row of vrows) {
|
|
1026
1346
|
await this.validateOutputScript(row, trx);
|
|
1027
|
-
byOutpoint[`${row.txid}.${row.vout}`] = row;
|
|
1347
|
+
byOutpoint[`${String(row.txid)}.${String(row.vout)}`] = row;
|
|
1348
|
+
}
|
|
1349
|
+
return byOutpoint;
|
|
1350
|
+
}
|
|
1351
|
+
async findOutputsByOutpointsForUpdate(userId, outpoints, trx, noScript = false) {
|
|
1352
|
+
const byOutpoint = {};
|
|
1353
|
+
if (outpoints.length < 1)
|
|
1354
|
+
return byOutpoint;
|
|
1355
|
+
const outpointSet = new Set(outpoints.map(o => `${o.txid}.${o.vout}`));
|
|
1356
|
+
const rows = await this.toDb(trx)('outputs')
|
|
1357
|
+
.where('userId', userId)
|
|
1358
|
+
.whereIn('txid', [...new Set(outpoints.map(o => o.txid))])
|
|
1359
|
+
.whereIn('vout', [...new Set(outpoints.map(o => o.vout))])
|
|
1360
|
+
.select('*')
|
|
1361
|
+
.forUpdate();
|
|
1362
|
+
const filteredRows = rows.filter(r => outpointSet.has(`${String(r.txid)}.${String(r.vout)}`));
|
|
1363
|
+
for (const row of this.validateEntities(filteredRows, undefined, ['spendable', 'change'])) {
|
|
1364
|
+
if (!noScript)
|
|
1365
|
+
await this.validateOutputScript(row, trx);
|
|
1366
|
+
byOutpoint[`${String(row.txid)}.${String(row.vout)}`] = row;
|
|
1028
1367
|
}
|
|
1029
1368
|
return byOutpoint;
|
|
1030
1369
|
}
|
|
1370
|
+
async findTransactionStatusesByIds(userId, transactionIds, trx) {
|
|
1371
|
+
const statuses = new Map();
|
|
1372
|
+
if (transactionIds.length === 0)
|
|
1373
|
+
return statuses;
|
|
1374
|
+
const rows = await this.toDb(trx)('transactions')
|
|
1375
|
+
.where('userId', userId)
|
|
1376
|
+
.whereIn('transactionId', [...new Set(transactionIds)])
|
|
1377
|
+
.select('transactionId', 'status');
|
|
1378
|
+
for (const row of rows)
|
|
1379
|
+
statuses.set(row.transactionId, row.status);
|
|
1380
|
+
return statuses;
|
|
1381
|
+
}
|
|
1382
|
+
async findFundingOutputsForUpdate(userId, outputIds, statuses, trx) {
|
|
1383
|
+
const byId = {};
|
|
1384
|
+
if (outputIds.length === 0)
|
|
1385
|
+
return byId;
|
|
1386
|
+
const uniqueOutputIds = [...new Set(outputIds)].sort((a, b) => a - b);
|
|
1387
|
+
// Lock source outputs through their primary key first. A single joined
|
|
1388
|
+
// SELECT ... FOR UPDATE caused PXC to lock one joined row at a time and
|
|
1389
|
+
// turned a 150-input claim into a ~220 ms statement. Transaction status
|
|
1390
|
+
// and action-batch reservations are then checked under the same database
|
|
1391
|
+
// transaction; action-batch reservation follows the same output-first lock
|
|
1392
|
+
// order, so a concurrent reserver cannot pass after this claim commits.
|
|
1393
|
+
const rows = await this.toDb(trx)('outputs as o')
|
|
1394
|
+
.where('o.userId', userId)
|
|
1395
|
+
.whereIn('o.outputId', uniqueOutputIds)
|
|
1396
|
+
.select('o.*')
|
|
1397
|
+
.forUpdate();
|
|
1398
|
+
const transactionIds = [...new Set(rows.map(output => output.transactionId))].sort((a, b) => a - b);
|
|
1399
|
+
const validTransactions = transactionIds.length === 0
|
|
1400
|
+
? []
|
|
1401
|
+
: await this.toDb(trx)('transactions')
|
|
1402
|
+
.where('userId', userId)
|
|
1403
|
+
.whereIn('transactionId', transactionIds)
|
|
1404
|
+
.whereIn('status', statuses)
|
|
1405
|
+
.select('transactionId')
|
|
1406
|
+
.forShare();
|
|
1407
|
+
const validTransactionIds = new Set(validTransactions.map(transaction => transaction.transactionId));
|
|
1408
|
+
const reservedOutputIds = new Set(await this.findReservedActionBatchOutputIds(uniqueOutputIds, trx));
|
|
1409
|
+
for (const output of this.validateEntities(rows, undefined, ['spendable', 'change'])) {
|
|
1410
|
+
if (!validTransactionIds.has(output.transactionId) || reservedOutputIds.has(output.outputId))
|
|
1411
|
+
continue;
|
|
1412
|
+
byId[output.outputId] = output;
|
|
1413
|
+
}
|
|
1414
|
+
return byId;
|
|
1415
|
+
}
|
|
1031
1416
|
async findOrInsertOutputBasketsBulk(userId, names, trx) {
|
|
1032
1417
|
const byName = {};
|
|
1033
1418
|
if (names.length < 1)
|
|
@@ -1043,8 +1428,7 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
1043
1428
|
byName[basket.name] = basket;
|
|
1044
1429
|
}
|
|
1045
1430
|
for (const name of uniqueNames) {
|
|
1046
|
-
|
|
1047
|
-
byName[name] = await this.findOrInsertOutputBasket(userId, name, trx);
|
|
1431
|
+
byName[name] ??= await this.findOrInsertOutputBasket(userId, name, trx);
|
|
1048
1432
|
}
|
|
1049
1433
|
return byName;
|
|
1050
1434
|
}
|
|
@@ -1063,11 +1447,29 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
1063
1447
|
byTag[outputTag.tag] = outputTag;
|
|
1064
1448
|
}
|
|
1065
1449
|
for (const tag of uniqueTags) {
|
|
1066
|
-
|
|
1067
|
-
byTag[tag] = await this.findOrInsertOutputTag(userId, tag, trx);
|
|
1450
|
+
byTag[tag] ??= await this.findOrInsertOutputTag(userId, tag, trx);
|
|
1068
1451
|
}
|
|
1069
1452
|
return byTag;
|
|
1070
1453
|
}
|
|
1454
|
+
async findOrInsertTxLabelsBulk(userId, labels, trx) {
|
|
1455
|
+
const byLabel = {};
|
|
1456
|
+
if (labels.length < 1)
|
|
1457
|
+
return byLabel;
|
|
1458
|
+
const uniqueLabels = [...new Set(labels)];
|
|
1459
|
+
const existing = await this.toDb(trx)('tx_labels')
|
|
1460
|
+
.where('userId', userId)
|
|
1461
|
+
.whereIn('label', uniqueLabels)
|
|
1462
|
+
.select('*');
|
|
1463
|
+
for (const label of existing) {
|
|
1464
|
+
if (label.isDeleted)
|
|
1465
|
+
await this.updateTxLabel((0, utilityHelpers_1.verifyId)(label.txLabelId), { isDeleted: false }, trx);
|
|
1466
|
+
byLabel[label.label] = label;
|
|
1467
|
+
}
|
|
1468
|
+
for (const label of uniqueLabels) {
|
|
1469
|
+
byLabel[label] ??= await this.findOrInsertTxLabel(userId, label, trx);
|
|
1470
|
+
}
|
|
1471
|
+
return byLabel;
|
|
1472
|
+
}
|
|
1071
1473
|
async sumSpendableSatoshisInBasket(userId, basketId, excludeSending, trx) {
|
|
1072
1474
|
const status = ['completed', 'unproven'];
|
|
1073
1475
|
if (!excludeSending)
|
|
@@ -1075,10 +1477,12 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
1075
1477
|
const row = await this.toDb(trx)('outputs as o')
|
|
1076
1478
|
.join('transactions as t', 'o.transactionId', 't.transactionId')
|
|
1077
1479
|
.where({ 'o.userId': userId, 'o.spendable': true, 'o.basketId': basketId })
|
|
1480
|
+
.whereNull('o.spentBy')
|
|
1078
1481
|
.whereIn('t.status', status)
|
|
1079
1482
|
.sum({ totalSatoshis: 'o.satoshis' })
|
|
1080
1483
|
.first();
|
|
1081
|
-
|
|
1484
|
+
const total = (row != null) ? row.totalSatoshis : undefined;
|
|
1485
|
+
return Number(total ?? 0);
|
|
1082
1486
|
}
|
|
1083
1487
|
/**
|
|
1084
1488
|
* Finds closest matching available change output to use as input for new transaction.
|
|
@@ -1095,27 +1499,40 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
1095
1499
|
.where('o.userId', userId)
|
|
1096
1500
|
.where('o.spendable', true)
|
|
1097
1501
|
.where('o.basketId', basketId)
|
|
1502
|
+
.where({
|
|
1503
|
+
'o.type': managedChange_1.managedChangeOutputFields.type,
|
|
1504
|
+
'o.change': managedChange_1.managedChangeOutputFields.change,
|
|
1505
|
+
'o.providedBy': managedChange_1.managedChangeOutputFields.providedBy,
|
|
1506
|
+
'o.purpose': managedChange_1.managedChangeOutputFields.purpose
|
|
1507
|
+
})
|
|
1508
|
+
.whereNotNull('o.derivationPrefix')
|
|
1509
|
+
.whereNot('o.derivationPrefix', '')
|
|
1510
|
+
.whereNotNull('o.derivationSuffix')
|
|
1511
|
+
.whereNot('o.derivationSuffix', '')
|
|
1512
|
+
.whereNull('o.spentBy')
|
|
1513
|
+
.whereNotExists(function () {
|
|
1514
|
+
void this.select(1)
|
|
1515
|
+
.from('action_batch_outputs as abo')
|
|
1516
|
+
.whereRaw('abo.outputId = o.outputId');
|
|
1517
|
+
})
|
|
1098
1518
|
.whereIn('t.status', status)
|
|
1099
|
-
.select('o.*')
|
|
1519
|
+
.select('o.*')
|
|
1520
|
+
.forUpdate();
|
|
1100
1521
|
let output;
|
|
1101
1522
|
if (exactSatoshis !== undefined) {
|
|
1102
1523
|
output = await baseQuery().where('o.satoshis', exactSatoshis).orderBy('o.outputId', 'asc').first();
|
|
1103
1524
|
}
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
.orderBy('o.outputId', 'desc')
|
|
1116
|
-
.first();
|
|
1117
|
-
}
|
|
1118
|
-
if (!output)
|
|
1525
|
+
output ??= await baseQuery()
|
|
1526
|
+
.where('o.satoshis', '>=', targetSatoshis)
|
|
1527
|
+
.orderBy('o.satoshis', 'asc')
|
|
1528
|
+
.orderBy('o.outputId', 'asc')
|
|
1529
|
+
.first();
|
|
1530
|
+
output ??= await baseQuery()
|
|
1531
|
+
.where('o.satoshis', '<', targetSatoshis)
|
|
1532
|
+
.orderBy('o.satoshis', 'desc')
|
|
1533
|
+
.orderBy('o.outputId', 'desc')
|
|
1534
|
+
.first();
|
|
1535
|
+
if (output == null)
|
|
1119
1536
|
return undefined;
|
|
1120
1537
|
await this.updateOutput(output.outputId, {
|
|
1121
1538
|
spendable: false,
|
|
@@ -1130,6 +1547,32 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
1130
1547
|
});
|
|
1131
1548
|
return r;
|
|
1132
1549
|
}
|
|
1550
|
+
async markChangeInputsSpent(outputIds, transactionId, trx) {
|
|
1551
|
+
if (outputIds.length === 0)
|
|
1552
|
+
return 0;
|
|
1553
|
+
return await this.toDb(trx)('outputs')
|
|
1554
|
+
.whereIn('outputId', outputIds)
|
|
1555
|
+
.where('spendable', true)
|
|
1556
|
+
.whereNull('spentBy')
|
|
1557
|
+
.update({ spendable: false, spentBy: transactionId });
|
|
1558
|
+
}
|
|
1559
|
+
/** Convert null→undefined and Buffer→number[] on a retrieved entity in-place. */
|
|
1560
|
+
deserialiseFromKnex(entity) {
|
|
1561
|
+
for (const key of Object.keys(entity)) {
|
|
1562
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1563
|
+
const val = entity[key];
|
|
1564
|
+
if (val === null) {
|
|
1565
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1566
|
+
;
|
|
1567
|
+
entity[key] = undefined;
|
|
1568
|
+
}
|
|
1569
|
+
else if (Buffer.isBuffer(val)) {
|
|
1570
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1571
|
+
;
|
|
1572
|
+
entity[key] = Array.from(val);
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
}
|
|
1133
1576
|
/**
|
|
1134
1577
|
* Helper to force uniform behavior across database engines.
|
|
1135
1578
|
* Use to process all individual records with time stamps retreived from database.
|
|
@@ -1137,27 +1580,21 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
1137
1580
|
validateEntity(entity, dateFields, booleanFields) {
|
|
1138
1581
|
entity.created_at = this.validateDate(entity.created_at);
|
|
1139
1582
|
entity.updated_at = this.validateDate(entity.updated_at);
|
|
1140
|
-
if (dateFields) {
|
|
1583
|
+
if (dateFields != null) {
|
|
1141
1584
|
for (const df of dateFields) {
|
|
1142
|
-
|
|
1585
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1586
|
+
if (entity[df] != null)
|
|
1143
1587
|
entity[df] = this.validateDate(entity[df]);
|
|
1144
1588
|
}
|
|
1145
1589
|
}
|
|
1146
|
-
if (booleanFields) {
|
|
1590
|
+
if (booleanFields != null) {
|
|
1147
1591
|
for (const df of booleanFields) {
|
|
1592
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1148
1593
|
if (entity[df] !== undefined)
|
|
1149
|
-
entity[df] =
|
|
1150
|
-
}
|
|
1151
|
-
}
|
|
1152
|
-
for (const key of Object.keys(entity)) {
|
|
1153
|
-
const val = entity[key];
|
|
1154
|
-
if (val === null) {
|
|
1155
|
-
entity[key] = undefined;
|
|
1156
|
-
}
|
|
1157
|
-
else if (Buffer.isBuffer(val)) {
|
|
1158
|
-
entity[key] = Array.from(val);
|
|
1594
|
+
entity[df] = entity[df] !== 0 && entity[df] != null && entity[df] !== false;
|
|
1159
1595
|
}
|
|
1160
1596
|
}
|
|
1597
|
+
this.deserialiseFromKnex(entity);
|
|
1161
1598
|
return entity;
|
|
1162
1599
|
}
|
|
1163
1600
|
/**
|
|
@@ -1179,81 +1616,81 @@ class StorageKnex extends StorageProvider_1.StorageProvider {
|
|
|
1179
1616
|
orderDescending: true,
|
|
1180
1617
|
paged: { limit: 1 }
|
|
1181
1618
|
}));
|
|
1182
|
-
const monitorStats = monitorEvent ? JSON.parse(monitorEvent.details) : undefined;
|
|
1619
|
+
const monitorStats = (monitorEvent != null) ? JSON.parse(monitorEvent.details) : undefined;
|
|
1183
1620
|
const servicesStats = this.getServices().getServicesCallHistory(true);
|
|
1184
|
-
const
|
|
1185
|
-
const
|
|
1186
|
-
const
|
|
1621
|
+
const oneDayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
|
|
1622
|
+
const oneWeekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString();
|
|
1623
|
+
const oneMonthAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString();
|
|
1187
1624
|
const [[{ usersDay, usersMonth, usersWeek, usersTotal, transactionsDay, transactionsMonth, transactionsWeek, transactionsTotal, txCompletedDay, txCompletedMonth, txCompletedWeek, txCompletedTotal, txFailedDay, txFailedMonth, txFailedWeek, txFailedTotal, txAbandonedDay, txAbandonedMonth, txAbandonedWeek, txAbandonedTotal, txUnprocessedDay, txUnprocessedMonth, txUnprocessedWeek, txUnprocessedTotal, txSendingDay, txSendingMonth, txSendingWeek, txSendingTotal, txUnprovenDay, txUnprovenMonth, txUnprovenWeek, txUnprovenTotal, txUnsignedDay, txUnsignedMonth, txUnsignedWeek, txUnsignedTotal, txNosendDay, txNosendMonth, txNosendWeek, txNosendTotal, txNonfinalDay, txNonfinalMonth, txNonfinalWeek, txNonfinalTotal, txUnfailDay, txUnfailMonth, txUnfailWeek, txUnfailTotal, satoshisDefaultDay, satoshisDefaultMonth, satoshisDefaultWeek, satoshisDefaultTotal, satoshisOtherDay, satoshisOtherMonth, satoshisOtherWeek, satoshisOtherTotal, basketsDay, basketsMonth, basketsWeek, basketsTotal, labelsDay, labelsMonth, labelsWeek, labelsTotal, tagsDay, tagsMonth, tagsWeek, tagsTotal }]] = await this.knex.raw(`
|
|
1188
1625
|
select
|
|
1189
|
-
(select count(*) from users where created_at > '${
|
|
1190
|
-
(select count(*) from users where created_at > '${
|
|
1191
|
-
(select count(*) from users where created_at > '${
|
|
1192
|
-
|
|
1193
|
-
(select count(*) from transactions where created_at > '${
|
|
1194
|
-
(select count(*) from transactions where created_at > '${
|
|
1195
|
-
(select count(*) from transactions where created_at > '${
|
|
1196
|
-
|
|
1197
|
-
(select count(*) from transactions where status = 'completed' and created_at > '${
|
|
1198
|
-
(select count(*) from transactions where status = 'completed' and created_at > '${
|
|
1199
|
-
(select count(*) from transactions where status = 'completed' and created_at > '${
|
|
1200
|
-
|
|
1201
|
-
(select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${
|
|
1202
|
-
(select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${
|
|
1203
|
-
(select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${
|
|
1204
|
-
|
|
1205
|
-
(select count(*) from transactions where status = 'failed' and txid is null and created_at > '${
|
|
1206
|
-
(select count(*) from transactions where status = 'failed' and txid is null and created_at > '${
|
|
1207
|
-
(select count(*) from transactions where status = 'failed' and txid is null and created_at > '${
|
|
1208
|
-
|
|
1209
|
-
(select count(*) from transactions where status = 'unprocessed' and created_at > '${
|
|
1210
|
-
(select count(*) from transactions where status = 'unprocessed' and created_at > '${
|
|
1211
|
-
(select count(*) from transactions where status = 'unprocessed' and created_at > '${
|
|
1212
|
-
|
|
1213
|
-
(select count(*) from transactions where status = 'sending' and created_at > '${
|
|
1214
|
-
(select count(*) from transactions where status = 'sending' and created_at > '${
|
|
1215
|
-
(select count(*) from transactions where status = 'sending' and created_at > '${
|
|
1216
|
-
|
|
1217
|
-
(select count(*) from transactions where status = 'unproven' and created_at > '${
|
|
1218
|
-
(select count(*) from transactions where status = 'unproven' and created_at > '${
|
|
1219
|
-
(select count(*) from transactions where status = 'unproven' and created_at > '${
|
|
1220
|
-
|
|
1221
|
-
(select count(*) from transactions where status = 'unsigned' and created_at > '${
|
|
1222
|
-
(select count(*) from transactions where status = 'unsigned' and created_at > '${
|
|
1223
|
-
(select count(*) from transactions where status = 'unsigned' and created_at > '${
|
|
1224
|
-
|
|
1225
|
-
(select count(*) from transactions where status = 'nosend' and created_at > '${
|
|
1226
|
-
(select count(*) from transactions where status = 'nosend' and created_at > '${
|
|
1227
|
-
(select count(*) from transactions where status = 'nosend' and created_at > '${
|
|
1228
|
-
|
|
1229
|
-
(select count(*) from transactions where status = 'nonfinal' and created_at > '${
|
|
1230
|
-
(select count(*) from transactions where status = 'nonfinal' and created_at > '${
|
|
1231
|
-
(select count(*) from transactions where status = 'nonfinal' and created_at > '${
|
|
1232
|
-
|
|
1233
|
-
(select count(*) from transactions where status = 'unfail' and created_at > '${
|
|
1234
|
-
(select count(*) from transactions where status = 'unfail' and created_at > '${
|
|
1235
|
-
(select count(*) from transactions where status = 'unfail' and created_at > '${
|
|
1236
|
-
|
|
1237
|
-
(select sum(satoshis) from outputs where spendable = 1 and
|
|
1238
|
-
(select sum(satoshis) from outputs where spendable = 1 and
|
|
1239
|
-
(select sum(satoshis) from outputs where spendable = 1 and
|
|
1240
|
-
|
|
1241
|
-
(select sum(satoshis) from outputs where spendable = 1 and
|
|
1242
|
-
(select sum(satoshis) from outputs where spendable = 1 and
|
|
1243
|
-
(select sum(satoshis) from outputs where spendable = 1 and
|
|
1244
|
-
|
|
1245
|
-
(select count(*) from output_baskets where created_at > '${
|
|
1246
|
-
(select count(*) from output_baskets where created_at > '${
|
|
1247
|
-
(select count(*) from output_baskets where created_at > '${
|
|
1248
|
-
|
|
1249
|
-
(select count(*) from tx_labels where created_at > '${
|
|
1250
|
-
(select count(*) from tx_labels where created_at > '${
|
|
1251
|
-
(select count(*) from tx_labels where created_at > '${
|
|
1252
|
-
|
|
1253
|
-
(select count(*) from output_tags where created_at > '${
|
|
1254
|
-
(select count(*) from output_tags where created_at > '${
|
|
1255
|
-
(select count(*) from output_tags where created_at > '${
|
|
1256
|
-
|
|
1626
|
+
(select count(*) from users where created_at > '${oneDayAgo}') as usersDay,
|
|
1627
|
+
(select count(*) from users where created_at > '${oneWeekAgo}') as usersWeek,
|
|
1628
|
+
(select count(*) from users where created_at > '${oneMonthAgo}') as usersMonth,
|
|
1629
|
+
(select count(*) from users) as usersTotal,
|
|
1630
|
+
(select count(*) from transactions where created_at > '${oneDayAgo}') as transactionsDay,
|
|
1631
|
+
(select count(*) from transactions where created_at > '${oneWeekAgo}') as transactionsWeek,
|
|
1632
|
+
(select count(*) from transactions where created_at > '${oneMonthAgo}') as transactionsMonth,
|
|
1633
|
+
(select count(*) from transactions) as transactionsTotal,
|
|
1634
|
+
(select count(*) from transactions where status = 'completed' and created_at > '${oneDayAgo}') as txCompletedDay,
|
|
1635
|
+
(select count(*) from transactions where status = 'completed' and created_at > '${oneWeekAgo}') as txCompletedWeek,
|
|
1636
|
+
(select count(*) from transactions where status = 'completed' and created_at > '${oneMonthAgo}') as txCompletedMonth,
|
|
1637
|
+
(select count(*) from transactions where status = 'completed') as txCompletedTotal,
|
|
1638
|
+
(select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${oneDayAgo}') as txFailedDay,
|
|
1639
|
+
(select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${oneWeekAgo}') as txFailedWeek,
|
|
1640
|
+
(select count(*) from transactions where status = 'failed' and not txid is null and created_at > '${oneMonthAgo}') as txFailedMonth,
|
|
1641
|
+
(select count(*) from transactions where status = 'failed' and not txid is null) as txFailedTotal,
|
|
1642
|
+
(select count(*) from transactions where status = 'failed' and txid is null and created_at > '${oneDayAgo}') as txAbandonedDay,
|
|
1643
|
+
(select count(*) from transactions where status = 'failed' and txid is null and created_at > '${oneWeekAgo}') as txAbandonedWeek,
|
|
1644
|
+
(select count(*) from transactions where status = 'failed' and txid is null and created_at > '${oneMonthAgo}') as txAbandonedMonth,
|
|
1645
|
+
(select count(*) from transactions where status = 'failed' and txid is null) as txAbandonedTotal,
|
|
1646
|
+
(select count(*) from transactions where status = 'unprocessed' and created_at > '${oneDayAgo}') as txUnprocessedDay,
|
|
1647
|
+
(select count(*) from transactions where status = 'unprocessed' and created_at > '${oneWeekAgo}') as txUnprocessedWeek,
|
|
1648
|
+
(select count(*) from transactions where status = 'unprocessed' and created_at > '${oneMonthAgo}') as txUnprocessedMonth,
|
|
1649
|
+
(select count(*) from transactions where status = 'unprocessed') as txUnprocessedTotal,
|
|
1650
|
+
(select count(*) from transactions where status = 'sending' and created_at > '${oneDayAgo}') as txSendingDay,
|
|
1651
|
+
(select count(*) from transactions where status = 'sending' and created_at > '${oneWeekAgo}') as txSendingWeek,
|
|
1652
|
+
(select count(*) from transactions where status = 'sending' and created_at > '${oneMonthAgo}') as txSendingMonth,
|
|
1653
|
+
(select count(*) from transactions where status = 'sending') as txSendingTotal,
|
|
1654
|
+
(select count(*) from transactions where status = 'unproven' and created_at > '${oneDayAgo}') as txUnprovenDay,
|
|
1655
|
+
(select count(*) from transactions where status = 'unproven' and created_at > '${oneWeekAgo}') as txUnprovenWeek,
|
|
1656
|
+
(select count(*) from transactions where status = 'unproven' and created_at > '${oneMonthAgo}') as txUnprovenMonth,
|
|
1657
|
+
(select count(*) from transactions where status = 'unproven') as txUnprovenTotal,
|
|
1658
|
+
(select count(*) from transactions where status = 'unsigned' and created_at > '${oneDayAgo}') as txUnsignedDay,
|
|
1659
|
+
(select count(*) from transactions where status = 'unsigned' and created_at > '${oneWeekAgo}') as txUnsignedWeek,
|
|
1660
|
+
(select count(*) from transactions where status = 'unsigned' and created_at > '${oneMonthAgo}') as txUnsignedMonth,
|
|
1661
|
+
(select count(*) from transactions where status = 'unsigned') as txUnsignedTotal,
|
|
1662
|
+
(select count(*) from transactions where status = 'nosend' and created_at > '${oneDayAgo}') as txNosendDay,
|
|
1663
|
+
(select count(*) from transactions where status = 'nosend' and created_at > '${oneWeekAgo}') as txNosendWeek,
|
|
1664
|
+
(select count(*) from transactions where status = 'nosend' and created_at > '${oneMonthAgo}') as txNosendMonth,
|
|
1665
|
+
(select count(*) from transactions where status = 'nosend') as txNosendTotal,
|
|
1666
|
+
(select count(*) from transactions where status = 'nonfinal' and created_at > '${oneDayAgo}') as txNonfinalDay,
|
|
1667
|
+
(select count(*) from transactions where status = 'nonfinal' and created_at > '${oneWeekAgo}') as txNonfinalWeek,
|
|
1668
|
+
(select count(*) from transactions where status = 'nonfinal' and created_at > '${oneMonthAgo}') as txNonfinalMonth,
|
|
1669
|
+
(select count(*) from transactions where status = 'nonfinal') as txNonfinalTotal,
|
|
1670
|
+
(select count(*) from transactions where status = 'unfail' and created_at > '${oneDayAgo}') as txUnfailDay,
|
|
1671
|
+
(select count(*) from transactions where status = 'unfail' and created_at > '${oneWeekAgo}') as txUnfailWeek,
|
|
1672
|
+
(select count(*) from transactions where status = 'unfail' and created_at > '${oneMonthAgo}') as txUnfailMonth,
|
|
1673
|
+
(select count(*) from transactions where status = 'unfail') as txUnfailTotal,
|
|
1674
|
+
(select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 1 and o.created_at > '${oneDayAgo}') as satoshisDefaultDay,
|
|
1675
|
+
(select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 1 and o.created_at > '${oneWeekAgo}') as satoshisDefaultWeek,
|
|
1676
|
+
(select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 1 and o.created_at > '${oneMonthAgo}') as satoshisDefaultMonth,
|
|
1677
|
+
(select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 1) as satoshisDefaultTotal,
|
|
1678
|
+
(select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 0 and not o.basketId is null and o.created_at > '${oneDayAgo}') as satoshisOtherDay,
|
|
1679
|
+
(select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 0 and not o.basketId is null and o.created_at > '${oneWeekAgo}') as satoshisOtherWeek,
|
|
1680
|
+
(select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 0 and not o.basketId is null and o.created_at > '${oneMonthAgo}') as satoshisOtherMonth,
|
|
1681
|
+
(select sum(o.satoshis) from outputs o, transactions t where o.transactionId = t.transactionId and t.status = 'completed' and o.spendable = 1 and o.change = 0 and not o.basketId is null) as satoshisOtherTotal,
|
|
1682
|
+
(select count(*) from output_baskets where created_at > '${oneDayAgo}') as basketsDay,
|
|
1683
|
+
(select count(*) from output_baskets where created_at > '${oneWeekAgo}') as basketsWeek,
|
|
1684
|
+
(select count(*) from output_baskets where created_at > '${oneMonthAgo}') as basketsMonth,
|
|
1685
|
+
(select count(*) from output_baskets) as basketsTotal,
|
|
1686
|
+
(select count(*) from tx_labels where created_at > '${oneDayAgo}') as labelsDay,
|
|
1687
|
+
(select count(*) from tx_labels where created_at > '${oneWeekAgo}') as labelsWeek,
|
|
1688
|
+
(select count(*) from tx_labels where created_at > '${oneMonthAgo}') as labelsMonth,
|
|
1689
|
+
(select count(*) from tx_labels) as labelsTotal,
|
|
1690
|
+
(select count(*) from output_tags where created_at > '${oneDayAgo}') as tagsDay,
|
|
1691
|
+
(select count(*) from output_tags where created_at > '${oneWeekAgo}') as tagsWeek,
|
|
1692
|
+
(select count(*) from output_tags where created_at > '${oneMonthAgo}') as tagsMonth,
|
|
1693
|
+
(select count(*) from output_tags) as tagsTotal
|
|
1257
1694
|
`);
|
|
1258
1695
|
const r = {
|
|
1259
1696
|
monitorStats,
|