@bsv/wallet-toolbox-mobile 2.1.27 → 2.1.30
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/README.md +83 -0
- package/out/src/CWIStyleWalletManager.js +107 -41
- package/out/src/CWIStyleWalletManager.js.map +1 -1
- package/out/src/SimpleWalletManager.js +29 -0
- package/out/src/SimpleWalletManager.js.map +1 -1
- package/out/src/Wallet.js +84 -66
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletAuthenticationManager.js +6 -3
- package/out/src/WalletAuthenticationManager.js.map +1 -1
- package/out/src/WalletLogger.js +6 -4
- package/out/src/WalletLogger.js.map +1 -1
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +158 -167
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/WalletSettingsManager.js +3 -0
- package/out/src/WalletSettingsManager.js.map +1 -1
- package/out/src/mockchain/MockChainMigrations.js +1 -1
- package/out/src/mockchain/MockChainMigrations.js.map +1 -1
- package/out/src/mockchain/MockChainStorage.js +1 -0
- package/out/src/mockchain/MockChainStorage.js.map +1 -1
- package/out/src/mockchain/MockChainTracker.js +2 -0
- package/out/src/mockchain/MockChainTracker.js.map +1 -1
- package/out/src/mockchain/MockMiner.js +2 -2
- package/out/src/mockchain/MockMiner.js.map +1 -1
- package/out/src/mockchain/MockServices.js +21 -25
- package/out/src/mockchain/MockServices.js.map +1 -1
- package/out/src/monitor/Monitor.d.ts.map +1 -1
- package/out/src/monitor/Monitor.js +57 -33
- package/out/src/monitor/Monitor.js.map +1 -1
- package/out/src/monitor/tasks/TaskArcSSE.js +10 -13
- package/out/src/monitor/tasks/TaskArcSSE.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckForProofs.js +10 -11
- package/out/src/monitor/tasks/TaskCheckForProofs.js.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts +59 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.d.ts.map +1 -1
- package/out/src/monitor/tasks/TaskCheckNoSends.js +101 -12
- package/out/src/monitor/tasks/TaskCheckNoSends.js.map +1 -1
- package/out/src/monitor/tasks/TaskClock.js +3 -1
- package/out/src/monitor/tasks/TaskClock.js.map +1 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js +2 -1
- package/out/src/monitor/tasks/TaskFailAbandoned.js.map +1 -1
- package/out/src/monitor/tasks/TaskMineBlock.js +3 -2
- package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js +2 -1
- package/out/src/monitor/tasks/TaskMonitorCallHistory.js.map +1 -1
- package/out/src/monitor/tasks/TaskNewHeader.js +12 -1
- package/out/src/monitor/tasks/TaskNewHeader.js.map +1 -1
- package/out/src/monitor/tasks/TaskPurge.js +7 -5
- package/out/src/monitor/tasks/TaskPurge.js.map +1 -1
- package/out/src/monitor/tasks/TaskReorg.js +4 -2
- package/out/src/monitor/tasks/TaskReorg.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js +12 -9
- package/out/src/monitor/tasks/TaskReviewDoubleSpends.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js +8 -3
- package/out/src/monitor/tasks/TaskReviewProvenTxs.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewStatus.js +7 -5
- package/out/src/monitor/tasks/TaskReviewStatus.js.map +1 -1
- package/out/src/monitor/tasks/TaskReviewUtxos.js +6 -2
- package/out/src/monitor/tasks/TaskReviewUtxos.js.map +1 -1
- package/out/src/monitor/tasks/TaskSendWaiting.js +9 -2
- package/out/src/monitor/tasks/TaskSendWaiting.js.map +1 -1
- package/out/src/monitor/tasks/TaskUnFail.js +6 -5
- package/out/src/monitor/tasks/TaskUnFail.js.map +1 -1
- package/out/src/monitor/tasks/WalletMonitorTask.js +7 -4
- package/out/src/monitor/tasks/WalletMonitorTask.js.map +1 -1
- package/out/src/sdk/PrivilegedKeyManager.js +44 -27
- package/out/src/sdk/PrivilegedKeyManager.js.map +1 -1
- package/out/src/sdk/WERR_errors.js +23 -8
- package/out/src/sdk/WERR_errors.js.map +1 -1
- package/out/src/sdk/WalletError.js +7 -7
- package/out/src/sdk/WalletError.js.map +1 -1
- package/out/src/services/ServiceCollection.js +9 -2
- package/out/src/services/ServiceCollection.js.map +1 -1
- package/out/src/services/Services.js +58 -54
- package/out/src/services/Services.js.map +1 -1
- package/out/src/services/chaintracker/ChaintracksChainTracker.js +5 -2
- package/out/src/services/chaintracker/ChaintracksChainTracker.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js +27 -21
- package/out/src/services/chaintracker/chaintracks/Chaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js +4 -1
- package/out/src/services/chaintracker/chaintracks/ChaintracksServiceClient.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js +8 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js +7 -0
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorCDN.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js +5 -3
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js +3 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js +3 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/LiveIngestorWhatsOnChainPoll.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +1 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js +8 -5
- package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainServices.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js +3 -1
- package/out/src/services/chaintracker/chaintracks/Storage/BulkStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js +12 -6
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageBase.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js +8 -7
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageIdb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +15 -16
- package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js +1 -1
- package/out/src/services/chaintracker/chaintracks/createDefaultNoDbChaintracksOptions.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js +1 -1
- package/out/src/services/chaintracker/chaintracks/createNoDbChaintracks.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js +19 -16
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataManager.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js +4 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkFileDataReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js +17 -4
- package/out/src/services/chaintracker/chaintracks/util/BulkFilesReader.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js +21 -0
- package/out/src/services/chaintracker/chaintracks/util/BulkHeaderFile.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js +1 -3
- package/out/src/services/chaintracker/chaintracks/util/ChaintracksFetch.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js +7 -5
- package/out/src/services/chaintracker/chaintracks/util/HeightRange.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js +4 -6
- package/out/src/services/chaintracker/chaintracks/util/SingleWriterMultiReaderLock.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +1 -1
- package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +8 -8
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
- package/out/src/services/createDefaultWalletServicesOptions.js +8 -8
- package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
- package/out/src/services/providers/ARC.js +13 -5
- package/out/src/services/providers/ARC.js.map +1 -1
- package/out/src/services/providers/ArcSSEClient.js +9 -8
- package/out/src/services/providers/ArcSSEClient.js.map +1 -1
- package/out/src/services/providers/Bitails.js +6 -2
- package/out/src/services/providers/Bitails.js.map +1 -1
- package/out/src/services/providers/SdkWhatsOnChain.js +6 -2
- package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
- package/out/src/services/providers/WhatsOnChain.js +2 -1
- package/out/src/services/providers/WhatsOnChain.js.map +1 -1
- package/out/src/services/providers/getBeefForTxid.js +2 -1
- package/out/src/services/providers/getBeefForTxid.js.map +1 -1
- package/out/src/signer/WalletSigner.js +4 -1
- package/out/src/signer/WalletSigner.js.map +1 -1
- package/out/src/signer/methods/acquireDirectCertificate.js +1 -2
- package/out/src/signer/methods/acquireDirectCertificate.js.map +1 -1
- package/out/src/signer/methods/buildSignableTransaction.js +1 -2
- package/out/src/signer/methods/buildSignableTransaction.js.map +1 -1
- package/out/src/signer/methods/completeSignedTransaction.js +4 -5
- package/out/src/signer/methods/completeSignedTransaction.js.map +1 -1
- package/out/src/signer/methods/createAction.js +9 -11
- package/out/src/signer/methods/createAction.js.map +1 -1
- package/out/src/signer/methods/internalizeAction.d.ts +8 -1
- package/out/src/signer/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/signer/methods/internalizeAction.js +8 -1
- package/out/src/signer/methods/internalizeAction.js.map +1 -1
- package/out/src/signer/methods/signAction.js +5 -6
- package/out/src/signer/methods/signAction.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +4 -1
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +122 -32
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/StorageReader.js +4 -2
- package/out/src/storage/StorageReader.js.map +1 -1
- package/out/src/storage/StorageSyncReader.js +2 -0
- package/out/src/storage/StorageSyncReader.js.map +1 -1
- package/out/src/storage/WalletStorageManager.js +47 -25
- package/out/src/storage/WalletStorageManager.js.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListActionsSpecOp.js +69 -6
- package/out/src/storage/methods/ListActionsSpecOp.js.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.d.ts.map +1 -1
- package/out/src/storage/methods/ListOutputsSpecOp.js +5 -2
- package/out/src/storage/methods/ListOutputsSpecOp.js.map +1 -1
- package/out/src/storage/methods/attemptToPostReqsToNetwork.js +10 -12
- 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 +111 -69
- package/out/src/storage/methods/createAction.js.map +1 -1
- package/out/src/storage/methods/generateChange.js +2 -3
- package/out/src/storage/methods/generateChange.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +2 -4
- package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts +69 -2
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +232 -27
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/methods/processAction.d.ts.map +1 -1
- package/out/src/storage/methods/processAction.js +12 -11
- package/out/src/storage/methods/processAction.js.map +1 -1
- package/out/src/storage/portable/index.d.ts.map +1 -1
- package/out/src/storage/portable/index.js +171 -129
- package/out/src/storage/portable/index.js.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +2 -3
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/storage/remoting/StorageClientBase.js +6 -3
- package/out/src/storage/remoting/StorageClientBase.js.map +1 -1
- package/out/src/storage/schema/entities/EntityBase.js +1 -0
- package/out/src/storage/schema/entities/EntityBase.js.map +1 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.js +1 -1
- package/out/src/storage/schema/entities/EntityOutputBasket.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTx.js +12 -13
- package/out/src/storage/schema/entities/EntityProvenTx.js.map +1 -1
- package/out/src/storage/schema/entities/EntityProvenTxReq.js +7 -9
- package/out/src/storage/schema/entities/EntityProvenTxReq.js.map +1 -1
- package/out/src/storage/schema/entities/EntitySyncState.js +6 -3
- package/out/src/storage/schema/entities/EntitySyncState.js.map +1 -1
- package/out/src/storage/schema/entities/MergeEntity.js +4 -0
- package/out/src/storage/schema/entities/MergeEntity.js.map +1 -1
- package/out/src/storage/storageProviderHelpers.js +2 -3
- package/out/src/storage/storageProviderHelpers.js.map +1 -1
- package/out/src/utility/ScriptTemplateBRC29.js +7 -6
- package/out/src/utility/ScriptTemplateBRC29.js.map +1 -1
- package/out/src/utility/brc114ActionTimeLabels.js +1 -1
- package/out/src/utility/brc114ActionTimeLabels.js.map +1 -1
- package/out/src/utility/identityUtils.js +2 -4
- package/out/src/utility/identityUtils.js.map +1 -1
- package/out/src/utility/utilityHelpers.js +2 -2
- package/out/src/utility/utilityHelpers.js.map +1 -1
- package/out/src/utility/utilityHelpers.noBuffer.js +4 -4
- package/out/src/utility/utilityHelpers.noBuffer.js.map +1 -1
- package/out/src/wab-client/WABClient.js +1 -0
- package/out/src/wab-client/WABClient.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js +1 -4
- package/out/src/wab-client/auth-method-interactors/DevConsoleInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +1 -4
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -1
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +1 -4
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -1
- package/out/tsconfig.mobile.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -12,19 +12,19 @@ const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
|
12
12
|
* when transactions are MINED.
|
|
13
13
|
*/
|
|
14
14
|
class TaskArcadeSSE extends WalletMonitorTask_1.WalletMonitorTask {
|
|
15
|
+
static taskName = 'ArcadeSSE';
|
|
16
|
+
sseClient = null;
|
|
17
|
+
pendingEvents = [];
|
|
15
18
|
constructor(monitor) {
|
|
16
19
|
super(monitor, TaskArcadeSSE.taskName);
|
|
17
|
-
this.sseClient = null;
|
|
18
|
-
this.pendingEvents = [];
|
|
19
20
|
}
|
|
20
21
|
async asyncSetup() {
|
|
21
|
-
var _a, _b, _c, _d, _e;
|
|
22
22
|
const callbackToken = this.monitor.options.callbackToken;
|
|
23
23
|
if (!callbackToken) {
|
|
24
24
|
console.log('[TaskArcadeSSE] no callbackToken configured — SSE disabled');
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
-
const arcUrl =
|
|
27
|
+
const arcUrl = this.monitor.services.options?.arcUrl;
|
|
28
28
|
if (!arcUrl) {
|
|
29
29
|
console.log('[TaskArcadeSSE] no arcUrl configured — SSE disabled');
|
|
30
30
|
return;
|
|
@@ -36,13 +36,13 @@ class TaskArcadeSSE extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
36
36
|
}
|
|
37
37
|
let lastEventId;
|
|
38
38
|
try {
|
|
39
|
-
lastEventId = await
|
|
40
|
-
console.log(`[TaskArcadeSSE] loaded persisted lastEventId: ${lastEventId
|
|
39
|
+
lastEventId = await this.monitor.options.loadLastSSEEventId?.();
|
|
40
|
+
console.log(`[TaskArcadeSSE] loaded persisted lastEventId: ${lastEventId ?? '(none)'}`);
|
|
41
41
|
}
|
|
42
42
|
catch (e) {
|
|
43
43
|
console.log(`[TaskArcadeSSE] failed to load lastEventId: ${e}`);
|
|
44
44
|
}
|
|
45
|
-
const arcApiKey =
|
|
45
|
+
const arcApiKey = this.monitor.services.options?.arcConfig?.apiKey;
|
|
46
46
|
console.log(`[TaskArcadeSSE] setting up — arcUrl=${arcUrl} token=${callbackToken.substring(0, 8)}...`);
|
|
47
47
|
this.sseClient = new ArcSSEClient_1.ArcSSEClient({
|
|
48
48
|
baseUrl: arcUrl,
|
|
@@ -57,8 +57,7 @@ class TaskArcadeSSE extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
57
57
|
console.log(`[TaskArcadeSSE] error: ${err.message}`);
|
|
58
58
|
},
|
|
59
59
|
onLastEventIdChanged: (id) => {
|
|
60
|
-
|
|
61
|
-
(_b = (_a = this.monitor.options).saveLastSSEEventId) === null || _b === void 0 ? void 0 : _b.call(_a, id).catch(e => {
|
|
60
|
+
this.monitor.options.saveLastSSEEventId?.(id).catch(e => {
|
|
62
61
|
console.log(`[TaskArcadeSSE] failed to persist lastEventId: ${e}`);
|
|
63
62
|
});
|
|
64
63
|
}
|
|
@@ -169,13 +168,12 @@ class TaskArcadeSSE extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
169
168
|
* create a ProvenTx record, completing the transaction.
|
|
170
169
|
*/
|
|
171
170
|
async fetchProofFromArcade(req) {
|
|
172
|
-
|
|
173
|
-
const arcUrl = (_a = this.monitor.services.options) === null || _a === void 0 ? void 0 : _a.arcUrl;
|
|
171
|
+
const arcUrl = this.monitor.services.options?.arcUrl;
|
|
174
172
|
const txid = req.txid;
|
|
175
173
|
let log = ` req ${req.id} MINED/IMMUTABLE — fetching proof from Arcade\n`;
|
|
176
174
|
try {
|
|
177
175
|
const fetchHeaders = {};
|
|
178
|
-
const apiKey =
|
|
176
|
+
const apiKey = this.monitor.services.options?.arcConfig?.apiKey;
|
|
179
177
|
if (apiKey) {
|
|
180
178
|
fetchHeaders.Authorization = `Bearer ${apiKey}`;
|
|
181
179
|
}
|
|
@@ -243,5 +241,4 @@ class TaskArcadeSSE extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
243
241
|
}
|
|
244
242
|
}
|
|
245
243
|
exports.TaskArcadeSSE = TaskArcadeSSE;
|
|
246
|
-
TaskArcadeSSE.taskName = 'ArcadeSSE';
|
|
247
244
|
//# sourceMappingURL=TaskArcSSE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskArcSSE.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskArcSSE.ts"],"names":[],"mappings":";;;AAAA,kCAAqC;AACrC,2CAA2D;AAC3D,uFAAmF;AACnF,wEAAiF;AAEjF,2DAAuD;AAGvD;;;;GAIG;AACH,MAAa,aAAc,SAAQ,qCAAiB;
|
|
1
|
+
{"version":3,"file":"TaskArcSSE.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskArcSSE.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,13 @@ const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
|
19
19
|
* the original ProvenTxReq status is advanced to 'notifying'.
|
|
20
20
|
*/
|
|
21
21
|
class TaskCheckForProofs extends WalletMonitorTask_1.WalletMonitorTask {
|
|
22
|
+
triggerMsecs;
|
|
23
|
+
static taskName = 'CheckForProofs';
|
|
24
|
+
/**
|
|
25
|
+
* An external service such as the chaintracks new block header
|
|
26
|
+
* listener can set this true to cause
|
|
27
|
+
*/
|
|
28
|
+
static checkNow = false;
|
|
22
29
|
constructor(monitor, triggerMsecs = 0) {
|
|
23
30
|
super(monitor, TaskCheckForProofs.taskName);
|
|
24
31
|
this.triggerMsecs = triggerMsecs;
|
|
@@ -34,11 +41,10 @@ class TaskCheckForProofs extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
34
41
|
};
|
|
35
42
|
}
|
|
36
43
|
async runTask() {
|
|
37
|
-
var _a;
|
|
38
44
|
let log = '';
|
|
39
45
|
const countsAsAttempt = TaskCheckForProofs.checkNow;
|
|
40
46
|
TaskCheckForProofs.checkNow = false;
|
|
41
|
-
const maxAcceptableHeight =
|
|
47
|
+
const maxAcceptableHeight = this.monitor.lastNewHeader?.height;
|
|
42
48
|
if (maxAcceptableHeight === undefined) {
|
|
43
49
|
return log;
|
|
44
50
|
}
|
|
@@ -63,12 +69,6 @@ class TaskCheckForProofs extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
63
69
|
}
|
|
64
70
|
}
|
|
65
71
|
exports.TaskCheckForProofs = TaskCheckForProofs;
|
|
66
|
-
TaskCheckForProofs.taskName = 'CheckForProofs';
|
|
67
|
-
/**
|
|
68
|
-
* An external service such as the chaintracks new block header
|
|
69
|
-
* listener can set this true to cause
|
|
70
|
-
*/
|
|
71
|
-
TaskCheckForProofs.checkNow = false;
|
|
72
72
|
/**
|
|
73
73
|
* Process an array of table.ProvenTxReq (typically with status 'unmined' or 'unknown')
|
|
74
74
|
*
|
|
@@ -85,7 +85,6 @@ TaskCheckForProofs.checkNow = false;
|
|
|
85
85
|
* @returns reqs partitioned by status
|
|
86
86
|
*/
|
|
87
87
|
async function getProofs(task, reqs, maxAcceptableHeight, indent = 0, countsAsAttempt = false, ignoreStatus = false) {
|
|
88
|
-
var _a, _b;
|
|
89
88
|
const proven = [];
|
|
90
89
|
const invalid = [];
|
|
91
90
|
let log = '';
|
|
@@ -130,7 +129,7 @@ async function getProofs(task, reqs, maxAcceptableHeight, indent = 0, countsAsAt
|
|
|
130
129
|
? task.monitor.options.unprovenAttemptsLimitMain
|
|
131
130
|
: task.monitor.options.unprovenAttemptsLimitTest;
|
|
132
131
|
if (!ignoreStatus && req.attempts > limit) {
|
|
133
|
-
const maxRebroadcast =
|
|
132
|
+
const maxRebroadcast = task.monitor.options.maxRebroadcastAttempts ?? 0;
|
|
134
133
|
const wasBroadcast = req.wasBroadcast;
|
|
135
134
|
const timedOutAttempts = req.attempts;
|
|
136
135
|
const timeout = req.applyProofTimeout(maxRebroadcast);
|
|
@@ -175,7 +174,7 @@ async function getProofs(task, reqs, maxAcceptableHeight, indent = 0, countsAsAt
|
|
|
175
174
|
log += ` ignoring possible proof from very new block at height ${r.header.height} ${r.header.hash}\n`;
|
|
176
175
|
continue;
|
|
177
176
|
}
|
|
178
|
-
ptx = await entities_1.EntityProvenTx.fromReq(req, r, countsAsAttempt && req.status !== 'nosend',
|
|
177
|
+
ptx = await entities_1.EntityProvenTx.fromReq(req, r, countsAsAttempt && req.status !== 'nosend', task.monitor.options.maxRebroadcastAttempts ?? 0);
|
|
179
178
|
if (ptx != null) {
|
|
180
179
|
// We have a merklePath proof for the request (and a block header)
|
|
181
180
|
await req.updateStorageDynamicProperties(task.storage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskCheckForProofs.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckForProofs.ts"],"names":[],"mappings":";;;AA2FA,8BAqKC;AA/PD,4DAAiF;AAEjF,iEAA6D;AAC7D,mFAAgE;AAEhE,2DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,MAAa,kBAAmB,SAAQ,qCAAiB;
|
|
1
|
+
{"version":3,"file":"TaskCheckForProofs.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckForProofs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Monitor } from '../Monitor';
|
|
2
2
|
import { WalletMonitorTask } from './WalletMonitorTask';
|
|
3
3
|
/**
|
|
4
|
-
* `TaskCheckNoSends` is a WalletMonitor task that
|
|
4
|
+
* `TaskCheckNoSends` is a WalletMonitor task that retrieves merkle proofs for
|
|
5
5
|
* 'nosend' transactions that MAY have been shared externally.
|
|
6
6
|
*
|
|
7
7
|
* Unlike intentionally processed transactions, 'nosend' transactions are fully valid
|
|
@@ -12,6 +12,42 @@ import { WalletMonitorTask } from './WalletMonitorTask';
|
|
|
12
12
|
*
|
|
13
13
|
* If a proof is obtained and validated, a new ProvenTx record is created and
|
|
14
14
|
* the original ProvenTxReq status is advanced to 'notifying'.
|
|
15
|
+
*
|
|
16
|
+
* # Aging schedule on the checkNow path
|
|
17
|
+
*
|
|
18
|
+
* When this task is triggered by a new block header (`checkNow = true`, wired in
|
|
19
|
+
* `Monitor.processNewBlockHeader`), it does NOT scan every `nosend` row on every
|
|
20
|
+
* block. The set of `nosend` rows can grow large over a wallet's lifetime
|
|
21
|
+
* (txs sitting in escrow, un-aborted tests, abandoned batches), and a fast,
|
|
22
|
+
* unfiltered scan on every block would do an unbounded number of external
|
|
23
|
+
* `getMerklePath` lookups per block.
|
|
24
|
+
*
|
|
25
|
+
* Instead, the row's age (now - `created_at`) determines how often it is
|
|
26
|
+
* eligible for a checkNow-triggered chain check. The schedule starts at "skip
|
|
27
|
+
* entirely" for very fresh rows (to protect in-flight batched-tx workflows
|
|
28
|
+
* where chained `createAction({ noSend: true, sendWith: [...] })` builds
|
|
29
|
+
* deliberately keep rows in `nosend` until a single terminator broadcasts the
|
|
30
|
+
* whole BEEF), then progresses to "every block", "hourly", "daily", and
|
|
31
|
+
* "weekly" as rows age:
|
|
32
|
+
*
|
|
33
|
+
* age < 5 min → skip (in-flight batch protection)
|
|
34
|
+
* 5 min ≤ age < 1 hr → check on every checkNow trigger
|
|
35
|
+
* 1 hr ≤ age < 24 hr → check on ~hourly cadence (block-height % 6)
|
|
36
|
+
* 24 hr ≤ age < 7 days → check on ~daily cadence (block-height % 144)
|
|
37
|
+
* age ≥ 7 days → check on ~weekly cadence (block-height % 1008)
|
|
38
|
+
*
|
|
39
|
+
* Block-height modulo gives a deterministic, stateless way to schedule
|
|
40
|
+
* checks for older rows; no per-row "last checked" persistence is required.
|
|
41
|
+
* Each row's modulo offset is keyed by its `provenTxReqId` so that rows in
|
|
42
|
+
* the same age tier are staggered across the modulo cycle rather than all
|
|
43
|
+
* firing on the same block — `(blockHeight + provenTxReqId) % tierInterval`.
|
|
44
|
+
* For a wallet with N rows in tier T and tier interval K, this gives
|
|
45
|
+
* roughly N/K rows fired per block instead of N rows fired every K blocks.
|
|
46
|
+
*
|
|
47
|
+
* The scheduled daily cadence (no `checkNow`) is unaffected — it still scans
|
|
48
|
+
* every row regardless of age. That path is the once-per-day fallback that
|
|
49
|
+
* guarantees externally-broadcast `nosend` txs are eventually recognized
|
|
50
|
+
* even if the aging schedule on the checkNow path defers them.
|
|
15
51
|
*/
|
|
16
52
|
export declare class TaskCheckNoSends extends WalletMonitorTask {
|
|
17
53
|
triggerMsecs: number;
|
|
@@ -21,6 +57,28 @@ export declare class TaskCheckNoSends extends WalletMonitorTask {
|
|
|
21
57
|
* listener can set this true to cause
|
|
22
58
|
*/
|
|
23
59
|
static checkNow: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Aging-schedule constants for the `checkNow` path. Rows below `tier0FreshSkipMsecs`
|
|
62
|
+
* are never checked via checkNow (batched-tx protection). Rows from tier 0 up
|
|
63
|
+
* to `tier1EveryBlockMsecs` are checked on every checkNow trigger. Beyond that,
|
|
64
|
+
* checks happen on `block-height % tierNBlockInterval === 0` cadences with
|
|
65
|
+
* growing intervals. The scheduled daily cadence (no checkNow) is unaffected.
|
|
66
|
+
*/
|
|
67
|
+
static readonly tier0FreshSkipMsecs: number;
|
|
68
|
+
static readonly tier1EveryBlockMsecs: number;
|
|
69
|
+
static readonly tier2HourlyMsecs: number;
|
|
70
|
+
static readonly tier3DailyMsecs: number;
|
|
71
|
+
static readonly tier2BlockInterval = 6;
|
|
72
|
+
static readonly tier3BlockInterval = 144;
|
|
73
|
+
static readonly tier4BlockInterval = 1008;
|
|
74
|
+
/**
|
|
75
|
+
* Decide whether a single `nosend` row should be chain-checked on the
|
|
76
|
+
* current `checkNow` trigger, based on its age, the current block
|
|
77
|
+
* height, and its `provenTxReqId` (used to stagger same-tier rows
|
|
78
|
+
* across the modulo cycle). See class docstring for the full schedule
|
|
79
|
+
* and staggering rationale.
|
|
80
|
+
*/
|
|
81
|
+
static shouldCheckOnCheckNow(createdAt: Date, nowMs: number, currentBlockHeight: number, provenTxReqId: number): boolean;
|
|
24
82
|
constructor(monitor: Monitor, triggerMsecs?: number);
|
|
25
83
|
/**
|
|
26
84
|
* Normally triggered by checkNow getting set by new block header found event from chaintracks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskCheckNoSends.d.ts","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckNoSends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD
|
|
1
|
+
{"version":3,"file":"TaskCheckNoSends.d.ts","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckNoSends.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB;IAqD5C,YAAY;IApDrB,MAAM,CAAC,QAAQ,CAAC,QAAQ,kBAAiB;IAEzC;;;OAGG;IACH,MAAM,CAAC,QAAQ,UAAQ;IAEvB;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,CAAC,mBAAmB,SAAkB;IACrD,MAAM,CAAC,QAAQ,CAAC,oBAAoB,SAAkB;IACtD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,SAA2B;IAC3D,MAAM,CAAC,QAAQ,CAAC,eAAe,SAAgC;IAC/D,MAAM,CAAC,QAAQ,CAAC,kBAAkB,KAAO;IACzC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,OAAS;IAC3C,MAAM,CAAC,QAAQ,CAAC,kBAAkB,QAAU;IAE5C;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAC1B,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,MAAM,GACpB,OAAO;gBAgBR,OAAO,EAAE,OAAO,EACT,YAAY,SAAqB;IAK1C;;OAEG;IACH,OAAO,CAAE,kBAAkB,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE;IAQhD,OAAO,IAAK,OAAO,CAAC,MAAM,CAAC;CAqDlC"}
|
|
@@ -5,7 +5,7 @@ const Monitor_1 = require("../Monitor");
|
|
|
5
5
|
const TaskCheckForProofs_1 = require("./TaskCheckForProofs");
|
|
6
6
|
const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
7
7
|
/**
|
|
8
|
-
* `TaskCheckNoSends` is a WalletMonitor task that
|
|
8
|
+
* `TaskCheckNoSends` is a WalletMonitor task that retrieves merkle proofs for
|
|
9
9
|
* 'nosend' transactions that MAY have been shared externally.
|
|
10
10
|
*
|
|
11
11
|
* Unlike intentionally processed transactions, 'nosend' transactions are fully valid
|
|
@@ -16,8 +16,88 @@ const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
|
16
16
|
*
|
|
17
17
|
* If a proof is obtained and validated, a new ProvenTx record is created and
|
|
18
18
|
* the original ProvenTxReq status is advanced to 'notifying'.
|
|
19
|
+
*
|
|
20
|
+
* # Aging schedule on the checkNow path
|
|
21
|
+
*
|
|
22
|
+
* When this task is triggered by a new block header (`checkNow = true`, wired in
|
|
23
|
+
* `Monitor.processNewBlockHeader`), it does NOT scan every `nosend` row on every
|
|
24
|
+
* block. The set of `nosend` rows can grow large over a wallet's lifetime
|
|
25
|
+
* (txs sitting in escrow, un-aborted tests, abandoned batches), and a fast,
|
|
26
|
+
* unfiltered scan on every block would do an unbounded number of external
|
|
27
|
+
* `getMerklePath` lookups per block.
|
|
28
|
+
*
|
|
29
|
+
* Instead, the row's age (now - `created_at`) determines how often it is
|
|
30
|
+
* eligible for a checkNow-triggered chain check. The schedule starts at "skip
|
|
31
|
+
* entirely" for very fresh rows (to protect in-flight batched-tx workflows
|
|
32
|
+
* where chained `createAction({ noSend: true, sendWith: [...] })` builds
|
|
33
|
+
* deliberately keep rows in `nosend` until a single terminator broadcasts the
|
|
34
|
+
* whole BEEF), then progresses to "every block", "hourly", "daily", and
|
|
35
|
+
* "weekly" as rows age:
|
|
36
|
+
*
|
|
37
|
+
* age < 5 min → skip (in-flight batch protection)
|
|
38
|
+
* 5 min ≤ age < 1 hr → check on every checkNow trigger
|
|
39
|
+
* 1 hr ≤ age < 24 hr → check on ~hourly cadence (block-height % 6)
|
|
40
|
+
* 24 hr ≤ age < 7 days → check on ~daily cadence (block-height % 144)
|
|
41
|
+
* age ≥ 7 days → check on ~weekly cadence (block-height % 1008)
|
|
42
|
+
*
|
|
43
|
+
* Block-height modulo gives a deterministic, stateless way to schedule
|
|
44
|
+
* checks for older rows; no per-row "last checked" persistence is required.
|
|
45
|
+
* Each row's modulo offset is keyed by its `provenTxReqId` so that rows in
|
|
46
|
+
* the same age tier are staggered across the modulo cycle rather than all
|
|
47
|
+
* firing on the same block — `(blockHeight + provenTxReqId) % tierInterval`.
|
|
48
|
+
* For a wallet with N rows in tier T and tier interval K, this gives
|
|
49
|
+
* roughly N/K rows fired per block instead of N rows fired every K blocks.
|
|
50
|
+
*
|
|
51
|
+
* The scheduled daily cadence (no `checkNow`) is unaffected — it still scans
|
|
52
|
+
* every row regardless of age. That path is the once-per-day fallback that
|
|
53
|
+
* guarantees externally-broadcast `nosend` txs are eventually recognized
|
|
54
|
+
* even if the aging schedule on the checkNow path defers them.
|
|
19
55
|
*/
|
|
20
56
|
class TaskCheckNoSends extends WalletMonitorTask_1.WalletMonitorTask {
|
|
57
|
+
triggerMsecs;
|
|
58
|
+
static taskName = 'CheckNoSends';
|
|
59
|
+
/**
|
|
60
|
+
* An external service such as the chaintracks new block header
|
|
61
|
+
* listener can set this true to cause
|
|
62
|
+
*/
|
|
63
|
+
static checkNow = false;
|
|
64
|
+
/**
|
|
65
|
+
* Aging-schedule constants for the `checkNow` path. Rows below `tier0FreshSkipMsecs`
|
|
66
|
+
* are never checked via checkNow (batched-tx protection). Rows from tier 0 up
|
|
67
|
+
* to `tier1EveryBlockMsecs` are checked on every checkNow trigger. Beyond that,
|
|
68
|
+
* checks happen on `block-height % tierNBlockInterval === 0` cadences with
|
|
69
|
+
* growing intervals. The scheduled daily cadence (no checkNow) is unaffected.
|
|
70
|
+
*/
|
|
71
|
+
static tier0FreshSkipMsecs = 5 * 60 * 1000; // 5 min
|
|
72
|
+
static tier1EveryBlockMsecs = 60 * 60 * 1000; // 1 hr
|
|
73
|
+
static tier2HourlyMsecs = 24 * 60 * 60 * 1000; // 24 hr
|
|
74
|
+
static tier3DailyMsecs = 7 * 24 * 60 * 60 * 1000; // 7 days
|
|
75
|
+
static tier2BlockInterval = 6; // ~hourly on 10-min blocks
|
|
76
|
+
static tier3BlockInterval = 144; // ~daily on 10-min blocks
|
|
77
|
+
static tier4BlockInterval = 1008; // ~weekly on 10-min blocks
|
|
78
|
+
/**
|
|
79
|
+
* Decide whether a single `nosend` row should be chain-checked on the
|
|
80
|
+
* current `checkNow` trigger, based on its age, the current block
|
|
81
|
+
* height, and its `provenTxReqId` (used to stagger same-tier rows
|
|
82
|
+
* across the modulo cycle). See class docstring for the full schedule
|
|
83
|
+
* and staggering rationale.
|
|
84
|
+
*/
|
|
85
|
+
static shouldCheckOnCheckNow(createdAt, nowMs, currentBlockHeight, provenTxReqId) {
|
|
86
|
+
const ageMs = nowMs - createdAt.getTime();
|
|
87
|
+
if (ageMs < TaskCheckNoSends.tier0FreshSkipMsecs)
|
|
88
|
+
return false;
|
|
89
|
+
if (ageMs < TaskCheckNoSends.tier1EveryBlockMsecs)
|
|
90
|
+
return true;
|
|
91
|
+
// Stagger same-tier rows by `provenTxReqId` so they fire on different
|
|
92
|
+
// blocks within the modulo cycle, not all on the same block.
|
|
93
|
+
if (ageMs < TaskCheckNoSends.tier2HourlyMsecs) {
|
|
94
|
+
return (currentBlockHeight + provenTxReqId) % TaskCheckNoSends.tier2BlockInterval === 0;
|
|
95
|
+
}
|
|
96
|
+
if (ageMs < TaskCheckNoSends.tier3DailyMsecs) {
|
|
97
|
+
return (currentBlockHeight + provenTxReqId) % TaskCheckNoSends.tier3BlockInterval === 0;
|
|
98
|
+
}
|
|
99
|
+
return (currentBlockHeight + provenTxReqId) % TaskCheckNoSends.tier4BlockInterval === 0;
|
|
100
|
+
}
|
|
21
101
|
constructor(monitor, triggerMsecs = Monitor_1.Monitor.oneDay * 1) {
|
|
22
102
|
super(monitor, TaskCheckNoSends.taskName);
|
|
23
103
|
this.triggerMsecs = triggerMsecs;
|
|
@@ -32,14 +112,15 @@ class TaskCheckNoSends extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
32
112
|
};
|
|
33
113
|
}
|
|
34
114
|
async runTask() {
|
|
35
|
-
var _a;
|
|
36
115
|
let log = '';
|
|
37
|
-
const
|
|
116
|
+
const wasCheckNow = TaskCheckNoSends.checkNow;
|
|
117
|
+
const countsAsAttempt = wasCheckNow;
|
|
38
118
|
TaskCheckNoSends.checkNow = false;
|
|
39
|
-
const maxAcceptableHeight =
|
|
119
|
+
const maxAcceptableHeight = this.monitor.lastNewHeader?.height;
|
|
40
120
|
if (maxAcceptableHeight === undefined) {
|
|
41
121
|
return log;
|
|
42
122
|
}
|
|
123
|
+
const nowMs = Date.now();
|
|
43
124
|
const limit = 100;
|
|
44
125
|
let offset = 0;
|
|
45
126
|
for (;;) {
|
|
@@ -51,8 +132,22 @@ class TaskCheckNoSends extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
51
132
|
if (reqs.length === 0)
|
|
52
133
|
break;
|
|
53
134
|
log += `${reqs.length} reqs with status 'nosend'\n`;
|
|
54
|
-
|
|
55
|
-
|
|
135
|
+
// On the checkNow (block-triggered) path, apply the aging schedule
|
|
136
|
+
// — see class docstring. The scheduled daily cadence is unfiltered
|
|
137
|
+
// so externally-broadcast unmined nosend txs are eventually caught
|
|
138
|
+
// regardless of age.
|
|
139
|
+
let eligible = reqs;
|
|
140
|
+
if (wasCheckNow) {
|
|
141
|
+
eligible = reqs.filter(r => TaskCheckNoSends.shouldCheckOnCheckNow(r.created_at, nowMs, maxAcceptableHeight, r.provenTxReqId));
|
|
142
|
+
const skipped = reqs.length - eligible.length;
|
|
143
|
+
if (skipped > 0) {
|
|
144
|
+
log += `aging schedule: skipping ${skipped} of ${reqs.length} reqs on checkNow path (block-triggered)\n`;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (eligible.length > 0) {
|
|
148
|
+
const r = await (0, TaskCheckForProofs_1.getProofs)(this, eligible, maxAcceptableHeight, 2, countsAsAttempt, false);
|
|
149
|
+
log += `${r.log}\n`;
|
|
150
|
+
}
|
|
56
151
|
if (reqs.length < limit)
|
|
57
152
|
break;
|
|
58
153
|
offset += limit;
|
|
@@ -61,10 +156,4 @@ class TaskCheckNoSends extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
61
156
|
}
|
|
62
157
|
}
|
|
63
158
|
exports.TaskCheckNoSends = TaskCheckNoSends;
|
|
64
|
-
TaskCheckNoSends.taskName = 'CheckNoSends';
|
|
65
|
-
/**
|
|
66
|
-
* An external service such as the chaintracks new block header
|
|
67
|
-
* listener can set this true to cause
|
|
68
|
-
*/
|
|
69
|
-
TaskCheckNoSends.checkNow = false;
|
|
70
159
|
//# sourceMappingURL=TaskCheckNoSends.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskCheckNoSends.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckNoSends.ts"],"names":[],"mappings":";;;AAAA,wCAAoC;AACpC,6DAAgD;AAChD,2DAAuD;AAEvD
|
|
1
|
+
{"version":3,"file":"TaskCheckNoSends.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskCheckNoSends.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,9 @@ exports.TaskClock = void 0;
|
|
|
4
4
|
const Monitor_1 = require("../Monitor");
|
|
5
5
|
const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
6
6
|
class TaskClock extends WalletMonitorTask_1.WalletMonitorTask {
|
|
7
|
+
triggerMsecs;
|
|
8
|
+
static taskName = 'Clock';
|
|
9
|
+
nextMinute;
|
|
7
10
|
constructor(monitor, triggerMsecs = 1 * Monitor_1.Monitor.oneSecond) {
|
|
8
11
|
super(monitor, TaskClock.taskName);
|
|
9
12
|
this.triggerMsecs = triggerMsecs;
|
|
@@ -23,5 +26,4 @@ class TaskClock extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
23
26
|
}
|
|
24
27
|
}
|
|
25
28
|
exports.TaskClock = TaskClock;
|
|
26
|
-
TaskClock.taskName = 'Clock';
|
|
27
29
|
//# sourceMappingURL=TaskClock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskClock.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskClock.ts"],"names":[],"mappings":";;;AAAA,wCAAoC;AACpC,2DAAuD;AAEvD,MAAa,SAAU,SAAQ,qCAAiB;
|
|
1
|
+
{"version":3,"file":"TaskClock.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskClock.ts"],"names":[],"mappings":";;;AAAA,wCAAoC;AACpC,2DAAuD;AAEvD,MAAa,SAAU,SAAQ,qCAAiB;IAMrC;IALT,MAAM,CAAU,QAAQ,GAAG,OAAO,CAAA;IAClC,UAAU,CAAQ;IAElB,YACE,OAAgB,EACT,eAAe,CAAC,GAAG,iBAAO,CAAC,SAAS;QAE3C,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;QAF3B,iBAAY,GAAZ,YAAY,CAAwB;QAG3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACxC,CAAC;IAED,OAAO,CAAE,kBAA0B;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAA;QACxC,OAAO,EAAE,GAAG,EAAE,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;QACxD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACtC,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAO,CAAC,SAAS,CAAC,GAAG,iBAAO,CAAC,SAAS,CAAA;IACtE,CAAC;;AAzBH,8BA0BC"}
|
|
@@ -11,6 +11,8 @@ const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
|
11
11
|
* outputs are not spendable.
|
|
12
12
|
*/
|
|
13
13
|
class TaskFailAbandoned extends WalletMonitorTask_1.WalletMonitorTask {
|
|
14
|
+
triggerMsecs;
|
|
15
|
+
static taskName = 'FailAbandoned';
|
|
14
16
|
constructor(monitor, triggerMsecs = 1000 * 60 * 5) {
|
|
15
17
|
super(monitor, TaskFailAbandoned.taskName);
|
|
16
18
|
this.triggerMsecs = triggerMsecs;
|
|
@@ -48,5 +50,4 @@ class TaskFailAbandoned extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
exports.TaskFailAbandoned = TaskFailAbandoned;
|
|
51
|
-
TaskFailAbandoned.taskName = 'FailAbandoned';
|
|
52
53
|
//# sourceMappingURL=TaskFailAbandoned.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskFailAbandoned.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskFailAbandoned.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AAEvD;;;;;;;GAOG;AAEH,MAAa,iBAAkB,SAAQ,qCAAiB;
|
|
1
|
+
{"version":3,"file":"TaskFailAbandoned.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskFailAbandoned.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AAEvD;;;;;;;GAOG;AAEH,MAAa,iBAAkB,SAAQ,qCAAiB;IAK7C;IAJT,MAAM,CAAU,QAAQ,GAAG,eAAe,CAAA;IAE1C,YACE,OAAgB,EACT,eAAe,IAAI,GAAG,EAAE,GAAG,CAAC;QAEnC,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;QAFnC,iBAAY,GAAZ,YAAY,CAAgB;IAGrC,CAAC;IAED,OAAO,CAAE,kBAA0B;QACjC,OAAO;YACL,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,YAAY;SAC1E,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,MAAM,KAAK,GAAG,GAAG,CAAA;QACjB,IAAI,MAAM,GAAG,CAAC,CAAA;QACd,SAAS,CAAC;YACR,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;YACtB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;YAC/E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;gBAC9D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC;oBACvC,OAAO,EAAE,EAAE;oBACX,MAAM,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;oBACnC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;iBACzB,CAAC,CAAA;gBACF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,CAAA;gBACxE,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;oBACrB,MAAM,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,CAAA;oBAC5D,GAAG,IAAI,cAAc,EAAE,CAAC,aAAa,uBAAuB,CAAA;gBAC9D,CAAC;gBACD,OAAO,GAAG,CAAC,MAAM,GAAG,KAAK,CAAA;YAC3B,CAAC,CAAC,CAAA;YACF,IAAI,IAAI;gBAAE,MAAK;YACf,MAAM,IAAI,KAAK,CAAA;QACjB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;;AAxCH,8CAyCC"}
|
|
@@ -4,6 +4,9 @@ exports.TaskMineBlock = void 0;
|
|
|
4
4
|
const Monitor_1 = require("../Monitor");
|
|
5
5
|
const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
6
6
|
class TaskMineBlock extends WalletMonitorTask_1.WalletMonitorTask {
|
|
7
|
+
triggerMsecs;
|
|
8
|
+
static taskName = 'MineBlock';
|
|
9
|
+
static mineNow = false;
|
|
7
10
|
constructor(monitor, triggerMsecs = 10 * Monitor_1.Monitor.oneMinute) {
|
|
8
11
|
super(monitor, TaskMineBlock.taskName);
|
|
9
12
|
this.triggerMsecs = triggerMsecs;
|
|
@@ -24,6 +27,4 @@ class TaskMineBlock extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
29
|
exports.TaskMineBlock = TaskMineBlock;
|
|
27
|
-
TaskMineBlock.taskName = 'MineBlock';
|
|
28
|
-
TaskMineBlock.mineNow = false;
|
|
29
30
|
//# sourceMappingURL=TaskMineBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskMineBlock.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskMineBlock.ts"],"names":[],"mappings":";;;AAAA,wCAAoC;AACpC,2DAAuD;AAGvD,MAAa,aAAc,SAAQ,qCAAiB;
|
|
1
|
+
{"version":3,"file":"TaskMineBlock.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskMineBlock.ts"],"names":[],"mappings":";;;AAAA,wCAAoC;AACpC,2DAAuD;AAGvD,MAAa,aAAc,SAAQ,qCAAiB;IAMzC;IALT,MAAM,CAAU,QAAQ,GAAG,WAAW,CAAA;IACtC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA;IAEtB,YACE,OAAgB,EACT,eAAe,EAAE,GAAG,iBAAO,CAAC,SAAS;QAE5C,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;QAF/B,iBAAY,GAAZ,YAAY,CAAyB;IAG9C,CAAC;IAED,OAAO,CAAE,kBAA0B;QACjC,IAAI,aAAa,CAAC,OAAO;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;QAC/C,IAAI,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;QAC/F,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,aAAa,CAAC,OAAO,GAAG,KAAK,CAAA;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAmC,CAAA;QACrE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,CAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAC1C,OAAO,eAAe,MAAM,CAAC,MAAM,SAAS,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3D,CAAC;;AAvBH,sCAwBC"}
|
|
@@ -4,6 +4,8 @@ exports.TaskMonitorCallHistory = void 0;
|
|
|
4
4
|
const Monitor_1 = require("../Monitor");
|
|
5
5
|
const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
6
6
|
class TaskMonitorCallHistory extends WalletMonitorTask_1.WalletMonitorTask {
|
|
7
|
+
triggerMsecs;
|
|
8
|
+
static taskName = 'MonitorCallHistory';
|
|
7
9
|
constructor(monitor, triggerMsecs = Monitor_1.Monitor.oneMinute * 12) {
|
|
8
10
|
super(monitor, TaskMonitorCallHistory.taskName);
|
|
9
11
|
this.triggerMsecs = triggerMsecs;
|
|
@@ -20,5 +22,4 @@ class TaskMonitorCallHistory extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
24
|
exports.TaskMonitorCallHistory = TaskMonitorCallHistory;
|
|
23
|
-
TaskMonitorCallHistory.taskName = 'MonitorCallHistory';
|
|
24
25
|
//# sourceMappingURL=TaskMonitorCallHistory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskMonitorCallHistory.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskMonitorCallHistory.ts"],"names":[],"mappings":";;;AAAA,wCAAoC;AACpC,2DAAuD;AAEvD,MAAa,sBAAuB,SAAQ,qCAAiB;
|
|
1
|
+
{"version":3,"file":"TaskMonitorCallHistory.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskMonitorCallHistory.ts"],"names":[],"mappings":";;;AAAA,wCAAoC;AACpC,2DAAuD;AAEvD,MAAa,sBAAuB,SAAQ,qCAAiB;IAKlD;IAJT,MAAM,CAAU,QAAQ,GAAG,oBAAoB,CAAA;IAE/C,YACE,OAAgB,EACT,eAAe,iBAAO,CAAC,SAAS,GAAG,EAAE;QAE5C,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QAFxC,iBAAY,GAAZ,YAAY,CAAyB;IAG9C,CAAC;IAED,OAAO,CAAE,kBAA0B;QACjC,OAAO;YACL,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,YAAY;SAC1E,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAC7B,OAAO,GAAG,CAAA;IACZ,CAAC;;AApBH,wDAqBC"}
|
|
@@ -16,6 +16,18 @@ const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
|
16
16
|
* with that header height as the limit for which proofs are accepted.
|
|
17
17
|
*/
|
|
18
18
|
class TaskNewHeader extends WalletMonitorTask_1.WalletMonitorTask {
|
|
19
|
+
triggerMsecs;
|
|
20
|
+
static taskName = 'NewHeader';
|
|
21
|
+
/**
|
|
22
|
+
* This is always the most recent chain tip header returned from the chaintracker.
|
|
23
|
+
*/
|
|
24
|
+
header;
|
|
25
|
+
/**
|
|
26
|
+
* Tracks the value of `header` except that it is set to undefined
|
|
27
|
+
* when a cycle without a new header occurs and `processNewBlockHeader` is called.
|
|
28
|
+
*/
|
|
29
|
+
queuedHeader;
|
|
30
|
+
queuedHeaderWhen;
|
|
19
31
|
constructor(monitor, triggerMsecs = 1 * Monitor_1.Monitor.oneMinute) {
|
|
20
32
|
super(monitor, TaskNewHeader.taskName);
|
|
21
33
|
this.triggerMsecs = triggerMsecs;
|
|
@@ -82,5 +94,4 @@ class TaskNewHeader extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
82
94
|
}
|
|
83
95
|
}
|
|
84
96
|
exports.TaskNewHeader = TaskNewHeader;
|
|
85
|
-
TaskNewHeader.taskName = 'NewHeader';
|
|
86
97
|
//# sourceMappingURL=TaskNewHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskNewHeader.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskNewHeader.ts"],"names":[],"mappings":";;;AACA,wCAAoC;AACpC,2DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,MAAa,aAAc,SAAQ,qCAAiB;
|
|
1
|
+
{"version":3,"file":"TaskNewHeader.js","sourceRoot":"","sources":["../../../../../src/monitor/tasks/TaskNewHeader.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TaskPurge = void 0;
|
|
4
4
|
const WalletMonitorTask_1 = require("./WalletMonitorTask");
|
|
5
5
|
class TaskPurge extends WalletMonitorTask_1.WalletMonitorTask {
|
|
6
|
+
params;
|
|
7
|
+
triggerMsecs;
|
|
8
|
+
static taskName = 'Purge';
|
|
9
|
+
/**
|
|
10
|
+
* Set to true to trigger running this task
|
|
11
|
+
*/
|
|
12
|
+
static checkNow = false;
|
|
6
13
|
constructor(monitor, params, triggerMsecs = 0) {
|
|
7
14
|
super(monitor, TaskPurge.taskName);
|
|
8
15
|
this.params = params;
|
|
@@ -26,9 +33,4 @@ class TaskPurge extends WalletMonitorTask_1.WalletMonitorTask {
|
|
|
26
33
|
}
|
|
27
34
|
}
|
|
28
35
|
exports.TaskPurge = TaskPurge;
|
|
29
|
-
TaskPurge.taskName = 'Purge';
|
|
30
|
-
/**
|
|
31
|
-
* Set to true to trigger running this task
|
|
32
|
-
*/
|
|
33
|
-
TaskPurge.checkNow = false;
|
|
34
36
|
//# sourceMappingURL=TaskPurge.js.map
|