@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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsv/wallet-toolbox",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.62",
|
|
4
4
|
"description": "BRC100 conforming wallet, wallet storage and wallet signer components",
|
|
5
5
|
"main": "./out/src/index.js",
|
|
6
6
|
"types": "./out/src/index.d.ts",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
},
|
|
31
31
|
"homepage": "https://github.com/bitcoin-sv/wallet-toolbox#readme",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@bsv/auth-express-middleware": "^1.0.
|
|
33
|
+
"@bsv/auth-express-middleware": "^1.0.12",
|
|
34
34
|
"@bsv/payment-express-middleware": "^1.0.3",
|
|
35
|
-
"@bsv/sdk": "^1.3.
|
|
35
|
+
"@bsv/sdk": "^1.3.35",
|
|
36
36
|
"axios": "^0.29.0",
|
|
37
37
|
"express": "^4.21.2",
|
|
38
38
|
"knex": "^3.1.0",
|
package/src/Setup.ts
CHANGED
|
@@ -102,31 +102,18 @@ DEV_KEYS = '{
|
|
|
102
102
|
*/
|
|
103
103
|
static getEnv(chain: sdk.Chain): SetupEnv {
|
|
104
104
|
// Identity keys of the lead maintainer of this repo...
|
|
105
|
-
const identityKey =
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
: process.env.MY_TEST_IDENTITY
|
|
109
|
-
const identityKey2 =
|
|
110
|
-
chain === 'main'
|
|
111
|
-
? process.env.MY_MAIN_IDENTITY2
|
|
112
|
-
: process.env.MY_TEST_IDENTITY2
|
|
113
|
-
const filePath =
|
|
114
|
-
chain === 'main'
|
|
115
|
-
? process.env.MY_MAIN_FILEPATH
|
|
116
|
-
: process.env.MY_TEST_FILEPATH
|
|
105
|
+
const identityKey = chain === 'main' ? process.env.MY_MAIN_IDENTITY : process.env.MY_TEST_IDENTITY
|
|
106
|
+
const identityKey2 = chain === 'main' ? process.env.MY_MAIN_IDENTITY2 : process.env.MY_TEST_IDENTITY2
|
|
107
|
+
const filePath = chain === 'main' ? process.env.MY_MAIN_FILEPATH : process.env.MY_TEST_FILEPATH
|
|
117
108
|
const DEV_KEYS = process.env.DEV_KEYS || '{}'
|
|
118
109
|
const mySQLConnection = process.env.MYSQL_CONNECTION || '{}'
|
|
119
110
|
const taalApiKey = verifyTruthy(
|
|
120
|
-
chain === 'main'
|
|
121
|
-
? process.env.MAIN_TAAL_API_KEY
|
|
122
|
-
: process.env.TEST_TAAL_API_KEY,
|
|
111
|
+
chain === 'main' ? process.env.MAIN_TAAL_API_KEY : process.env.TEST_TAAL_API_KEY,
|
|
123
112
|
`.env value for '${chain.toUpperCase()}_TAAL_API_KEY' is required.`
|
|
124
113
|
)
|
|
125
114
|
|
|
126
115
|
if (!identityKey || !identityKey2)
|
|
127
|
-
throw new sdk.WERR_INVALID_OPERATION(
|
|
128
|
-
'.env is not a valid SetupEnv configuration.'
|
|
129
|
-
)
|
|
116
|
+
throw new sdk.WERR_INVALID_OPERATION('.env is not a valid SetupEnv configuration.')
|
|
130
117
|
|
|
131
118
|
return {
|
|
132
119
|
chain,
|
|
@@ -153,20 +140,12 @@ DEV_KEYS = '{
|
|
|
153
140
|
const rootKey = PrivateKey.fromHex(args.rootKeyHex)
|
|
154
141
|
const identityKey = rootKey.toPublicKey().toString()
|
|
155
142
|
const keyDeriver = new KeyDeriver(rootKey)
|
|
156
|
-
const storage = new WalletStorageManager(
|
|
157
|
-
identityKey,
|
|
158
|
-
args.active,
|
|
159
|
-
args.backups
|
|
160
|
-
)
|
|
143
|
+
const storage = new WalletStorageManager(identityKey, args.active, args.backups)
|
|
161
144
|
if (storage.canMakeAvailable()) await storage.makeAvailable()
|
|
162
145
|
const serviceOptions = Services.createDefaultOptions(chain)
|
|
163
146
|
serviceOptions.taalApiKey = args.env.taalApiKey
|
|
164
147
|
const services = new Services(serviceOptions)
|
|
165
|
-
const monopts = Monitor.createDefaultWalletMonitorOptions(
|
|
166
|
-
chain,
|
|
167
|
-
storage,
|
|
168
|
-
services
|
|
169
|
-
)
|
|
148
|
+
const monopts = Monitor.createDefaultWalletMonitorOptions(chain, storage, services)
|
|
170
149
|
const monitor = new Monitor(monopts)
|
|
171
150
|
monitor.addDefaultTasks()
|
|
172
151
|
const privilegedKeyManager = args.privilegedKeyGetter
|
|
@@ -208,9 +187,7 @@ DEV_KEYS = '{
|
|
|
208
187
|
privilegedKeyGetter?: () => Promise<PrivateKey>
|
|
209
188
|
}): Promise<Wallet> {
|
|
210
189
|
const chain = args.chain
|
|
211
|
-
const endpointUrl =
|
|
212
|
-
args.storageUrl ||
|
|
213
|
-
`https://${args.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`
|
|
190
|
+
const endpointUrl = args.storageUrl || `https://${args.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`
|
|
214
191
|
const rootKey = PrivateKey.fromHex(args.rootKeyHex)
|
|
215
192
|
const keyDeriver = new KeyDeriver(rootKey)
|
|
216
193
|
const storage = new WalletStorageManager(keyDeriver.identityKey)
|
|
@@ -234,14 +211,11 @@ DEV_KEYS = '{
|
|
|
234
211
|
/**
|
|
235
212
|
* @publicbody
|
|
236
213
|
*/
|
|
237
|
-
static async createWalletClient(
|
|
238
|
-
args: SetupWalletClientArgs
|
|
239
|
-
): Promise<SetupWalletClient> {
|
|
214
|
+
static async createWalletClient(args: SetupWalletClientArgs): Promise<SetupWalletClient> {
|
|
240
215
|
const wo = await Setup.createWallet(args)
|
|
241
216
|
|
|
242
217
|
const endpointUrl =
|
|
243
|
-
args.endpointUrl ||
|
|
244
|
-
`https://${args.env.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`
|
|
218
|
+
args.endpointUrl || `https://${args.env.chain !== 'main' ? 'staging-' : ''}storage.babbage.systems`
|
|
245
219
|
|
|
246
220
|
const client = new StorageClient(wo.wallet, endpointUrl)
|
|
247
221
|
await wo.storage.addWalletStorageProvider(client)
|
|
@@ -276,10 +250,7 @@ DEV_KEYS = '{
|
|
|
276
250
|
/**
|
|
277
251
|
* @publicbody
|
|
278
252
|
*/
|
|
279
|
-
static getUnlockP2PKH(
|
|
280
|
-
priv: PrivateKey,
|
|
281
|
-
satoshis: number
|
|
282
|
-
): sdk.ScriptTemplateUnlock {
|
|
253
|
+
static getUnlockP2PKH(priv: PrivateKey, satoshis: number): sdk.ScriptTemplateUnlock {
|
|
283
254
|
const p2pkh = new P2PKH()
|
|
284
255
|
const lock = Setup.getLockP2PKH(Setup.getKeyPair(priv).address)
|
|
285
256
|
// Prepare to pay with SIGHASH_ALL and without ANYONE_CAN_PAY.
|
|
@@ -381,9 +352,7 @@ DEV_KEYS = '{
|
|
|
381
352
|
*
|
|
382
353
|
* @publicbody
|
|
383
354
|
*/
|
|
384
|
-
static async createWalletKnex(
|
|
385
|
-
args: SetupWalletKnexArgs
|
|
386
|
-
): Promise<SetupWalletKnex> {
|
|
355
|
+
static async createWalletKnex(args: SetupWalletKnexArgs): Promise<SetupWalletKnex> {
|
|
387
356
|
const wo = await Setup.createWallet(args)
|
|
388
357
|
const activeStorage = await Setup.createStorageKnex(args)
|
|
389
358
|
await wo.storage.addWalletStorageProvider(activeStorage)
|
|
@@ -400,9 +369,7 @@ DEV_KEYS = '{
|
|
|
400
369
|
/**
|
|
401
370
|
* @returns {StorageKnex} - `Knex` based storage provider for a wallet. May be used for either active storage or backup storage.
|
|
402
371
|
*/
|
|
403
|
-
static async createStorageKnex(
|
|
404
|
-
args: SetupWalletKnexArgs
|
|
405
|
-
): Promise<StorageKnex> {
|
|
372
|
+
static async createStorageKnex(args: SetupWalletKnexArgs): Promise<StorageKnex> {
|
|
406
373
|
// Create a temporary wallet setup to consistently resolve optional args.
|
|
407
374
|
const wo = await Setup.createWallet(args)
|
|
408
375
|
const storage = new StorageKnex({
|
|
@@ -452,9 +419,7 @@ DEV_KEYS = '{
|
|
|
452
419
|
/**
|
|
453
420
|
* @publicbody
|
|
454
421
|
*/
|
|
455
|
-
static async createWalletMySQL(
|
|
456
|
-
args: SetupWalletMySQLArgs
|
|
457
|
-
): Promise<SetupWalletKnex> {
|
|
422
|
+
static async createWalletMySQL(args: SetupWalletMySQLArgs): Promise<SetupWalletKnex> {
|
|
458
423
|
return await this.createWalletKnex({
|
|
459
424
|
...args,
|
|
460
425
|
knex: Setup.createMySQLKnex(args.env.mySQLConnection, args.databaseName)
|
|
@@ -464,9 +429,7 @@ DEV_KEYS = '{
|
|
|
464
429
|
/**
|
|
465
430
|
* @publicbody
|
|
466
431
|
*/
|
|
467
|
-
static async createWalletSQLite(
|
|
468
|
-
args: SetupWalletSQLiteArgs
|
|
469
|
-
): Promise<SetupWalletKnex> {
|
|
432
|
+
static async createWalletSQLite(args: SetupWalletSQLiteArgs): Promise<SetupWalletKnex> {
|
|
470
433
|
return await this.createWalletKnex({
|
|
471
434
|
...args,
|
|
472
435
|
knex: Setup.createSQLiteKnex(args.filePath)
|
package/src/Wallet.ts
CHANGED
|
@@ -205,9 +205,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
205
205
|
): Promise<GetPublicKeyResult> {
|
|
206
206
|
if (args.privileged) {
|
|
207
207
|
if (!this.privilegedKeyManager) {
|
|
208
|
-
throw new Error(
|
|
209
|
-
'Privileged operations require the Wallet to be configured with a privileged key manager.'
|
|
210
|
-
)
|
|
208
|
+
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
|
|
211
209
|
}
|
|
212
210
|
return this.privilegedKeyManager.getPublicKey(args)
|
|
213
211
|
}
|
|
@@ -219,9 +217,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
219
217
|
): Promise<RevealCounterpartyKeyLinkageResult> {
|
|
220
218
|
if (args.privileged) {
|
|
221
219
|
if (!this.privilegedKeyManager) {
|
|
222
|
-
throw new Error(
|
|
223
|
-
'Privileged operations require the Wallet to be configured with a privileged key manager.'
|
|
224
|
-
)
|
|
220
|
+
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
|
|
225
221
|
}
|
|
226
222
|
return this.privilegedKeyManager.revealCounterpartyKeyLinkage(args)
|
|
227
223
|
}
|
|
@@ -233,65 +229,43 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
233
229
|
): Promise<RevealSpecificKeyLinkageResult> {
|
|
234
230
|
if (args.privileged) {
|
|
235
231
|
if (!this.privilegedKeyManager) {
|
|
236
|
-
throw new Error(
|
|
237
|
-
'Privileged operations require the Wallet to be configured with a privileged key manager.'
|
|
238
|
-
)
|
|
232
|
+
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
|
|
239
233
|
}
|
|
240
234
|
return this.privilegedKeyManager.revealSpecificKeyLinkage(args)
|
|
241
235
|
}
|
|
242
236
|
return this.proto.revealSpecificKeyLinkage(args)
|
|
243
237
|
}
|
|
244
|
-
encrypt(
|
|
245
|
-
args: WalletEncryptArgs,
|
|
246
|
-
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
247
|
-
): Promise<WalletEncryptResult> {
|
|
238
|
+
encrypt(args: WalletEncryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletEncryptResult> {
|
|
248
239
|
if (args.privileged) {
|
|
249
240
|
if (!this.privilegedKeyManager) {
|
|
250
|
-
throw new Error(
|
|
251
|
-
'Privileged operations require the Wallet to be configured with a privileged key manager.'
|
|
252
|
-
)
|
|
241
|
+
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
|
|
253
242
|
}
|
|
254
243
|
return this.privilegedKeyManager.encrypt(args)
|
|
255
244
|
}
|
|
256
245
|
return this.proto.encrypt(args)
|
|
257
246
|
}
|
|
258
|
-
decrypt(
|
|
259
|
-
args: WalletDecryptArgs,
|
|
260
|
-
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
261
|
-
): Promise<WalletDecryptResult> {
|
|
247
|
+
decrypt(args: WalletDecryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletDecryptResult> {
|
|
262
248
|
if (args.privileged) {
|
|
263
249
|
if (!this.privilegedKeyManager) {
|
|
264
|
-
throw new Error(
|
|
265
|
-
'Privileged operations require the Wallet to be configured with a privileged key manager.'
|
|
266
|
-
)
|
|
250
|
+
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
|
|
267
251
|
}
|
|
268
252
|
return this.privilegedKeyManager.decrypt(args)
|
|
269
253
|
}
|
|
270
254
|
return this.proto.decrypt(args)
|
|
271
255
|
}
|
|
272
|
-
createHmac(
|
|
273
|
-
args: CreateHmacArgs,
|
|
274
|
-
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
275
|
-
): Promise<CreateHmacResult> {
|
|
256
|
+
createHmac(args: CreateHmacArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<CreateHmacResult> {
|
|
276
257
|
if (args.privileged) {
|
|
277
258
|
if (!this.privilegedKeyManager) {
|
|
278
|
-
throw new Error(
|
|
279
|
-
'Privileged operations require the Wallet to be configured with a privileged key manager.'
|
|
280
|
-
)
|
|
259
|
+
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
|
|
281
260
|
}
|
|
282
261
|
return this.privilegedKeyManager.createHmac(args)
|
|
283
262
|
}
|
|
284
263
|
return this.proto.createHmac(args)
|
|
285
264
|
}
|
|
286
|
-
verifyHmac(
|
|
287
|
-
args: VerifyHmacArgs,
|
|
288
|
-
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
289
|
-
): Promise<VerifyHmacResult> {
|
|
265
|
+
verifyHmac(args: VerifyHmacArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<VerifyHmacResult> {
|
|
290
266
|
if (args.privileged) {
|
|
291
267
|
if (!this.privilegedKeyManager) {
|
|
292
|
-
throw new Error(
|
|
293
|
-
'Privileged operations require the Wallet to be configured with a privileged key manager.'
|
|
294
|
-
)
|
|
268
|
+
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
|
|
295
269
|
}
|
|
296
270
|
return this.privilegedKeyManager.verifyHmac(args)
|
|
297
271
|
}
|
|
@@ -303,9 +277,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
303
277
|
): Promise<CreateSignatureResult> {
|
|
304
278
|
if (args.privileged) {
|
|
305
279
|
if (!this.privilegedKeyManager) {
|
|
306
|
-
throw new Error(
|
|
307
|
-
'Privileged operations require the Wallet to be configured with a privileged key manager.'
|
|
308
|
-
)
|
|
280
|
+
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
|
|
309
281
|
}
|
|
310
282
|
return this.privilegedKeyManager.createSignature(args)
|
|
311
283
|
}
|
|
@@ -317,9 +289,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
317
289
|
): Promise<VerifySignatureResult> {
|
|
318
290
|
if (args.privileged) {
|
|
319
291
|
if (!this.privilegedKeyManager) {
|
|
320
|
-
throw new Error(
|
|
321
|
-
'Privileged operations require the Wallet to be configured with a privileged key manager.'
|
|
322
|
-
)
|
|
292
|
+
throw new Error('Privileged operations require the Wallet to be configured with a privileged key manager.')
|
|
323
293
|
}
|
|
324
294
|
return this.privilegedKeyManager.verifySignature(args)
|
|
325
295
|
}
|
|
@@ -328,10 +298,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
328
298
|
|
|
329
299
|
getServices(): sdk.WalletServices {
|
|
330
300
|
if (!this.services)
|
|
331
|
-
throw new sdk.WERR_INVALID_PARAMETER(
|
|
332
|
-
'services',
|
|
333
|
-
'valid in constructor arguments to be retreived here.'
|
|
334
|
-
)
|
|
301
|
+
throw new sdk.WERR_INVALID_PARAMETER('services', 'valid in constructor arguments to be retreived here.')
|
|
335
302
|
return this.services
|
|
336
303
|
}
|
|
337
304
|
|
|
@@ -375,10 +342,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
375
342
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
376
343
|
): Promise<ListActionsResult> {
|
|
377
344
|
sdk.validateOriginator(originator)
|
|
378
|
-
const { vargs } = this.validateAuthAndArgs(
|
|
379
|
-
args,
|
|
380
|
-
sdk.validateListActionsArgs
|
|
381
|
-
)
|
|
345
|
+
const { vargs } = this.validateAuthAndArgs(args, sdk.validateListActionsArgs)
|
|
382
346
|
const r = await this.storage.listActions(vargs)
|
|
383
347
|
return r
|
|
384
348
|
}
|
|
@@ -392,10 +356,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
392
356
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
393
357
|
): Promise<ListOutputsResult> {
|
|
394
358
|
sdk.validateOriginator(originator)
|
|
395
|
-
const { vargs } = this.validateAuthAndArgs(
|
|
396
|
-
args,
|
|
397
|
-
sdk.validateListOutputsArgs
|
|
398
|
-
)
|
|
359
|
+
const { vargs } = this.validateAuthAndArgs(args, sdk.validateListOutputsArgs)
|
|
399
360
|
vargs.knownTxids = this.getKnownTxids()
|
|
400
361
|
const r = await this.storage.listOutputs(vargs)
|
|
401
362
|
if (r.BEEF) {
|
|
@@ -410,10 +371,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
410
371
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
411
372
|
): Promise<ListCertificatesResult> {
|
|
412
373
|
sdk.validateOriginator(originator)
|
|
413
|
-
const { vargs } = this.validateAuthAndArgs(
|
|
414
|
-
args,
|
|
415
|
-
sdk.validateListCertificatesArgs
|
|
416
|
-
)
|
|
374
|
+
const { vargs } = this.validateAuthAndArgs(args, sdk.validateListCertificatesArgs)
|
|
417
375
|
const r = await this.storage.listCertificates(vargs)
|
|
418
376
|
return r
|
|
419
377
|
}
|
|
@@ -428,10 +386,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
428
386
|
): Promise<AcquireCertificateResult> {
|
|
429
387
|
sdk.validateOriginator(originator)
|
|
430
388
|
if (args.acquisitionProtocol === 'direct') {
|
|
431
|
-
const { auth, vargs } = this.validateAuthAndArgs(
|
|
432
|
-
args,
|
|
433
|
-
sdk.validateAcquireDirectCertificateArgs
|
|
434
|
-
)
|
|
389
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateAcquireDirectCertificateArgs)
|
|
435
390
|
vargs.subject = (
|
|
436
391
|
await this.getPublicKey({
|
|
437
392
|
identityKey: true,
|
|
@@ -441,17 +396,11 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
441
396
|
).publicKey
|
|
442
397
|
try {
|
|
443
398
|
// Confirm that the information received adds up to a usable certificate...
|
|
444
|
-
await sdk.CertOps.fromCounterparty(
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
counterparty:
|
|
450
|
-
vargs.keyringRevealer === 'certifier'
|
|
451
|
-
? vargs.certifier
|
|
452
|
-
: vargs.keyringRevealer
|
|
453
|
-
}
|
|
454
|
-
)
|
|
399
|
+
await sdk.CertOps.fromCounterparty(vargs.privileged ? this.privilegedKeyManager! : this, {
|
|
400
|
+
certificate: { ...vargs },
|
|
401
|
+
keyring: vargs.keyringForSubject,
|
|
402
|
+
counterparty: vargs.keyringRevealer === 'certifier' ? vargs.certifier : vargs.keyringRevealer
|
|
403
|
+
})
|
|
455
404
|
} catch (eu: unknown) {
|
|
456
405
|
const e = sdk.WalletError.fromUnknown(eu)
|
|
457
406
|
throw new sdk.WERR_INVALID_PARAMETER(
|
|
@@ -465,10 +414,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
465
414
|
}
|
|
466
415
|
|
|
467
416
|
if (args.acquisitionProtocol === 'issuance') {
|
|
468
|
-
const { auth, vargs } = this.validateAuthAndArgs(
|
|
469
|
-
args,
|
|
470
|
-
sdk.validateAcquireIssuanceCertificateArgs
|
|
471
|
-
)
|
|
417
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateAcquireIssuanceCertificateArgs)
|
|
472
418
|
// Create a random nonce that the server can verify
|
|
473
419
|
const clientNonce = await createNonce(this, vargs.certifier)
|
|
474
420
|
// TODO: Consider adding support to request certificates from a certifier before acquiring a certificate.
|
|
@@ -476,29 +422,25 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
476
422
|
|
|
477
423
|
// Create a certificate master keyring
|
|
478
424
|
// The certifier is able to decrypt these fields as they are the counterparty
|
|
479
|
-
const { certificateFields, masterKeyring } =
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
)
|
|
425
|
+
const { certificateFields, masterKeyring } = await MasterCertificate.createCertificateFields(
|
|
426
|
+
this,
|
|
427
|
+
vargs.certifier,
|
|
428
|
+
vargs.fields
|
|
429
|
+
)
|
|
485
430
|
|
|
486
431
|
// Make a Certificate Signing Request (CSR) to the certifier
|
|
487
|
-
const response = await authClient.fetch(
|
|
488
|
-
|
|
489
|
-
{
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
})
|
|
500
|
-
}
|
|
501
|
-
)
|
|
432
|
+
const response = await authClient.fetch(`${vargs.certifierUrl}/signCertificate`, {
|
|
433
|
+
method: 'POST',
|
|
434
|
+
headers: {
|
|
435
|
+
'Content-Type': 'application/json'
|
|
436
|
+
},
|
|
437
|
+
body: JSON.stringify({
|
|
438
|
+
clientNonce,
|
|
439
|
+
type: vargs.type,
|
|
440
|
+
fields: certificateFields,
|
|
441
|
+
masterKeyring
|
|
442
|
+
})
|
|
443
|
+
})
|
|
502
444
|
|
|
503
445
|
if (response.headers.get('x-bsv-auth-identity-key') !== vargs.certifier) {
|
|
504
446
|
throw new Error(
|
|
@@ -540,9 +482,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
540
482
|
|
|
541
483
|
// Validate the certificate received
|
|
542
484
|
if (signedCertificate.type !== vargs.type) {
|
|
543
|
-
throw new Error(
|
|
544
|
-
`Invalid certificate type! Expected: ${vargs.type}, Received: ${signedCertificate.type}`
|
|
545
|
-
)
|
|
485
|
+
throw new Error(`Invalid certificate type! Expected: ${vargs.type}, Received: ${signedCertificate.type}`)
|
|
546
486
|
}
|
|
547
487
|
if (signedCertificate.subject !== this.identityKey) {
|
|
548
488
|
throw new Error(
|
|
@@ -550,20 +490,13 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
550
490
|
)
|
|
551
491
|
}
|
|
552
492
|
if (signedCertificate.certifier !== vargs.certifier) {
|
|
553
|
-
throw new Error(
|
|
554
|
-
`Invalid certifier! Expected: ${vargs.certifier}, Received: ${signedCertificate.certifier}`
|
|
555
|
-
)
|
|
493
|
+
throw new Error(`Invalid certifier! Expected: ${vargs.certifier}, Received: ${signedCertificate.certifier}`)
|
|
556
494
|
}
|
|
557
495
|
if (!signedCertificate.revocationOutpoint) {
|
|
558
496
|
throw new Error(`Invalid revocationOutpoint!`)
|
|
559
497
|
}
|
|
560
|
-
if (
|
|
561
|
-
|
|
562
|
-
Object.keys(certificateFields).length
|
|
563
|
-
) {
|
|
564
|
-
throw new Error(
|
|
565
|
-
`Fields mismatch! Objects have different numbers of keys.`
|
|
566
|
-
)
|
|
498
|
+
if (Object.keys(signedCertificate.fields).length !== Object.keys(certificateFields).length) {
|
|
499
|
+
throw new Error(`Fields mismatch! Objects have different numbers of keys.`)
|
|
567
500
|
}
|
|
568
501
|
for (const field of Object.keys(certificateFields)) {
|
|
569
502
|
if (!(field in signedCertificate.fields)) {
|
|
@@ -587,10 +520,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
587
520
|
})
|
|
588
521
|
}
|
|
589
522
|
|
|
590
|
-
throw new sdk.WERR_INVALID_PARAMETER(
|
|
591
|
-
'acquisitionProtocol',
|
|
592
|
-
`valid.${args.acquisitionProtocol} is unrecognized.`
|
|
593
|
-
)
|
|
523
|
+
throw new sdk.WERR_INVALID_PARAMETER('acquisitionProtocol', `valid.${args.acquisitionProtocol} is unrecognized.`)
|
|
594
524
|
}
|
|
595
525
|
|
|
596
526
|
async relinquishCertificate(
|
|
@@ -608,10 +538,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
608
538
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
609
539
|
): Promise<ProveCertificateResult> {
|
|
610
540
|
originator = sdk.validateOriginator(originator)
|
|
611
|
-
const { auth, vargs } = this.validateAuthAndArgs(
|
|
612
|
-
args,
|
|
613
|
-
sdk.validateProveCertificateArgs
|
|
614
|
-
)
|
|
541
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateProveCertificateArgs)
|
|
615
542
|
const r = await proveCertificate(this, auth, vargs)
|
|
616
543
|
return r
|
|
617
544
|
}
|
|
@@ -636,9 +563,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
636
563
|
|
|
637
564
|
verifyReturnedTxidOnly(beef: Beef): Beef {
|
|
638
565
|
if (this.returnTxidOnly) return beef
|
|
639
|
-
const onlyTxids = beef.txs
|
|
640
|
-
.filter(btx => btx.isTxidOnly)
|
|
641
|
-
.map(btx => btx.txid)
|
|
566
|
+
const onlyTxids = beef.txs.filter(btx => btx.isTxidOnly).map(btx => btx.txid)
|
|
642
567
|
for (const txid of onlyTxids) {
|
|
643
568
|
const btx = beef.findTxid(txid)
|
|
644
569
|
const tx = this.beef.findAtomicTransaction(txid)
|
|
@@ -678,10 +603,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
678
603
|
args.options.trustSelf ||= this.trustSelf
|
|
679
604
|
args.options.knownTxids = this.getKnownTxids(args.options.knownTxids)
|
|
680
605
|
|
|
681
|
-
const { auth, vargs } = this.validateAuthAndArgs(
|
|
682
|
-
args,
|
|
683
|
-
sdk.validateCreateActionArgs
|
|
684
|
-
)
|
|
606
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateCreateActionArgs)
|
|
685
607
|
vargs.includeAllSourceTransactions = this.includeAllSourceTransactions
|
|
686
608
|
if (this.randomVals && this.randomVals.length > 1) {
|
|
687
609
|
vargs.randomVals = [...this.randomVals]
|
|
@@ -712,10 +634,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
712
634
|
): Promise<SignActionResult> {
|
|
713
635
|
sdk.validateOriginator(originator)
|
|
714
636
|
|
|
715
|
-
const { auth, vargs } = this.validateAuthAndArgs(
|
|
716
|
-
args,
|
|
717
|
-
sdk.validateSignActionArgs
|
|
718
|
-
)
|
|
637
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateSignActionArgs)
|
|
719
638
|
const r = await signAction(this, auth, vargs)
|
|
720
639
|
|
|
721
640
|
if (
|
|
@@ -747,10 +666,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
747
666
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
748
667
|
): Promise<InternalizeActionResult> {
|
|
749
668
|
sdk.validateOriginator(originator)
|
|
750
|
-
const { auth, vargs } = this.validateAuthAndArgs(
|
|
751
|
-
args,
|
|
752
|
-
sdk.validateInternalizeActionArgs
|
|
753
|
-
)
|
|
669
|
+
const { auth, vargs } = this.validateAuthAndArgs(args, sdk.validateInternalizeActionArgs)
|
|
754
670
|
const r = await internalizeAction(this, auth, args)
|
|
755
671
|
return r
|
|
756
672
|
}
|
|
@@ -760,18 +676,12 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
760
676
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
761
677
|
): Promise<RelinquishOutputResult> {
|
|
762
678
|
sdk.validateOriginator(originator)
|
|
763
|
-
const { vargs } = this.validateAuthAndArgs(
|
|
764
|
-
args,
|
|
765
|
-
sdk.validateRelinquishOutputArgs
|
|
766
|
-
)
|
|
679
|
+
const { vargs } = this.validateAuthAndArgs(args, sdk.validateRelinquishOutputArgs)
|
|
767
680
|
const r = await this.storage.relinquishOutput(args)
|
|
768
681
|
return { relinquished: true }
|
|
769
682
|
}
|
|
770
683
|
|
|
771
|
-
async isAuthenticated(
|
|
772
|
-
args: {},
|
|
773
|
-
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
774
|
-
): Promise<AuthenticatedResult> {
|
|
684
|
+
async isAuthenticated(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<AuthenticatedResult> {
|
|
775
685
|
sdk.validateOriginator(originator)
|
|
776
686
|
const r: { authenticated: true } = {
|
|
777
687
|
authenticated: true
|
|
@@ -787,10 +697,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
787
697
|
return { authenticated: true }
|
|
788
698
|
}
|
|
789
699
|
|
|
790
|
-
async getHeight(
|
|
791
|
-
args: {},
|
|
792
|
-
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
793
|
-
): Promise<GetHeightResult> {
|
|
700
|
+
async getHeight(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetHeightResult> {
|
|
794
701
|
sdk.validateOriginator(originator)
|
|
795
702
|
const height = await this.getServices().getHeight()
|
|
796
703
|
return { height }
|
|
@@ -801,24 +708,16 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
801
708
|
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
802
709
|
): Promise<GetHeaderResult> {
|
|
803
710
|
sdk.validateOriginator(originator)
|
|
804
|
-
const serializedHeader = await this.getServices().getHeaderForHeight(
|
|
805
|
-
args.height
|
|
806
|
-
)
|
|
711
|
+
const serializedHeader = await this.getServices().getHeaderForHeight(args.height)
|
|
807
712
|
return { header: Utils.toHex(serializedHeader) }
|
|
808
713
|
}
|
|
809
714
|
|
|
810
|
-
async getNetwork(
|
|
811
|
-
args: {},
|
|
812
|
-
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
813
|
-
): Promise<GetNetworkResult> {
|
|
715
|
+
async getNetwork(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetNetworkResult> {
|
|
814
716
|
sdk.validateOriginator(originator)
|
|
815
717
|
return { network: toWalletNetwork(this.chain) }
|
|
816
718
|
}
|
|
817
719
|
|
|
818
|
-
async getVersion(
|
|
819
|
-
args: {},
|
|
820
|
-
originator?: OriginatorDomainNameStringUnder250Bytes
|
|
821
|
-
): Promise<GetVersionResult> {
|
|
720
|
+
async getVersion(args: {}, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetVersionResult> {
|
|
822
721
|
sdk.validateOriginator(originator)
|
|
823
722
|
return { version: 'wallet-brc100-1.0.0' }
|
|
824
723
|
}
|
|
@@ -846,9 +745,7 @@ export class Wallet implements WalletInterface, ProtoWallet {
|
|
|
846
745
|
const car = await this.createAction({
|
|
847
746
|
outputs: [
|
|
848
747
|
{
|
|
849
|
-
lockingScript: t
|
|
850
|
-
.lock(keyDeriver.rootKey.toString(), toWallet.identityKey)
|
|
851
|
-
.toHex(),
|
|
748
|
+
lockingScript: t.lock(keyDeriver.rootKey.toString(), toWallet.identityKey).toHex(),
|
|
852
749
|
satoshis,
|
|
853
750
|
outputDescription: label,
|
|
854
751
|
tags: ['relinquish'],
|
package/src/monitor/Monitor.ts
CHANGED
|
@@ -48,11 +48,7 @@ export class Monitor {
|
|
|
48
48
|
services?: Services
|
|
49
49
|
): MonitorOptions {
|
|
50
50
|
services ||= new Services(chain)
|
|
51
|
-
if (!services.options.chaintracks)
|
|
52
|
-
throw new sdk.WERR_INVALID_PARAMETER(
|
|
53
|
-
'services.options.chaintracks',
|
|
54
|
-
'valid'
|
|
55
|
-
)
|
|
51
|
+
if (!services.options.chaintracks) throw new sdk.WERR_INVALID_PARAMETER('services.options.chaintracks', 'valid')
|
|
56
52
|
const o: MonitorOptions = {
|
|
57
53
|
chain,
|
|
58
54
|
services,
|
|
@@ -124,14 +120,10 @@ export class Monitor {
|
|
|
124
120
|
addDefaultTasks(): void {
|
|
125
121
|
this._tasks.push(new TaskClock(this))
|
|
126
122
|
this._tasks.push(new TaskNewHeader(this))
|
|
127
|
-
this._tasks.push(
|
|
128
|
-
new TaskSendWaiting(this, 8 * this.oneSecond, 7 * this.oneSecond)
|
|
129
|
-
) // Check every 8 seconds but must be 7 seconds old
|
|
123
|
+
this._tasks.push(new TaskSendWaiting(this, 8 * this.oneSecond, 7 * this.oneSecond)) // Check every 8 seconds but must be 7 seconds old
|
|
130
124
|
this._tasks.push(new TaskCheckForProofs(this, 2 * this.oneHour)) // Every two hours if no block found
|
|
131
125
|
this._tasks.push(new TaskFailAbandoned(this, 8 * this.oneMinute))
|
|
132
|
-
this._tasks.push(
|
|
133
|
-
new TaskPurge(this, this.defaultPurgeParams, 6 * this.oneHour)
|
|
134
|
-
)
|
|
126
|
+
this._tasks.push(new TaskPurge(this, this.defaultPurgeParams, 6 * this.oneHour))
|
|
135
127
|
this._tasks.push(new TaskReviewStatus(this))
|
|
136
128
|
}
|
|
137
129
|
|
|
@@ -142,22 +134,16 @@ export class Monitor {
|
|
|
142
134
|
addMultiUserTasks(): void {
|
|
143
135
|
this._tasks.push(new TaskClock(this))
|
|
144
136
|
this._tasks.push(new TaskNewHeader(this))
|
|
145
|
-
this._tasks.push(
|
|
146
|
-
new TaskSendWaiting(this, 8 * this.oneSecond, 7 * this.oneSecond)
|
|
147
|
-
) // Check every 8 seconds but must be 7 seconds old
|
|
137
|
+
this._tasks.push(new TaskSendWaiting(this, 8 * this.oneSecond, 7 * this.oneSecond)) // Check every 8 seconds but must be 7 seconds old
|
|
148
138
|
this._tasks.push(new TaskCheckForProofs(this, 2 * this.oneHour)) // Every two hours if no block found
|
|
149
139
|
this._tasks.push(new TaskFailAbandoned(this, 8 * this.oneMinute))
|
|
150
|
-
this._tasks.push(
|
|
151
|
-
new TaskPurge(this, this.defaultPurgeParams, 6 * this.oneHour)
|
|
152
|
-
)
|
|
140
|
+
this._tasks.push(new TaskPurge(this, this.defaultPurgeParams, 6 * this.oneHour))
|
|
153
141
|
this._tasks.push(new TaskReviewStatus(this))
|
|
154
142
|
}
|
|
155
143
|
|
|
156
144
|
addTask(task: WalletMonitorTask): void {
|
|
157
145
|
if (this._tasks.some(t => t.name === task.name))
|
|
158
|
-
throw new sdk.WERR_BAD_REQUEST(
|
|
159
|
-
`task ${task.name} has already been added.`
|
|
160
|
-
)
|
|
146
|
+
throw new sdk.WERR_BAD_REQUEST(`task ${task.name} has already been added.`)
|
|
161
147
|
this._tasks.push(task)
|
|
162
148
|
}
|
|
163
149
|
|
|
@@ -238,8 +224,7 @@ export class Monitor {
|
|
|
238
224
|
_runAsyncSetup: boolean = true
|
|
239
225
|
|
|
240
226
|
async startTasks(): Promise<void> {
|
|
241
|
-
if (this._tasksRunning)
|
|
242
|
-
throw new sdk.WERR_BAD_REQUEST('monitor tasks are already runnining.')
|
|
227
|
+
if (this._tasksRunning) throw new sdk.WERR_BAD_REQUEST('monitor tasks are already runnining.')
|
|
243
228
|
|
|
244
229
|
this._tasksRunning = true
|
|
245
230
|
for (; this._tasksRunning; ) {
|