vacuum-sol 1.0.1 → 1.0.2
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 +6 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -12
- package/dist/config.js.map +1 -1
- package/dist/core/monitor.d.ts +4 -2
- package/dist/core/monitor.d.ts.map +1 -1
- package/dist/core/monitor.js +2 -2
- package/dist/core/monitor.js.map +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +2 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/operators.d.ts +3 -3
- package/dist/db/operators.d.ts.map +1 -1
- package/dist/db/operators.js +10 -7
- package/dist/db/operators.js.map +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +25 -0
- package/dist/server/index.js.map +1 -1
- package/dist/services/kora.d.ts +20 -0
- package/dist/services/kora.d.ts.map +1 -0
- package/dist/services/kora.js +73 -0
- package/dist/services/kora.js.map +1 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -234,8 +234,12 @@ SOLANA_RPC_URL=https://api.devnet.solana.com
|
|
|
234
234
|
TREASURY_ADDRESS=<your-wallet-address>
|
|
235
235
|
OPERATOR_KEYPAIR_PATH=./operator-keypair.json
|
|
236
236
|
|
|
237
|
-
|
|
238
|
-
|
|
237
|
+
OPERATOR_KEYPAIR_PATH=./operator-keypair.json
|
|
238
|
+
|
|
239
|
+
# Optional - Kora Node (for health monitoring)
|
|
240
|
+
# Set your Kora RPC URL to enable health checks in the dashboard
|
|
241
|
+
KORA_NODE_URL=https://your-kora-node.up.railway.app
|
|
242
|
+
|
|
239
243
|
|
|
240
244
|
# Optional
|
|
241
245
|
DRY_RUN=true
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3C,MAAM,WAAW,MAAM;IAErB,MAAM,EAAE,MAAM,CAAA;IAGd,eAAe,EAAE,SAAS,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;IAG3B,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IAGvB,MAAM,EAAE,MAAM,CAAA;CACf;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3C,MAAM,WAAW,MAAM;IAErB,MAAM,EAAE,MAAM,CAAA;IAGd,eAAe,EAAE,SAAS,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;IAG3B,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IAGvB,MAAM,EAAE,MAAM,CAAA;CACf;AAeD,wBAAgB,UAAU,IAAI,MAAM,CA+BnC;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAYnE;AAKD,wBAAgB,SAAS,IAAI,MAAM,CAKlC"}
|
package/dist/config.js
CHANGED
|
@@ -4,16 +4,18 @@ import { existsSync, readFileSync } from 'fs';
|
|
|
4
4
|
import path from 'path';
|
|
5
5
|
// Load environment variables
|
|
6
6
|
loadEnv();
|
|
7
|
-
|
|
7
|
+
// Helper to getenv or default
|
|
8
|
+
function getEnv(key, defaultValue) {
|
|
8
9
|
const value = process.env[key];
|
|
9
|
-
if (
|
|
10
|
-
|
|
10
|
+
if (value === undefined) {
|
|
11
|
+
if (defaultValue !== undefined) {
|
|
12
|
+
return defaultValue;
|
|
13
|
+
}
|
|
14
|
+
// Return empty string if no default (optional vars)
|
|
15
|
+
return '';
|
|
11
16
|
}
|
|
12
17
|
return value;
|
|
13
18
|
}
|
|
14
|
-
function getEnvOrDefault(key, defaultValue) {
|
|
15
|
-
return process.env[key] || defaultValue;
|
|
16
|
-
}
|
|
17
19
|
export function loadConfig() {
|
|
18
20
|
const treasuryAddressStr = process.env.TREASURY_ADDRESS;
|
|
19
21
|
if (!treasuryAddressStr) {
|
|
@@ -26,16 +28,16 @@ export function loadConfig() {
|
|
|
26
28
|
catch {
|
|
27
29
|
throw new Error(`Invalid TREASURY_ADDRESS: ${treasuryAddressStr}. Must be a valid Solana public key.`);
|
|
28
30
|
}
|
|
29
|
-
const operatorKeypairPath =
|
|
31
|
+
const operatorKeypairPath = getEnv('OPERATOR_KEYPAIR_PATH', './operator-keypair.json');
|
|
30
32
|
return {
|
|
31
|
-
rpcUrl:
|
|
33
|
+
rpcUrl: getEnv('SOLANA_RPC_URL', 'https://api.devnet.solana.com'),
|
|
32
34
|
treasuryAddress,
|
|
33
35
|
operatorKeypairPath,
|
|
34
36
|
koraNodeUrl: process.env.KORA_NODE_URL,
|
|
35
|
-
dryRun:
|
|
36
|
-
cooldownHours: parseInt(
|
|
37
|
-
minInactiveDays: parseInt(
|
|
38
|
-
dbPath:
|
|
37
|
+
dryRun: getEnv('DRY_RUN', 'true') === 'true',
|
|
38
|
+
cooldownHours: parseInt(getEnv('COOLDOWN_HOURS', '24'), 10),
|
|
39
|
+
minInactiveDays: parseInt(getEnv('MIN_INACTIVE_DAYS', '7'), 10),
|
|
40
|
+
dbPath: getEnv('DB_PATH', './data/accounts.db'),
|
|
39
41
|
};
|
|
40
42
|
}
|
|
41
43
|
export function loadOperatorKeypair(keypairPath) {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,6BAA6B;AAC7B,OAAO,EAAE,CAAA;AAsBT,SAAS,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,6BAA6B;AAC7B,OAAO,EAAE,CAAA;AAsBT,8BAA8B;AAC9B,SAAS,MAAM,CAAC,GAAW,EAAE,YAAqB;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,YAAY,CAAA;QACrB,CAAC;QACD,oDAAoD;QACpD,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA;IAEvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;IAC5E,CAAC;IAED,IAAI,eAA0B,CAAA;IAC9B,IAAI,CAAC;QACH,eAAe,GAAG,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,6BAA6B,kBAAkB,sCAAsC,CACtF,CAAA;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAM,CAChC,uBAAuB,EACvB,yBAAyB,CAC1B,CAAA;IAED,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;QACjE,eAAe;QACf,mBAAmB;QACnB,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACtC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,MAAM;QAC5C,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3D,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QAC/D,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC;KAChD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAmB;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAE9C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,kCAAkC,YAAY,IAAI;YAChD,+DAA+D,CAClE,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;IACnE,OAAO,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;AACrC,CAAC;AAED,0CAA0C;AAC1C,IAAI,OAAO,GAAkB,IAAI,CAAA;AAEjC,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,UAAU,EAAE,CAAA;IACxB,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
package/dist/core/monitor.d.ts
CHANGED
|
@@ -7,12 +7,14 @@ export declare class AccountMonitor {
|
|
|
7
7
|
/**
|
|
8
8
|
* Scan all token accounts owned by the operator and add them to tracking
|
|
9
9
|
*/
|
|
10
|
-
scanOperatorAccounts(
|
|
10
|
+
scanOperatorAccounts(_options?: {
|
|
11
|
+
fullScan: boolean;
|
|
12
|
+
}): Promise<TrackedAccount[]>;
|
|
11
13
|
/**
|
|
12
14
|
* Scan accounts from transaction signatures (for Kora-sponsored accounts)
|
|
13
15
|
* This would parse transaction logs to find sponsored account creations
|
|
14
16
|
*/
|
|
15
|
-
scanFromSignatures(signatures: string[],
|
|
17
|
+
scanFromSignatures(signatures: string[], _options?: ScanOptions): Promise<TrackedAccount[]>;
|
|
16
18
|
/**
|
|
17
19
|
* Add a single account to tracking
|
|
18
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/core/monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAc3C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE1E;;GAEG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/core/monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAc3C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE1E;;GAEG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACG,oBAAoB,CACxB,QAAQ;;KAAsB,GAC7B,OAAO,CAAC,cAAc,EAAE,CAAC;IA0C5B;;;OAGG;IACG,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,GAAE,WAAgB,GACzB,OAAO,CAAC,cAAc,EAAE,CAAC;IA8E5B;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,SAAS,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAqCjC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAChC,eAAe,EAAE,MAAM,CAAA;KACxB,CAAC;CAmCH;AAGD,eAAO,MAAM,OAAO,gBAAuB,CAAA"}
|
package/dist/core/monitor.js
CHANGED
|
@@ -10,7 +10,7 @@ export class AccountMonitor {
|
|
|
10
10
|
/**
|
|
11
11
|
* Scan all token accounts owned by the operator and add them to tracking
|
|
12
12
|
*/
|
|
13
|
-
async scanOperatorAccounts() {
|
|
13
|
+
async scanOperatorAccounts(_options = { fullScan: false }) {
|
|
14
14
|
logger.info('Scanning operator token accounts...');
|
|
15
15
|
const tokenAccounts = await getOperatorTokenAccounts();
|
|
16
16
|
const tracked = [];
|
|
@@ -46,7 +46,7 @@ export class AccountMonitor {
|
|
|
46
46
|
* Scan accounts from transaction signatures (for Kora-sponsored accounts)
|
|
47
47
|
* This would parse transaction logs to find sponsored account creations
|
|
48
48
|
*/
|
|
49
|
-
async scanFromSignatures(signatures,
|
|
49
|
+
async scanFromSignatures(signatures, _options = {}) {
|
|
50
50
|
const conn = getConnection();
|
|
51
51
|
const tracked = [];
|
|
52
52
|
logger.info(`Scanning ${signatures.length} transactions for sponsored accounts...`);
|
package/dist/core/monitor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/core/monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAG3C;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,KAAK,CAAC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/core/monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/db/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAQrC;;GAEG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAQrC;;GAEG;AACH,wBAAgB,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAuFhD;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAK/C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAMpC"}
|
package/dist/db/index.js
CHANGED
|
@@ -19,8 +19,9 @@ export function initDatabase() {
|
|
|
19
19
|
logger.debug(`Created database directory: ${dbDir}`);
|
|
20
20
|
}
|
|
21
21
|
db = new Database(dbPath);
|
|
22
|
-
// Enable WAL mode for better
|
|
22
|
+
// Enable WAL mode for better performance
|
|
23
23
|
db.pragma('journal_mode = WAL');
|
|
24
|
+
db.pragma('user_version', { simple: true });
|
|
24
25
|
// Create tables
|
|
25
26
|
db.exec(`
|
|
26
27
|
-- Tracked accounts sponsored by Kora
|
package/dist/db/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC1C,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,IAAI,EAAE,GAA6B,IAAI,CAAA;AAEvC;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,EAAE;QAAE,OAAO,EAAE,CAAA;IAEjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAElC,4CAA4C;IAC5C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;IAEzB,yCAAyC;IACzC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AAC1C,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,IAAI,EAAE,GAA6B,IAAI,CAAA;AAEvC;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,IAAI,EAAE;QAAE,OAAO,EAAE,CAAA;IAEjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAElC,4CAA4C;IAC5C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;IAEzB,yCAAyC;IACzC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC/B,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAE3C,gBAAgB;IAChB,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCP,CAAC,CAAA;IAEF,6BAA6B;IAC7B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;GASP,CAAC,CAAA;IAEF,iEAAiE;IACjE,MAAM,OAAO,GAAG,EAAE;SACf,OAAO,CAAC,qCAAqC,CAAC;SAC9C,GAAG,EAAW,CAAA;IACjB,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;IAEvE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,IAAI,CACL,uFAAuF,CACxF,CAAA;QACD,EAAE,CAAC,IAAI,CACL,sFAAsF,CACvF,CAAA;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAA;IACjD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,YAAY,EAAE,CAAA;IACvB,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAA;QACV,EAAE,GAAG,IAAI,CAAA;QACT,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC"}
|
package/dist/db/operators.d.ts
CHANGED
|
@@ -24,15 +24,15 @@ export declare function getAllOperators(): Operator[];
|
|
|
24
24
|
/**
|
|
25
25
|
* Get operator by ID
|
|
26
26
|
*/
|
|
27
|
-
export declare function getOperatorById(id: number): Operator |
|
|
27
|
+
export declare function getOperatorById(id: number): Operator | undefined;
|
|
28
28
|
/**
|
|
29
29
|
* Get operator by name
|
|
30
30
|
*/
|
|
31
|
-
export declare function getOperatorByName(name: string): Operator |
|
|
31
|
+
export declare function getOperatorByName(name: string): Operator | undefined;
|
|
32
32
|
/**
|
|
33
33
|
* Get default operator
|
|
34
34
|
*/
|
|
35
|
-
export declare function getDefaultOperator(): Operator |
|
|
35
|
+
export declare function getDefaultOperator(): Operator | undefined;
|
|
36
36
|
/**
|
|
37
37
|
* Set default operator
|
|
38
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/db/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAKrC,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,SAAS,CAAA;IAC3B,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AAID,wBAAgB,cAAc,IAAI,QAAQ,CAAC,QAAQ,CAOlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CA4BzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,SAAS,EAC1B,YAAY,UAAQ,GACnB,QAAQ,CAyBV;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/db/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAKrC,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,SAAS,CAAA;IAC3B,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;CACpB;AAID,wBAAgB,cAAc,IAAI,QAAQ,CAAC,QAAQ,CAOlD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CA4BzC;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,SAAS,EAC1B,YAAY,UAAQ,GACnB,QAAQ,CAyBV;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,QAAQ,EAAE,CAe5C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAehE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAuBpE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,GAAG,SAAS,CA+BzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAUnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAkB/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CACd,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,kBAAkB,CAAC,CAC7D,GACA,IAAI,CA8BN"}
|
package/dist/db/operators.js
CHANGED
|
@@ -68,6 +68,7 @@ export function addOperator(name, keypairPath, treasuryAddress, setAsDefault = f
|
|
|
68
68
|
*/
|
|
69
69
|
export function getAllOperators() {
|
|
70
70
|
const db = getOperatorsDb();
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
71
72
|
const rows = db
|
|
72
73
|
.prepare('SELECT * FROM operators ORDER BY created_at DESC')
|
|
73
74
|
.all();
|
|
@@ -85,9 +86,10 @@ export function getAllOperators() {
|
|
|
85
86
|
*/
|
|
86
87
|
export function getOperatorById(id) {
|
|
87
88
|
const db = getOperatorsDb();
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
88
90
|
const row = db.prepare('SELECT * FROM operators WHERE id = ?').get(id);
|
|
89
91
|
if (!row)
|
|
90
|
-
return
|
|
92
|
+
return undefined;
|
|
91
93
|
return {
|
|
92
94
|
id: row.id,
|
|
93
95
|
name: row.name,
|
|
@@ -102,11 +104,9 @@ export function getOperatorById(id) {
|
|
|
102
104
|
*/
|
|
103
105
|
export function getOperatorByName(name) {
|
|
104
106
|
const db = getOperatorsDb();
|
|
105
|
-
const row = db
|
|
106
|
-
.prepare('SELECT * FROM operators WHERE name = ?')
|
|
107
|
-
.get(name);
|
|
107
|
+
const row = db.prepare('SELECT * FROM operators WHERE name = ?').get(name);
|
|
108
108
|
if (!row)
|
|
109
|
-
return
|
|
109
|
+
return undefined;
|
|
110
110
|
return {
|
|
111
111
|
id: row.id,
|
|
112
112
|
name: row.name,
|
|
@@ -121,14 +121,17 @@ export function getOperatorByName(name) {
|
|
|
121
121
|
*/
|
|
122
122
|
export function getDefaultOperator() {
|
|
123
123
|
const db = getOperatorsDb();
|
|
124
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
124
125
|
const row = db
|
|
125
126
|
.prepare('SELECT * FROM operators WHERE is_default = 1')
|
|
126
127
|
.get();
|
|
127
128
|
if (!row) {
|
|
128
129
|
// Return first operator if no default set
|
|
129
|
-
const first = db
|
|
130
|
+
const first = db
|
|
131
|
+
.prepare('SELECT * FROM operators ORDER BY created_at ASC LIMIT 1')
|
|
132
|
+
.get();
|
|
130
133
|
if (!first)
|
|
131
|
-
return
|
|
134
|
+
return undefined;
|
|
132
135
|
return {
|
|
133
136
|
id: first.id,
|
|
134
137
|
name: first.name,
|
package/dist/db/operators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../src/db/operators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAW3C,IAAI,WAAW,GAA6B,IAAI,CAAA;AAEhD,MAAM,UAAU,cAAc;IAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC1C,WAAW,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;IAE3B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;GASP,CAAC,CAAA;IAEF,0DAA0D;IAC1D,MAAM,OAAO,GAAG,EAAE;SACf,OAAO,CAAC,qCAAqC,CAAC;SAC9C,GAAG,EAAW,CAAA;IACjB,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;IAEvE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,IAAI,CAAC;;KAEP,CAAC,CAAA;QACF,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;IAC9D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,WAAmB,EACnB,eAA0B,EAC1B,YAAY,GAAG,KAAK;IAEpB,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;IAE3B,IAAI,YAAY,EAAE,CAAC;QACjB,6BAA6B;QAC7B,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,EAAE,CAAA;IACzD,CAAC;IAED,MAAM,MAAM,GAAG,EAAE;SACd,OAAO,CACN;2BACqB,CACtB;SACA,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE3E,MAAM,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAA;IAEzC,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,eAAyB;QACpC,IAAI;QACJ,YAAY,EAAE,WAAW;QACzB,gBAAgB,EAAE,eAAe;QACjC,UAAU,EAAE,IAAI,IAAI,EAAE;QACtB,UAAU,EAAE,YAAY;KACzB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,GAAG,cAAc,EAAE,CAAA;IAC3B,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../src/db/operators.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAsJA;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}
|
package/dist/server/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import { fileURLToPath } from 'url';
|
|
|
5
5
|
import { getAccountStats, getAllTrackedAccounts, getReclaimHistory, } from '../db/accounts.js';
|
|
6
6
|
import { initDatabase } from '../db/index.js';
|
|
7
7
|
import { getAllOperators } from '../db/operators.js';
|
|
8
|
+
import { koraService } from '../services/kora.js';
|
|
8
9
|
import { logger } from '../utils/logger.js';
|
|
9
10
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
11
|
const __dirname = path.dirname(__filename);
|
|
@@ -13,6 +14,11 @@ const PORT = process.env.DASHBOARD_PORT || 3333;
|
|
|
13
14
|
// Middleware
|
|
14
15
|
app.use(cors());
|
|
15
16
|
app.use(express.json());
|
|
17
|
+
// Security headers to allow CDNs
|
|
18
|
+
app.use((req, res, next) => {
|
|
19
|
+
res.setHeader('Content-Security-Policy', "default-src 'self'; script-src 'self' 'unsafe-inline' https://cdn.tailwindcss.com https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https:;");
|
|
20
|
+
next();
|
|
21
|
+
});
|
|
16
22
|
// Serve static dashboard files
|
|
17
23
|
const dashboardPath = path.join(__dirname, '../../dashboard');
|
|
18
24
|
app.use(express.static(dashboardPath));
|
|
@@ -105,6 +111,25 @@ app.get('/api/operators', (req, res) => {
|
|
|
105
111
|
});
|
|
106
112
|
}
|
|
107
113
|
});
|
|
114
|
+
/**
|
|
115
|
+
* GET /api/node-status - Get Kora Node health status
|
|
116
|
+
*/
|
|
117
|
+
app.get('/api/node-status', async (req, res) => {
|
|
118
|
+
try {
|
|
119
|
+
const status = await koraService.getNodeStatus();
|
|
120
|
+
res.json({
|
|
121
|
+
success: true,
|
|
122
|
+
data: status,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
logger.error('Error checking node status:', error);
|
|
127
|
+
res.status(500).json({
|
|
128
|
+
success: false,
|
|
129
|
+
error: 'Failed to check node status',
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
});
|
|
108
133
|
/**
|
|
109
134
|
* Start the server
|
|
110
135
|
*/
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface KoraNodeStatus {
|
|
2
|
+
healthy: boolean;
|
|
3
|
+
version: string;
|
|
4
|
+
url: string;
|
|
5
|
+
latency: number;
|
|
6
|
+
slot: number;
|
|
7
|
+
error?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Service to interact with Kora/Solana Node
|
|
11
|
+
*/
|
|
12
|
+
export declare class KoraService {
|
|
13
|
+
/**
|
|
14
|
+
* Check the health and status of the configured Kora Node
|
|
15
|
+
* Performs a basic availability check since custom Kora nodes may not expose standard RPC methods.
|
|
16
|
+
*/
|
|
17
|
+
getNodeStatus(): Promise<KoraNodeStatus>;
|
|
18
|
+
}
|
|
19
|
+
export declare const koraService: KoraService;
|
|
20
|
+
//# sourceMappingURL=kora.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kora.d.ts","sourceRoot":"","sources":["../../src/services/kora.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;CAyE/C;AAGD,eAAO,MAAM,WAAW,aAAoB,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { getConfig } from '../config.js';
|
|
2
|
+
import { logger } from '../utils/logger.js';
|
|
3
|
+
/**
|
|
4
|
+
* Service to interact with Kora/Solana Node
|
|
5
|
+
*/
|
|
6
|
+
export class KoraService {
|
|
7
|
+
/**
|
|
8
|
+
* Check the health and status of the configured Kora Node
|
|
9
|
+
* Performs a basic availability check since custom Kora nodes may not expose standard RPC methods.
|
|
10
|
+
*/
|
|
11
|
+
async getNodeStatus() {
|
|
12
|
+
const config = getConfig();
|
|
13
|
+
if (!config.koraNodeUrl) {
|
|
14
|
+
return {
|
|
15
|
+
healthy: false,
|
|
16
|
+
version: 'N/A',
|
|
17
|
+
url: 'Not Configured',
|
|
18
|
+
latency: 0,
|
|
19
|
+
slot: 0,
|
|
20
|
+
error: 'KORA_NODE_URL not set in .env',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const start = Date.now();
|
|
24
|
+
try {
|
|
25
|
+
// Fetch Kora server configuration using official JSON-RPC method
|
|
26
|
+
const rpcBody = {
|
|
27
|
+
jsonrpc: '2.0',
|
|
28
|
+
id: 1,
|
|
29
|
+
method: 'getConfig',
|
|
30
|
+
params: {},
|
|
31
|
+
};
|
|
32
|
+
const response = await fetch(config.koraNodeUrl, {
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: {
|
|
35
|
+
'Content-Type': 'application/json',
|
|
36
|
+
},
|
|
37
|
+
body: JSON.stringify(rpcBody),
|
|
38
|
+
});
|
|
39
|
+
if (!response.ok) {
|
|
40
|
+
throw new Error(`HTTP Error: ${response.status} ${response.statusText}`);
|
|
41
|
+
}
|
|
42
|
+
const data = (await response.json());
|
|
43
|
+
if (data.error) {
|
|
44
|
+
throw new Error(`Kora RPC Error: ${data.error.message || 'Unknown error'}`);
|
|
45
|
+
}
|
|
46
|
+
const latency = Date.now() - start;
|
|
47
|
+
const result = data.result || {};
|
|
48
|
+
// Kora's getConfig returns configuration details.
|
|
49
|
+
// We can use this to confirm it's a valid Kora node.
|
|
50
|
+
return {
|
|
51
|
+
healthy: true,
|
|
52
|
+
version: result.version || 'Active', // Fallback if version isn't explicit in config
|
|
53
|
+
url: config.koraNodeUrl,
|
|
54
|
+
latency,
|
|
55
|
+
slot: result.slot || 0, // Some Kora configs might include sync status
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
logger.error('Failed to connect to Kora Node:', error);
|
|
60
|
+
return {
|
|
61
|
+
healthy: false,
|
|
62
|
+
version: 'Unreachable',
|
|
63
|
+
url: config.koraNodeUrl,
|
|
64
|
+
latency: Date.now() - start,
|
|
65
|
+
slot: 0,
|
|
66
|
+
error: error instanceof Error ? error.message : String(error),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Export singleton
|
|
72
|
+
export const koraService = new KoraService();
|
|
73
|
+
//# sourceMappingURL=kora.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kora.js","sourceRoot":"","sources":["../../src/services/kora.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAW3C;;GAEG;AACH,MAAM,OAAO,WAAW;IACtB;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;QAE1B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,gBAAgB;gBACrB,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,+BAA+B;aACvC,CAAA;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACxB,IAAI,CAAC;YACH,iEAAiE;YACjE,MAAM,OAAO,GAAG;gBACd,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,EAAE;aACX,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAA;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;YAC1E,CAAC;YAOD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAoB,CAAA;YAEvD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAC3D,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;YAEhC,kDAAkD;YAClD,qDAAqD;YACrD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,QAAQ,EAAE,+CAA+C;gBACpF,GAAG,EAAE,MAAM,CAAC,WAAW;gBACvB,OAAO;gBACP,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,8CAA8C;aACvE,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;YACtD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,aAAa;gBACtB,GAAG,EAAE,MAAM,CAAC,WAAW;gBACvB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;gBAC3B,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAA;QACH,CAAC;IACH,CAAC;CACF;AAED,mBAAmB;AACnB,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vacuum-sol",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Vacuum - Suck up forgotten rent from Solana accounts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -59,8 +59,12 @@
|
|
|
59
59
|
"@types/cors": "^2.8.19",
|
|
60
60
|
"@types/express": "^5.0.6",
|
|
61
61
|
"@types/node": "^22.10.5",
|
|
62
|
+
"@typescript-eslint/eslint-plugin": "^8.53.1",
|
|
63
|
+
"@typescript-eslint/parser": "^8.53.1",
|
|
64
|
+
"eslint": "^9.39.2",
|
|
62
65
|
"tsx": "^4.19.2",
|
|
63
66
|
"typescript": "^5.7.3",
|
|
67
|
+
"typescript-eslint": "^8.53.1",
|
|
64
68
|
"vitest": "^2.1.8"
|
|
65
69
|
},
|
|
66
70
|
"engines": {
|