vacuum-sol 1.0.0
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 +362 -0
- package/dist/config.d.ts +15 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +58 -0
- package/dist/config.js.map +1 -0
- package/dist/core/detector.d.ts +36 -0
- package/dist/core/detector.d.ts.map +1 -0
- package/dist/core/detector.js +142 -0
- package/dist/core/detector.js.map +1 -0
- package/dist/core/monitor.d.ts +31 -0
- package/dist/core/monitor.d.ts.map +1 -0
- package/dist/core/monitor.js +172 -0
- package/dist/core/monitor.js.map +1 -0
- package/dist/core/reclaimer.d.ts +30 -0
- package/dist/core/reclaimer.d.ts.map +1 -0
- package/dist/core/reclaimer.js +182 -0
- package/dist/core/reclaimer.js.map +1 -0
- package/dist/core/types.d.ts +125 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/db/accounts.d.ts +71 -0
- package/dist/db/accounts.d.ts.map +1 -0
- package/dist/db/accounts.js +205 -0
- package/dist/db/accounts.js.map +1 -0
- package/dist/db/index.d.ts +14 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +104 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/operators.d.ts +48 -0
- package/dist/db/operators.d.ts.map +1 -0
- package/dist/db/operators.js +201 -0
- package/dist/db/operators.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +473 -0
- package/dist/index.js.map +1 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +121 -0
- package/dist/server/index.js.map +1 -0
- package/dist/services/reporter.d.ts +28 -0
- package/dist/services/reporter.d.ts.map +1 -0
- package/dist/services/reporter.js +107 -0
- package/dist/services/reporter.js.map +1 -0
- package/dist/services/solana.d.ts +59 -0
- package/dist/services/solana.d.ts.map +1 -0
- package/dist/services/solana.js +162 -0
- package/dist/services/solana.js.map +1 -0
- package/dist/services/telegram.d.ts +20 -0
- package/dist/services/telegram.d.ts.map +1 -0
- package/dist/services/telegram.js +213 -0
- package/dist/services/telegram.js.map +1 -0
- package/dist/utils/helpers.d.ts +55 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +116 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/logger.d.ts +14 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +70 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { LAMPORTS_PER_SOL, PublicKey } from '@solana/web3.js';
|
|
2
|
+
/**
|
|
3
|
+
* Convert lamports to SOL with fixed decimal places
|
|
4
|
+
*/
|
|
5
|
+
export function lamportsToSol(lamports, decimals = 6) {
|
|
6
|
+
return Number((lamports / LAMPORTS_PER_SOL).toFixed(decimals));
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Convert SOL to lamports
|
|
10
|
+
*/
|
|
11
|
+
export function solToLamports(sol) {
|
|
12
|
+
return Math.floor(sol * LAMPORTS_PER_SOL);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Format lamports as SOL string with symbol
|
|
16
|
+
*/
|
|
17
|
+
export function formatSol(lamports) {
|
|
18
|
+
return `${lamportsToSol(lamports)} SOL`;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Shorten a public key for display
|
|
22
|
+
*/
|
|
23
|
+
export function shortenPubkey(pubkey, chars = 4) {
|
|
24
|
+
const str = typeof pubkey === 'string' ? pubkey : pubkey.toBase58();
|
|
25
|
+
return `${str.slice(0, chars)}...${str.slice(-chars)}`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Validate a public key string
|
|
29
|
+
*/
|
|
30
|
+
export function isValidPubkey(str) {
|
|
31
|
+
try {
|
|
32
|
+
new PublicKey(str);
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Parse a public key string safely
|
|
41
|
+
*/
|
|
42
|
+
export function parsePubkey(str) {
|
|
43
|
+
try {
|
|
44
|
+
return new PublicKey(str);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Calculate rent for a given account size
|
|
52
|
+
* Based on Solana's rent calculation (approx 0.00089 SOL per byte per year for 2 years)
|
|
53
|
+
*/
|
|
54
|
+
export function calculateMinimumRent(dataSize) {
|
|
55
|
+
// Solana rent: 19.055441478439427 lamports per byte per epoch (2 days)
|
|
56
|
+
// Rent-exempt = 2 years = 365 epochs
|
|
57
|
+
// ~6.96 lamports per byte for rent-exempt
|
|
58
|
+
const LAMPORTS_PER_BYTE_YEAR = 3480;
|
|
59
|
+
const YEARS_FOR_EXEMPT = 2;
|
|
60
|
+
const ACCOUNT_HEADER_SIZE = 128; // Account metadata overhead
|
|
61
|
+
return ((dataSize + ACCOUNT_HEADER_SIZE) * LAMPORTS_PER_BYTE_YEAR * YEARS_FOR_EXEMPT);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Token Account size (165 bytes) minimum rent
|
|
65
|
+
*/
|
|
66
|
+
export const TOKEN_ACCOUNT_RENT = 2039280; // ~0.00204 SOL
|
|
67
|
+
/**
|
|
68
|
+
* Sleep for a given duration
|
|
69
|
+
*/
|
|
70
|
+
export function sleep(ms) {
|
|
71
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Retry a function with exponential backoff
|
|
75
|
+
*/
|
|
76
|
+
export async function retry(fn, maxRetries = 3, baseDelayMs = 1000) {
|
|
77
|
+
let lastError;
|
|
78
|
+
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
79
|
+
try {
|
|
80
|
+
return await fn();
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
lastError = error;
|
|
84
|
+
if (attempt < maxRetries - 1) {
|
|
85
|
+
const delay = baseDelayMs * Math.pow(2, attempt);
|
|
86
|
+
await sleep(delay);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
throw lastError;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Format a date for display
|
|
94
|
+
*/
|
|
95
|
+
export function formatDate(date) {
|
|
96
|
+
return date.toISOString().replace('T', ' ').slice(0, 19);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Calculate days since a date
|
|
100
|
+
*/
|
|
101
|
+
export function daysSince(date) {
|
|
102
|
+
const now = new Date();
|
|
103
|
+
const diffMs = now.getTime() - date.getTime();
|
|
104
|
+
return Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Chunk an array into smaller arrays
|
|
108
|
+
*/
|
|
109
|
+
export function chunk(array, size) {
|
|
110
|
+
const chunks = [];
|
|
111
|
+
for (let i = 0; i < array.length; i += size) {
|
|
112
|
+
chunks.push(array.slice(i, i + size));
|
|
113
|
+
}
|
|
114
|
+
return chunks;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'success';
|
|
2
|
+
export declare function setLogLevel(level: LogLevel): void;
|
|
3
|
+
export declare const logger: {
|
|
4
|
+
debug(message: string, ...args: unknown[]): void;
|
|
5
|
+
info(message: string, ...args: unknown[]): void;
|
|
6
|
+
warn(message: string, ...args: unknown[]): void;
|
|
7
|
+
error(message: string, ...args: unknown[]): void;
|
|
8
|
+
success(message: string, ...args: unknown[]): void;
|
|
9
|
+
table(data: Record<string, unknown>[]): void;
|
|
10
|
+
box(title: string, content: string): void;
|
|
11
|
+
divider(): void;
|
|
12
|
+
newline(): void;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;AAYtE,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAUD,eAAO,MAAM,MAAM;mBACF,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI;kBAUlC,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI;kBAMjC,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI;mBAUhC,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI;qBAU/B,MAAM,WAAW,OAAO,EAAE,GAAG,IAAI;gBAWtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI;eAKjC,MAAM,WAAW,MAAM,GAAG,IAAI;eAe9B,IAAI;eAKJ,IAAI;CAGhB,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
const LOG_LEVELS = {
|
|
3
|
+
debug: 0,
|
|
4
|
+
info: 1,
|
|
5
|
+
warn: 2,
|
|
6
|
+
error: 3,
|
|
7
|
+
success: 1,
|
|
8
|
+
};
|
|
9
|
+
let currentLogLevel = 'info';
|
|
10
|
+
export function setLogLevel(level) {
|
|
11
|
+
currentLogLevel = level;
|
|
12
|
+
}
|
|
13
|
+
function shouldLog(level) {
|
|
14
|
+
return LOG_LEVELS[level] >= LOG_LEVELS[currentLogLevel];
|
|
15
|
+
}
|
|
16
|
+
function formatTimestamp() {
|
|
17
|
+
return new Date().toISOString().slice(11, 19);
|
|
18
|
+
}
|
|
19
|
+
export const logger = {
|
|
20
|
+
debug(message, ...args) {
|
|
21
|
+
if (shouldLog('debug')) {
|
|
22
|
+
console.log(chalk.gray(`[${formatTimestamp()}] [DEBUG]`), message, ...args);
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
info(message, ...args) {
|
|
26
|
+
if (shouldLog('info')) {
|
|
27
|
+
console.log(chalk.blue(`[${formatTimestamp()}] [INFO]`), message, ...args);
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
warn(message, ...args) {
|
|
31
|
+
if (shouldLog('warn')) {
|
|
32
|
+
console.log(chalk.yellow(`[${formatTimestamp()}] [WARN]`), message, ...args);
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
error(message, ...args) {
|
|
36
|
+
if (shouldLog('error')) {
|
|
37
|
+
console.error(chalk.red(`[${formatTimestamp()}] [ERROR]`), message, ...args);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
success(message, ...args) {
|
|
41
|
+
if (shouldLog('success')) {
|
|
42
|
+
console.log(chalk.green(`[${formatTimestamp()}] [SUCCESS]`), message, ...args);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
// Special formatting for tables and reports
|
|
46
|
+
table(data) {
|
|
47
|
+
console.table(data);
|
|
48
|
+
},
|
|
49
|
+
// Box for important messages
|
|
50
|
+
box(title, content) {
|
|
51
|
+
const width = Math.max(title.length, ...content.split('\n').map((l) => l.length)) + 4;
|
|
52
|
+
const border = '─'.repeat(width);
|
|
53
|
+
console.log(chalk.cyan(`┌${border}┐`));
|
|
54
|
+
console.log(chalk.cyan(`│ ${chalk.bold(title.padEnd(width - 2))} │`));
|
|
55
|
+
console.log(chalk.cyan(`├${border}┤`));
|
|
56
|
+
for (const line of content.split('\n')) {
|
|
57
|
+
console.log(chalk.cyan(`│ ${line.padEnd(width - 2)} │`));
|
|
58
|
+
}
|
|
59
|
+
console.log(chalk.cyan(`└${border}┘`));
|
|
60
|
+
},
|
|
61
|
+
// Divider
|
|
62
|
+
divider() {
|
|
63
|
+
console.log(chalk.gray('─'.repeat(50)));
|
|
64
|
+
},
|
|
65
|
+
// Empty line
|
|
66
|
+
newline() {
|
|
67
|
+
console.log();
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vacuum-sol",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Vacuum - Suck up forgotten rent from Solana accounts",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"vacuum": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsx watch src/index.ts",
|
|
13
|
+
"start": "node dist/index.js",
|
|
14
|
+
"test": "vitest run",
|
|
15
|
+
"test:watch": "vitest",
|
|
16
|
+
"lint": "eslint src --ext .ts",
|
|
17
|
+
"simulate": "tsx scripts/simulate.ts"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"solana",
|
|
21
|
+
"rent",
|
|
22
|
+
"reclaim",
|
|
23
|
+
"automation",
|
|
24
|
+
"cli",
|
|
25
|
+
"bot",
|
|
26
|
+
"telegram",
|
|
27
|
+
"web3",
|
|
28
|
+
"token-accounts"
|
|
29
|
+
],
|
|
30
|
+
"author": "Don-Vicks",
|
|
31
|
+
"license": "MIT",
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "https://github.com/Don-Vicks/vaccum.git"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "https://github.com/Don-Vicks/vaccum#readme",
|
|
37
|
+
"bugs": {
|
|
38
|
+
"url": "https://github.com/Don-Vicks/vaccum/issues"
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"dist",
|
|
42
|
+
"README.md",
|
|
43
|
+
"LICENSE"
|
|
44
|
+
],
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@solana/spl-token": "^0.4.9",
|
|
47
|
+
"@solana/web3.js": "^1.98.0",
|
|
48
|
+
"better-sqlite3": "^11.7.0",
|
|
49
|
+
"chalk": "^5.4.1",
|
|
50
|
+
"commander": "^13.0.0",
|
|
51
|
+
"cors": "^2.8.6",
|
|
52
|
+
"dotenv": "^16.4.7",
|
|
53
|
+
"express": "^5.2.1",
|
|
54
|
+
"ora": "^8.1.1",
|
|
55
|
+
"telegraf": "^4.16.3"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@types/better-sqlite3": "^7.6.12",
|
|
59
|
+
"@types/cors": "^2.8.19",
|
|
60
|
+
"@types/express": "^5.0.6",
|
|
61
|
+
"@types/node": "^22.10.5",
|
|
62
|
+
"tsx": "^4.19.2",
|
|
63
|
+
"typescript": "^5.7.3",
|
|
64
|
+
"vitest": "^2.1.8"
|
|
65
|
+
},
|
|
66
|
+
"engines": {
|
|
67
|
+
"node": ">=20.0.0"
|
|
68
|
+
}
|
|
69
|
+
}
|