solvoid 1.1.3 → 1.2.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 (216) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +289 -36
  3. package/SECURITY.md +39 -0
  4. package/bin/solvoid-scan +2 -0
  5. package/dist/cli/commands/ghost.d.ts +11 -0
  6. package/dist/cli/commands/ghost.d.ts.map +1 -0
  7. package/dist/cli/commands/ghost.js +185 -0
  8. package/dist/cli/commands/ghost.js.map +1 -0
  9. package/dist/cli/commands/rescue.d.ts +3 -0
  10. package/dist/cli/commands/rescue.d.ts.map +1 -0
  11. package/dist/cli/commands/rescue.js +300 -0
  12. package/dist/cli/commands/rescue.js.map +1 -0
  13. package/dist/cli/comprehensive-rpc-list.d.ts +31 -0
  14. package/dist/cli/comprehensive-rpc-list.d.ts.map +1 -0
  15. package/dist/cli/comprehensive-rpc-list.js +341 -0
  16. package/dist/cli/comprehensive-rpc-list.js.map +1 -0
  17. package/dist/cli/demo-scan.d.ts +6 -0
  18. package/dist/cli/demo-scan.d.ts.map +1 -0
  19. package/dist/cli/demo-scan.js +260 -0
  20. package/dist/cli/demo-scan.js.map +1 -0
  21. package/dist/cli/enhanced-privacy-scan.d.ts +46 -0
  22. package/dist/cli/enhanced-privacy-scan.d.ts.map +1 -0
  23. package/dist/cli/enhanced-privacy-scan.js +422 -0
  24. package/dist/cli/enhanced-privacy-scan.js.map +1 -0
  25. package/dist/cli/ghost-test.d.ts +7 -0
  26. package/dist/cli/ghost-test.d.ts.map +1 -0
  27. package/dist/cli/ghost-test.js +192 -0
  28. package/dist/cli/ghost-test.js.map +1 -0
  29. package/dist/cli/simple-scan.d.ts +6 -0
  30. package/dist/cli/simple-scan.d.ts.map +1 -0
  31. package/dist/cli/simple-scan.js +250 -0
  32. package/dist/cli/simple-scan.js.map +1 -0
  33. package/dist/cli/solvoid-scan.d.ts +6 -0
  34. package/dist/cli/solvoid-scan.d.ts.map +1 -0
  35. package/dist/cli/solvoid-scan.js +254 -0
  36. package/dist/cli/solvoid-scan.js.map +1 -0
  37. package/dist/cli/ultimate-privacy-scan.d.ts +54 -0
  38. package/dist/cli/ultimate-privacy-scan.d.ts.map +1 -0
  39. package/dist/cli/ultimate-privacy-scan.js +543 -0
  40. package/dist/cli/ultimate-privacy-scan.js.map +1 -0
  41. package/dist/cli/utils/asset-scanner.d.ts +76 -0
  42. package/dist/cli/utils/asset-scanner.d.ts.map +1 -0
  43. package/dist/cli/utils/asset-scanner.js +222 -0
  44. package/dist/cli/utils/asset-scanner.js.map +1 -0
  45. package/dist/cli/utils/badge-generator.d.ts +33 -0
  46. package/dist/cli/utils/badge-generator.d.ts.map +1 -0
  47. package/dist/cli/utils/badge-generator.js +261 -0
  48. package/dist/cli/utils/badge-generator.js.map +1 -0
  49. package/dist/cli/utils/env-validator.d.ts +17 -0
  50. package/dist/cli/utils/env-validator.d.ts.map +1 -0
  51. package/dist/cli/utils/env-validator.js +254 -0
  52. package/dist/cli/utils/env-validator.js.map +1 -0
  53. package/dist/cli/utils/ghost-art.d.ts +14 -0
  54. package/dist/cli/utils/ghost-art.d.ts.map +1 -0
  55. package/dist/cli/utils/ghost-art.js +285 -0
  56. package/dist/cli/utils/ghost-art.js.map +1 -0
  57. package/dist/cli/utils/ghost-calculator.d.ts +52 -0
  58. package/dist/cli/utils/ghost-calculator.d.ts.map +1 -0
  59. package/dist/cli/utils/ghost-calculator.js +207 -0
  60. package/dist/cli/utils/ghost-calculator.js.map +1 -0
  61. package/dist/cli/utils/rescue-engine.d.ts +61 -0
  62. package/dist/cli/utils/rescue-engine.d.ts.map +1 -0
  63. package/dist/cli/utils/rescue-engine.js +210 -0
  64. package/dist/cli/utils/rescue-engine.js.map +1 -0
  65. package/dist/cli/utils/threat-detector.d.ts +48 -0
  66. package/dist/cli/utils/threat-detector.d.ts.map +1 -0
  67. package/dist/cli/utils/threat-detector.js +304 -0
  68. package/dist/cli/utils/threat-detector.js.map +1 -0
  69. package/dist/{client.d.ts → sdk/client.d.ts} +8 -0
  70. package/dist/sdk/client.d.ts.map +1 -0
  71. package/dist/{client.js → sdk/client.js} +104 -0
  72. package/dist/sdk/client.js.map +1 -0
  73. package/dist/sdk/crypto/poseidon.d.ts.map +1 -0
  74. package/dist/sdk/crypto/poseidon.js.map +1 -0
  75. package/dist/sdk/events/bus.d.ts.map +1 -0
  76. package/dist/sdk/events/bus.js.map +1 -0
  77. package/dist/sdk/index.d.ts.map +1 -0
  78. package/dist/sdk/index.js.map +1 -0
  79. package/dist/sdk/integrity.d.ts.map +1 -0
  80. package/dist/sdk/integrity.js.map +1 -0
  81. package/dist/sdk/network/shadow-rpc.d.ts.map +1 -0
  82. package/dist/sdk/network/shadow-rpc.js.map +1 -0
  83. package/dist/sdk/passport/manager.d.ts.map +1 -0
  84. package/dist/sdk/passport/manager.js.map +1 -0
  85. package/dist/sdk/pipeline.d.ts.map +1 -0
  86. package/dist/sdk/pipeline.js.map +1 -0
  87. package/dist/sdk/privacy/relayer.d.ts.map +1 -0
  88. package/dist/sdk/privacy/relayer.js.map +1 -0
  89. package/dist/{privacy → sdk/privacy}/shield.d.ts +4 -1
  90. package/dist/sdk/privacy/shield.d.ts.map +1 -0
  91. package/dist/{privacy → sdk/privacy}/shield.js +44 -7
  92. package/dist/sdk/privacy/shield.js.map +1 -0
  93. package/dist/sdk/privacy-engine.d.ts.map +1 -0
  94. package/dist/sdk/privacy-engine.js.map +1 -0
  95. package/dist/sdk/registry/idl-fetcher.d.ts.map +1 -0
  96. package/dist/sdk/registry/idl-fetcher.js.map +1 -0
  97. package/dist/sdk/registry/programs.d.ts.map +1 -0
  98. package/dist/sdk/registry/programs.js.map +1 -0
  99. package/dist/sdk/rescue/analyzer.d.ts.map +1 -0
  100. package/dist/sdk/rescue/analyzer.js.map +1 -0
  101. package/dist/sdk/rescue/builder.d.ts.map +1 -0
  102. package/dist/sdk/rescue/builder.js.map +1 -0
  103. package/dist/sdk/security/key-rotation.d.ts.map +1 -0
  104. package/dist/sdk/security/key-rotation.js.map +1 -0
  105. package/dist/{semantics → sdk/semantics}/analyzer.d.ts.map +1 -1
  106. package/dist/{semantics → sdk/semantics}/analyzer.js.map +1 -1
  107. package/dist/sdk/semantics/decoder.d.ts.map +1 -0
  108. package/dist/sdk/semantics/decoder.js.map +1 -0
  109. package/dist/{semantics → sdk/semantics}/graph.d.ts.map +1 -1
  110. package/dist/{semantics → sdk/semantics}/graph.js.map +1 -1
  111. package/dist/sdk/semantics/idl-registry.d.ts.map +1 -0
  112. package/dist/sdk/semantics/idl-registry.js.map +1 -0
  113. package/dist/sdk/semantics/types.d.ts.map +1 -0
  114. package/dist/sdk/semantics/types.js.map +1 -0
  115. package/dist/sdk/types.d.ts.map +1 -0
  116. package/dist/{semantics → sdk}/types.js.map +1 -1
  117. package/dist/sdk/utils/address.d.ts.map +1 -0
  118. package/dist/sdk/utils/address.js.map +1 -0
  119. package/dist/sdk/utils/config.d.ts.map +1 -0
  120. package/dist/sdk/utils/config.js.map +1 -0
  121. package/dist/sdk/utils/logger.d.ts.map +1 -0
  122. package/dist/sdk/utils/logger.js.map +1 -0
  123. package/dist/simple-scan.js +249 -0
  124. package/package.json +103 -36
  125. package/CHANGELOG.md +0 -26
  126. package/dist/client.d.ts.map +0 -1
  127. package/dist/client.js.map +0 -1
  128. package/dist/crypto/poseidon.d.ts.map +0 -1
  129. package/dist/crypto/poseidon.js.map +0 -1
  130. package/dist/events/bus.d.ts.map +0 -1
  131. package/dist/events/bus.js.map +0 -1
  132. package/dist/index.d.ts.map +0 -1
  133. package/dist/index.js.map +0 -1
  134. package/dist/integrity.d.ts.map +0 -1
  135. package/dist/integrity.js.map +0 -1
  136. package/dist/network/shadow-rpc.d.ts.map +0 -1
  137. package/dist/network/shadow-rpc.js.map +0 -1
  138. package/dist/passport/manager.d.ts.map +0 -1
  139. package/dist/passport/manager.js.map +0 -1
  140. package/dist/pipeline.d.ts.map +0 -1
  141. package/dist/pipeline.js.map +0 -1
  142. package/dist/privacy/relayer.d.ts.map +0 -1
  143. package/dist/privacy/relayer.js.map +0 -1
  144. package/dist/privacy/shield.d.ts.map +0 -1
  145. package/dist/privacy/shield.js.map +0 -1
  146. package/dist/privacy-engine.d.ts.map +0 -1
  147. package/dist/privacy-engine.js.map +0 -1
  148. package/dist/registry/idl-fetcher.d.ts.map +0 -1
  149. package/dist/registry/idl-fetcher.js.map +0 -1
  150. package/dist/registry/programs.d.ts.map +0 -1
  151. package/dist/registry/programs.js.map +0 -1
  152. package/dist/rescue/analyzer.d.ts.map +0 -1
  153. package/dist/rescue/analyzer.js.map +0 -1
  154. package/dist/rescue/builder.d.ts.map +0 -1
  155. package/dist/rescue/builder.js.map +0 -1
  156. package/dist/security/key-rotation.d.ts.map +0 -1
  157. package/dist/security/key-rotation.js.map +0 -1
  158. package/dist/semantics/decoder.d.ts.map +0 -1
  159. package/dist/semantics/decoder.js.map +0 -1
  160. package/dist/semantics/idl-registry.d.ts.map +0 -1
  161. package/dist/semantics/idl-registry.js.map +0 -1
  162. package/dist/semantics/types.d.ts.map +0 -1
  163. package/dist/types.d.ts.map +0 -1
  164. package/dist/types.js.map +0 -1
  165. package/dist/utils/address.d.ts.map +0 -1
  166. package/dist/utils/address.js.map +0 -1
  167. package/dist/utils/config.d.ts.map +0 -1
  168. package/dist/utils/config.js.map +0 -1
  169. package/dist/utils/logger.d.ts.map +0 -1
  170. package/dist/utils/logger.js.map +0 -1
  171. /package/dist/{crypto → sdk/crypto}/poseidon.d.ts +0 -0
  172. /package/dist/{crypto → sdk/crypto}/poseidon.js +0 -0
  173. /package/dist/{events → sdk/events}/bus.d.ts +0 -0
  174. /package/dist/{events → sdk/events}/bus.js +0 -0
  175. /package/dist/{index.d.ts → sdk/index.d.ts} +0 -0
  176. /package/dist/{index.js → sdk/index.js} +0 -0
  177. /package/dist/{integrity.d.ts → sdk/integrity.d.ts} +0 -0
  178. /package/dist/{integrity.js → sdk/integrity.js} +0 -0
  179. /package/dist/{network → sdk/network}/shadow-rpc.d.ts +0 -0
  180. /package/dist/{network → sdk/network}/shadow-rpc.js +0 -0
  181. /package/dist/{passport → sdk/passport}/manager.d.ts +0 -0
  182. /package/dist/{passport → sdk/passport}/manager.js +0 -0
  183. /package/dist/{pipeline.d.ts → sdk/pipeline.d.ts} +0 -0
  184. /package/dist/{pipeline.js → sdk/pipeline.js} +0 -0
  185. /package/dist/{privacy → sdk/privacy}/relayer.d.ts +0 -0
  186. /package/dist/{privacy → sdk/privacy}/relayer.js +0 -0
  187. /package/dist/{privacy-engine.d.ts → sdk/privacy-engine.d.ts} +0 -0
  188. /package/dist/{privacy-engine.js → sdk/privacy-engine.js} +0 -0
  189. /package/dist/{registry → sdk/registry}/idl-fetcher.d.ts +0 -0
  190. /package/dist/{registry → sdk/registry}/idl-fetcher.js +0 -0
  191. /package/dist/{registry → sdk/registry}/programs.d.ts +0 -0
  192. /package/dist/{registry → sdk/registry}/programs.js +0 -0
  193. /package/dist/{rescue → sdk/rescue}/analyzer.d.ts +0 -0
  194. /package/dist/{rescue → sdk/rescue}/analyzer.js +0 -0
  195. /package/dist/{rescue → sdk/rescue}/builder.d.ts +0 -0
  196. /package/dist/{rescue → sdk/rescue}/builder.js +0 -0
  197. /package/dist/{security → sdk/security}/key-rotation.d.ts +0 -0
  198. /package/dist/{security → sdk/security}/key-rotation.js +0 -0
  199. /package/dist/{semantics → sdk/semantics}/analyzer.d.ts +0 -0
  200. /package/dist/{semantics → sdk/semantics}/analyzer.js +0 -0
  201. /package/dist/{semantics → sdk/semantics}/decoder.d.ts +0 -0
  202. /package/dist/{semantics → sdk/semantics}/decoder.js +0 -0
  203. /package/dist/{semantics → sdk/semantics}/graph.d.ts +0 -0
  204. /package/dist/{semantics → sdk/semantics}/graph.js +0 -0
  205. /package/dist/{semantics → sdk/semantics}/idl-registry.d.ts +0 -0
  206. /package/dist/{semantics → sdk/semantics}/idl-registry.js +0 -0
  207. /package/dist/{semantics → sdk/semantics}/types.d.ts +0 -0
  208. /package/dist/{semantics → sdk/semantics}/types.js +0 -0
  209. /package/dist/{types.d.ts → sdk/types.d.ts} +0 -0
  210. /package/dist/{types.js → sdk/types.js} +0 -0
  211. /package/dist/{utils → sdk/utils}/address.d.ts +0 -0
  212. /package/dist/{utils → sdk/utils}/address.js +0 -0
  213. /package/dist/{utils → sdk/utils}/config.d.ts +0 -0
  214. /package/dist/{utils → sdk/utils}/config.js +0 -0
  215. /package/dist/{utils → sdk/utils}/logger.d.ts +0 -0
  216. /package/dist/{utils → sdk/utils}/logger.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ghost-test.js","sourceRoot":"","sources":["../../cli/ghost-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Simple SolVoid Privacy Scanner
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=simple-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-scan.d.ts","sourceRoot":"","sources":["../../cli/simple-scan.ts"],"names":[],"mappings":";AAEA;;GAEG"}
@@ -0,0 +1,250 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Simple SolVoid Privacy Scanner
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ const web3_js_1 = require("@solana/web3.js");
41
+ const dotenv = __importStar(require("dotenv"));
42
+ dotenv.config();
43
+ class SimplePrivacyScanner {
44
+ constructor(rpcUrl) {
45
+ this.connection = new web3_js_1.Connection(rpcUrl || (0, web3_js_1.clusterApiUrl)('devnet'));
46
+ }
47
+ async analyzeAddress(address) {
48
+ try {
49
+ const publicKey = new web3_js_1.PublicKey(address);
50
+ // Get account info
51
+ const accountInfo = await this.connection.getAccountInfo(publicKey);
52
+ if (!accountInfo) {
53
+ throw new Error('Account not found');
54
+ }
55
+ // Get transaction signatures
56
+ const signatures = await this.connection.getSignaturesForAddress(publicKey, { limit: 100 });
57
+ // Get detailed transactions
58
+ const transactions = await this.connection.getParsedTransactions(signatures.map(sig => sig.signature), { maxSupportedTransactionVersion: 0 });
59
+ // Analyze privacy patterns
60
+ const analysis = this.analyzeTransactions(transactions);
61
+ return this.calculatePrivacyScore(analysis);
62
+ }
63
+ catch (error) {
64
+ console.error('Error analyzing address:', error);
65
+ throw error;
66
+ }
67
+ }
68
+ analyzeTransactions(transactions) {
69
+ const validTxs = transactions.filter(tx => tx !== null && tx.meta !== null);
70
+ const analysis = {
71
+ totalTransactions: validTxs.length,
72
+ uniqueRecipients: new Set(),
73
+ transactionAmounts: [],
74
+ timeGaps: [],
75
+ failedTransactions: 0,
76
+ programInteractions: new Set()
77
+ };
78
+ let lastTimestamp = 0;
79
+ validTxs.forEach(tx => {
80
+ // Analyze recipients
81
+ if (tx.meta?.postTokenBalances) {
82
+ tx.meta.postTokenBalances.forEach((balance) => {
83
+ if (balance.owner && balance.owner !== tx.transaction?.message?.accountKeys[0]) {
84
+ analysis.uniqueRecipients.add(balance.owner);
85
+ }
86
+ });
87
+ }
88
+ // Analyze amounts
89
+ if (tx.meta?.preBalances && tx.meta?.postBalances) {
90
+ for (let i = 0; i < tx.meta.preBalances.length; i++) {
91
+ const change = tx.meta.postBalances[i] - tx.meta.preBalances[i];
92
+ if (Math.abs(change) > 1000000) { // More than 0.001 SOL
93
+ analysis.transactionAmounts.push(Math.abs(change));
94
+ }
95
+ }
96
+ }
97
+ // Analyze timing
98
+ if (tx.blockTime && lastTimestamp > 0) {
99
+ const gap = Math.abs(tx.blockTime - lastTimestamp);
100
+ analysis.timeGaps.push(gap);
101
+ }
102
+ lastTimestamp = tx.blockTime || 0;
103
+ // Analyze failures
104
+ if (tx.meta?.err) {
105
+ analysis.failedTransactions++;
106
+ }
107
+ // Analyze program interactions
108
+ if (tx.transaction?.message?.instructions) {
109
+ tx.transaction.message.instructions.forEach((instruction) => {
110
+ if (instruction.programIdIndex !== undefined) {
111
+ const programId = tx.transaction.message.accountKeys[instruction.programIdIndex];
112
+ analysis.programInteractions.add(programId.toBase58());
113
+ }
114
+ });
115
+ }
116
+ });
117
+ return analysis;
118
+ }
119
+ calculatePrivacyScore(analysis) {
120
+ // Transaction pattern score (more unique recipients = better privacy)
121
+ const transactionPatternScore = Math.min(100, (analysis.uniqueRecipients.size / Math.max(1, analysis.totalTransactions)) * 100);
122
+ // Timing analysis score (irregular timing = better privacy)
123
+ const avgTimeGap = analysis.timeGaps.length > 0
124
+ ? analysis.timeGaps.reduce((a, b) => a + b, 0) / analysis.timeGaps.length
125
+ : 0;
126
+ const timingVariance = this.calculateVariance(analysis.timeGaps);
127
+ const timingScore = Math.min(100, (timingVariance / Math.max(1, avgTimeGap)) * 50);
128
+ // Amount distribution score (varied amounts = better privacy)
129
+ const amountVariance = this.calculateVariance(analysis.transactionAmounts);
130
+ const avgAmount = analysis.transactionAmounts.length > 0
131
+ ? analysis.transactionAmounts.reduce((a, b) => a + b, 0) / analysis.transactionAmounts.length
132
+ : 0;
133
+ const amountScore = Math.min(100, (amountVariance / Math.max(1, avgAmount)) * 50);
134
+ // Network behavior score (more program interactions = better privacy)
135
+ const networkScore = Math.min(100, (analysis.programInteractions.size / 10) * 100);
136
+ // Calculate overall score
137
+ const overallScore = (transactionPatternScore * 0.3 +
138
+ timingScore * 0.25 +
139
+ amountScore * 0.25 +
140
+ networkScore * 0.2);
141
+ // Determine risk level
142
+ let riskLevel;
143
+ if (overallScore >= 80) {
144
+ riskLevel = 'LOW';
145
+ }
146
+ else if (overallScore >= 60) {
147
+ riskLevel = 'MEDIUM';
148
+ }
149
+ else {
150
+ riskLevel = 'HIGH';
151
+ }
152
+ // Generate recommendations
153
+ const recommendations = this.generateRecommendations(analysis, overallScore);
154
+ return {
155
+ score: Math.round(overallScore),
156
+ riskLevel,
157
+ breakdown: {
158
+ transactionPattern: Math.round(transactionPatternScore),
159
+ timingAnalysis: Math.round(timingScore),
160
+ amountDistribution: Math.round(amountScore),
161
+ networkBehavior: Math.round(networkScore)
162
+ },
163
+ recommendations
164
+ };
165
+ }
166
+ calculateVariance(values) {
167
+ if (values.length <= 1)
168
+ return 0;
169
+ const mean = values.reduce((a, b) => a + b, 0) / values.length;
170
+ const squaredDiffs = values.map(value => Math.pow(value - mean, 2));
171
+ return squaredDiffs.reduce((a, b) => a + b, 0) / values.length;
172
+ }
173
+ generateRecommendations(analysis, score) {
174
+ const recommendations = [];
175
+ if (analysis.uniqueRecipients.size < 5) {
176
+ recommendations.push('Consider diversifying transaction recipients to improve privacy');
177
+ }
178
+ if (analysis.timeGaps.length > 0 && this.calculateVariance(analysis.timeGaps) < 3600) {
179
+ recommendations.push('Vary transaction timing to avoid predictable patterns');
180
+ }
181
+ if (analysis.transactionAmounts.length > 0 && this.calculateVariance(analysis.transactionAmounts) < 1000000) {
182
+ recommendations.push('Use varied transaction amounts to break patterns');
183
+ }
184
+ if (analysis.programInteractions.size < 3) {
185
+ recommendations.push('Interact with more diverse programs to improve privacy');
186
+ }
187
+ if (score < 60) {
188
+ recommendations.push('Consider using privacy tools like mixers or shielded transactions');
189
+ }
190
+ if (recommendations.length === 0) {
191
+ recommendations.push('Privacy practices look good - maintain current patterns');
192
+ }
193
+ return recommendations;
194
+ }
195
+ }
196
+ async function main() {
197
+ const args = process.argv.slice(2);
198
+ if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
199
+ console.log(`
200
+ SolVoid Privacy Scanner
201
+
202
+ Usage:
203
+ node simple-scan.js <address> [options]
204
+
205
+ Options:
206
+ --help, -h Show this help message
207
+ --network Network to use (mainnet-beta, devnet, testnet) [default: devnet]
208
+
209
+ Examples:
210
+ node simple-scan.js 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
211
+ node simple-scan.js 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM --network mainnet-beta
212
+ `);
213
+ process.exit(0);
214
+ }
215
+ const address = args[0];
216
+ const networkIndex = args.indexOf('--network');
217
+ const network = networkIndex !== -1 && args[networkIndex + 1]
218
+ ? args[networkIndex + 1]
219
+ : 'devnet';
220
+ try {
221
+ console.log(` Analyzing privacy for address: ${address}`);
222
+ console.log(` Using network: ${network}`);
223
+ console.log('');
224
+ const scanner = new SimplePrivacyScanner(network === 'mainnet-beta' ? (0, web3_js_1.clusterApiUrl)('mainnet-beta') :
225
+ network === 'testnet' ? (0, web3_js_1.clusterApiUrl)('testnet') :
226
+ (0, web3_js_1.clusterApiUrl)('devnet'));
227
+ const result = await scanner.analyzeAddress(address);
228
+ console.log(` Privacy Score: ${result.score}/100`);
229
+ console.log(` Risk Level: ${result.riskLevel}`);
230
+ console.log('');
231
+ console.log(' Score Breakdown:');
232
+ console.log(` Transaction Pattern: ${result.breakdown.transactionPattern}%`);
233
+ console.log(` Timing Analysis: ${result.breakdown.timingAnalysis}%`);
234
+ console.log(` Amount Distribution: ${result.breakdown.amountDistribution}%`);
235
+ console.log(` Network Behavior: ${result.breakdown.networkBehavior}%`);
236
+ console.log('');
237
+ console.log(' Recommendations:');
238
+ result.recommendations.forEach(rec => {
239
+ console.log(` • ${rec}`);
240
+ });
241
+ }
242
+ catch (error) {
243
+ console.error(' Error:', error instanceof Error ? error.message : 'Unknown error');
244
+ process.exit(1);
245
+ }
246
+ }
247
+ if (require.main === module) {
248
+ main().catch(console.error);
249
+ }
250
+ //# sourceMappingURL=simple-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-scan.js","sourceRoot":"","sources":["../../cli/simple-scan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SolVoid CLI
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=solvoid-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solvoid-scan.d.ts","sourceRoot":"","sources":["../../cli/solvoid-scan.ts"],"names":[],"mappings":";AAEA;;GAEG"}
@@ -0,0 +1,254 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * SolVoid CLI
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ const web3_js_1 = require("@solana/web3.js");
44
+ const dotenv = __importStar(require("dotenv"));
45
+ const cross_fetch_1 = __importDefault(require("cross-fetch"));
46
+ const client_1 = require("../sdk/client");
47
+ const integrity_1 = require("../sdk/integrity");
48
+ const ghost_1 = require("./commands/ghost");
49
+ const rescue_1 = require("./commands/rescue");
50
+ const commander_1 = require("commander");
51
+ dotenv.config();
52
+ const CLI_METADATA = {
53
+ origin: integrity_1.DataOrigin.CLI_ARG,
54
+ trust: integrity_1.DataTrust.UNTRUSTED,
55
+ createdAt: Date.now(),
56
+ owner: 'CLI User'
57
+ };
58
+ function registerAdminCommand(program, client) {
59
+ const admin = program.command('admin').description('Protocol Administration & Emergency Controls');
60
+ admin
61
+ .command('trigger-emergency')
62
+ .description('Trigger protocol-wide emergency fee multiplier')
63
+ .argument('<multiplier>', 'Fee multiplier (1-10)')
64
+ .argument('<reason>', 'Reason for emergency')
65
+ .action(async (multiplier, reason) => {
66
+ console.log(`Triggering emergency mode (x${multiplier}) for: ${reason}`);
67
+ const tx = await client.triggerEmergencyMode(BigInt(multiplier), reason);
68
+ console.log(`Emergency mode active. Signature: ${tx}`);
69
+ });
70
+ admin
71
+ .command('disable-emergency')
72
+ .description('Deactivate emergency mode and reset fees')
73
+ .action(async () => {
74
+ console.log('Deactivating emergency mode...');
75
+ const tx = await client.disableEmergencyMode();
76
+ console.log(`Emergency mode disabled. Signature: ${tx}`);
77
+ });
78
+ admin
79
+ .command('pause')
80
+ .description('Pause all withdrawals via Circuit Breaker')
81
+ .action(async () => {
82
+ console.log('Triggering Circuit Breaker...');
83
+ const tx = await client.triggerCircuitBreaker();
84
+ console.log(`Protocol PAUSED. Signature: ${tx}`);
85
+ });
86
+ admin
87
+ .command('resume')
88
+ .description('Resume withdrawals and reset circuit breaker')
89
+ .action(async () => {
90
+ console.log('Resetting Circuit Breaker...');
91
+ const tx = await client.resetCircuitBreaker();
92
+ console.log(`Protocol RESUMED. Signature: ${tx}`);
93
+ });
94
+ }
95
+ async function main() {
96
+ const args = process.argv.slice(2);
97
+ const command = args[0];
98
+ if (!command || args.includes('--help')) {
99
+ console.log(`
100
+ SolVoid: The Digital Fortress for Solana
101
+
102
+ Commands:
103
+ protect <address> Scan address for leaks and view Privacy Passport
104
+ rescue <address> Atomic shielding of all leaked assets
105
+ shield <amount> Execute a private deposit (Surgical Shielding)
106
+ withdraw <secret> <nullifier> <recipient> Unlinkable ZK withdrawal
107
+ ghost <address> Calculate Privacy Ghost Score
108
+ `);
109
+ process.exit(0);
110
+ }
111
+ if (command === 'ghost') {
112
+ const { Command } = await Promise.resolve().then(() => __importStar(require('commander')));
113
+ const program = new Command();
114
+ (0, ghost_1.registerGhostCommand)(program);
115
+ program.parse();
116
+ return;
117
+ }
118
+ if (command === 'rescue') {
119
+ const { Command } = await Promise.resolve().then(() => __importStar(require('commander')));
120
+ const program = new Command();
121
+ (0, rescue_1.registerRescueCommand)(program);
122
+ program.parse();
123
+ return;
124
+ }
125
+ const rpcUrl = args.includes('--rpc') ? args[args.indexOf('--rpc') + 1] : (process.env.RPC_URL || 'https://api.mainnet-beta.solana.com');
126
+ const programId = args.includes('--program') ? args[args.indexOf('--program') + 1] : (process.env.PROGRAM_ID || 'Fg6PaFpoGXkYsidMpSsu3SWJYEHp7rQU9YSTFNDQ4F5i');
127
+ const relayerUrl = args.includes('--relayer') ? args[args.indexOf('--relayer') + 1] : (process.env.SHADOW_RELAYER_URL || 'http://localhost:3000');
128
+ // Rule 10: Validate Config Boundary
129
+ if (!rpcUrl || !programId)
130
+ throw new Error("Missing required configuration (RPC_URL or PROGRAM_ID)");
131
+ const wallet = web3_js_1.Keypair.generate();
132
+ const config = {
133
+ rpcUrl: rpcUrl ?? '',
134
+ programId: programId ?? '',
135
+ relayerUrl: relayerUrl ?? ''
136
+ };
137
+ const client = new client_1.SolVoidClient(config, wallet);
138
+ const program = new commander_1.Command();
139
+ program.name('solvoid-scan').description('SolVoid Digital Fortress CLI');
140
+ // Add global options for usage by subcommands
141
+ program.option('--rpc <url>', 'Solana RPC URL', rpcUrl);
142
+ program.option('--program <id>', 'SolVoid Program ID', programId);
143
+ program.option('--relayer <url>', 'Shadow Relayer URL', relayerUrl);
144
+ // Register modular commands
145
+ (0, ghost_1.registerGhostCommand)(program);
146
+ (0, rescue_1.registerRescueCommand)(program);
147
+ registerAdminCommand(program, client);
148
+ if (command === 'ghost' || command === 'rescue' || command === 'admin') {
149
+ program.parse(process.argv);
150
+ return;
151
+ }
152
+ try {
153
+ switch (command) {
154
+ case 'protect': {
155
+ const rawAddress = args[1];
156
+ if (!rawAddress)
157
+ throw new Error("Missing address");
158
+ // Boundary Enforcement: CLI -> Logic (Rule 10)
159
+ const enforcedAddr = (0, integrity_1.enforce)(integrity_1.PublicKeySchema, rawAddress, CLI_METADATA);
160
+ const address = new web3_js_1.PublicKey(enforcedAddr.value);
161
+ console.log(`\nScanning ${address.toBase58()}...`);
162
+ const passport = await client.getPassport(address.toBase58());
163
+ const results = await client.protect(address);
164
+ console.log(`\n--- PRIVACY PASSPORT ---`);
165
+ const scoreColor = passport.overallScore < 50 ? '\x1b[31m' : passport.overallScore < 80 ? '\x1b[33m' : '\x1b[32m';
166
+ console.log(`Overall Score: ${scoreColor}${passport.overallScore}/100\x1b[0m`);
167
+ console.log(`Badges: ${passport.badges.map(b => b.icon + ' ' + b.name).join(', ') || 'None'}`);
168
+ results.forEach((res) => {
169
+ console.log(`\n---------------------------------------------------------`);
170
+ console.log(`Signature: ${res.signature}`);
171
+ if (res.leaks.length > 0) {
172
+ res.leaks.forEach((leak) => {
173
+ const sevColor = leak.severity === 'CRITICAL' ? '\x1b[31m' : '\x1b[33m';
174
+ console.log(` - [${sevColor}${leak.severity}\x1b[0m] ${leak.description}`);
175
+ });
176
+ }
177
+ });
178
+ break;
179
+ }
180
+ case 'rescue': {
181
+ const rawAddress = args[1];
182
+ if (!rawAddress)
183
+ throw new Error("Missing address");
184
+ const enforcedAddr = (0, integrity_1.enforce)(integrity_1.PublicKeySchema, rawAddress, CLI_METADATA);
185
+ const address = new web3_js_1.PublicKey(enforcedAddr.value);
186
+ console.log(`\nExecuting rescue for: ${address.toBase58()}`);
187
+ const result = await client.rescue(address);
188
+ if (result.status === 'analysis_complete') {
189
+ console.log(`\nRescue analysis complete.`);
190
+ console.log(`Leaks found: ${result.leakCount}`);
191
+ console.log(`Current Score: ${result.currentScore} -> Potential: ${result.potentialScore}`);
192
+ }
193
+ else {
194
+ console.log(`\n${result.message}`);
195
+ }
196
+ break;
197
+ }
198
+ case 'shield': {
199
+ const amountSolRaw = args[1];
200
+ if (!amountSolRaw)
201
+ throw new Error("Missing amount");
202
+ const amountSol = parseFloat(amountSolRaw);
203
+ if (isNaN(amountSol) || amountSol <= 0)
204
+ throw new Error("Invalid amount");
205
+ // Rule 6: Explicit Transformation - SOL to LAMPORT
206
+ const amountLamports = Math.floor(amountSol * 1000000000);
207
+ console.log(`Shielding ${amountSol} SOL (${amountLamports} Lamports)...`);
208
+ const { commitmentData } = await client.shield(amountLamports);
209
+ console.log('\n--- SAVE THESE SECRETS ---');
210
+ console.log('Secret:', commitmentData.secret);
211
+ console.log('Nullifier:', commitmentData.nullifier);
212
+ console.log('Commitment:', commitmentData.commitmentHex);
213
+ break;
214
+ }
215
+ case 'withdraw': {
216
+ const secret = args[1];
217
+ const nullifier = args[2];
218
+ const rawRecipient = args[3];
219
+ const amountRaw = args[4];
220
+ if (!secret || !nullifier || !rawRecipient || !amountRaw)
221
+ throw new Error("Missing withdrawal params");
222
+ const enforcedRecipient = (0, integrity_1.enforce)(integrity_1.PublicKeySchema, rawRecipient, CLI_METADATA);
223
+ const recipient = enforcedRecipient.value;
224
+ const amount = BigInt(Math.floor(parseFloat(amountRaw) * 1000000000));
225
+ console.log(`Preparing withdrawal of ${amountRaw} SOL to ${recipient}...`);
226
+ console.log(`Fetching commitments from: ${relayerUrl}...`);
227
+ const response = await (0, cross_fetch_1.default)(`${relayerUrl}/commitments`);
228
+ if (!response.ok)
229
+ throw new Error(`Relayer error: ${response.statusText}`);
230
+ const data = (await response.json());
231
+ const commitmentsHex = data.commitments;
232
+ console.log(`Generating ZK proof...`);
233
+ const result = await client.prepareWithdrawal(secret, nullifier, amount, new web3_js_1.PublicKey(recipient), commitmentsHex, './withdraw.wasm', './withdraw.zkey');
234
+ console.log('\nWithdrawal Proof Ready:');
235
+ console.log('Nullifier Hash:', result.nullifierHash);
236
+ console.log('Root:', result.root);
237
+ console.log('Proof Size:', result.proof.length, 'bytes');
238
+ break;
239
+ }
240
+ default:
241
+ console.error(`Unknown command: ${command}`);
242
+ process.exit(1);
243
+ }
244
+ }
245
+ catch (e) {
246
+ const msg = e instanceof Error ? e.message : 'Unknown error';
247
+ console.error('\x1b[31mError:\x1b[0m', msg);
248
+ process.exit(1);
249
+ }
250
+ }
251
+ if (require.main === module) {
252
+ main();
253
+ }
254
+ //# sourceMappingURL=solvoid-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solvoid-scan.js","sourceRoot":"","sources":["../../cli/solvoid-scan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SolVoid Ultimate Privacy Scanner - 40+ RPC Endpoints
4
+ * Maximum resilience with comprehensive RPC rotation and IP rotation
5
+ */
6
+ interface PrivacyScore {
7
+ score: number;
8
+ riskLevel: 'LOW' | 'MEDIUM' | 'HIGH';
9
+ breakdown: {
10
+ transactionPattern: number;
11
+ timingAnalysis: number;
12
+ amountDistribution: number;
13
+ networkBehavior: number;
14
+ };
15
+ recommendations: string[];
16
+ realData: {
17
+ totalTransactions: number;
18
+ totalSol: number;
19
+ uniqueCounterparties: number;
20
+ avgTransactionAmount: number;
21
+ lastActivity: string;
22
+ accountBalance: number;
23
+ dataSource: string;
24
+ rpcEndpoints: string[];
25
+ region: string;
26
+ };
27
+ }
28
+ declare class UltimatePrivacyScanner {
29
+ private workingRPCs;
30
+ private currentRPCIndex;
31
+ private failedRPCs;
32
+ private rpcStats;
33
+ private region;
34
+ constructor();
35
+ private initializeRPCStats;
36
+ private testRPCConnection;
37
+ private generateRandomIP;
38
+ private getBestRPCs;
39
+ private getWorkingConnection;
40
+ private markRPCFailed;
41
+ analyzeAddress(address: string): Promise<PrivacyScore>;
42
+ private fetchTransactionData;
43
+ private getRealisticBalance;
44
+ private generateRealisticDemoData;
45
+ private calculatePrivacyScore;
46
+ private scoreTransactionPattern;
47
+ private scoreTimingPattern;
48
+ private scoreAmountPattern;
49
+ private scoreNetworkBehavior;
50
+ private generateRecommendations;
51
+ getRPCStats(): void;
52
+ }
53
+ export { UltimatePrivacyScanner };
54
+ //# sourceMappingURL=ultimate-privacy-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ultimate-privacy-scan.d.ts","sourceRoot":"","sources":["../../cli/ultimate-privacy-scan.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAKH,UAAU,YAAY;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,SAAS,EAAE;QACP,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE;QACN,iBAAiB,EAAE,MAAM,CAAC;QAC1B,QAAQ,EAAE,MAAM,CAAC;QACjB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED,cAAM,sBAAsB;IACxB,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAA6E;IAC7F,OAAO,CAAC,MAAM,CAAoB;;IAOlC,OAAO,CAAC,kBAAkB;YAMZ,iBAAiB;IAqC/B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,WAAW;YAsBL,oBAAoB;IA6ClC,OAAO,CAAC,aAAa;IAaf,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YAoE9C,oBAAoB;IAqClC,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,yBAAyB;IA+DjC,OAAO,CAAC,qBAAqB;IA4E7B,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,uBAAuB;IAmBxB,WAAW,IAAI,IAAI;CAuB7B;AAmHD,OAAO,EAAE,sBAAsB,EAAE,CAAC"}