@bsv/wallet-toolbox 1.1.60 → 1.1.62
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/.prettierrc +1 -1
- package/docs/client.md +39 -5
- package/docs/services.md +1 -0
- package/docs/setup.md +9 -26
- package/docs/storage.md +35 -0
- package/docs/wallet.md +39 -5
- package/out/src/Setup.d.ts.map +1 -1
- package/out/src/Setup.js +6 -16
- package/out/src/Setup.js.map +1 -1
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +4 -11
- package/out/src/Wallet.js.map +1 -1
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/MonitorDaemon.d.ts.map +1 -1
- package/out/src/monitor/MonitorDaemon.js +1 -3
- package/out/src/monitor/MonitorDaemon.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +2 -10
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
- package/out/src/monitor/tasks/TaskClock.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskClock.js +1 -1
- package/out/src/monitor/tasks/TaskClock.js.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +1 -2
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/src/monitor/tasks/TaskPurge.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskPurge.js +1 -2
- package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewStatus.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskReviewStatus.js +1 -2
- package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/out/src/sdk/CertOps.d.ts.map +1 -1
- package/out/src/sdk/CertOps.js +4 -12
- package/out/src/sdk/CertOps.js.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.d.ts.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
- package/out/src/sdk/WERR_errors.d.ts.map +1 -1
- package/out/src/sdk/WERR_errors.js.map +1 -1
- package/out/src/sdk/WalletError.d.ts.map +1 -1
- package/out/src/sdk/WalletError.js +1 -4
- package/out/src/sdk/WalletError.js.map +1 -1
- package/out/src/sdk/WalletServices.interfaces.d.ts +2 -0
- package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
- package/out/src/sdk/WalletStorage.interfaces.d.ts.map +1 -1
- package/out/src/sdk/__test/CertificateLifeCycle.test.js +1 -3
- package/out/src/sdk/__test/CertificateLifeCycle.test.js.map +1 -1
- package/out/src/sdk/__test/PrivilegedKeyManager.test.js +13 -26
- package/out/src/sdk/__test/PrivilegedKeyManager.test.js.map +1 -1
- package/out/src/sdk/types.d.ts.map +1 -1
- package/out/src/sdk/types.js +2 -10
- package/out/src/sdk/types.js.map +1 -1
- package/out/src/sdk/validationHelpers.d.ts.map +1 -1
- package/out/src/sdk/validationHelpers.js +5 -12
- package/out/src/sdk/validationHelpers.js.map +1 -1
- package/out/src/services/Services.d.ts +1 -0
- package/out/src/services/Services.d.ts.map +1 -1
- package/out/src/services/Services.js +29 -38
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/__tests/ARC.test.js +9 -0
- package/out/src/services/__tests/ARC.test.js.map +1 -1
- package/out/src/services/__tests/bitrails.test.js.map +1 -1
- package/out/src/services/__tests/getMerklePath.test.js.map +1 -1
- package/out/src/services/__tests/getRawTx.test.js.map +1 -1
- package/out/src/services/__tests/verifyBeef.test.js +2 -1
- package/out/src/services/__tests/verifyBeef.test.js.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.d.ts.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/BlockHeaderApi.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +1 -3
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
- package/out/src/services/providers/ARC.d.ts.map +1 -1
- package/out/src/services/providers/ARC.js +2 -3
- package/out/src/services/providers/ARC.js.map +1 -1
- package/out/src/services/providers/Bitails.d.ts.map +1 -1
- package/out/src/services/providers/Bitails.js +62 -134
- package/out/src/services/providers/Bitails.js.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
- package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
- package/out/src/services/providers/WhatsOnChain.js +6 -21
- package/out/src/services/providers/WhatsOnChain.js.map +1 -1
- package/out/src/services/providers/__tests/WhatsOnChain.test.js +1 -2
- package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +1 -1
- package/out/src/services/providers/echangeRates.d.ts.map +1 -1
- package/out/src/services/providers/echangeRates.js.map +1 -1
- 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.map +1 -1
- package/out/src/signer/methods/acquireDirectCertificate.js +1 -3
- package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.d.ts.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.js +3 -11
- package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
- package/out/src/signer/methods/createAction.d.ts.map +1 -1
- package/out/src/signer/methods/createAction.js +3 -10
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/signer/methods/internalizeAction.js.map +1 -1
- package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
- package/out/src/signer/methods/proveCertificate.js.map +1 -1
- package/out/src/signer/methods/signAction.d.ts.map +1 -1
- package/out/src/signer/methods/signAction.js +2 -7
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/storage/StorageKnex.d.ts.map +1 -1
- package/out/src/storage/StorageKnex.js +15 -44
- package/out/src/storage/StorageKnex.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +9 -34
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReader.d.ts.map +1 -1
- package/out/src/storage/StorageReader.js.map +1 -1
- package/out/src/storage/StorageReaderWriter.d.ts.map +1 -1
- 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.map +1 -1
- package/out/src/storage/WalletStorageManager.d.ts.map +1 -1
- package/out/src/storage/WalletStorageManager.js +5 -10
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/__test/WalletStorageManager.test.js +2 -8
- package/out/src/storage/__test/WalletStorageManager.test.js.map +1 -1
- package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js +10 -30
- package/out/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.js.map +1 -1
- package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.d.ts.map +1 -1
- package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.js +17 -28
- package/out/src/storage/methods/__test/GenerateChange/randomValsUsed1.js.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.d.ts.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +6 -20
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js.map +1 -1
- package/out/src/storage/methods/createAction.d.ts.map +1 -1
- package/out/src/storage/methods/createAction.js +4 -9
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.d.ts.map +1 -1
- package/out/src/storage/methods/generateChange.js +7 -18
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.d.ts.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +1 -3
- 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.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +2 -9
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/methods/listActions.d.ts.map +1 -1
- package/out/src/storage/methods/listActions.js +3 -15
- package/out/src/storage/methods/listActions.js.map +1 -1
- package/out/src/storage/methods/listCertificates.d.ts.map +1 -1
- package/out/src/storage/methods/listCertificates.js.map +1 -1
- package/out/src/storage/methods/listOutputs.d.ts.map +1 -1
- package/out/src/storage/methods/listOutputs.js +5 -12
- package/out/src/storage/methods/listOutputs.js.map +1 -1
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +4 -10
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/methods/purgeData.d.ts.map +1 -1
- package/out/src/storage/methods/purgeData.js +8 -32
- package/out/src/storage/methods/purgeData.js.map +1 -1
- package/out/src/storage/methods/reviewStatus.d.ts.map +1 -1
- package/out/src/storage/methods/reviewStatus.js +1 -3
- package/out/src/storage/methods/reviewStatus.js.map +1 -1
- package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +15 -41
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageServer.js +2 -5
- package/out/src/storage/remoting/StorageServer.js.map +1 -1
- package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
- package/out/src/storage/schema/KnexMigrations.js +24 -130
- package/out/src/storage/schema/KnexMigrations.js.map +1 -1
- package/out/src/storage/schema/entities/Certificate.d.ts.map +1 -1
- package/out/src/storage/schema/entities/Certificate.js +1 -1
- package/out/src/storage/schema/entities/Certificate.js.map +1 -1
- package/out/src/storage/schema/entities/CertificateField.d.ts.map +1 -1
- package/out/src/storage/schema/entities/CertificateField.js +2 -5
- package/out/src/storage/schema/entities/CertificateField.js.map +1 -1
- package/out/src/storage/schema/entities/Commission.d.ts.map +1 -1
- package/out/src/storage/schema/entities/Commission.js +2 -5
- package/out/src/storage/schema/entities/Commission.js.map +1 -1
- 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/MergeEntity.d.ts.map +1 -1
- package/out/src/storage/schema/entities/MergeEntity.js +14 -9
- package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
- package/out/src/storage/schema/entities/Output.d.ts.map +1 -1
- package/out/src/storage/schema/entities/Output.js +8 -25
- package/out/src/storage/schema/entities/Output.js.map +1 -1
- package/out/src/storage/schema/entities/OutputBasket.d.ts.map +1 -1
- package/out/src/storage/schema/entities/OutputBasket.js +1 -1
- package/out/src/storage/schema/entities/OutputBasket.js.map +1 -1
- package/out/src/storage/schema/entities/OutputTag.d.ts.map +1 -1
- package/out/src/storage/schema/entities/OutputTag.js +1 -1
- package/out/src/storage/schema/entities/OutputTag.js.map +1 -1
- package/out/src/storage/schema/entities/OutputTagMap.d.ts.map +1 -1
- package/out/src/storage/schema/entities/OutputTagMap.js +3 -7
- package/out/src/storage/schema/entities/OutputTagMap.js.map +1 -1
- package/out/src/storage/schema/entities/ProvenTx.d.ts.map +1 -1
- package/out/src/storage/schema/entities/ProvenTx.js +10 -20
- package/out/src/storage/schema/entities/ProvenTx.js.map +1 -1
- package/out/src/storage/schema/entities/ProvenTxReq.d.ts.map +1 -1
- package/out/src/storage/schema/entities/ProvenTxReq.js +8 -18
- package/out/src/storage/schema/entities/ProvenTxReq.js.map +1 -1
- package/out/src/storage/schema/entities/SyncState.d.ts +1 -0
- package/out/src/storage/schema/entities/SyncState.d.ts.map +1 -1
- package/out/src/storage/schema/entities/SyncState.js +41 -6
- package/out/src/storage/schema/entities/SyncState.js.map +1 -1
- package/out/src/storage/schema/entities/Transaction.d.ts.map +1 -1
- package/out/src/storage/schema/entities/Transaction.js +4 -13
- package/out/src/storage/schema/entities/Transaction.js.map +1 -1
- package/out/src/storage/schema/entities/TxLabel.d.ts.map +1 -1
- package/out/src/storage/schema/entities/TxLabel.js +1 -1
- package/out/src/storage/schema/entities/TxLabel.js.map +1 -1
- package/out/src/storage/schema/entities/TxLabelMap.d.ts.map +1 -1
- package/out/src/storage/schema/entities/TxLabelMap.js +3 -9
- package/out/src/storage/schema/entities/TxLabelMap.js.map +1 -1
- package/out/src/storage/schema/entities/User.d.ts.map +1 -1
- package/out/src/storage/schema/entities/User.js +3 -5
- package/out/src/storage/schema/entities/User.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/CertificateFieldTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/CertificateTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/CommissionTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/OutputBasketTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/OutputTagMapTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/OutputTagTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/OutputTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/ProvenTxReqTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +1 -2
- package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/SyncStateTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/TransactionTests.test.js +2 -2
- package/out/src/storage/schema/entities/__tests/TransactionTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/TxLabelMapTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/TxLabelTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/stampLogTests.test.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/usersTests.test.js.map +1 -1
- package/out/src/storage/schema/tables/TableSettings.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.d.ts.map +1 -1
- package/out/src/storage/sync/StorageMySQLDojoReader.js +1 -3
- package/out/src/storage/sync/StorageMySQLDojoReader.js.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.d.ts.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.js +1 -2
- package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
- package/out/src/utility/stampLog.d.ts.map +1 -1
- package/out/src/utility/stampLog.js.map +1 -1
- package/out/src/utility/tscProofToMerklePath.d.ts.map +1 -1
- package/out/src/utility/tscProofToMerklePath.js.map +1 -1
- package/out/src/utility/utilityHelpers.buffer.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.buffer.js.map +1 -1
- package/out/src/utility/utilityHelpers.d.ts.map +1 -1
- package/out/src/utility/utilityHelpers.js +1 -3
- package/out/src/utility/utilityHelpers.js.map +1 -1
- package/out/test/Wallet/StorageClient/storageClient.man.test.js.map +1 -1
- package/out/test/Wallet/action/internalizeAction.a.test.js.map +1 -1
- package/out/test/Wallet/certificate/acquireCertificate.test.js.map +1 -1
- package/out/test/Wallet/certificate/listCertificates.test.js.map +1 -1
- package/out/test/Wallet/get/getHeaderForHeight.test.js +2 -6
- package/out/test/Wallet/get/getHeaderForHeight.test.js.map +1 -1
- package/out/test/Wallet/get/getHeight.test.js.map +1 -1
- package/out/test/Wallet/get/getKnownTxids.test.js.map +1 -1
- package/out/test/Wallet/get/getNetwork.test.js.map +1 -1
- package/out/test/Wallet/get/getVersion.test.js.map +1 -1
- package/out/test/Wallet/live/walletLive.man.test.d.ts.map +1 -1
- package/out/test/Wallet/live/walletLive.man.test.js +3 -9
- package/out/test/Wallet/live/walletLive.man.test.js.map +1 -1
- package/out/test/Wallet/local/localWallet.man.test.d.ts.map +1 -1
- package/out/test/Wallet/local/localWallet.man.test.js +39 -31
- package/out/test/Wallet/local/localWallet.man.test.js.map +1 -1
- package/out/test/Wallet/specOps/specOps.man.test.js +1 -4
- package/out/test/Wallet/specOps/specOps.man.test.js.map +1 -1
- package/out/test/Wallet/support/janitor.man.test.js.map +1 -1
- package/out/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.js.map +1 -1
- package/out/test/Wallet/sync/setActive.test.js +73 -50
- package/out/test/Wallet/sync/setActive.test.js.map +1 -1
- package/out/test/checkDB.d.ts.map +1 -1
- package/out/test/checkDB.js.map +1 -1
- package/out/test/examples/backup.man.test.d.ts.map +1 -1
- package/out/test/examples/backup.man.test.js.map +1 -1
- package/out/test/examples/pushdrop.test.d.ts.map +1 -1
- package/out/test/examples/pushdrop.test.js +5 -4
- package/out/test/examples/pushdrop.test.js.map +1 -1
- package/out/test/monitor/Monitor.test.js.map +1 -1
- package/out/test/services/Services.test.js.map +1 -1
- package/out/test/storage/KnexMigrations.test.js.map +1 -1
- package/out/test/storage/StorageMySQLDojoReader.man.test.js +1 -3
- package/out/test/storage/StorageMySQLDojoReader.man.test.js.map +1 -1
- package/out/test/storage/count.test.js.map +1 -1
- package/out/test/storage/find.test.js +5 -10
- package/out/test/storage/find.test.js.map +1 -1
- package/out/test/storage/findLegacy.test.js.map +1 -1
- package/out/test/storage/insert.test.js.map +1 -1
- package/out/test/storage/update.test.js +7 -19
- package/out/test/storage/update.test.js.map +1 -1
- package/out/test/storage/update2.test.js +22 -24
- package/out/test/storage/update2.test.js.map +1 -1
- package/out/test/utils/TestUtilsWalletStorage.d.ts +3 -1
- package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -1
- package/out/test/utils/TestUtilsWalletStorage.js +52 -76
- package/out/test/utils/TestUtilsWalletStorage.js.map +1 -1
- package/out/test/wallet/action/abortAction.test.js.map +1 -1
- package/out/test/wallet/action/createAction.test.js +1 -2
- package/out/test/wallet/action/createAction.test.js.map +1 -1
- package/out/test/wallet/action/createAction2.test.d.ts.map +1 -1
- package/out/test/wallet/action/createAction2.test.js +6 -16
- package/out/test/wallet/action/createAction2.test.js.map +1 -1
- package/out/test/wallet/action/createActionToGenerateBeefs.man.test.js.map +1 -1
- package/out/test/wallet/action/internalizeAction.test.js.map +1 -1
- package/out/test/wallet/action/relinquishOutput.test.js.map +1 -1
- package/out/test/wallet/list/listActions.test.js.map +1 -1
- package/out/test/wallet/list/listActions2.test.js.map +1 -1
- package/out/test/wallet/list/listCertificates.test.js +2 -6
- package/out/test/wallet/list/listCertificates.test.js.map +1 -1
- package/out/test/wallet/list/listOutputs.test.js +2 -10
- package/out/test/wallet/list/listOutputs.test.js.map +1 -1
- package/out/test/wallet/sync/Wallet.sync.test.js +4 -6
- package/out/test/wallet/sync/Wallet.sync.test.js.map +1 -1
- package/out/tsconfig.all.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/Setup.ts +15 -52
- package/src/Wallet.ts +58 -161
- package/src/monitor/Monitor.ts +7 -22
- package/src/monitor/MonitorDaemon.ts +6 -23
- package/src/monitor/tasks/TaskCheckForProofs.ts +4 -23
- package/src/monitor/tasks/TaskClock.ts +1 -3
- package/src/monitor/tasks/TaskFailAbandoned.ts +1 -3
- package/src/monitor/tasks/TaskNewHeader.ts +1 -4
- package/src/monitor/tasks/TaskPurge.ts +1 -2
- package/src/monitor/tasks/TaskReviewStatus.ts +1 -3
- package/src/monitor/tasks/TaskSendWaiting.ts +3 -10
- package/src/sdk/CertOps.ts +31 -103
- package/src/sdk/PrivilegedKeyManager.ts +18 -48
- package/src/sdk/WERR_errors.ts +6 -25
- package/src/sdk/WalletError.ts +5 -21
- package/src/sdk/WalletServices.interfaces.ts +11 -33
- package/src/sdk/WalletStorage.interfaces.ts +25 -91
- package/src/sdk/__test/CertificateLifeCycle.test.ts +9 -27
- package/src/sdk/__test/PrivilegedKeyManager.test.ts +29 -66
- package/src/sdk/types.ts +6 -26
- package/src/sdk/validationHelpers.ts +111 -402
- package/src/services/Services.ts +51 -114
- package/src/services/__tests/ARC.test.ts +14 -1
- package/src/services/__tests/bitrails.test.ts +4 -15
- package/src/services/__tests/getMerklePath.test.ts +1 -2
- package/src/services/__tests/getRawTx.test.ts +1 -3
- package/src/services/__tests/verifyBeef.test.ts +2 -1
- package/src/services/chaintracker/ChaintracksChainTracker.ts +3 -13
- package/src/services/chaintracker/chaintracks/BlockHeaderApi.ts +4 -12
- package/src/services/chaintracker/chaintracks/ChaintracksServiceClient.ts +9 -27
- package/src/services/createDefaultWalletServicesOptions.ts +2 -5
- package/src/services/processingErrors/arcSuccessError.json +76 -0
- package/src/services/providers/ARC.ts +6 -25
- package/src/services/providers/Bitails.ts +61 -159
- package/src/services/providers/SdkWhatsOnChain.ts +4 -17
- package/src/services/providers/WhatsOnChain.ts +31 -100
- package/src/services/providers/__tests/WhatsOnChain.test.ts +5 -15
- package/src/services/providers/echangeRates.ts +7 -22
- package/src/signer/WalletSigner.ts +1 -5
- package/src/signer/methods/acquireDirectCertificate.ts +1 -4
- package/src/signer/methods/buildSignableTransaction.ts +5 -20
- package/src/signer/methods/createAction.ts +15 -54
- package/src/signer/methods/internalizeAction.ts +10 -39
- package/src/signer/methods/proveCertificate.ts +2 -5
- package/src/signer/methods/signAction.ts +9 -39
- package/src/storage/StorageKnex.ts +166 -499
- package/src/storage/StorageProvider.ts +75 -291
- package/src/storage/StorageReader.ts +20 -65
- package/src/storage/StorageReaderWriter.ts +67 -264
- package/src/storage/StorageSyncReader.ts +2 -5
- package/src/storage/WalletStorageManager.ts +33 -108
- package/src/storage/__test/WalletStorageManager.test.ts +6 -23
- package/src/storage/methods/__test/GenerateChange/generateChangeSdk.test.ts +53 -171
- package/src/storage/methods/__test/GenerateChange/randomValsUsed1.ts +17 -28
- package/src/storage/methods/attemptToPostReqsToNetwork.ts +9 -37
- package/src/storage/methods/createAction.ts +45 -181
- package/src/storage/methods/generateChange.ts +33 -114
- package/src/storage/methods/getBeefForTransaction.ts +7 -37
- package/src/storage/methods/getSyncChunk.ts +18 -69
- package/src/storage/methods/internalizeAction.ts +18 -70
- package/src/storage/methods/listActions.ts +6 -23
- package/src/storage/methods/listCertificates.ts +5 -14
- package/src/storage/methods/listOutputs.ts +15 -69
- package/src/storage/methods/processAction.ts +29 -104
- package/src/storage/methods/purgeData.ts +11 -45
- package/src/storage/methods/reviewStatus.ts +3 -9
- package/src/storage/remoting/StorageClient.ts +43 -146
- package/src/storage/remoting/StorageServer.ts +21 -59
- package/src/storage/schema/KnexMigrations.ts +34 -165
- package/src/storage/schema/entities/Certificate.ts +3 -14
- package/src/storage/schema/entities/CertificateField.ts +6 -28
- package/src/storage/schema/entities/Commission.ts +6 -23
- package/src/storage/schema/entities/EntityBase.ts +1 -6
- package/src/storage/schema/entities/MergeEntity.ts +14 -21
- package/src/storage/schema/entities/Output.ts +10 -39
- package/src/storage/schema/entities/OutputBasket.ts +4 -16
- package/src/storage/schema/entities/OutputTag.ts +4 -17
- package/src/storage/schema/entities/OutputTagMap.ts +7 -30
- package/src/storage/schema/entities/ProvenTx.ts +16 -57
- package/src/storage/schema/entities/ProvenTxReq.ts +29 -93
- package/src/storage/schema/entities/SyncState.ts +64 -116
- package/src/storage/schema/entities/Transaction.ts +10 -35
- package/src/storage/schema/entities/TxLabel.ts +4 -17
- package/src/storage/schema/entities/TxLabelMap.ts +6 -28
- package/src/storage/schema/entities/User.ts +8 -31
- package/src/storage/schema/entities/__tests/CertificateFieldTests.test.ts +23 -54
- package/src/storage/schema/entities/__tests/CertificateTests.test.ts +26 -59
- package/src/storage/schema/entities/__tests/CommissionTests.test.ts +2 -11
- package/src/storage/schema/entities/__tests/OutputBasketTests.test.ts +2 -10
- package/src/storage/schema/entities/__tests/OutputTagMapTests.test.ts +2 -10
- package/src/storage/schema/entities/__tests/OutputTagTests.test.ts +1 -4
- package/src/storage/schema/entities/__tests/OutputTests.test.ts +3 -14
- package/src/storage/schema/entities/__tests/ProvenTxReqTests.test.ts +4 -16
- package/src/storage/schema/entities/__tests/ProvenTxTests.test.ts +5 -18
- package/src/storage/schema/entities/__tests/SyncStateTests.test.ts +5 -26
- package/src/storage/schema/entities/__tests/TransactionTests.test.ts +12 -48
- package/src/storage/schema/entities/__tests/TxLabelMapTests.test.ts +4 -22
- package/src/storage/schema/entities/__tests/TxLabelTests.test.ts +2 -10
- package/src/storage/schema/entities/__tests/stampLogTests.test.ts +3 -10
- package/src/storage/schema/entities/__tests/usersTests.test.ts +4 -7
- package/src/storage/schema/tables/TableSettings.ts +1 -3
- package/src/storage/sync/StorageMySQLDojoReader.ts +47 -148
- package/src/utility/ScriptTemplateBRC29.ts +2 -11
- package/src/utility/stampLog.ts +2 -6
- package/src/utility/tscProofToMerklePath.ts +1 -4
- package/src/utility/utilityHelpers.buffer.ts +3 -12
- package/src/utility/utilityHelpers.ts +14 -49
- package/test/Wallet/StorageClient/storageClient.man.test.ts +2 -8
- package/test/Wallet/action/internalizeAction.a.test.ts +8 -23
- package/test/Wallet/certificate/acquireCertificate.test.ts +10 -24
- package/test/Wallet/certificate/listCertificates.test.ts +8 -18
- package/test/Wallet/get/getHeaderForHeight.test.ts +4 -15
- package/test/Wallet/get/getHeight.test.ts +2 -6
- package/test/Wallet/get/getKnownTxids.test.ts +1 -5
- package/test/Wallet/get/getNetwork.test.ts +1 -2
- package/test/Wallet/get/getVersion.test.ts +1 -2
- package/test/Wallet/live/walletLive.man.test.ts +14 -41
- package/test/Wallet/local/localWallet.man.test.ts +45 -102
- package/test/Wallet/specOps/specOps.man.test.ts +4 -13
- package/test/Wallet/support/janitor.man.test.ts +2 -7
- package/test/Wallet/sync/Wallet.updateWalletLegacyTestData.man.test.ts +11 -34
- package/test/Wallet/sync/setActive.test.ts +75 -61
- package/test/checkDB.ts +2 -8
- package/test/examples/backup.man.test.ts +2 -9
- package/test/examples/pushdrop.test.ts +7 -20
- package/test/monitor/Monitor.test.ts +33 -87
- package/test/services/Services.test.ts +8 -19
- package/test/storage/KnexMigrations.test.ts +3 -18
- package/test/storage/StorageMySQLDojoReader.man.test.ts +4 -15
- package/test/storage/count.test.ts +7 -24
- package/test/storage/find.test.ts +7 -29
- package/test/storage/findLegacy.test.ts +2 -5
- package/test/storage/insert.test.ts +3 -19
- package/test/storage/update.test.ts +47 -179
- package/test/storage/update2.test.ts +54 -176
- package/test/utils/TestUtilsWalletStorage.ts +139 -372
- package/test/wallet/action/abortAction.test.ts +4 -12
- package/test/wallet/action/createAction.test.ts +4 -14
- package/test/wallet/action/createAction2.test.ts +74 -208
- package/test/wallet/action/createActionToGenerateBeefs.man.test.ts +8 -11
- package/test/wallet/action/internalizeAction.test.ts +20 -72
- package/test/wallet/action/relinquishOutput.test.ts +3 -9
- package/test/wallet/list/listActions.test.ts +2 -9
- package/test/wallet/list/listActions2.test.ts +8 -34
- package/test/wallet/list/listCertificates.test.ts +5 -16
- package/test/wallet/list/listOutputs.test.ts +15 -54
- package/test/wallet/sync/Wallet.sync.test.ts +18 -49
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
/* Additional update tests for setting edge cases and exercising contraints (unique/foreign) */
|
|
2
2
|
/* Requires a new DB for each test */
|
|
3
3
|
import { _tu, TestSetup1 } from '../utils/TestUtilsWalletStorage'
|
|
4
|
-
import {
|
|
5
|
-
sdk,
|
|
6
|
-
StorageProvider,
|
|
7
|
-
StorageKnex,
|
|
8
|
-
verifyOne
|
|
9
|
-
} from '../../src/index.all'
|
|
4
|
+
import { sdk, StorageProvider, StorageKnex, verifyOne } from '../../src/index.all'
|
|
10
5
|
import {
|
|
11
6
|
normalizeDate,
|
|
12
7
|
setLogging,
|
|
@@ -44,12 +39,7 @@ describe('update2 tests', () => {
|
|
|
44
39
|
const chain: sdk.Chain = 'test'
|
|
45
40
|
|
|
46
41
|
const createDB = async (databaseName: string): Promise<void> => {
|
|
47
|
-
const localSQLiteFile = await _tu.newTmpFile(
|
|
48
|
-
`${databaseName}.sqlite`,
|
|
49
|
-
false,
|
|
50
|
-
false,
|
|
51
|
-
true
|
|
52
|
-
)
|
|
42
|
+
const localSQLiteFile = await _tu.newTmpFile(`${databaseName}.sqlite`, false, false, true)
|
|
53
43
|
|
|
54
44
|
// Need to pool connections
|
|
55
45
|
const knexSQLite: Knex = knex({
|
|
@@ -132,11 +122,7 @@ describe('update2 tests', () => {
|
|
|
132
122
|
merkleRoot: '1234',
|
|
133
123
|
rawTx: [4, 3, 2, 1]
|
|
134
124
|
}
|
|
135
|
-
await updateTable(
|
|
136
|
-
storage.updateProvenTx.bind(storage),
|
|
137
|
-
record[primaryKey],
|
|
138
|
-
testValues
|
|
139
|
-
)
|
|
125
|
+
await updateTable(storage.updateProvenTx.bind(storage), record[primaryKey], testValues)
|
|
140
126
|
const updatedTx = verifyOne(
|
|
141
127
|
await storage.findProvenTxs({
|
|
142
128
|
partial: { [primaryKey]: record[primaryKey] }
|
|
@@ -184,9 +170,7 @@ describe('update2 tests', () => {
|
|
|
184
170
|
partial: { [primaryKey]: record[primaryKey] }
|
|
185
171
|
})
|
|
186
172
|
)
|
|
187
|
-
expect(new Date(updatedRow[key]).toISOString()).toBe(
|
|
188
|
-
validDate.toISOString()
|
|
189
|
-
)
|
|
173
|
+
expect(new Date(updatedRow[key]).toISOString()).toBe(validDate.toISOString())
|
|
190
174
|
}
|
|
191
175
|
if (Array.isArray(value)) {
|
|
192
176
|
const validArray = value.map(v => v + 1)
|
|
@@ -254,24 +238,8 @@ describe('update2 tests', () => {
|
|
|
254
238
|
partial: { provenTxId: record.provenTxId }
|
|
255
239
|
})
|
|
256
240
|
)
|
|
257
|
-
expect(
|
|
258
|
-
|
|
259
|
-
t.created_at,
|
|
260
|
-
updates.created_at,
|
|
261
|
-
referenceTime,
|
|
262
|
-
10,
|
|
263
|
-
false
|
|
264
|
-
)
|
|
265
|
-
).toBe(true)
|
|
266
|
-
expect(
|
|
267
|
-
validateUpdateTime(
|
|
268
|
-
t.updated_at,
|
|
269
|
-
updates.updated_at,
|
|
270
|
-
referenceTime,
|
|
271
|
-
10,
|
|
272
|
-
false
|
|
273
|
-
)
|
|
274
|
-
).toBe(true)
|
|
241
|
+
expect(validateUpdateTime(t.created_at, updates.created_at, referenceTime, 10, false)).toBe(true)
|
|
242
|
+
expect(validateUpdateTime(t.updated_at, updates.updated_at, referenceTime, 10, false)).toBe(true)
|
|
275
243
|
}
|
|
276
244
|
}
|
|
277
245
|
}
|
|
@@ -297,21 +265,14 @@ describe('update2 tests', () => {
|
|
|
297
265
|
expect(r).toBeGreaterThan(0)
|
|
298
266
|
const insertedRecords = await storage.findProvenTxs({ partial: {} })
|
|
299
267
|
expect(insertedRecords.length).toBeGreaterThan(0)
|
|
300
|
-
const foundRecord = insertedRecords.find(
|
|
301
|
-
record => record.provenTxId === 3
|
|
302
|
-
)
|
|
268
|
+
const foundRecord = insertedRecords.find(record => record.provenTxId === 3)
|
|
303
269
|
expect(foundRecord).toBeDefined()
|
|
304
270
|
expect(foundRecord?.txid).toBe('mockTxid')
|
|
305
271
|
} catch (error: any) {
|
|
306
|
-
console.error(
|
|
307
|
-
'Error inserting initial record:',
|
|
308
|
-
(error as Error).message
|
|
309
|
-
)
|
|
272
|
+
console.error('Error inserting initial record:', (error as Error).message)
|
|
310
273
|
return
|
|
311
274
|
}
|
|
312
|
-
await expect(
|
|
313
|
-
storage.updateProvenTx(1, { provenTxId: 0 })
|
|
314
|
-
).rejects.toThrow(/FOREIGN KEY constraint failed/)
|
|
275
|
+
await expect(storage.updateProvenTx(1, { provenTxId: 0 })).rejects.toThrow(/FOREIGN KEY constraint failed/)
|
|
315
276
|
const r1 = await storage.updateProvenTx(3, { provenTxId: 0 })
|
|
316
277
|
await expect(Promise.resolve(r1)).resolves.toBe(1)
|
|
317
278
|
const r2 = await storage.findProvenTxs({ partial: {} })
|
|
@@ -334,14 +295,16 @@ describe('update2 tests', () => {
|
|
|
334
295
|
const primaryKey = 'provenTxReqId'
|
|
335
296
|
for (const { storage } of setups) {
|
|
336
297
|
const records = await storage.findProvenTxReqs({ partial: {} })
|
|
298
|
+
let i = -1
|
|
337
299
|
for (const record of records) {
|
|
300
|
+
i++
|
|
338
301
|
try {
|
|
339
302
|
const testValues: TableProvenTxReq = {
|
|
340
303
|
provenTxReqId: record.provenTxReqId,
|
|
341
304
|
provenTxId: 1,
|
|
342
305
|
batch: `batch-001`,
|
|
343
306
|
status: 'completed',
|
|
344
|
-
txid: `mockTxid-${
|
|
307
|
+
txid: `mockTxid-${i}`,
|
|
345
308
|
created_at: new Date('2024-12-30T23:00:00Z'),
|
|
346
309
|
updated_at: new Date('2024-12-30T23:05:00Z'),
|
|
347
310
|
attempts: 3,
|
|
@@ -351,10 +314,7 @@ describe('update2 tests', () => {
|
|
|
351
314
|
notify: JSON.stringify({ email: 'test@example.com', sent: true }),
|
|
352
315
|
rawTx: [1, 2, 3, 4]
|
|
353
316
|
}
|
|
354
|
-
const r1 = await storage.updateProvenTxReq(
|
|
355
|
-
record[primaryKey],
|
|
356
|
-
testValues
|
|
357
|
-
)
|
|
317
|
+
const r1 = await storage.updateProvenTxReq(record[primaryKey], testValues)
|
|
358
318
|
expect(r1).toBe(1)
|
|
359
319
|
const updatedRow = verifyOne(
|
|
360
320
|
await storage.findProvenTxReqs({
|
|
@@ -369,37 +329,22 @@ describe('update2 tests', () => {
|
|
|
369
329
|
expect(normalizedActual).toBe(normalizedExpected)
|
|
370
330
|
continue
|
|
371
331
|
}
|
|
372
|
-
if (
|
|
373
|
-
typeof value === 'string' &&
|
|
374
|
-
value.startsWith('{') &&
|
|
375
|
-
value.endsWith('}')
|
|
376
|
-
) {
|
|
332
|
+
if (typeof value === 'string' && value.startsWith('{') && value.endsWith('}')) {
|
|
377
333
|
expect(JSON.parse(actualValue)).toStrictEqual(JSON.parse(value))
|
|
378
334
|
continue
|
|
379
335
|
}
|
|
380
|
-
if (
|
|
381
|
-
typeof value === 'string' ||
|
|
382
|
-
typeof value === 'number' ||
|
|
383
|
-
typeof value === 'boolean'
|
|
384
|
-
) {
|
|
336
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
385
337
|
expect(actualValue).toBe(value)
|
|
386
338
|
continue
|
|
387
339
|
}
|
|
388
|
-
if (
|
|
389
|
-
typeof actualValue === 'object' &&
|
|
390
|
-
actualValue?.type === 'Buffer'
|
|
391
|
-
) {
|
|
340
|
+
if (typeof actualValue === 'object' && actualValue?.type === 'Buffer') {
|
|
392
341
|
const actualArray = actualValue.data || actualValue
|
|
393
342
|
const expectedArray =
|
|
394
|
-
Buffer.isBuffer(value) || Array.isArray(value)
|
|
395
|
-
? Array.from(value as ArrayLike<number>)
|
|
396
|
-
: value
|
|
343
|
+
Buffer.isBuffer(value) || Array.isArray(value) ? Array.from(value as ArrayLike<number>) : value
|
|
397
344
|
expect(actualArray).toStrictEqual(expectedArray)
|
|
398
345
|
continue
|
|
399
346
|
}
|
|
400
|
-
expect(
|
|
401
|
-
JSON.stringify({ type: 'Buffer', data: actualValue })
|
|
402
|
-
).toStrictEqual(JSON.stringify(value))
|
|
347
|
+
expect(JSON.stringify({ type: 'Buffer', data: actualValue })).toStrictEqual(JSON.stringify(value))
|
|
403
348
|
}
|
|
404
349
|
} catch (error: any) {
|
|
405
350
|
console.error(
|
|
@@ -453,12 +398,8 @@ describe('update2 tests', () => {
|
|
|
453
398
|
partial: { provenTxReqId: record.provenTxReqId }
|
|
454
399
|
})
|
|
455
400
|
)
|
|
456
|
-
expect(
|
|
457
|
-
|
|
458
|
-
).toBe(true)
|
|
459
|
-
expect(
|
|
460
|
-
validateUpdateTime(t.updated_at, updates.updated_at, referenceTime)
|
|
461
|
-
).toBe(true)
|
|
401
|
+
expect(validateUpdateTime(t.created_at, updates.created_at, referenceTime)).toBe(true)
|
|
402
|
+
expect(validateUpdateTime(t.updated_at, updates.updated_at, referenceTime)).toBe(true)
|
|
462
403
|
}
|
|
463
404
|
}
|
|
464
405
|
}
|
|
@@ -501,16 +442,12 @@ describe('update2 tests', () => {
|
|
|
501
442
|
const r3 = await storage.updateProvenTxReq(3, { batch: 'updatedBatch' })
|
|
502
443
|
await expect(Promise.resolve(r3)).resolves.toBe(1)
|
|
503
444
|
const updatedRecords = await storage.findProvenTxReqs({ partial: {} })
|
|
504
|
-
const updatedBatch = updatedRecords.find(
|
|
505
|
-
r => r.provenTxReqId === 3
|
|
506
|
-
)?.batch
|
|
445
|
+
const updatedBatch = updatedRecords.find(r => r.provenTxReqId === 3)?.batch
|
|
507
446
|
expect(updatedBatch).toBe('updatedBatch')
|
|
508
447
|
try {
|
|
509
448
|
const r4 = await storage.updateProvenTxReq(4, { batch: 'updatedBatch' })
|
|
510
449
|
if (r4 === 0) {
|
|
511
|
-
console.warn(
|
|
512
|
-
'No rows updated. Ensure UNIQUE constraint exists on the batch column if rejection is expected.'
|
|
513
|
-
)
|
|
450
|
+
console.warn('No rows updated. Ensure UNIQUE constraint exists on the batch column if rejection is expected.')
|
|
514
451
|
} else {
|
|
515
452
|
await expect(Promise.resolve(r4)).resolves.toBe(1)
|
|
516
453
|
}
|
|
@@ -519,13 +456,9 @@ describe('update2 tests', () => {
|
|
|
519
456
|
}
|
|
520
457
|
const r5 = await storage.updateProvenTxReq(3, { txid: 'newValidTxid' })
|
|
521
458
|
await expect(Promise.resolve(r5)).resolves.toBe(1)
|
|
522
|
-
await expect(
|
|
523
|
-
storage.updateProvenTxReq(4, { txid: 'newValidTxid' })
|
|
524
|
-
).rejects.toThrow(/UNIQUE constraint failed/)
|
|
459
|
+
await expect(storage.updateProvenTxReq(4, { txid: 'newValidTxid' })).rejects.toThrow(/UNIQUE constraint failed/)
|
|
525
460
|
const finalRecords = await storage.findProvenTxReqs({ partial: {} })
|
|
526
|
-
expect(finalRecords.find(r => r.provenTxReqId === 4)?.txid).toBe(
|
|
527
|
-
'mockTxid2'
|
|
528
|
-
)
|
|
461
|
+
expect(finalRecords.find(r => r.provenTxReqId === 4)?.txid).toBe('mockTxid2')
|
|
529
462
|
await storage.updateProvenTxReq(3, { batch: 'batch', txid: 'mockTxid1' })
|
|
530
463
|
}
|
|
531
464
|
})
|
|
@@ -544,10 +477,7 @@ describe('update2 tests', () => {
|
|
|
544
477
|
updated_at: new Date('2024-12-30T23:05:00Z'),
|
|
545
478
|
activeStorage: storage.getSettings().storageIdentityKey
|
|
546
479
|
}
|
|
547
|
-
const updateResult = await storage.updateUser(
|
|
548
|
-
record[primaryKey],
|
|
549
|
-
testValues
|
|
550
|
-
)
|
|
480
|
+
const updateResult = await storage.updateUser(record[primaryKey], testValues)
|
|
551
481
|
expect(updateResult).toBe(1)
|
|
552
482
|
const updatedRow = verifyOne(
|
|
553
483
|
await storage.findUsers({
|
|
@@ -611,15 +541,9 @@ describe('update2 tests', () => {
|
|
|
611
541
|
await storage.updateUser(record.userId, {
|
|
612
542
|
updated_at: updates.updated_at
|
|
613
543
|
})
|
|
614
|
-
const t = verifyOne(
|
|
615
|
-
|
|
616
|
-
)
|
|
617
|
-
expect(
|
|
618
|
-
validateUpdateTime(t.created_at, updates.created_at, referenceTime)
|
|
619
|
-
).toBe(true)
|
|
620
|
-
expect(
|
|
621
|
-
validateUpdateTime(t.updated_at, updates.updated_at, referenceTime)
|
|
622
|
-
).toBe(true)
|
|
544
|
+
const t = verifyOne(await storage.findUsers({ partial: { userId: record.userId } }))
|
|
545
|
+
expect(validateUpdateTime(t.created_at, updates.created_at, referenceTime)).toBe(true)
|
|
546
|
+
expect(validateUpdateTime(t.updated_at, updates.updated_at, referenceTime)).toBe(true)
|
|
623
547
|
}
|
|
624
548
|
}
|
|
625
549
|
}
|
|
@@ -637,32 +561,17 @@ describe('update2 tests', () => {
|
|
|
637
561
|
console.error('Error updating second record:', error.message)
|
|
638
562
|
return
|
|
639
563
|
}
|
|
640
|
-
const r1 = await triggerUniqueConstraintError(
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
'updateUser',
|
|
644
|
-
'users',
|
|
645
|
-
'userId',
|
|
646
|
-
{ userId: 2 }
|
|
647
|
-
)
|
|
564
|
+
const r1 = await triggerUniqueConstraintError(storage, 'findUsers', 'updateUser', 'users', 'userId', {
|
|
565
|
+
userId: 2
|
|
566
|
+
})
|
|
648
567
|
await expect(Promise.resolve(r1)).resolves.toBe(true)
|
|
649
|
-
const r2 = await triggerUniqueConstraintError(
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
'updateUser',
|
|
653
|
-
'users',
|
|
654
|
-
'userId',
|
|
655
|
-
{ identityKey: 'mockDupIdentityKey' }
|
|
656
|
-
)
|
|
568
|
+
const r2 = await triggerUniqueConstraintError(storage, 'findUsers', 'updateUser', 'users', 'userId', {
|
|
569
|
+
identityKey: 'mockDupIdentityKey'
|
|
570
|
+
})
|
|
657
571
|
await expect(Promise.resolve(r2)).resolves.toBe(true)
|
|
658
|
-
const r3 = await triggerUniqueConstraintError(
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
'updateUser',
|
|
662
|
-
'users',
|
|
663
|
-
'userId',
|
|
664
|
-
{ identityKey: 'mockUniqueIdentityKey' }
|
|
665
|
-
)
|
|
572
|
+
const r3 = await triggerUniqueConstraintError(storage, 'findUsers', 'updateUser', 'users', 'userId', {
|
|
573
|
+
identityKey: 'mockUniqueIdentityKey'
|
|
574
|
+
})
|
|
666
575
|
await expect(Promise.resolve(r3)).resolves.toBe(false)
|
|
667
576
|
}
|
|
668
577
|
})
|
|
@@ -670,14 +579,9 @@ describe('update2 tests', () => {
|
|
|
670
579
|
test('11_update User trigger DB foreign key constraint errors', async () => {
|
|
671
580
|
await createDB('User11')
|
|
672
581
|
for (const { storage } of setups) {
|
|
673
|
-
const r1 = await triggerForeignKeyConstraintError(
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
'updateUser',
|
|
677
|
-
'users',
|
|
678
|
-
'userId',
|
|
679
|
-
{ userId: 0 }
|
|
680
|
-
)
|
|
582
|
+
const r1 = await triggerForeignKeyConstraintError(storage, 'findUsers', 'updateUser', 'users', 'userId', {
|
|
583
|
+
userId: 0
|
|
584
|
+
})
|
|
681
585
|
await expect(Promise.resolve(r1)).resolves.toBe(true)
|
|
682
586
|
const r2 = await triggerForeignKeyConstraintError(
|
|
683
587
|
storage,
|
|
@@ -709,12 +613,8 @@ describe('update2 tests', () => {
|
|
|
709
613
|
console.error('Error inserting initial record:', error.message)
|
|
710
614
|
return
|
|
711
615
|
}
|
|
712
|
-
await expect(storage.updateUser(1, { userId: 0 })).rejects.toThrow(
|
|
713
|
-
|
|
714
|
-
)
|
|
715
|
-
await expect(storage.updateUser(2, { userId: 0 })).rejects.toThrow(
|
|
716
|
-
/FOREIGN KEY constraint failed/
|
|
717
|
-
)
|
|
616
|
+
await expect(storage.updateUser(1, { userId: 0 })).rejects.toThrow(/FOREIGN KEY constraint failed/)
|
|
617
|
+
await expect(storage.updateUser(2, { userId: 0 })).rejects.toThrow(/FOREIGN KEY constraint failed/)
|
|
718
618
|
const r1 = await storage.updateUser(3, { userId: 0 })
|
|
719
619
|
await expect(Promise.resolve(r1)).resolves.toBe(1)
|
|
720
620
|
const r2 = await storage.findUsers({ partial: {} })
|
|
@@ -733,9 +633,7 @@ describe('update2 tests', () => {
|
|
|
733
633
|
expect(r6[0].userId).toBe(1)
|
|
734
634
|
expect(r6[1].userId).toBe(2)
|
|
735
635
|
expect(r6[2].userId).toBe(9999)
|
|
736
|
-
await expect(storage.updateUser(1, { userId: 9999 })).rejects.toThrow(
|
|
737
|
-
/UNIQUE constraint failed/
|
|
738
|
-
)
|
|
636
|
+
await expect(storage.updateUser(1, { userId: 9999 })).rejects.toThrow(/UNIQUE constraint failed/)
|
|
739
637
|
const r7 = await storage.findUsers({ partial: {} })
|
|
740
638
|
expect(r7[0].userId).toBe(1)
|
|
741
639
|
expect(r7[1].userId).toBe(2)
|
|
@@ -748,9 +646,9 @@ describe('update2 tests', () => {
|
|
|
748
646
|
expect(r9[0].identityKey).not.toBe('mockValidIdentityKey')
|
|
749
647
|
expect(r9[1].identityKey).not.toBe('mockValidIdentityKey')
|
|
750
648
|
expect(r9[2].identityKey).toBe('mockValidIdentityKey')
|
|
751
|
-
await expect(
|
|
752
|
-
|
|
753
|
-
)
|
|
649
|
+
await expect(storage.updateUser(2, { identityKey: 'mockValidIdentityKey' })).rejects.toThrow(
|
|
650
|
+
/UNIQUE constraint failed/
|
|
651
|
+
)
|
|
754
652
|
const r10 = await storage.findUsers({ partial: {} })
|
|
755
653
|
expect(r10[0].identityKey).not.toBe('mockValidIdentityKey')
|
|
756
654
|
expect(r10[1].identityKey).not.toBe('mockValidIdentityKey')
|
|
@@ -795,10 +693,7 @@ describe('update2 tests', () => {
|
|
|
795
693
|
signature: 'mockSignature',
|
|
796
694
|
subject: 'mockSubject'
|
|
797
695
|
}
|
|
798
|
-
const r1 = await storage.updateCertificate(
|
|
799
|
-
record[primaryKey],
|
|
800
|
-
testValues
|
|
801
|
-
)
|
|
696
|
+
const r1 = await storage.updateCertificate(record[primaryKey], testValues)
|
|
802
697
|
expect(r1).toBe(1)
|
|
803
698
|
const updatedRow = verifyOne(
|
|
804
699
|
await storage.findCertificates({
|
|
@@ -813,11 +708,7 @@ describe('update2 tests', () => {
|
|
|
813
708
|
expect(normalizedActual).toBe(normalizedExpected)
|
|
814
709
|
continue
|
|
815
710
|
}
|
|
816
|
-
if (
|
|
817
|
-
typeof value === 'string' &&
|
|
818
|
-
value.startsWith('{') &&
|
|
819
|
-
value.endsWith('}')
|
|
820
|
-
) {
|
|
711
|
+
if (typeof value === 'string' && value.startsWith('{') && value.endsWith('}')) {
|
|
821
712
|
expect(JSON.parse(actualValue)).toStrictEqual(JSON.parse(value))
|
|
822
713
|
continue
|
|
823
714
|
}
|
|
@@ -827,9 +718,7 @@ describe('update2 tests', () => {
|
|
|
827
718
|
} else if (value === 0) {
|
|
828
719
|
expect(actualValue).toBe(false)
|
|
829
720
|
} else {
|
|
830
|
-
throw new Error(
|
|
831
|
-
`Unexpected value for expectedValue: ${value}. Must be 0 or 1.`
|
|
832
|
-
)
|
|
721
|
+
throw new Error(`Unexpected value for expectedValue: ${value}. Must be 0 or 1.`)
|
|
833
722
|
}
|
|
834
723
|
continue
|
|
835
724
|
}
|
|
@@ -837,21 +726,14 @@ describe('update2 tests', () => {
|
|
|
837
726
|
expect(actualValue).toBe(value)
|
|
838
727
|
continue
|
|
839
728
|
}
|
|
840
|
-
if (
|
|
841
|
-
typeof actualValue === 'object' &&
|
|
842
|
-
actualValue?.type === 'Buffer'
|
|
843
|
-
) {
|
|
729
|
+
if (typeof actualValue === 'object' && actualValue?.type === 'Buffer') {
|
|
844
730
|
const actualArray = actualValue.data || actualValue
|
|
845
731
|
const expectedArray =
|
|
846
|
-
Buffer.isBuffer(value) || Array.isArray(value)
|
|
847
|
-
? Array.from(value as ArrayLike<number>)
|
|
848
|
-
: value
|
|
732
|
+
Buffer.isBuffer(value) || Array.isArray(value) ? Array.from(value as ArrayLike<number>) : value
|
|
849
733
|
expect(actualArray).toStrictEqual(expectedArray)
|
|
850
734
|
continue
|
|
851
735
|
}
|
|
852
|
-
expect(
|
|
853
|
-
JSON.stringify({ type: 'Buffer', data: actualValue })
|
|
854
|
-
).toStrictEqual(JSON.stringify(value))
|
|
736
|
+
expect(JSON.stringify({ type: 'Buffer', data: actualValue })).toStrictEqual(JSON.stringify(value))
|
|
855
737
|
}
|
|
856
738
|
} catch (error: any) {
|
|
857
739
|
console.error(
|
|
@@ -905,12 +787,8 @@ describe('update2 tests', () => {
|
|
|
905
787
|
partial: { certificateId: record.certificateId }
|
|
906
788
|
})
|
|
907
789
|
)
|
|
908
|
-
expect(
|
|
909
|
-
|
|
910
|
-
).toBe(true)
|
|
911
|
-
expect(
|
|
912
|
-
validateUpdateTime(t.updated_at, updates.updated_at, referenceTime)
|
|
913
|
-
).toBe(true)
|
|
790
|
+
expect(validateUpdateTime(t.created_at, updates.created_at, referenceTime)).toBe(true)
|
|
791
|
+
expect(validateUpdateTime(t.updated_at, updates.updated_at, referenceTime)).toBe(true)
|
|
914
792
|
}
|
|
915
793
|
}
|
|
916
794
|
}
|