@tradestack/paymaster 1.2.4 → 1.2.6
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/dist/backend/services/chains/evm.service.d.ts +3 -2
- package/dist/backend/services/chains/evm.service.d.ts.map +1 -1
- package/dist/backend/services/chains/evm.service.js +70 -72
- package/dist/backend/services/chains/evm.service.js.map +1 -1
- package/dist/backend/services/chains/solana.service.d.ts +3 -2
- package/dist/backend/services/chains/solana.service.d.ts.map +1 -1
- package/dist/backend/services/chains/solana.service.js +32 -31
- package/dist/backend/services/chains/solana.service.js.map +1 -1
- package/dist/backend/services/chains/tron.service.d.ts +3 -2
- package/dist/backend/services/chains/tron.service.d.ts.map +1 -1
- package/dist/backend/services/chains/tron.service.js +59 -48
- package/dist/backend/services/chains/tron.service.js.map +1 -1
- package/dist/backend/services/sweep.service.d.ts +3 -2
- package/dist/backend/services/sweep.service.d.ts.map +1 -1
- package/dist/backend/services/sweep.service.js +8 -8
- package/dist/backend/services/sweep.service.js.map +1 -1
- package/dist/backend/services/sweep.worker.d.ts +1 -0
- package/dist/backend/services/sweep.worker.d.ts.map +1 -1
- package/dist/backend/services/sweep.worker.js +28 -27
- package/dist/backend/services/sweep.worker.js.map +1 -1
- package/dist/sdk/index.d.ts +2 -1
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js +56 -24
- package/dist/sdk/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.runSweepCycle = exports.stopAllSweepWorkers = exports.stopSweepWorker = exports.startSweepWorker = void 0;
|
|
3
|
+
exports.runSweepCycle = exports.stopAllSweepWorkers = exports.stopSweepWorker = exports.startSweepWorker = exports.log = void 0;
|
|
4
4
|
const sweep_service_1 = require("./sweep.service");
|
|
5
5
|
const constants_1 = require("../config/constants");
|
|
6
6
|
// ─── Internal log helper ──────────────────────────────────────────────────────
|
|
7
7
|
const log = (callbacks, level, message) => {
|
|
8
8
|
callbacks?.onLog?.(level, message);
|
|
9
9
|
};
|
|
10
|
+
exports.log = log;
|
|
10
11
|
const activeWorkers = new Map();
|
|
11
12
|
const startSweepWorker = (chainConfig, callbacks) => {
|
|
12
13
|
const chainKey = chainConfig.chainKey;
|
|
13
14
|
if (activeWorkers.has(chainKey)) {
|
|
14
|
-
log(callbacks, "info", `[${chainConfig.name}] Sweep worker already running`);
|
|
15
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Sweep worker already running`);
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
|
-
log(callbacks, "info", `Sweep worker started for ${chainConfig.name}: checking every ${constants_1.SWEEP_INTERVAL_MS / 1000}s`);
|
|
18
|
+
(0, exports.log)(callbacks, "info", `Sweep worker started for ${chainConfig.name}: checking every ${constants_1.SWEEP_INTERVAL_MS / 1000}s`);
|
|
18
19
|
const interval = setInterval(async () => {
|
|
19
20
|
await (0, exports.runSweepCycle)(chainConfig, callbacks);
|
|
20
21
|
}, constants_1.SWEEP_INTERVAL_MS);
|
|
@@ -22,7 +23,7 @@ const startSweepWorker = (chainConfig, callbacks) => {
|
|
|
22
23
|
const stop = () => {
|
|
23
24
|
clearInterval(interval);
|
|
24
25
|
activeWorkers.delete(chainKey);
|
|
25
|
-
log(callbacks, "info", `Sweep worker stopped for ${chainConfig.name}`);
|
|
26
|
+
(0, exports.log)(callbacks, "info", `Sweep worker stopped for ${chainConfig.name}`);
|
|
26
27
|
};
|
|
27
28
|
activeWorkers.set(chainKey, stop);
|
|
28
29
|
return stop;
|
|
@@ -33,55 +34,55 @@ const stopSweepWorker = (callbacks) => {
|
|
|
33
34
|
stop();
|
|
34
35
|
}
|
|
35
36
|
activeWorkers.clear();
|
|
36
|
-
log(callbacks, "info", "All sweep workers stopped");
|
|
37
|
+
(0, exports.log)(callbacks, "info", "All sweep workers stopped");
|
|
37
38
|
};
|
|
38
39
|
exports.stopSweepWorker = stopSweepWorker;
|
|
39
40
|
exports.stopAllSweepWorkers = exports.stopSweepWorker;
|
|
40
41
|
const runSweepCycle = async (chainConfig, callbacks) => {
|
|
41
|
-
log(callbacks, "info", `[${chainConfig.name}] Running sweep cycle at ${new Date().toISOString()}`);
|
|
42
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Running sweep cycle at ${new Date().toISOString()}`);
|
|
42
43
|
try {
|
|
43
44
|
const wallets = await (0, sweep_service_1.getAllWallets)(chainConfig.chainType);
|
|
44
|
-
log(callbacks, "info", `[${chainConfig.name}] Found ${wallets.length} wallets for chain type: ${chainConfig.chainType}`);
|
|
45
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Found ${wallets.length} wallets for chain type: ${chainConfig.chainType}`);
|
|
45
46
|
if (wallets.length === 0) {
|
|
46
|
-
log(callbacks, "info", `[${chainConfig.name}] No active wallets found`);
|
|
47
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] No active wallets found`);
|
|
47
48
|
return;
|
|
48
49
|
}
|
|
49
|
-
log(callbacks, "info", `[${chainConfig.name}] Checking ${wallets.length} wallets sequentially`);
|
|
50
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Checking ${wallets.length} wallets sequentially`);
|
|
50
51
|
for (const wallet of wallets) {
|
|
51
52
|
try {
|
|
52
|
-
log(callbacks, "info", `[${chainConfig.name}] Processing wallet: ${wallet.address}`);
|
|
53
|
-
log(callbacks, "info", `[${chainConfig.name}] Checking tokens above threshold...`);
|
|
53
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Processing wallet: ${wallet.address}`);
|
|
54
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Checking tokens above threshold...`);
|
|
54
55
|
const tokensToSweep = await (0, sweep_service_1.getTokensAboveThreshold)(wallet.address, chainConfig);
|
|
55
|
-
log(callbacks, "info", `[${chainConfig.name}] Tokens to sweep: ${JSON.stringify(tokensToSweep)}`);
|
|
56
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Tokens to sweep: ${JSON.stringify(tokensToSweep)}`);
|
|
56
57
|
for (const token of tokensToSweep) {
|
|
57
58
|
await sweepWithRetry(wallet, chainConfig, token, callbacks);
|
|
58
59
|
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
59
60
|
}
|
|
60
|
-
log(callbacks, "info", `[${chainConfig.name}] Checking native asset...`);
|
|
61
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Checking native asset...`);
|
|
61
62
|
const hasNative = await (0, sweep_service_1.isNativeAboveThreshold)(wallet.address, chainConfig);
|
|
62
|
-
log(callbacks, "info", `[${chainConfig.name}] Has native above threshold: ${hasNative}`);
|
|
63
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Has native above threshold: ${hasNative}`);
|
|
63
64
|
if (hasNative) {
|
|
64
65
|
await sweepNativeWithRetry(wallet, chainConfig, callbacks);
|
|
65
66
|
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
catch (err) {
|
|
69
|
-
log(callbacks, "error", `[${chainConfig.name}] Error processing wallet ${wallet.address}: ${err}`);
|
|
70
|
+
(0, exports.log)(callbacks, "error", `[${chainConfig.name}] Error processing wallet ${wallet.address}: ${err}`);
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
|
-
log(callbacks, "info", `[${chainConfig.name}] Sweep cycle complete`);
|
|
73
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Sweep cycle complete`);
|
|
73
74
|
}
|
|
74
75
|
catch (err) {
|
|
75
|
-
log(callbacks, "error", `[${chainConfig.name}] Sweep cycle error: ${err}`);
|
|
76
|
+
(0, exports.log)(callbacks, "error", `[${chainConfig.name}] Sweep cycle error: ${err}`);
|
|
76
77
|
}
|
|
77
78
|
};
|
|
78
79
|
exports.runSweepCycle = runSweepCycle;
|
|
79
80
|
const sweepWithRetry = async (wallet, chainConfig, token, callbacks, maxRetries = 3, attempt = 1) => {
|
|
80
81
|
try {
|
|
81
|
-
const result = await (0, sweep_service_1.triggerTokenSweep)(wallet, chainConfig, token);
|
|
82
|
+
const result = await (0, sweep_service_1.triggerTokenSweep)(wallet, chainConfig, token, callbacks);
|
|
82
83
|
if (result.txHash === "")
|
|
83
84
|
return;
|
|
84
|
-
log(callbacks, "info", `[${chainConfig.name}] Sweep successful for ${wallet.address} (${token})`);
|
|
85
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Sweep successful for ${wallet.address} (${token})`);
|
|
85
86
|
if (callbacks?.onSweepComplete) {
|
|
86
87
|
await callbacks.onSweepComplete({
|
|
87
88
|
address: wallet.address,
|
|
@@ -96,13 +97,13 @@ const sweepWithRetry = async (wallet, chainConfig, token, callbacks, maxRetries
|
|
|
96
97
|
catch (err) {
|
|
97
98
|
if (attempt < maxRetries) {
|
|
98
99
|
const delay = attempt * 2000;
|
|
99
|
-
log(callbacks, "warn", `[${chainConfig.name}] Sweep failed for ${wallet.address} (${token}) — retry ${attempt}/${maxRetries} in ${delay}ms`);
|
|
100
|
-
log(callbacks, "warn", `Error while sweeping: ${err}`);
|
|
100
|
+
(0, exports.log)(callbacks, "warn", `[${chainConfig.name}] Sweep failed for ${wallet.address} (${token}) — retry ${attempt}/${maxRetries} in ${delay}ms`);
|
|
101
|
+
(0, exports.log)(callbacks, "warn", `Error while sweeping: ${err}`);
|
|
101
102
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
102
103
|
await sweepWithRetry(wallet, chainConfig, token, callbacks, maxRetries, attempt + 1);
|
|
103
104
|
}
|
|
104
105
|
else {
|
|
105
|
-
log(callbacks, "error", `[${chainConfig.name}] Sweep failed for ${wallet.address} (${token}) after ${maxRetries} attempts: ${err}`);
|
|
106
|
+
(0, exports.log)(callbacks, "error", `[${chainConfig.name}] Sweep failed for ${wallet.address} (${token}) after ${maxRetries} attempts: ${err}`);
|
|
106
107
|
if (callbacks?.onSweepFailed) {
|
|
107
108
|
await callbacks.onSweepFailed({
|
|
108
109
|
address: wallet.address,
|
|
@@ -117,10 +118,10 @@ const sweepWithRetry = async (wallet, chainConfig, token, callbacks, maxRetries
|
|
|
117
118
|
};
|
|
118
119
|
const sweepNativeWithRetry = async (wallet, chainConfig, callbacks, maxRetries = 3, attempt = 1) => {
|
|
119
120
|
try {
|
|
120
|
-
const result = await (0, sweep_service_1.triggerNativeSweep)(wallet, chainConfig);
|
|
121
|
+
const result = await (0, sweep_service_1.triggerNativeSweep)(wallet, chainConfig, callbacks);
|
|
121
122
|
if (result.txHash === "")
|
|
122
123
|
return;
|
|
123
|
-
log(callbacks, "info", `[${chainConfig.name}] Native sweep successful for ${wallet.address}`);
|
|
124
|
+
(0, exports.log)(callbacks, "info", `[${chainConfig.name}] Native sweep successful for ${wallet.address}`);
|
|
124
125
|
if (callbacks?.onSweepComplete) {
|
|
125
126
|
await callbacks.onSweepComplete({
|
|
126
127
|
address: wallet.address,
|
|
@@ -139,13 +140,13 @@ const sweepNativeWithRetry = async (wallet, chainConfig, callbacks, maxRetries =
|
|
|
139
140
|
catch (err) {
|
|
140
141
|
if (attempt < maxRetries) {
|
|
141
142
|
const delay = attempt * 2000;
|
|
142
|
-
log(callbacks, "warn", `[${chainConfig.name}] Native sweep failed for ${wallet.address} — retry ${attempt}/${maxRetries} in ${delay}ms`);
|
|
143
|
-
log(callbacks, "warn", `Error while sweeping native: ${err}`);
|
|
143
|
+
(0, exports.log)(callbacks, "warn", `[${chainConfig.name}] Native sweep failed for ${wallet.address} — retry ${attempt}/${maxRetries} in ${delay}ms`);
|
|
144
|
+
(0, exports.log)(callbacks, "warn", `Error while sweeping native: ${err}`);
|
|
144
145
|
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
145
146
|
await sweepNativeWithRetry(wallet, chainConfig, callbacks, maxRetries, attempt + 1);
|
|
146
147
|
}
|
|
147
148
|
else {
|
|
148
|
-
log(callbacks, "error", `[${chainConfig.name}] Native sweep failed for ${wallet.address} after ${maxRetries} attempts: ${err}`);
|
|
149
|
+
(0, exports.log)(callbacks, "error", `[${chainConfig.name}] Native sweep failed for ${wallet.address} after ${maxRetries} attempts: ${err}`);
|
|
149
150
|
if (callbacks?.onSweepFailed) {
|
|
150
151
|
await callbacks.onSweepFailed({
|
|
151
152
|
address: wallet.address,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sweep.worker.js","sourceRoot":"","sources":["../../../../src/backend/services/sweep.worker.ts"],"names":[],"mappings":";;;AAAA,mDAMyB;AAEzB,mDAAkE;AAYlE,iFAAiF;
|
|
1
|
+
{"version":3,"file":"sweep.worker.js","sourceRoot":"","sources":["../../../../src/backend/services/sweep.worker.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/index.d.ts
CHANGED
|
@@ -6,9 +6,10 @@ export declare class HalalPaymaster extends EventEmitter {
|
|
|
6
6
|
private db;
|
|
7
7
|
private workers;
|
|
8
8
|
private running;
|
|
9
|
+
private shutdownBound;
|
|
9
10
|
constructor(config: HalalPaymasterConfig);
|
|
10
11
|
private log;
|
|
11
|
-
private
|
|
12
|
+
private validateAndBindConfigEnv;
|
|
12
13
|
start(): Promise<void>;
|
|
13
14
|
private runSweepCycle;
|
|
14
15
|
stop(): Promise<void>;
|
package/dist/sdk/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,oBAAoB,EAIrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAOvD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,OAAO,CAAS;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EACL,oBAAoB,EAIrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAOvD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;gBAElB,MAAM,EAAE,oBAAoB;IAWxC,OAAO,CAAC,GAAG;IAkBX,OAAO,CAAC,wBAAwB;IAsC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAqEd,aAAa;IA0CrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BrB,kBAAkB,CACtB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,eAAe,GAAE,MAAc,GAC9B,OAAO,CAAC;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IA8FI,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBxD,eAAe,CAAC,OAAO,EAAE,MAAM;CAGtC;AAED,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,GACd,MAAM,SAAS,CAAC"}
|
package/dist/sdk/index.js
CHANGED
|
@@ -50,22 +50,9 @@ class HalalPaymaster extends events_1.EventEmitter {
|
|
|
50
50
|
super();
|
|
51
51
|
this.workers = new Map();
|
|
52
52
|
this.running = false;
|
|
53
|
-
this.
|
|
53
|
+
this.shutdownBound = false;
|
|
54
54
|
this.config = config;
|
|
55
55
|
this.db = new adapter_1.DBAdapter(config.database.url, config.database.type, config.database.tables);
|
|
56
|
-
(0, db_context_1.setDBAdapter)(this.db);
|
|
57
|
-
process.env.HD_MNEMONIC = config.keys.hdMnemonic;
|
|
58
|
-
process.env.SIGNER_PRIVATE_KEY = config.keys.evmSignerKey;
|
|
59
|
-
process.env.SOLANA_FEE_PAYER_PRIVATE_KEY = config.keys.solanaFeePayerKey;
|
|
60
|
-
process.env.TRON_FEE_PAYER_PRIVATE_KEY = config.keys.tronFeePayerKey;
|
|
61
|
-
process.env.ALCHEMY_API_KEY = config.keys.alchemyApiKey;
|
|
62
|
-
process.env.PIMLICO_API_KEY = config.keys.pimlicoApiKey;
|
|
63
|
-
process.env.EVM_HOT_WALLET = config.hotWallets.evm;
|
|
64
|
-
process.env.SOLANA_HOT_WALLET_ADDRESS = config.hotWallets.solana;
|
|
65
|
-
process.env.TRON_HOT_WALLET_ADDRESS = config.hotWallets.tron;
|
|
66
|
-
process.env.BATCH_SWEEP_ID = config.batchSweepId;
|
|
67
|
-
process.env.DATABASE_URL = config.database.url;
|
|
68
|
-
process.env.SWEEP_THRESHOLD_USD = String(config.sweepThresholdUSD ?? 1);
|
|
69
56
|
}
|
|
70
57
|
// ─── internal logger ───────────────────────────────────────────────────────
|
|
71
58
|
log(level, message, chain = "system") {
|
|
@@ -81,7 +68,7 @@ class HalalPaymaster extends events_1.EventEmitter {
|
|
|
81
68
|
}
|
|
82
69
|
}
|
|
83
70
|
// ─── validation ────────────────────────────────────────────────────────────
|
|
84
|
-
|
|
71
|
+
validateAndBindConfigEnv(config) {
|
|
85
72
|
if (!config.database?.url)
|
|
86
73
|
throw new Error("[SDK] database.url is required");
|
|
87
74
|
if (!config.database?.type)
|
|
@@ -102,6 +89,18 @@ class HalalPaymaster extends events_1.EventEmitter {
|
|
|
102
89
|
throw new Error("[SDK] hotWallets.tron is required");
|
|
103
90
|
if (!config.chains?.length)
|
|
104
91
|
throw new Error("[SDK] at least one chain is required");
|
|
92
|
+
process.env.HD_MNEMONIC = config.keys.hdMnemonic;
|
|
93
|
+
process.env.SIGNER_PRIVATE_KEY = config.keys.evmSignerKey;
|
|
94
|
+
process.env.SOLANA_FEE_PAYER_PRIVATE_KEY = config.keys.solanaFeePayerKey;
|
|
95
|
+
process.env.TRON_FEE_PAYER_PRIVATE_KEY = config.keys.tronFeePayerKey;
|
|
96
|
+
process.env.ALCHEMY_API_KEY = config.keys.alchemyApiKey;
|
|
97
|
+
process.env.PIMLICO_API_KEY = config.keys.pimlicoApiKey;
|
|
98
|
+
process.env.EVM_HOT_WALLET = config.hotWallets.evm;
|
|
99
|
+
process.env.SOLANA_HOT_WALLET_ADDRESS = config.hotWallets.solana;
|
|
100
|
+
process.env.TRON_HOT_WALLET_ADDRESS = config.hotWallets.tron;
|
|
101
|
+
process.env.BATCH_SWEEP_ID = config.batchSweepId;
|
|
102
|
+
process.env.DATABASE_URL = config.database.url;
|
|
103
|
+
process.env.SWEEP_THRESHOLD_USD = String(config.sweepThresholdUSD ?? 1);
|
|
105
104
|
}
|
|
106
105
|
// ─── start ─────────────────────────────────────────────────────────────────
|
|
107
106
|
async start() {
|
|
@@ -109,9 +108,24 @@ class HalalPaymaster extends events_1.EventEmitter {
|
|
|
109
108
|
this.log("warn", "Already running");
|
|
110
109
|
return;
|
|
111
110
|
}
|
|
111
|
+
this.validateAndBindConfigEnv(this.config);
|
|
112
|
+
// ─── connect DB first ───────────────────────────────────────────────
|
|
112
113
|
await this.db.connect();
|
|
114
|
+
// ─── register connected adapter ────────────────────────────────────
|
|
115
|
+
(0, db_context_1.setDBAdapter)(this.db);
|
|
113
116
|
this.running = true;
|
|
114
117
|
const intervalMs = (this.config.sweepInterval ?? 300) * 1000;
|
|
118
|
+
// ─── bind shutdown handlers once only ──────────────────────────────
|
|
119
|
+
if (!this.shutdownBound) {
|
|
120
|
+
process.on("SIGINT", async () => {
|
|
121
|
+
await this.stop();
|
|
122
|
+
});
|
|
123
|
+
process.on("SIGTERM", async () => {
|
|
124
|
+
await this.stop();
|
|
125
|
+
});
|
|
126
|
+
this.shutdownBound = true;
|
|
127
|
+
}
|
|
128
|
+
// ─── start workers ─────────────────────────────────────────────────
|
|
115
129
|
for (const chainKey of this.config.chains) {
|
|
116
130
|
const chainConfig = chains_1.CHAIN_CONFIGS[chainKey];
|
|
117
131
|
if (!chainConfig) {
|
|
@@ -119,14 +133,25 @@ class HalalPaymaster extends events_1.EventEmitter {
|
|
|
119
133
|
continue;
|
|
120
134
|
}
|
|
121
135
|
this.log("info", `Starting sweep worker for ${chainConfig.name}`);
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
136
|
+
const runWorker = async () => {
|
|
137
|
+
// prevent execution after stop()
|
|
138
|
+
if (!this.running)
|
|
139
|
+
return;
|
|
140
|
+
try {
|
|
141
|
+
await this.runSweepCycle(chainKey);
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
this.log("error", err instanceof Error ? err.stack || err.message : String(err), chainKey);
|
|
145
|
+
}
|
|
146
|
+
// schedule next cycle only after previous finishes
|
|
147
|
+
if (this.running) {
|
|
148
|
+
const timer = setTimeout(runWorker, intervalMs);
|
|
149
|
+
this.workers.set(chainKey, timer);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
// run immediately
|
|
153
|
+
await runWorker();
|
|
127
154
|
}
|
|
128
|
-
process.on("SIGINT", () => this.stop());
|
|
129
|
-
process.on("SIGTERM", () => this.stop());
|
|
130
155
|
}
|
|
131
156
|
// ─── sweep cycle ───────────────────────────────────────────────────────────
|
|
132
157
|
async runSweepCycle(chainKey) {
|
|
@@ -163,12 +188,19 @@ class HalalPaymaster extends events_1.EventEmitter {
|
|
|
163
188
|
return;
|
|
164
189
|
this.log("info", "Stopping sweep workers...");
|
|
165
190
|
this.running = false;
|
|
191
|
+
// ─── clear all scheduled timers ───────────────────────────────
|
|
166
192
|
for (const [chainKey, timer] of this.workers) {
|
|
167
|
-
|
|
193
|
+
clearTimeout(timer);
|
|
168
194
|
this.log("info", `Stopped worker for ${chainKey}`);
|
|
169
195
|
}
|
|
170
196
|
this.workers.clear();
|
|
171
|
-
|
|
197
|
+
// ─── safely disconnect DB ─────────────────────────────────────
|
|
198
|
+
try {
|
|
199
|
+
await this.db.disconnect();
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
this.log("error", `Error while disconnecting DB: ${err instanceof Error ? err.message : String(err)}`);
|
|
203
|
+
}
|
|
172
204
|
this.log("info", "All workers stopped");
|
|
173
205
|
}
|
|
174
206
|
// ─── deposit to paymaster ──────────────────────────────────────────────────
|
package/dist/sdk/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sdk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAsC;AAOtC,0CAAyC;AACzC,qDAAyD;AAEzD,6DAA4D;AAC5D,qDAAuD;AACvD,4GAA2E;AAC3E,oGAAyE;AACzE,mCAAgC;AAEhC,MAAa,cAAe,SAAQ,qBAAY;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sdk/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED