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.
Files changed (2) hide show
  1. package/dist/index.js +7 -6
  2. 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.2.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.1.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"