vacuum-sol 1.0.0 → 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 +101 -15
- 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
|
@@ -4,28 +4,106 @@
|
|
|
4
4
|
|
|
5
5
|
Vacuum is an automated rent-reclaim bot that monitors **operator-owned** token accounts and safely reclaims rent SOL when accounts are closed or have zero balance. Perfect for custodial services, development environments, and anyone managing their own Solana token accounts at scale.
|
|
6
6
|
|
|
7
|
-
](https://www.npmjs.com/package/vacuum-sol)
|
|
8
8
|

|
|
9
9
|

|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## � Installation
|
|
14
|
+
|
|
15
|
+
### Install via npm (Recommended)
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Install globally
|
|
19
|
+
npm install -g vacuum-sol
|
|
20
|
+
|
|
21
|
+
# Verify installation
|
|
22
|
+
vacuum --version
|
|
23
|
+
vacuum --help
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Or clone from source
|
|
14
27
|
|
|
15
28
|
```bash
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
cd vacuum-sol
|
|
29
|
+
git clone https://github.com/Don-Vicks/vaccum.git
|
|
30
|
+
cd vaccum
|
|
19
31
|
npm install && npm run build
|
|
32
|
+
npm link # Make 'vacuum' command available globally
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 🚀 Quick Start
|
|
38
|
+
|
|
39
|
+
### 1. Initial Setup
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Create a configuration directory
|
|
43
|
+
mkdir -p ~/.vacuum
|
|
44
|
+
|
|
45
|
+
# Set up your environment variables
|
|
46
|
+
export SOLANA_RPC_URL=https://api.devnet.solana.com
|
|
47
|
+
export TREASURY_ADDRESS=<your-wallet-address>
|
|
48
|
+
export OPERATOR_KEYPAIR_PATH=~/.vacuum/operator-keypair.json
|
|
49
|
+
|
|
50
|
+
# Or create a .env file in your project directory
|
|
51
|
+
cat > .env << EOF
|
|
52
|
+
# Solana RPC Configuration
|
|
53
|
+
SOLANA_RPC_URL=https://api.devnet.solana.com
|
|
54
|
+
|
|
55
|
+
# Operator treasury address - rent will be reclaimed here
|
|
56
|
+
TREASURY_ADDRESS=<your-wallet-address>
|
|
57
|
+
|
|
58
|
+
# Path to operator keypair file (must have authority to close accounts)
|
|
59
|
+
OPERATOR_KEYPAIR_PATH=~/.vacuum/operator-keypair.json
|
|
60
|
+
|
|
61
|
+
# Kora Node Configuration (optional - for monitoring sponsored accounts)
|
|
62
|
+
KORA_NODE_URL=
|
|
63
|
+
|
|
64
|
+
# Safety Configuration
|
|
65
|
+
DRY_RUN=true
|
|
66
|
+
COOLDOWN_HOURS=24
|
|
67
|
+
MIN_INACTIVE_DAYS=7
|
|
68
|
+
|
|
69
|
+
# Telegram Bot (optional)
|
|
70
|
+
# Create bot via @BotFather on Telegram
|
|
71
|
+
TELEGRAM_BOT_TOKEN=
|
|
72
|
+
# Your personal chat ID (get via @userinfobot)
|
|
73
|
+
TELEGRAM_CHAT_ID=
|
|
20
74
|
|
|
21
|
-
#
|
|
22
|
-
|
|
23
|
-
# Edit .env with your TREASURY_ADDRESS
|
|
75
|
+
# Database path
|
|
76
|
+
DB_PATH=./data/accounts.db
|
|
24
77
|
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
78
|
+
# Dashboard port (optional)
|
|
79
|
+
DASHBOARD_PORT=3333
|
|
80
|
+
EOF
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 2. Run Your First Scan
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# Scan for accounts
|
|
87
|
+
vacuum scan
|
|
88
|
+
|
|
89
|
+
# Find reclaimable accounts
|
|
90
|
+
vacuum check --all
|
|
91
|
+
|
|
92
|
+
# Preview reclaim (safe, dry-run mode)
|
|
93
|
+
vacuum reclaim --dry-run
|
|
94
|
+
|
|
95
|
+
# Actually reclaim rent
|
|
96
|
+
vacuum reclaim --yes
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 3. View Reports
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# Show summary
|
|
103
|
+
vacuum report
|
|
104
|
+
|
|
105
|
+
# Show history
|
|
106
|
+
vacuum report --history
|
|
29
107
|
```
|
|
30
108
|
|
|
31
109
|
---
|
|
@@ -156,6 +234,13 @@ SOLANA_RPC_URL=https://api.devnet.solana.com
|
|
|
156
234
|
TREASURY_ADDRESS=<your-wallet-address>
|
|
157
235
|
OPERATOR_KEYPAIR_PATH=./operator-keypair.json
|
|
158
236
|
|
|
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
|
+
|
|
243
|
+
|
|
159
244
|
# Optional
|
|
160
245
|
DRY_RUN=true
|
|
161
246
|
COOLDOWN_HOURS=24
|
|
@@ -165,6 +250,7 @@ TELEGRAM_CHAT_ID=
|
|
|
165
250
|
|
|
166
251
|
# Database
|
|
167
252
|
DB_PATH=./data/accounts.db
|
|
253
|
+
DASHBOARD_PORT=3333
|
|
168
254
|
```
|
|
169
255
|
|
|
170
256
|
---
|
|
@@ -356,7 +442,7 @@ MIT License - see [LICENSE](LICENSE)
|
|
|
356
442
|
<div align="center">
|
|
357
443
|
<strong>Built with ❤️ for the Solana ecosystem</strong>
|
|
358
444
|
<br><br>
|
|
359
|
-
<a href="https://github.com/
|
|
360
|
-
<a href="https://
|
|
361
|
-
<a href="
|
|
445
|
+
<a href="https://github.com/Don-Vicks/vaccum">GitHub</a> •
|
|
446
|
+
<a href="https://www.npmjs.com/package/vacuum-sol">NPM</a> •
|
|
447
|
+
<a href="http://vaccum-bot.vercel.app">Website</a>
|
|
362
448
|
</div>
|
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":"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,CACxB,QAAQ,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;QAE9B,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;QAElD,MAAM,aAAa,GAAG,MAAM,wBAAwB,EAAE,CAAA;QACtD,MAAM,OAAO,GAAqB,EAAE,CAAA;QAEpC,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,aAAa,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;YAClC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAQ;YAElD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;YAE9C,8BAA8B;YAC9B,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;YAChD,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,CAAC,CAAA;YAE3C,MAAM,cAAc,GAA+B;gBACjD,MAAM;gBACN,WAAW,EAAE,eAAe;gBAC5B,YAAY,EAAE,QAAQ;gBACtB,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;gBAChC,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,aAAa,EAAE,IAAI,IAAI,EAAE;gBACzB,MAAM,EAAE,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ;aACjD,CAAA;YAED,iBAAiB,CAAC,cAAc,CAAC,CAAA;YACjC,OAAO,CAAC,IAAI,CAAC,cAAgC,CAAC,CAAA;YAE9C,MAAM,CAAC,KAAK,CACV,YAAY,aAAa,CAAC,MAAM,CAAC,KAAK;gBACpC,YAAY,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK;gBAC1C,SAAS,SAAS,CAAC,QAAQ,CAAC,EAAE,CACjC,CAAA;QACH,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,MAAM,iBAAiB,CAAC,CAAA;QAC1D,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CACtB,UAAoB,EACpB,WAAwB,EAAE;QAE1B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAA;QAC5B,MAAM,OAAO,GAAqB,EAAE,CAAA;QAEpC,MAAM,CAAC,IAAI,CACT,YAAY,UAAU,CAAC,MAAM,yCAAyC,CACvE,CAAA;QAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE;oBACpD,8BAA8B,EAAE,CAAC;iBAClC,CAAC,CAAA;gBAEF,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI;oBAAE,SAAQ;gBAE7B,kDAAkD;gBAClD,qDAAqD;gBACrD,MAAM,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAA;gBAEzD,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;oBACtC,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;wBAC7C,4DAA4D;wBAC5D,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;4BAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAA;4BAEjC,IACE,MAAM,CAAC,IAAI,KAAK,eAAe;gCAC/B,MAAM,CAAC,IAAI,KAAK,mBAAmB;gCACnC,MAAM,CAAC,IAAI,KAAK,oBAAoB,EACpC,CAAC;gCACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;gCACxB,MAAM,aAAa,GAAG,IAAI,SAAS,CACjC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAChC,CAAA;gCAED,2CAA2C;gCAC3C,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAA;gCACvD,IAAI,CAAC,WAAW;oCAAE,SAAQ;gCAE1B,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;gCAElD,MAAM,cAAc,GAA+B;oCACjD,MAAM,EAAE,aAAa;oCACrB,WAAW;oCACX,SAAS,EAAE,SAAS;oCACpB,YAAY,EAAE,WAAW,CAAC,QAAQ;oCAClC,SAAS,EAAE,IAAI,IAAI,EAAE;oCACrB,aAAa,EAAE,IAAI,IAAI,EAAE;oCACzB,MAAM,EAAE,QAAQ;iCACjB,CAAA;gCAED,mBAAmB;gCACnB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,EAAE,CAAC;oCACtC,iBAAiB,CAAC,cAAc,CAAC,CAAA;oCACjC,OAAO,CAAC,IAAI,CAAC,cAAgC,CAAC,CAAA;oCAE9C,MAAM,CAAC,KAAK,CACV,4BAA4B,aAAa,CAAC,aAAa,CAAC,KAAK;wCAC3D,SAAS,WAAW,YAAY,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CACpE,CAAA;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CACV,6BAA6B,aAAa,CAAC,SAAS,CAAC,GAAG,EACxD,KAAK,CACN,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,SAAS,OAAO,CAAC,MAAM,yBAAyB,CAAC,CAAA;QAChE,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,MAAiB,EACjB,SAAkB;QAElB,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,4BAA4B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAC7D,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,mBAAmB;QACnB,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAA;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAC/D,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;QAElD,MAAM,cAAc,GAA+B;YACjD,MAAM;YACN,WAAW;YACX,SAAS;YACT,YAAY,EAAE,WAAW,CAAC,QAAQ;YAClC,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,aAAa,EAAE,IAAI,IAAI,EAAE;YACzB,MAAM,EAAE,QAAQ;SACjB,CAAA;QAED,MAAM,EAAE,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QAE5C,MAAM,CAAC,OAAO,CACZ,iBAAiB,MAAM,CAAC,QAAQ,EAAE,YAAY,WAAW,KAAK;YAC5D,SAAS,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAC7C,CAAA;QAED,OAAO,EAAE,GAAG,cAAc,EAAE,EAAE,EAAoB,CAAA;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QAMZ,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAA;QAExC,MAAM,MAAM,GAAgC;YAC1C,aAAa,EAAE,CAAC;YAChB,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,CAAC;SACX,CAAA;QAED,MAAM,QAAQ,GAA2B;YACvC,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;SACb,CAAA;QAED,IAAI,eAAe,GAAG,CAAC,CAAA;QAEvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;YACpE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;YAE9D,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACnC,eAAe,IAAI,OAAO,CAAC,YAAY,CAAA;YACzC,CAAC;QACH,CAAC;QAED,OAAO;YACL,YAAY,EAAE,QAAQ,CAAC,MAAM;YAC7B,MAAM;YACN,QAAQ;YACR,eAAe;SAChB,CAAA;IACH,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAA"}
|
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":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,OAA8B,MAAM,SAAS,CAAA;AACpD,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAE3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAE1C,MAAM,GAAG,GAAG,OAAO,EAAE,CAAA;AACrB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAA;AAE/C,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;AACf,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;AAEvB,iCAAiC;AACjC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACzB,GAAG,CAAC,SAAS,CACX,yBAAyB,EACzB,uMAAuM,CACxM,CAAA;IACD,IAAI,EAAE,CAAA;AACR,CAAC,CAAC,CAAA;AAEF,+BAA+B;AAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;AAC7D,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;AAEtC,sBAAsB;AACtB,YAAY,EAAE,CAAA;AAEd,aAAa;AAEb;;GAEG;AACH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACpD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,EAAE,CAAA;QAC/B,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,KAAK;SACZ,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAA;QAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,uBAAuB;SAC/B,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACvD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW;YACtC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,WAAqB,CAAC;YAC3C,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAA;QAElD,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,GAAG;gBACN,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;aAC9B,CAAC,CAAC;SACJ,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;QAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,0BAA0B;SAClC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACtD,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACxE,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAExC,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;QAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,yBAAyB;SACjC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAY,EAAE,GAAa,EAAE,EAAE;IACxD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;QAEnC,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,EAAE;gBACL,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE;aACjD,CAAC,CAAC;SACJ,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAA;QAChD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2BAA2B;SACnC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,CAAA;QAChD,GAAG,CAAC,IAAI,CAAC;YACP,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM;SACb,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAA;QAClD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,6BAA6B;SACrC,CAAC,CAAA;IACJ,CAAC;AACH,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACpB,MAAM,CAAC,OAAO,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAA;QACtE,MAAM,CAAC,IAAI,CAAC,qCAAqC,IAAI,QAAQ,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,kBAAkB;AAClB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,oBAAoB,EAAE,CAAA;AACxB,CAAC"}
|
|
@@ -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": {
|