@bsv/wallet-toolbox-mobile 1.5.20 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/src/CWIStyleWalletManager.js +1 -1
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/Setup.d.ts +267 -0
- package/out/src/Setup.d.ts.map +1 -0
- package/out/src/Setup.js +408 -0
- package/out/src/Setup.js.map +1 -0
- package/out/src/SetupClient.d.ts +9 -5
- package/out/src/SetupClient.d.ts.map +1 -1
- package/out/src/SetupClient.js +21 -15
- package/out/src/SetupClient.js.map +1 -1
- package/out/src/SetupWallet.d.ts +9 -6
- package/out/src/SetupWallet.d.ts.map +1 -1
- package/out/src/Wallet.d.ts +19 -15
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +59 -90
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/index.client.d.ts +11 -10
- package/out/src/index.client.d.ts.map +1 -1
- package/out/src/index.client.js +11 -10
- package/out/src/index.client.js.map +1 -1
- package/out/src/index.mobile.d.ts +11 -10
- package/out/src/index.mobile.d.ts.map +1 -1
- package/out/src/index.mobile.js +11 -10
- package/out/src/index.mobile.js.map +1 -1
- package/out/src/monitor/Monitor.d.ts +14 -12
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +11 -43
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +3 -2
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts +16 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +22 -1
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js +5 -5
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +1 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
- package/out/src/sdk/validationHelpers.d.ts +9 -7
- package/out/src/sdk/validationHelpers.d.ts.map +1 -1
- package/out/src/sdk/validationHelpers.js +52 -49
- package/out/src/sdk/validationHelpers.js.map +1 -1
- package/out/src/services/Services.d.ts +25 -24
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +38 -35
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.d.ts +11 -6
- package/out/src/services/chaintracker/BHServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/BHServiceClient.js +14 -3
- package/out/src/services/chaintracker/BHServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts +2 -2
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js +6 -4
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts +2 -45
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BlockHeaderApi.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts +75 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkIngestorApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts +81 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/BulkStorageApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts +54 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts +163 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksClientApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts +8 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFetchApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts +55 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksFsApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts +317 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/ChaintracksStorageApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts +19 -0
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js +3 -0
- package/out/src/services/chaintracker/chaintracks/Api/LiveIngestorApi.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts +100 -0
- package/out/src/services/chaintracker/chaintracks/Chaintracks.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +515 -0
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts +30 -0
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js +149 -0
- package/out/src/services/chaintracker/chaintracks/ChaintracksService.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts +11 -9
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +26 -15
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts +60 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +119 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts +76 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +115 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts +13 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js +20 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDNBabbage.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +62 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +60 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts +23 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js +57 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainWs.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts +61 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +40 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts +51 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +68 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts +16 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js +53 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainWs.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts +171 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +502 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts +88 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +119 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts +22 -0
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +67 -0
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts +68 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +253 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts +41 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +325 -0
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts +4 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +24 -0
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/index.client.d.ts +31 -0
- package/out/src/services/chaintracker/chaintracks/index.client.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/index.client.js +69 -0
- package/out/src/services/chaintracker/chaintracks/index.client.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts +142 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +814 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts +78 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +261 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts +129 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +145 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts +10 -0
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +47 -0
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts +72 -0
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +119 -0
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts +14 -0
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +88 -0
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts +41 -22
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +125 -72
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts +5 -0
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -0
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +385 -0
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -0
- package/out/src/services/chaintracker/index.client.d.ts +4 -0
- package/out/src/services/chaintracker/index.client.d.ts.map +1 -0
- package/out/src/services/chaintracker/{index.js → index.client.js} +2 -2
- package/out/src/services/chaintracker/index.client.js.map +1 -0
- package/out/src/services/createDefaultWalletServicesOptions.d.ts +5 -4
- package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.js +4 -4
- package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
- package/out/src/services/providers/ARC.d.ts +3 -3
- package/out/src/services/providers/ARC.d.ts.map +1 -1
- package/out/src/services/providers/ARC.js +4 -3
- package/out/src/services/providers/ARC.js.map +1 -1
- package/out/src/services/providers/Bitails.d.ts +7 -6
- package/out/src/services/providers/Bitails.d.ts.map +1 -1
- package/out/src/services/providers/Bitails.js +7 -5
- package/out/src/services/providers/Bitails.js.map +1 -1
- package/out/src/services/providers/WhatsOnChain.d.ts +76 -17
- package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/WhatsOnChain.js +241 -143
- package/out/src/services/providers/WhatsOnChain.js.map +1 -1
- package/out/src/services/providers/{echangeRates.d.ts → exchangeRates.d.ts} +4 -4
- package/out/src/services/providers/exchangeRates.d.ts.map +1 -0
- package/out/src/services/providers/{echangeRates.js → exchangeRates.js} +9 -9
- package/out/src/services/providers/exchangeRates.js.map +1 -0
- package/out/src/signer/WalletSigner.d.ts +3 -3
- package/out/src/signer/WalletSigner.d.ts.map +1 -1
- package/out/src/signer/WalletSigner.js.map +1 -1
- package/out/src/signer/methods/acquireDirectCertificate.d.ts +4 -2
- package/out/src/signer/methods/acquireDirectCertificate.d.ts.map +1 -1
- package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.d.ts +9 -3
- package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.js +27 -11
- package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
- package/out/src/signer/methods/completeSignedTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/completeSignedTransaction.js +15 -13
- package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
- package/out/src/signer/methods/createAction.d.ts +5 -9
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +6 -22
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/internalizeAction.d.ts +3 -2
- package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/signer/methods/internalizeAction.js +9 -8
- package/out/src/signer/methods/internalizeAction.js.map +1 -1
- package/out/src/signer/methods/proveCertificate.d.ts +4 -2
- package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
- package/out/src/signer/methods/proveCertificate.js +2 -2
- package/out/src/signer/methods/proveCertificate.js.map +1 -1
- package/out/src/signer/methods/signAction.d.ts +3 -3
- package/out/src/signer/methods/signAction.d.ts.map +1 -1
- package/out/src/signer/methods/signAction.js +5 -5
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/storage/StorageIdb.d.ts +106 -104
- package/out/src/storage/StorageIdb.d.ts.map +1 -1
- package/out/src/storage/StorageIdb.js +27 -60
- package/out/src/storage/StorageIdb.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts +179 -0
- package/out/src/storage/StorageKnex.d.ts.map +1 -0
- package/out/src/storage/StorageKnex.js +1215 -0
- package/out/src/storage/StorageKnex.js.map +1 -0
- package/out/src/storage/StorageProvider.d.ts +56 -47
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +44 -40
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReaderWriter.d.ts +78 -64
- package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
- package/out/src/storage/StorageReaderWriter.js +2 -2
- package/out/src/storage/StorageReaderWriter.js.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.d.ts +6 -4
- package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.js +3 -3
- package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts +6 -5
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.js +11 -9
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts +6 -4
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +67 -43
- 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 +27 -24
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.d.ts +3 -2
- package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +10 -8
- package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
- package/out/src/storage/methods/getSyncChunk.d.ts +2 -2
- package/out/src/storage/methods/getSyncChunk.d.ts.map +1 -1
- package/out/src/storage/methods/getSyncChunk.js +6 -5
- package/out/src/storage/methods/getSyncChunk.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts +3 -2
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +21 -19
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/methods/listActionsIdb.d.ts +3 -2
- package/out/src/storage/methods/listActionsIdb.d.ts.map +1 -1
- package/out/src/storage/methods/listActionsIdb.js +5 -5
- package/out/src/storage/methods/listActionsIdb.js.map +1 -1
- package/out/src/storage/methods/listActionsKnex.d.ts +6 -0
- package/out/src/storage/methods/listActionsKnex.d.ts.map +1 -0
- package/out/src/storage/methods/listActionsKnex.js +198 -0
- package/out/src/storage/methods/listActionsKnex.js.map +1 -0
- package/out/src/storage/methods/listOutputsIdb.d.ts +3 -2
- package/out/src/storage/methods/listOutputsIdb.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputsIdb.js +7 -3
- package/out/src/storage/methods/listOutputsIdb.js.map +1 -1
- package/out/src/storage/methods/listOutputsKnex.d.ts +6 -0
- package/out/src/storage/methods/listOutputsKnex.d.ts.map +1 -0
- package/out/src/storage/methods/listOutputsKnex.js +241 -0
- package/out/src/storage/methods/listOutputsKnex.js.map +1 -0
- package/out/src/storage/methods/processAction.d.ts +6 -3
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +45 -40
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/methods/purgeData.d.ts +4 -0
- package/out/src/storage/methods/purgeData.d.ts.map +1 -0
- package/out/src/storage/methods/purgeData.js +207 -0
- package/out/src/storage/methods/purgeData.js.map +1 -0
- package/out/src/storage/methods/purgeDataIdb.d.ts +2 -2
- package/out/src/storage/methods/purgeDataIdb.d.ts.map +1 -1
- package/out/src/storage/methods/purgeDataIdb.js.map +1 -1
- package/out/src/storage/methods/reviewStatus.d.ts +20 -0
- package/out/src/storage/methods/reviewStatus.d.ts.map +1 -0
- package/out/src/storage/methods/reviewStatus.js +84 -0
- package/out/src/storage/methods/reviewStatus.js.map +1 -0
- package/out/src/storage/methods/utils.js +2 -2
- package/out/src/storage/methods/utils.js.map +1 -1
- package/out/src/storage/remoting/StorageClient.d.ts +35 -25
- package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +3 -3
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageMobile.d.ts +35 -25
- package/out/src/storage/remoting/StorageMobile.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageMobile.js +3 -3
- package/out/src/storage/remoting/StorageMobile.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts +39 -0
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -0
- package/out/src/storage/schema/KnexMigrations.js +410 -0
- package/out/src/storage/schema/KnexMigrations.js.map +1 -0
- package/out/src/storage/schema/entities/EntityBase.d.ts +4 -3
- package/out/src/storage/schema/entities/EntityBase.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificate.d.ts +6 -5
- package/out/src/storage/schema/entities/EntityCertificate.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificate.js +5 -5
- package/out/src/storage/schema/entities/EntityCertificate.js.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificateField.d.ts +6 -5
- package/out/src/storage/schema/entities/EntityCertificateField.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityCertificateField.js +6 -5
- package/out/src/storage/schema/entities/EntityCertificateField.js.map +1 -1
- package/out/src/storage/schema/entities/EntityCommission.d.ts +6 -5
- package/out/src/storage/schema/entities/EntityCommission.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityCommission.js +6 -6
- package/out/src/storage/schema/entities/EntityCommission.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.d.ts +8 -7
- package/out/src/storage/schema/entities/EntityOutput.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutput.js +6 -6
- package/out/src/storage/schema/entities/EntityOutput.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.d.ts +6 -5
- package/out/src/storage/schema/entities/EntityOutputBasket.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.js +6 -6
- package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTag.d.ts +6 -5
- package/out/src/storage/schema/entities/EntityOutputTag.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTag.js +5 -5
- package/out/src/storage/schema/entities/EntityOutputTag.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts +6 -5
- package/out/src/storage/schema/entities/EntityOutputTagMap.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputTagMap.js +8 -7
- package/out/src/storage/schema/entities/EntityOutputTagMap.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts +10 -7
- package/out/src/storage/schema/entities/EntityProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +14 -12
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts +22 -18
- package/out/src/storage/schema/entities/EntityProvenTxReq.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js +17 -15
- package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.d.ts +13 -11
- package/out/src/storage/schema/entities/EntitySyncState.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +39 -24
- package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.d.ts +13 -9
- package/out/src/storage/schema/entities/EntityTransaction.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTransaction.js +13 -13
- package/out/src/storage/schema/entities/EntityTransaction.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabel.d.ts +6 -5
- package/out/src/storage/schema/entities/EntityTxLabel.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabel.js +5 -5
- package/out/src/storage/schema/entities/EntityTxLabel.js.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts +6 -5
- package/out/src/storage/schema/entities/EntityTxLabelMap.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityTxLabelMap.js +8 -7
- package/out/src/storage/schema/entities/EntityTxLabelMap.js.map +1 -1
- package/out/src/storage/schema/entities/EntityUser.d.ts +6 -5
- package/out/src/storage/schema/entities/EntityUser.d.ts.map +1 -1
- package/out/src/storage/schema/entities/EntityUser.js +8 -7
- package/out/src/storage/schema/entities/EntityUser.js.map +1 -1
- package/out/src/storage/schema/entities/MergeEntity.d.ts +6 -5
- package/out/src/storage/schema/entities/MergeEntity.d.ts.map +1 -1
- package/out/src/storage/schema/entities/MergeEntity.js +6 -5
- package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
- package/out/src/utility/ReaderUint8Array.d.ts +28 -0
- package/out/src/utility/ReaderUint8Array.d.ts.map +1 -0
- package/out/src/utility/ReaderUint8Array.js +166 -0
- package/out/src/utility/ReaderUint8Array.js.map +1 -0
- package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.js +4 -4
- package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
- package/out/src/utility/utilityHelpers.d.ts +11 -4
- package/out/src/utility/utilityHelpers.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.js +30 -9
- package/out/src/utility/utilityHelpers.js.map +1 -1
- package/out/src/utility/utilityHelpers.noBuffer.d.ts +22 -5
- package/out/src/utility/utilityHelpers.noBuffer.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.noBuffer.js +50 -9
- package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
- package/out/test/utils/TestUtilsWalletStorage.d.ts +522 -0
- package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -0
- package/out/test/utils/TestUtilsWalletStorage.js +1956 -0
- package/out/test/utils/TestUtilsWalletStorage.js.map +1 -0
- package/out/tsconfig.mobile.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/out/src/services/chaintracker/chaintracks/index.d.ts +0 -3
- package/out/src/services/chaintracker/chaintracks/index.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/index.js +0 -19
- package/out/src/services/chaintracker/chaintracks/index.js.map +0 -1
- package/out/src/services/chaintracker/index.d.ts +0 -4
- package/out/src/services/chaintracker/index.d.ts.map +0 -1
- package/out/src/services/chaintracker/index.js.map +0 -1
- package/out/src/services/index.d.ts +0 -2
- package/out/src/services/index.d.ts.map +0 -1
- package/out/src/services/index.js +0 -18
- package/out/src/services/index.js.map +0 -1
- package/out/src/services/providers/echangeRates.d.ts.map +0 -1
- package/out/src/services/providers/echangeRates.js.map +0 -1
- package/out/src/utility/utilityHelpers.buffer.d.ts +0 -18
- package/out/src/utility/utilityHelpers.buffer.d.ts.map +0 -1
- package/out/src/utility/utilityHelpers.buffer.js +0 -45
- package/out/src/utility/utilityHelpers.buffer.js.map +0 -1
|
@@ -4,11 +4,16 @@ exports.processAction = processAction;
|
|
|
4
4
|
exports.shareReqsWithWorld = shareReqsWithWorld;
|
|
5
5
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6
6
|
const sdk_1 = require("@bsv/sdk");
|
|
7
|
-
const index_client_1 = require("../../index.client");
|
|
8
7
|
const aggregateResults_1 = require("../../utility/aggregateResults");
|
|
8
|
+
const stampLog_1 = require("../../utility/stampLog");
|
|
9
|
+
const utilityHelpers_1 = require("../../utility/utilityHelpers");
|
|
10
|
+
const EntityProvenTxReq_1 = require("../schema/entities/EntityProvenTxReq");
|
|
11
|
+
const WERR_errors_1 = require("../../sdk/WERR_errors");
|
|
12
|
+
const parseTxScriptOffsets_1 = require("../../utility/parseTxScriptOffsets");
|
|
13
|
+
const utilityHelpers_noBuffer_1 = require("../../utility/utilityHelpers.noBuffer");
|
|
9
14
|
async function processAction(storage, auth, args) {
|
|
10
|
-
(0,
|
|
11
|
-
const userId = (0,
|
|
15
|
+
(0, stampLog_1.stampLog)(args.log, `start storage processActionSdk`);
|
|
16
|
+
const userId = (0, utilityHelpers_1.verifyId)(auth.userId);
|
|
12
17
|
const r = {
|
|
13
18
|
sendWithResults: undefined
|
|
14
19
|
};
|
|
@@ -18,19 +23,19 @@ async function processAction(storage, auth, args) {
|
|
|
18
23
|
const vargs = await validateCommitNewTxToStorageArgs(storage, userId, args);
|
|
19
24
|
({ req, log: args.log } = await commitNewTxToStorage(storage, userId, vargs));
|
|
20
25
|
if (!req)
|
|
21
|
-
throw new
|
|
26
|
+
throw new WERR_errors_1.WERR_INTERNAL();
|
|
22
27
|
// Add the new txid to sendWith unless there are no others to send and the noSend option is set.
|
|
23
28
|
if (args.isNoSend && !args.isSendWith)
|
|
24
|
-
(0,
|
|
29
|
+
(0, stampLog_1.stampLog)(args.log, `... storage processActionSdk newTx committed noSend`);
|
|
25
30
|
else {
|
|
26
31
|
txidsOfReqsToShareWithWorld.push(req.txid);
|
|
27
|
-
(0,
|
|
32
|
+
(0, stampLog_1.stampLog)(args.log, `... storage processActionSdk newTx committed sendWith ${req.txid}`);
|
|
28
33
|
}
|
|
29
34
|
}
|
|
30
35
|
const { swr, ndr } = await shareReqsWithWorld(storage, userId, txidsOfReqsToShareWithWorld, args.isDelayed);
|
|
31
36
|
r.sendWithResults = swr;
|
|
32
37
|
r.notDelayedResults = ndr;
|
|
33
|
-
(0,
|
|
38
|
+
(0, stampLog_1.stampLog)(args.log, `end storage processActionSdk`);
|
|
34
39
|
return r;
|
|
35
40
|
}
|
|
36
41
|
/**
|
|
@@ -57,7 +62,7 @@ async function shareReqsWithWorld(storage, userId, txids, isDelayed) {
|
|
|
57
62
|
status = 'unproven';
|
|
58
63
|
else if (getReq.status === 'readyToSend') {
|
|
59
64
|
status = 'sending';
|
|
60
|
-
readyToSendReqs.push(new
|
|
65
|
+
readyToSendReqs.push(new EntityProvenTxReq_1.EntityProvenTxReq(getReq.req));
|
|
61
66
|
}
|
|
62
67
|
swr.push({
|
|
63
68
|
txid: getReq.txid,
|
|
@@ -73,12 +78,12 @@ async function shareReqsWithWorld(storage, userId, txids, isDelayed) {
|
|
|
73
78
|
const beefIsValid = await r.beef.verify(await storage.getServices().getChainTracker());
|
|
74
79
|
if (!beefIsValid) {
|
|
75
80
|
console.log(`VERIFY FALSE BEEF: ${r.beef.toLogString()}`);
|
|
76
|
-
throw new
|
|
81
|
+
throw new WERR_errors_1.WERR_INTERNAL(`merged Beef failed validation.`);
|
|
77
82
|
}
|
|
78
83
|
}
|
|
79
84
|
// Set req batch property for the reqs being sent
|
|
80
85
|
// If delayed, also bump status to 'unsent' and we're done here
|
|
81
|
-
const batch = txids.length > 1 ? (0,
|
|
86
|
+
const batch = txids.length > 1 ? (0, utilityHelpers_1.randomBytesBase64)(16) : undefined;
|
|
82
87
|
if (isDelayed) {
|
|
83
88
|
// Just bump the req status to 'unsent' to enable background sending...
|
|
84
89
|
if (readyToSendReqIds.length > 0) {
|
|
@@ -107,51 +112,51 @@ async function shareReqsWithWorld(storage, userId, txids, isDelayed) {
|
|
|
107
112
|
}
|
|
108
113
|
async function validateCommitNewTxToStorageArgs(storage, userId, params) {
|
|
109
114
|
if (!params.reference || !params.txid || !params.rawTx)
|
|
110
|
-
throw new
|
|
115
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('One or more expected params are undefined.');
|
|
111
116
|
let tx;
|
|
112
117
|
try {
|
|
113
118
|
tx = sdk_1.Transaction.fromBinary(params.rawTx);
|
|
114
119
|
}
|
|
115
120
|
catch (e) {
|
|
116
|
-
throw new
|
|
121
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('Parsing serialized transaction failed.');
|
|
117
122
|
}
|
|
118
123
|
if (params.txid !== tx.id('hex'))
|
|
119
|
-
throw new
|
|
124
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION(`Hash of serialized transaction doesn't match expected txid`);
|
|
120
125
|
if (!(await storage.getServices()).nLockTimeIsFinal(tx)) {
|
|
121
|
-
throw new
|
|
126
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION(`This transaction is not final.
|
|
122
127
|
Ensure that the transaction meets the rules for being a finalized
|
|
123
128
|
which can be found at https://wiki.bitcoinsv.io/index.php/NLocktime_and_nSequence`);
|
|
124
129
|
}
|
|
125
|
-
const txScriptOffsets = (0,
|
|
126
|
-
const transaction = (0,
|
|
130
|
+
const txScriptOffsets = (0, parseTxScriptOffsets_1.parseTxScriptOffsets)(params.rawTx);
|
|
131
|
+
const transaction = (0, utilityHelpers_1.verifyOne)(await storage.findTransactions({
|
|
127
132
|
partial: { userId, reference: params.reference }
|
|
128
133
|
}));
|
|
129
134
|
if (!transaction.isOutgoing)
|
|
130
|
-
throw new
|
|
135
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('isOutgoing is not true');
|
|
131
136
|
if (!transaction.inputBEEF)
|
|
132
|
-
throw new
|
|
133
|
-
const beef = sdk_1.Beef.fromBinary((0,
|
|
137
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION();
|
|
138
|
+
const beef = sdk_1.Beef.fromBinary((0, utilityHelpers_noBuffer_1.asArray)(transaction.inputBEEF));
|
|
134
139
|
// TODO: Could check beef validates transaction inputs...
|
|
135
140
|
// Transaction must have unsigned or unprocessed status
|
|
136
141
|
if (transaction.status !== 'unsigned' && transaction.status !== 'unprocessed')
|
|
137
|
-
throw new
|
|
138
|
-
const transactionId = (0,
|
|
142
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION(`invalid transaction status ${transaction.status}`);
|
|
143
|
+
const transactionId = (0, utilityHelpers_1.verifyId)(transaction.transactionId);
|
|
139
144
|
const outputOutputs = await storage.findOutputs({
|
|
140
145
|
partial: { userId, transactionId }
|
|
141
146
|
});
|
|
142
147
|
const inputOutputs = await storage.findOutputs({
|
|
143
148
|
partial: { userId, spentBy: transactionId }
|
|
144
149
|
});
|
|
145
|
-
const commission = (0,
|
|
150
|
+
const commission = (0, utilityHelpers_1.verifyOneOrNone)(await storage.findCommissions({ partial: { transactionId, userId } }));
|
|
146
151
|
if (storage.commissionSatoshis > 0) {
|
|
147
152
|
// A commission is required...
|
|
148
153
|
if (!commission)
|
|
149
|
-
throw new
|
|
150
|
-
const commissionValid = tx.outputs.some(x => x.satoshis === commission.satoshis && x.lockingScript.toHex() === (0,
|
|
154
|
+
throw new WERR_errors_1.WERR_INTERNAL();
|
|
155
|
+
const commissionValid = tx.outputs.some(x => x.satoshis === commission.satoshis && x.lockingScript.toHex() === (0, utilityHelpers_noBuffer_1.asString)(commission.lockingScript));
|
|
151
156
|
if (!commissionValid)
|
|
152
|
-
throw new
|
|
157
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION('Transaction did not include an output to cover service fee.');
|
|
153
158
|
}
|
|
154
|
-
const req =
|
|
159
|
+
const req = EntityProvenTxReq_1.EntityProvenTxReq.fromTxid(params.txid, params.rawTx, transaction.inputBEEF);
|
|
155
160
|
req.addNotifyTransactionId(transactionId);
|
|
156
161
|
// "Processing" a transaction is the final step of creating a new one.
|
|
157
162
|
// If it is to be sent to the network directly (prior to return from processAction),
|
|
@@ -176,7 +181,7 @@ async function validateCommitNewTxToStorageArgs(storage, userId, params) {
|
|
|
176
181
|
postStatus = { req: 'unmined', tx: 'unproven' };
|
|
177
182
|
}
|
|
178
183
|
else
|
|
179
|
-
throw new
|
|
184
|
+
throw new WERR_errors_1.WERR_INTERNAL('logic error');
|
|
180
185
|
req.status = status.req;
|
|
181
186
|
const vargs = {
|
|
182
187
|
reference: params.reference,
|
|
@@ -209,13 +214,13 @@ async function validateCommitNewTxToStorageArgs(storage, userId, params) {
|
|
|
209
214
|
// outputs spendable will be updated for change to true and all others to !!o.tracked when tx has been broadcast
|
|
210
215
|
// MAX_OUTPUTSCRIPT_LENGTH is limit for scripts left in outputs table
|
|
211
216
|
for (const o of vargs.outputOutputs) {
|
|
212
|
-
const vout = (0,
|
|
217
|
+
const vout = (0, utilityHelpers_1.verifyInteger)(o.vout);
|
|
213
218
|
const offset = vargs.txScriptOffsets.outputs[vout];
|
|
214
|
-
const rawTxScript = (0,
|
|
215
|
-
if (o.lockingScript && rawTxScript !== (0,
|
|
216
|
-
throw new
|
|
219
|
+
const rawTxScript = (0, utilityHelpers_noBuffer_1.asString)(vargs.rawTx.slice(offset.offset, offset.offset + offset.length));
|
|
220
|
+
if (o.lockingScript && rawTxScript !== (0, utilityHelpers_noBuffer_1.asString)(o.lockingScript))
|
|
221
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION(`rawTx output locking script for vout ${vout} not equal to expected output script.`);
|
|
217
222
|
if (tx.outputs[vout].lockingScript.toHex() !== rawTxScript)
|
|
218
|
-
throw new
|
|
223
|
+
throw new WERR_errors_1.WERR_INVALID_OPERATION(`parsed transaction output locking script for vout ${vout} not equal to expected output script.`);
|
|
219
224
|
const update = {
|
|
220
225
|
txid: vargs.txid,
|
|
221
226
|
spendable: true, // spendability is gated by transaction status. Remains true until the output is spent.
|
|
@@ -231,26 +236,26 @@ async function validateCommitNewTxToStorageArgs(storage, userId, params) {
|
|
|
231
236
|
}
|
|
232
237
|
async function commitNewTxToStorage(storage, userId, vargs) {
|
|
233
238
|
let log = vargs.log;
|
|
234
|
-
log = (0,
|
|
239
|
+
log = (0, stampLog_1.stampLog)(log, `start storage commitNewTxToStorage`);
|
|
235
240
|
let req;
|
|
236
241
|
await storage.transaction(async (trx) => {
|
|
237
|
-
log = (0,
|
|
242
|
+
log = (0, stampLog_1.stampLog)(log, `... storage commitNewTxToStorage storage transaction start`);
|
|
238
243
|
// Create initial 'nosend' proven_tx_req record to store signed, valid rawTx and input beef
|
|
239
244
|
req = await vargs.req.insertOrMerge(storage, trx);
|
|
240
|
-
log = (0,
|
|
245
|
+
log = (0, stampLog_1.stampLog)(log, `... storage commitNewTxToStorage req inserted`);
|
|
241
246
|
for (const ou of vargs.outputUpdates) {
|
|
242
247
|
await storage.updateOutput(ou.id, ou.update, trx);
|
|
243
248
|
}
|
|
244
|
-
log = (0,
|
|
249
|
+
log = (0, stampLog_1.stampLog)(log, `... storage commitNewTxToStorage outputs updated`);
|
|
245
250
|
await storage.updateTransaction(vargs.transactionId, vargs.transactionUpdate, trx);
|
|
246
|
-
log = (0,
|
|
251
|
+
log = (0, stampLog_1.stampLog)(log, `... storage commitNewTxToStorage storage transaction end`);
|
|
247
252
|
});
|
|
248
|
-
log = (0,
|
|
253
|
+
log = (0, stampLog_1.stampLog)(log, `... storage commitNewTxToStorage storage transaction await done`);
|
|
249
254
|
const r = {
|
|
250
|
-
req: (0,
|
|
255
|
+
req: (0, utilityHelpers_1.verifyTruthy)(req),
|
|
251
256
|
log
|
|
252
257
|
};
|
|
253
|
-
log = (0,
|
|
258
|
+
log = (0, stampLog_1.stampLog)(log, `end storage commitNewTxToStorage`);
|
|
254
259
|
return r;
|
|
255
260
|
}
|
|
256
261
|
//# sourceMappingURL=processAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processAction.js","sourceRoot":"","sources":["../../../../../src/storage/methods/processAction.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"processAction.js","sourceRoot":"","sources":["../../../../../src/storage/methods/processAction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { StorageKnex } from '../StorageKnex';
|
|
2
|
+
import { PurgeParams, PurgeResults, TrxToken } from '../../sdk/WalletStorage.interfaces';
|
|
3
|
+
export declare function purgeData(storage: StorageKnex, params: PurgeParams, trx?: TrxToken): Promise<PurgeResults>;
|
|
4
|
+
//# sourceMappingURL=purgeData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purgeData.d.ts","sourceRoot":"","sources":["../../../../../src/storage/methods/purgeData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAyB,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAQ/G,wBAAsB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAkOhH"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.purgeData = purgeData;
|
|
4
|
+
const sdk_1 = require("@bsv/sdk");
|
|
5
|
+
const WalletError_1 = require("../../sdk/WalletError");
|
|
6
|
+
async function purgeData(storage, params, trx) {
|
|
7
|
+
const r = { count: 0, log: '' };
|
|
8
|
+
const defaultAge = 1000 * 60 * 60 * 24 * 14;
|
|
9
|
+
const runPurgeQuery = async (pq) => {
|
|
10
|
+
try {
|
|
11
|
+
pq.sql = pq.q.toString();
|
|
12
|
+
const count = await pq.q;
|
|
13
|
+
if (count > 0) {
|
|
14
|
+
r.count += count;
|
|
15
|
+
r.log += `${count} ${pq.log}\n`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
catch (eu) {
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
20
|
+
const e = WalletError_1.WalletError.fromUnknown(eu);
|
|
21
|
+
throw eu;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
if (params.purgeCompleted) {
|
|
25
|
+
const age = params.purgeCompletedAge || defaultAge;
|
|
26
|
+
const before = toSqlWhereDate(new Date(Date.now() - age));
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
const qs = [];
|
|
29
|
+
// select * from transactions where updated_at < '2024-08-20' and status = 'completed' and not provenTxId is null and (not truncatedExternalInputs is null or not beef is null or not rawTx is null)
|
|
30
|
+
qs.push({
|
|
31
|
+
log: 'conpleted transactions purged of transient data',
|
|
32
|
+
q: storage
|
|
33
|
+
.toDb(trx)('transactions')
|
|
34
|
+
.update({
|
|
35
|
+
inputBEEF: null,
|
|
36
|
+
rawTx: null
|
|
37
|
+
})
|
|
38
|
+
.where('updated_at', '<', before)
|
|
39
|
+
.where('status', 'completed')
|
|
40
|
+
.whereNotNull('provenTxId')
|
|
41
|
+
.where(function () {
|
|
42
|
+
this.orWhereNotNull('inputBEEF');
|
|
43
|
+
this.orWhereNotNull('rawTx');
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
const completedReqs = await storage
|
|
47
|
+
.toDb(trx)('proven_tx_reqs')
|
|
48
|
+
.select('provenTxReqId')
|
|
49
|
+
.where('updated_at', '<', before)
|
|
50
|
+
.where('status', 'completed')
|
|
51
|
+
.whereNotNull('provenTxId')
|
|
52
|
+
.where('notified', 1);
|
|
53
|
+
const completedReqIds = completedReqs.map(o => o.provenTxReqId);
|
|
54
|
+
if (completedReqIds.length > 0) {
|
|
55
|
+
qs.push({
|
|
56
|
+
log: 'completed proven_tx_reqs deleted',
|
|
57
|
+
q: storage.toDb(trx)('proven_tx_reqs').whereIn('provenTxReqId', completedReqIds).delete()
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
for (const q of qs)
|
|
61
|
+
await runPurgeQuery(q);
|
|
62
|
+
}
|
|
63
|
+
if (params.purgeFailed) {
|
|
64
|
+
const age = params.purgeFailedAge || defaultAge;
|
|
65
|
+
const before = toSqlWhereDate(new Date(Date.now() - age));
|
|
66
|
+
const qs = [];
|
|
67
|
+
const failedTxsQ = storage
|
|
68
|
+
.toDb(trx)('transactions')
|
|
69
|
+
.select('transactionId')
|
|
70
|
+
.where('updated_at', '<', before)
|
|
71
|
+
.where('status', 'failed');
|
|
72
|
+
const txs = await failedTxsQ;
|
|
73
|
+
const failedTxIds = txs.map(tx => tx.transactionId);
|
|
74
|
+
await deleteTransactions(failedTxIds, qs, 'failed', true);
|
|
75
|
+
const invalidReqs = await storage
|
|
76
|
+
.toDb(trx)('proven_tx_reqs')
|
|
77
|
+
.select('provenTxReqId')
|
|
78
|
+
.where('updated_at', '<', before)
|
|
79
|
+
.where('status', 'invalid');
|
|
80
|
+
const invalidReqIds = invalidReqs.map(o => o.provenTxReqId);
|
|
81
|
+
if (invalidReqIds.length > 0)
|
|
82
|
+
qs.push({
|
|
83
|
+
log: 'invalid proven_tx_reqs deleted',
|
|
84
|
+
q: storage.toDb(trx)('proven_tx_reqs').whereIn('provenTxReqId', invalidReqIds).delete()
|
|
85
|
+
});
|
|
86
|
+
const doubleSpendReqs = await storage
|
|
87
|
+
.toDb(trx)('proven_tx_reqs')
|
|
88
|
+
.select('provenTxReqId')
|
|
89
|
+
.where('updated_at', '<', before)
|
|
90
|
+
.where('status', 'doubleSpend');
|
|
91
|
+
const doubleSpendReqIds = doubleSpendReqs.map(o => o.provenTxReqId);
|
|
92
|
+
if (doubleSpendReqIds.length > 0)
|
|
93
|
+
qs.push({
|
|
94
|
+
log: 'doubleSpend proven_tx_reqs deleted',
|
|
95
|
+
q: storage.toDb(trx)('proven_tx_reqs').whereIn('provenTxReqId', doubleSpendReqIds).delete()
|
|
96
|
+
});
|
|
97
|
+
for (const q of qs)
|
|
98
|
+
await runPurgeQuery(q);
|
|
99
|
+
}
|
|
100
|
+
if (params.purgeSpent) {
|
|
101
|
+
const age = params.purgeSpentAge || defaultAge;
|
|
102
|
+
const before = toSqlWhereDate(new Date(Date.now() - age));
|
|
103
|
+
const beef = new sdk_1.Beef();
|
|
104
|
+
const utxos = await storage.findOutputs({
|
|
105
|
+
partial: { spendable: true },
|
|
106
|
+
txStatus: ['sending', 'unproven', 'completed', 'nosend']
|
|
107
|
+
});
|
|
108
|
+
for (const utxo of utxos) {
|
|
109
|
+
// Figure out all the txids required to prove the validity of this utxo and merge proofs into beef.
|
|
110
|
+
const options = {
|
|
111
|
+
mergeToBeef: beef,
|
|
112
|
+
ignoreServices: true
|
|
113
|
+
};
|
|
114
|
+
if (utxo.txid)
|
|
115
|
+
await storage.getBeefForTransaction(utxo.txid, options);
|
|
116
|
+
}
|
|
117
|
+
const proofTxids = {};
|
|
118
|
+
for (const btx of beef.txs)
|
|
119
|
+
proofTxids[btx.txid] = true;
|
|
120
|
+
let qs = [];
|
|
121
|
+
const spentTxsQ = storage
|
|
122
|
+
.toDb(trx)('transactions')
|
|
123
|
+
.where('updated_at', '<', before)
|
|
124
|
+
.where('status', 'completed')
|
|
125
|
+
.whereRaw(`not exists(select outputId from outputs as o where o.transactionId = transactions.transactionId and o.spendable = 1)`);
|
|
126
|
+
const txs = await spentTxsQ;
|
|
127
|
+
// Save any spent txid still needed to prove a utxo:
|
|
128
|
+
const nptxs = txs.filter(t => !proofTxids[t.txid || '']);
|
|
129
|
+
let spentTxIds = nptxs.map(tx => tx.transactionId);
|
|
130
|
+
if (spentTxIds.length > 0) {
|
|
131
|
+
const update = {
|
|
132
|
+
spentBy: null
|
|
133
|
+
};
|
|
134
|
+
qs.push({
|
|
135
|
+
log: 'spent outputs no longer tracked by spentBy',
|
|
136
|
+
q: storage
|
|
137
|
+
.toDb(trx)('outputs')
|
|
138
|
+
.update(storage.validatePartialForUpdate(update, undefined, ['spendable']))
|
|
139
|
+
.where('spendable', false)
|
|
140
|
+
.whereIn('spentBy', spentTxIds)
|
|
141
|
+
});
|
|
142
|
+
await deleteTransactions(spentTxIds, qs, 'spent', false);
|
|
143
|
+
for (const q of qs)
|
|
144
|
+
await runPurgeQuery(q);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Delete proven_txs no longer referenced by remaining transactions.
|
|
148
|
+
const qs = [];
|
|
149
|
+
qs.push({
|
|
150
|
+
log: 'orphan proven_txs deleted',
|
|
151
|
+
q: storage
|
|
152
|
+
.toDb(trx)('proven_txs')
|
|
153
|
+
.whereRaw(`not exists(select * from transactions as t where t.txid = proven_txs.txid or t.provenTxId = proven_txs.provenTxId)`)
|
|
154
|
+
.whereRaw(`not exists(select * from proven_tx_reqs as r where r.txid = proven_txs.txid or r.provenTxId = proven_txs.provenTxId)`)
|
|
155
|
+
.delete()
|
|
156
|
+
});
|
|
157
|
+
for (const q of qs)
|
|
158
|
+
await runPurgeQuery(q);
|
|
159
|
+
return r;
|
|
160
|
+
async function deleteTransactions(transactionIds, qs, reason, markNotSpentBy) {
|
|
161
|
+
if (transactionIds.length > 0) {
|
|
162
|
+
const outputs = await storage
|
|
163
|
+
.toDb(trx)('outputs')
|
|
164
|
+
.select('outputId')
|
|
165
|
+
.whereIn('transactionId', transactionIds);
|
|
166
|
+
const outputIds = outputs.map(o => o.outputId);
|
|
167
|
+
if (outputIds.length > 0) {
|
|
168
|
+
qs.push({
|
|
169
|
+
log: `${reason} output_tags_map deleted`,
|
|
170
|
+
q: storage.toDb(trx)('output_tags_map').whereIn('outputId', outputIds).delete()
|
|
171
|
+
});
|
|
172
|
+
qs.push({
|
|
173
|
+
log: `${reason} outputs deleted`,
|
|
174
|
+
q: storage.toDb(trx)('outputs').whereIn('outputId', outputIds).delete()
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
qs.push({
|
|
178
|
+
log: `${reason} tx_labels_map deleted`,
|
|
179
|
+
q: storage.toDb(trx)('tx_labels_map').whereIn('transactionId', transactionIds).delete()
|
|
180
|
+
});
|
|
181
|
+
qs.push({
|
|
182
|
+
log: `${reason} commissions deleted`,
|
|
183
|
+
q: storage.toDb(trx)('commissions').whereIn('transactionId', transactionIds).delete()
|
|
184
|
+
});
|
|
185
|
+
if (markNotSpentBy) {
|
|
186
|
+
qs.push({
|
|
187
|
+
log: 'unspent outputs updated to spendable',
|
|
188
|
+
q: storage
|
|
189
|
+
.toDb(trx)('outputs')
|
|
190
|
+
.update({ spendable: true, spentBy: null })
|
|
191
|
+
.whereIn('spentBy', transactionIds)
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
qs.push({
|
|
195
|
+
log: `${reason} transactions deleted`,
|
|
196
|
+
q: storage.toDb(trx)('transactions').whereIn('transactionId', transactionIds).delete()
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
function toSqlWhereDate(d) {
|
|
202
|
+
let s = d.toISOString();
|
|
203
|
+
s = s.replace('T', ' ');
|
|
204
|
+
s = s.replace('Z', '');
|
|
205
|
+
return s;
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=purgeData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purgeData.js","sourceRoot":"","sources":["../../../../../src/storage/methods/purgeData.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { sdk } from '../../index.client';
|
|
2
1
|
import { StorageIdb } from '../StorageIdb';
|
|
3
|
-
|
|
2
|
+
import { PurgeParams, PurgeResults, TrxToken } from '../../sdk/WalletStorage.interfaces';
|
|
3
|
+
export declare function purgeDataIdb(storage: StorageIdb, params: PurgeParams, trx?: TrxToken): Promise<PurgeResults>;
|
|
4
4
|
//# sourceMappingURL=purgeDataIdb.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purgeDataIdb.d.ts","sourceRoot":"","sources":["../../../../../src/storage/methods/purgeDataIdb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"purgeDataIdb.d.ts","sourceRoot":"","sources":["../../../../../src/storage/methods/purgeDataIdb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAExF,wBAAsB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAIlH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purgeDataIdb.js","sourceRoot":"","sources":["../../../../../src/storage/methods/purgeDataIdb.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"purgeDataIdb.js","sourceRoot":"","sources":["../../../../../src/storage/methods/purgeDataIdb.ts"],"names":[],"mappings":";;AAKA,oCAIC;AAJM,KAAK,UAAU,YAAY,CAAC,OAAmB,EAAE,MAAmB,EAAE,GAAc;IACzF,MAAM,CAAC,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;IAC7C,+BAA+B;IAC/B,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { StorageKnex } from '../StorageKnex';
|
|
2
|
+
import { TrxToken } from '../../sdk/WalletStorage.interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Looks for unpropagated state:
|
|
5
|
+
*
|
|
6
|
+
* 1. set transactions to 'failed' if not already failed and provenTxReq with matching txid has status of 'invalid'.
|
|
7
|
+
* 2. sets outputs to spendable true, spentBy undefined if spentBy is a transaction with status 'failed'.
|
|
8
|
+
* 3. sets transactions to 'completed' if provenTx with matching txid exists and current provenTxId is null.
|
|
9
|
+
*
|
|
10
|
+
* @param storage
|
|
11
|
+
* @param args
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export declare function reviewStatus(storage: StorageKnex, args: {
|
|
15
|
+
agedLimit: Date;
|
|
16
|
+
trx?: TrxToken;
|
|
17
|
+
}): Promise<{
|
|
18
|
+
log: string;
|
|
19
|
+
}>;
|
|
20
|
+
//# sourceMappingURL=reviewStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewStatus.d.ts","sourceRoot":"","sources":["../../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAA;AAK7D;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,QAAQ,CAAA;CAAE,GACxC,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAyE1B"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.reviewStatus = reviewStatus;
|
|
4
|
+
const WalletError_1 = require("../../sdk/WalletError");
|
|
5
|
+
/**
|
|
6
|
+
* Looks for unpropagated state:
|
|
7
|
+
*
|
|
8
|
+
* 1. set transactions to 'failed' if not already failed and provenTxReq with matching txid has status of 'invalid'.
|
|
9
|
+
* 2. sets outputs to spendable true, spentBy undefined if spentBy is a transaction with status 'failed'.
|
|
10
|
+
* 3. sets transactions to 'completed' if provenTx with matching txid exists and current provenTxId is null.
|
|
11
|
+
*
|
|
12
|
+
* @param storage
|
|
13
|
+
* @param args
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
async function reviewStatus(storage, args) {
|
|
17
|
+
const r = { log: '' };
|
|
18
|
+
const runReviewStatusQuery = async (pq) => {
|
|
19
|
+
try {
|
|
20
|
+
pq.sql = pq.q.toString();
|
|
21
|
+
const count = await pq.q;
|
|
22
|
+
if (count > 0) {
|
|
23
|
+
r.log += `${count} ${pq.log}\n`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch (eu) {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
|
+
const e = WalletError_1.WalletError.fromUnknown(eu);
|
|
29
|
+
throw eu;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const k = storage.toDb(args.trx);
|
|
33
|
+
const qs = [];
|
|
34
|
+
qs.push({
|
|
35
|
+
log: `transactions updated to status of 'failed' where provenTxReq with matching txid is 'invalid'`,
|
|
36
|
+
/*
|
|
37
|
+
UPDATE transactions SET status = 'failed'
|
|
38
|
+
WHERE exists(select 1 from proven_tx_reqs as r where transactions.txid = r.txid and r.status = 'invalid')
|
|
39
|
+
*/
|
|
40
|
+
q: k('transactions')
|
|
41
|
+
.update({ status: 'failed' })
|
|
42
|
+
.whereNot({ status: 'failed' })
|
|
43
|
+
.whereExists(function () {
|
|
44
|
+
this.select(k.raw(1))
|
|
45
|
+
.from('proven_tx_reqs as r')
|
|
46
|
+
.whereRaw(`transactions.txid = r.txid and r.status = 'invalid'`);
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
qs.push({
|
|
50
|
+
log: `outputs updated to spendable where spentBy is a transaction with status 'failed'`,
|
|
51
|
+
/*
|
|
52
|
+
UPDATE outputs SET spentBy = null, spendable = 1
|
|
53
|
+
where exists(select 1 from transactions as t where outputs.spentBy = t.transactionId and t.status = 'failed')
|
|
54
|
+
*/
|
|
55
|
+
q: k('outputs')
|
|
56
|
+
.update({ spentBy: null, spendable: true })
|
|
57
|
+
.whereExists(function () {
|
|
58
|
+
this.select(k.raw(1))
|
|
59
|
+
.from('transactions as t')
|
|
60
|
+
.whereRaw(`outputs.spentBy = t.transactionId and t.status = 'failed'`);
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
qs.push({
|
|
64
|
+
log: `transactions updated with provenTxId and status of 'completed' where provenTx with matching txid exists`,
|
|
65
|
+
/*
|
|
66
|
+
UPDATE transactions SET status = 'completed', provenTxId = p.provenTxId
|
|
67
|
+
FROM proven_txs p
|
|
68
|
+
WHERE transactions.txid = p.txid AND transactions.provenTxId IS NULL
|
|
69
|
+
*/
|
|
70
|
+
q: k('transactions')
|
|
71
|
+
.update({
|
|
72
|
+
status: 'completed',
|
|
73
|
+
provenTxId: k.raw('(SELECT provenTxId FROM proven_txs AS p WHERE transactions.txid = p.txid)')
|
|
74
|
+
})
|
|
75
|
+
.whereNull('provenTxId')
|
|
76
|
+
.whereExists(function () {
|
|
77
|
+
this.select(k.raw(1)).from('proven_txs as p').whereRaw('transactions.txid = p.txid');
|
|
78
|
+
})
|
|
79
|
+
});
|
|
80
|
+
for (const q of qs)
|
|
81
|
+
await runReviewStatusQuery(q);
|
|
82
|
+
return r;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=reviewStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reviewStatus.js","sourceRoot":"","sources":["../../../../../src/storage/methods/reviewStatus.ts"],"names":[],"mappings":";;AAkBA,oCA4EC;AA3FD,uDAAmD;AAInD;;;;;;;;;;GAUG;AACI,KAAK,UAAU,YAAY,CAChC,OAAoB,EACpB,IAAyC;IAEzC,MAAM,CAAC,GAAoB,EAAE,GAAG,EAAE,EAAE,EAAE,CAAA;IAEtC,MAAM,oBAAoB,GAAG,KAAK,EAAoB,EAAqB,EAAiB,EAAE;QAC5F,IAAI,CAAC;YACH,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;YACxB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC,CAAA;YACxB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;YACjC,CAAC;QACH,CAAC;QAAC,OAAO,EAAW,EAAE,CAAC;YACrB,6DAA6D;YAC7D,MAAM,CAAC,GAAG,yBAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YACrC,MAAM,EAAE,CAAA;QACV,CAAC;IACH,CAAC,CAAA;IAED,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEhC,MAAM,EAAE,GAAwB,EAAE,CAAA;IAElC,EAAE,CAAC,IAAI,CAAC;QACN,GAAG,EAAE,8FAA8F;QACnG;;;cAGM;QACN,CAAC,EAAE,CAAC,CAAmB,cAAc,CAAC;aACnC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;aAC9B,WAAW,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClB,IAAI,CAAC,qBAAqB,CAAC;iBAC3B,QAAQ,CAAC,qDAAqD,CAAC,CAAA;QACpE,CAAC,CAAC;KACL,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,GAAG,EAAE,kFAAkF;QACvF;;;cAGM;QACN,CAAC,EAAE,CAAC,CAAc,SAAS,CAAC;aACzB,MAAM,CAAC,EAAE,OAAO,EAAE,IAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aAClE,WAAW,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClB,IAAI,CAAC,mBAAmB,CAAC;iBACzB,QAAQ,CAAC,2DAA2D,CAAC,CAAA;QAC1E,CAAC,CAAC;KACL,CAAC,CAAA;IAEF,EAAE,CAAC,IAAI,CAAC;QACN,GAAG,EAAE,yGAAyG;QAC9G;;;;cAIM;QACN,CAAC,EAAE,CAAC,CAAmB,cAAc,CAAC;aACnC,MAAM,CAAC;YACN,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,2EAA2E,CAAC;SAC/F,CAAC;aACD,SAAS,CAAC,YAAY,CAAC;aACvB,WAAW,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAA;QACtF,CAAC,CAAC;KACL,CAAC,CAAA;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE;QAAE,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAA;IAEjD,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -4,14 +4,14 @@ exports.varUintSize = varUintSize;
|
|
|
4
4
|
exports.transactionInputSize = transactionInputSize;
|
|
5
5
|
exports.transactionOutputSize = transactionOutputSize;
|
|
6
6
|
exports.transactionSize = transactionSize;
|
|
7
|
-
const
|
|
7
|
+
const WERR_errors_1 = require("../../sdk/WERR_errors");
|
|
8
8
|
/**
|
|
9
9
|
* Returns the byte size required to encode number as Bitcoin VarUint
|
|
10
10
|
* @publicbody
|
|
11
11
|
*/
|
|
12
12
|
function varUintSize(val) {
|
|
13
13
|
if (val < 0)
|
|
14
|
-
throw new
|
|
14
|
+
throw new WERR_errors_1.WERR_INVALID_PARAMETER('varUint', 'non-negative');
|
|
15
15
|
return val <= 0xfc ? 1 : val <= 0xffff ? 3 : val <= 0xffffffff ? 5 : 9;
|
|
16
16
|
}
|
|
17
17
|
/**
|