solana-privacy-scanner 0.2.0 → 0.3.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/dist/index.js +7 -6
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -12,6 +12,8 @@ import { Connection } from "@solana/web3.js";
|
|
|
12
12
|
import { readFileSync } from "fs";
|
|
13
13
|
import { fileURLToPath } from "url";
|
|
14
14
|
import { dirname, join } from "path";
|
|
15
|
+
var DEFAULT_RPC_URL = "https://late-hardworking-waterfall.solana-mainnet.quiknode.pro/4017b48acf3a2a1665603cac096822ce4bec3a90/";
|
|
16
|
+
var VERSION = "0.3.0";
|
|
15
17
|
var RateLimiter = class {
|
|
16
18
|
constructor(maxConcurrency) {
|
|
17
19
|
this.maxConcurrency = maxConcurrency;
|
|
@@ -52,8 +54,8 @@ var RPCClient = class {
|
|
|
52
54
|
config;
|
|
53
55
|
rateLimiter;
|
|
54
56
|
constructor(configOrUrl) {
|
|
55
|
-
const config2 = typeof configOrUrl === "string" ? { rpcUrl: configOrUrl } : configOrUrl;
|
|
56
|
-
const rpcUrl = config2.rpcUrl.trim();
|
|
57
|
+
const config2 = !configOrUrl ? {} : typeof configOrUrl === "string" ? { rpcUrl: configOrUrl } : configOrUrl;
|
|
58
|
+
const rpcUrl = (config2.rpcUrl || DEFAULT_RPC_URL).trim();
|
|
57
59
|
this.config = {
|
|
58
60
|
maxRetries: config2.maxRetries ?? 3,
|
|
59
61
|
retryDelay: config2.retryDelay ?? 1e3,
|
|
@@ -2037,7 +2039,6 @@ var StaticLabelProvider = class {
|
|
|
2037
2039
|
function createDefaultLabelProvider() {
|
|
2038
2040
|
return new StaticLabelProvider();
|
|
2039
2041
|
}
|
|
2040
|
-
var VERSION = "0.1.0";
|
|
2041
2042
|
|
|
2042
2043
|
// src/formatter.js
|
|
2043
2044
|
import chalk from "chalk";
|
|
@@ -2341,8 +2342,8 @@ dotenv.config({ path: ".env.local" });
|
|
|
2341
2342
|
dotenv.config();
|
|
2342
2343
|
var program = new Command();
|
|
2343
2344
|
program.name("solana-privacy-scanner").description("Privacy risk scanner for Solana blockchain").version(VERSION);
|
|
2344
|
-
program.command("scan-wallet").alias("wallet").description("Scan a Solana wallet address for privacy risks").argument("<address>", "Wallet address to scan").option("--rpc <url>", "RPC endpoint URL", process.env.SOLANA_RPC).option("--json", "Output as JSON", false).option("--max-signatures <number>", "Maximum number of signatures to fetch", "100").option("--output <file>", "Write output to file").action(scanWallet);
|
|
2345
|
-
program.command("scan-transaction").alias("tx").description("Scan a single Solana transaction for privacy risks").argument("<signature>", "Transaction signature to scan").option("--rpc <url>", "RPC endpoint URL", process.env.SOLANA_RPC).option("--json", "Output as JSON", false).option("--output <file>", "Write output to file").action(scanTransaction);
|
|
2346
|
-
program.command("scan-program").alias("program").description("Scan a Solana program for privacy risks").argument("<programId>", "Program ID to scan").option("--rpc <url>", "RPC endpoint URL", process.env.SOLANA_RPC).option("--json", "Output as JSON", false).option("--max-accounts <number>", "Maximum number of accounts to fetch", "100").option("--max-transactions <number>", "Maximum number of transactions to fetch", "50").option("--output <file>", "Write output to file").action(scanProgram);
|
|
2345
|
+
program.command("scan-wallet").alias("wallet").description("Scan a Solana wallet address for privacy risks").argument("<address>", "Wallet address to scan").option("--rpc <url>", "Custom RPC endpoint URL (optional)", process.env.SOLANA_RPC).option("--json", "Output as JSON", false).option("--max-signatures <number>", "Maximum number of signatures to fetch", "100").option("--output <file>", "Write output to file").action(scanWallet);
|
|
2346
|
+
program.command("scan-transaction").alias("tx").description("Scan a single Solana transaction for privacy risks").argument("<signature>", "Transaction signature to scan").option("--rpc <url>", "Custom RPC endpoint URL (optional)", process.env.SOLANA_RPC).option("--json", "Output as JSON", false).option("--output <file>", "Write output to file").action(scanTransaction);
|
|
2347
|
+
program.command("scan-program").alias("program").description("Scan a Solana program for privacy risks").argument("<programId>", "Program ID to scan").option("--rpc <url>", "Custom RPC endpoint URL (optional)", process.env.SOLANA_RPC).option("--json", "Output as JSON", false).option("--max-accounts <number>", "Maximum number of accounts to fetch", "100").option("--max-transactions <number>", "Maximum number of transactions to fetch", "50").option("--output <file>", "Write output to file").action(scanProgram);
|
|
2347
2348
|
program.parse();
|
|
2348
2349
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solana-privacy-scanner",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CLI tool for analyzing Solana wallet privacy and on-chain exposure - scan wallets, transactions, and programs",
|
|
6
6
|
"bin": {
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"url": "https://github.com/taylorferran/solana-privacy-scanner/issues"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"solana-privacy-scanner-core": "^0.
|
|
40
|
+
"solana-privacy-scanner-core": "^0.3.0",
|
|
41
41
|
"chalk": "^5.3.0",
|
|
42
42
|
"commander": "^12.1.0",
|
|
43
43
|
"dotenv": "^16.4.7"
|