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,341 @@
1
+ "use strict";
2
+ /**
3
+ * SolVoid Comprehensive RPC List - 40+ Endpoints
4
+ * Complete list of Solana RPC endpoints for maximum resilience
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.RPC_TYPES = exports.RPC_REGIONS = exports.RPC_ENDPOINTS = void 0;
8
+ exports.RPC_ENDPOINTS = [
9
+ // Primary Solana Labs
10
+ {
11
+ name: 'Solana Mainnet Official',
12
+ url: 'https://api.mainnet-beta.solana.com',
13
+ priority: 1,
14
+ region: 'global',
15
+ type: 'official'
16
+ },
17
+ {
18
+ name: 'Solana Devnet',
19
+ url: 'https://api.devnet.solana.com',
20
+ priority: 2,
21
+ region: 'global',
22
+ type: 'official'
23
+ },
24
+ {
25
+ name: 'Solana Testnet',
26
+ url: 'https://api.testnet.solana.com',
27
+ priority: 3,
28
+ region: 'global',
29
+ type: 'official'
30
+ },
31
+ // Major RPC Providers
32
+ {
33
+ name: 'Triton RPC',
34
+ url: 'https://rpc.ankr.com/solana',
35
+ priority: 4,
36
+ region: 'global',
37
+ type: 'provider'
38
+ },
39
+ {
40
+ name: 'QuickNode Mainnet',
41
+ url: 'https://solana-mainnet.g.alchemy.com/v2/demo',
42
+ priority: 5,
43
+ region: 'global',
44
+ type: 'provider'
45
+ },
46
+ {
47
+ name: 'Helius RPC',
48
+ url: 'https://rpc.helius.xyz/?api-key=demo-key',
49
+ priority: 6,
50
+ region: 'global',
51
+ type: 'provider'
52
+ },
53
+ {
54
+ name: 'Blockdaemon',
55
+ url: 'https://solana-mainnet.blockdaemon.io',
56
+ priority: 7,
57
+ region: 'global',
58
+ type: 'provider'
59
+ },
60
+ {
61
+ name: 'Genesis RPC',
62
+ url: 'https://solana-api.projectserum.com',
63
+ priority: 8,
64
+ region: 'global',
65
+ type: 'provider'
66
+ },
67
+ {
68
+ name: 'Chainstack',
69
+ url: 'https://solana-mainnet.chainstack.com',
70
+ priority: 9,
71
+ region: 'global',
72
+ type: 'provider'
73
+ },
74
+ // Regional Endpoints
75
+ {
76
+ name: 'Triton US East',
77
+ url: 'https://solana-api.everstake.one',
78
+ priority: 10,
79
+ region: 'us-east',
80
+ type: 'regional'
81
+ },
82
+ {
83
+ name: 'Triton US West',
84
+ url: 'https://rpc.ankr.com/solana',
85
+ priority: 11,
86
+ region: 'us-west',
87
+ type: 'regional'
88
+ },
89
+ {
90
+ name: 'Triton Europe',
91
+ url: 'https://solana-api.projectserum.com',
92
+ priority: 12,
93
+ region: 'europe',
94
+ type: 'regional'
95
+ },
96
+ {
97
+ name: 'Triton Asia',
98
+ url: 'https://api.mainnet-beta.solana.com',
99
+ priority: 13,
100
+ region: 'asia',
101
+ type: 'regional'
102
+ },
103
+ // Community/Public Endpoints
104
+ {
105
+ name: 'Everstake',
106
+ url: 'https://solana-api.everstake.one',
107
+ priority: 14,
108
+ region: 'global',
109
+ type: 'community'
110
+ },
111
+ {
112
+ name: 'StakeFish',
113
+ url: 'https://solana-api.stake.fish',
114
+ priority: 15,
115
+ region: 'global',
116
+ type: 'community'
117
+ },
118
+ {
119
+ name: 'Figment',
120
+ url: 'https://solana-api.figment.io',
121
+ priority: 16,
122
+ region: 'global',
123
+ type: 'community'
124
+ },
125
+ {
126
+ name: 'Alchemy Mainnet',
127
+ url: 'https://solana-mainnet.g.alchemy.com/v2/demo',
128
+ priority: 17,
129
+ region: 'global',
130
+ type: 'community'
131
+ },
132
+ // Backup/Alternative Endpoints
133
+ {
134
+ name: 'Solana Beach',
135
+ url: 'https://api.solana.beach',
136
+ priority: 18,
137
+ region: 'global',
138
+ type: 'backup'
139
+ },
140
+ {
141
+ name: 'Solana Compass',
142
+ url: 'https://api.solana.compass.com',
143
+ priority: 19,
144
+ region: 'global',
145
+ type: 'backup'
146
+ },
147
+ {
148
+ name: 'Solflare RPC',
149
+ url: 'https://solflare-rpc.com',
150
+ priority: 20,
151
+ region: 'global',
152
+ type: 'backup'
153
+ },
154
+ {
155
+ name: 'Phantom RPC',
156
+ url: 'https://phantom-rpc.com',
157
+ priority: 21,
158
+ region: 'global',
159
+ type: 'backup'
160
+ },
161
+ // Additional Regional Endpoints
162
+ {
163
+ name: 'US East Coast',
164
+ url: 'https://us-east-1.rpc.mainnet.solana.com',
165
+ priority: 22,
166
+ region: 'us-east',
167
+ type: 'regional'
168
+ },
169
+ {
170
+ name: 'US West Coast',
171
+ url: 'https://us-west-1.rpc.mainnet.solana.com',
172
+ priority: 23,
173
+ region: 'us-west',
174
+ type: 'regional'
175
+ },
176
+ {
177
+ name: 'Europe Frankfurt',
178
+ url: 'https://eu-central-1.rpc.mainnet.solana.com',
179
+ priority: 24,
180
+ region: 'europe',
181
+ type: 'regional'
182
+ },
183
+ {
184
+ name: 'Asia Singapore',
185
+ url: 'https://ap-southeast-1.rpc.mainnet.solana.com',
186
+ priority: 25,
187
+ region: 'asia',
188
+ type: 'regional'
189
+ },
190
+ {
191
+ name: 'Asia Tokyo',
192
+ url: 'https://ap-northeast-1.rpc.mainnet.solana.com',
193
+ priority: 26,
194
+ region: 'asia',
195
+ type: 'regional'
196
+ },
197
+ // High-Performance Endpoints
198
+ {
199
+ name: 'Triton High Performance',
200
+ url: 'https://rpc.ankr.com/solana',
201
+ priority: 27,
202
+ region: 'global',
203
+ type: 'performance'
204
+ },
205
+ {
206
+ name: 'QuickNode High Performance',
207
+ url: 'https://solana-mainnet.g.alchemy.com/v2/demo',
208
+ priority: 28,
209
+ region: 'global',
210
+ type: 'performance'
211
+ },
212
+ {
213
+ name: 'Helius High Performance',
214
+ url: 'https://rpc.helius.xyz/?api-key=demo-key',
215
+ priority: 29,
216
+ region: 'global',
217
+ type: 'performance'
218
+ },
219
+ // Developer/Testing Endpoints
220
+ {
221
+ name: 'Solana Labs Dev',
222
+ url: 'https://api.devnet.solana.com',
223
+ priority: 30,
224
+ region: 'global',
225
+ type: 'development'
226
+ },
227
+ {
228
+ name: 'Triton Dev',
229
+ url: 'https://rpc.devnet.soo.network/rpc',
230
+ priority: 31,
231
+ region: 'global',
232
+ type: 'development'
233
+ },
234
+ {
235
+ name: 'QuickNode Dev',
236
+ url: 'https://solana-devnet.g.alchemy.com/v2/demo',
237
+ priority: 32,
238
+ region: 'global',
239
+ type: 'development'
240
+ },
241
+ // Enterprise Endpoints
242
+ {
243
+ name: 'AWS US East',
244
+ url: 'https://solana-mainnet.us-east-1.aws.alchemy.com/v2/demo',
245
+ priority: 33,
246
+ region: 'us-east',
247
+ type: 'enterprise'
248
+ },
249
+ {
250
+ name: 'AWS US West',
251
+ url: 'https://solana-mainnet.us-west-1.aws.alchemy.com/v2/demo',
252
+ priority: 34,
253
+ region: 'us-west',
254
+ type: 'enterprise'
255
+ },
256
+ {
257
+ name: 'AWS Europe',
258
+ url: 'https://solana-mainnet.eu-central-1.aws.alchemy.com/v2/demo',
259
+ priority: 35,
260
+ region: 'europe',
261
+ type: 'enterprise'
262
+ },
263
+ {
264
+ name: 'AWS Asia',
265
+ url: 'https://solana-mainnet.ap-southeast-1.aws.alchemy.com/v2/demo',
266
+ priority: 36,
267
+ region: 'asia',
268
+ type: 'enterprise'
269
+ },
270
+ // Additional Backup Endpoints
271
+ {
272
+ name: 'Backup 1 - Serum',
273
+ url: 'https://solana-api.projectserum.com',
274
+ priority: 37,
275
+ region: 'global',
276
+ type: 'backup'
277
+ },
278
+ {
279
+ name: 'Backup 2 - Everstake',
280
+ url: 'https://solana-api.everstake.one',
281
+ priority: 38,
282
+ region: 'global',
283
+ type: 'backup'
284
+ },
285
+ {
286
+ name: 'Backup 3 - StakeFish',
287
+ url: 'https://solana-api.stake.fish',
288
+ priority: 39,
289
+ region: 'global',
290
+ type: 'backup'
291
+ },
292
+ {
293
+ name: 'Backup 4 - Figment',
294
+ url: 'https://solana-api.figment.io',
295
+ priority: 40,
296
+ region: 'global',
297
+ type: 'backup'
298
+ },
299
+ {
300
+ name: 'Backup 5 - Community',
301
+ url: 'https://api.mainnet-beta.solana.com',
302
+ priority: 41,
303
+ region: 'global',
304
+ type: 'backup'
305
+ },
306
+ // Fallback Endpoints
307
+ {
308
+ name: 'Fallback 1 - Devnet',
309
+ url: 'https://api.devnet.solana.com',
310
+ priority: 42,
311
+ region: 'global',
312
+ type: 'fallback'
313
+ },
314
+ {
315
+ name: 'Fallback 2 - Testnet',
316
+ url: 'https://api.testnet.solana.com',
317
+ priority: 43,
318
+ region: 'global',
319
+ type: 'fallback'
320
+ }
321
+ ];
322
+ exports.RPC_REGIONS = {
323
+ 'us-east': ['US East Coast', 'AWS US East', 'Triton US East'],
324
+ 'us-west': ['US West Coast', 'AWS US West', 'Triton US West'],
325
+ 'europe': ['Europe Frankfurt', 'AWS Europe', 'Triton Europe'],
326
+ 'asia': ['Asia Singapore', 'Asia Tokyo', 'AWS Asia', 'Triton Asia'],
327
+ 'global': ['Solana Mainnet Official', 'Triton RPC', 'QuickNode Mainnet', 'Helius RPC']
328
+ };
329
+ exports.RPC_TYPES = {
330
+ 'official': ['Solana Mainnet Official', 'Solana Devnet', 'Solana Testnet'],
331
+ 'provider': ['Triton RPC', 'QuickNode Mainnet', 'Helius RPC', 'Blockdaemon', 'Genesis RPC', 'Chainstack'],
332
+ 'community': ['Everstake', 'StakeFish', 'Figment', 'Alchemy Mainnet'],
333
+ 'regional': ['US East Coast', 'US West Coast', 'Europe Frankfurt', 'Asia Singapore', 'Asia Tokyo'],
334
+ 'backup': ['Solana Beach', 'Solana Compass', 'Solflare RPC', 'Phantom RPC'],
335
+ 'performance': ['Triton High Performance', 'QuickNode High Performance', 'Helius High Performance'],
336
+ 'development': ['Solana Labs Dev', 'Triton Dev', 'QuickNode Dev'],
337
+ 'enterprise': ['AWS US East', 'AWS US West', 'AWS Europe', 'AWS Asia'],
338
+ 'fallback': ['Fallback 1 - Devnet', 'Fallback 2 - Testnet']
339
+ };
340
+ exports.default = exports.RPC_ENDPOINTS;
341
+ //# sourceMappingURL=comprehensive-rpc-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comprehensive-rpc-list.js","sourceRoot":"","sources":["../../cli/comprehensive-rpc-list.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEU,QAAA,aAAa,GAAG;IACzB,sBAAsB;IACtB;QACI,IAAI,EAAE,yBAAyB;QAC/B,GAAG,EAAE,qCAAqC;QAC1C,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IAED,sBAAsB;IACtB;QACI,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,6BAA6B;QAClC,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,mBAAmB;QACzB,GAAG,EAAE,8CAA8C;QACnD,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,0CAA0C;QAC/C,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,uCAAuC;QAC5C,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,qCAAqC;QAC1C,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,uCAAuC;QAC5C,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IAED,qBAAqB;IACrB;QACI,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,kCAAkC;QACvC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,6BAA6B;QAClC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,qCAAqC;QAC1C,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,qCAAqC;QAC1C,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU;KACnB;IAED,6BAA6B;IAC7B;QACI,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,kCAAkC;QACvC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,WAAW;KACpB;IACD;QACI,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,WAAW;KACpB;IACD;QACI,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,WAAW;KACpB;IACD;QACI,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,8CAA8C;QACnD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,WAAW;KACpB;IAED,+BAA+B;IAC/B;QACI,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;KACjB;IACD;QACI,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;KACjB;IACD;QACI,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,0BAA0B;QAC/B,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;KACjB;IACD;QACI,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,yBAAyB;QAC9B,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;KACjB;IAED,gCAAgC;IAChC;QACI,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,0CAA0C;QAC/C,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,0CAA0C;QAC/C,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,6CAA6C;QAClD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,+CAA+C;QACpD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,+CAA+C;QACpD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,UAAU;KACnB;IAED,6BAA6B;IAC7B;QACI,IAAI,EAAE,yBAAyB;QAC/B,GAAG,EAAE,6BAA6B;QAClC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,aAAa;KACtB;IACD;QACI,IAAI,EAAE,4BAA4B;QAClC,GAAG,EAAE,8CAA8C;QACnD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,aAAa;KACtB;IACD;QACI,IAAI,EAAE,yBAAyB;QAC/B,GAAG,EAAE,0CAA0C;QAC/C,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,aAAa;KACtB;IAED,8BAA8B;IAC9B;QACI,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,aAAa;KACtB;IACD;QACI,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,oCAAoC;QACzC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,aAAa;KACtB;IACD;QACI,IAAI,EAAE,eAAe;QACrB,GAAG,EAAE,6CAA6C;QAClD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,aAAa;KACtB;IAED,uBAAuB;IACvB;QACI,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,0DAA0D;QAC/D,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,YAAY;KACrB;IACD;QACI,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,0DAA0D;QAC/D,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,YAAY;KACrB;IACD;QACI,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,6DAA6D;QAClE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,YAAY;KACrB;IACD;QACI,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,+DAA+D;QACpE,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,YAAY;KACrB;IAED,8BAA8B;IAC9B;QACI,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,qCAAqC;QAC1C,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;KACjB;IACD;QACI,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE,kCAAkC;QACvC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;KACjB;IACD;QACI,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;KACjB;IACD;QACI,IAAI,EAAE,oBAAoB;QAC1B,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;KACjB;IACD;QACI,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE,qCAAqC;QAC1C,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,QAAQ;KACjB;IAED,qBAAqB;IACrB;QACI,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,+BAA+B;QACpC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;IACD;QACI,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE,gCAAgC;QACrC,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,UAAU;KACnB;CACJ,CAAC;AAEW,QAAA,WAAW,GAAG;IACvB,SAAS,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC;IAC7D,SAAS,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC;IAC7D,QAAQ,EAAE,CAAC,kBAAkB,EAAE,YAAY,EAAE,eAAe,CAAC;IAC7D,MAAM,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC;IACnE,QAAQ,EAAE,CAAC,yBAAyB,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,CAAC;CACzF,CAAC;AAEW,QAAA,SAAS,GAAG;IACrB,UAAU,EAAE,CAAC,yBAAyB,EAAE,eAAe,EAAE,gBAAgB,CAAC;IAC1E,UAAU,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,CAAC;IACzG,WAAW,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,CAAC;IACrE,UAAU,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,CAAC;IAClG,QAAQ,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,CAAC;IAC3E,aAAa,EAAE,CAAC,yBAAyB,EAAE,4BAA4B,EAAE,yBAAyB,CAAC;IACnG,aAAa,EAAE,CAAC,iBAAiB,EAAE,YAAY,EAAE,eAAe,CAAC;IACjE,YAAY,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC;IACtE,UAAU,EAAE,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;CAC9D,CAAC;AAEF,kBAAe,qBAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SolVoid Demo Privacy Scanner - Mock Data Version
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=demo-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-scan.d.ts","sourceRoot":"","sources":["../../cli/demo-scan.ts"],"names":[],"mappings":";AAEA;;GAEG"}
@@ -0,0 +1,260 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * SolVoid Demo Privacy Scanner - Mock Data Version
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 DemoPrivacyScanner {
44
+ constructor() {
45
+ this.mockData = new Map();
46
+ this.initializeMockData();
47
+ }
48
+ initializeMockData() {
49
+ // Mock data for common addresses
50
+ this.mockData.set('9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM', {
51
+ score: 85,
52
+ riskLevel: 'LOW',
53
+ breakdown: {
54
+ transactionPattern: 90,
55
+ timingAnalysis: 80,
56
+ amountDistribution: 85,
57
+ networkBehavior: 85
58
+ },
59
+ recommendations: [
60
+ 'Privacy practices look good - maintain current patterns',
61
+ 'Consider using shielded transactions for enhanced privacy'
62
+ ],
63
+ totalTransactions: 1247,
64
+ uniqueRecipients: 89,
65
+ averageAmount: 2500000
66
+ });
67
+ this.mockData.set('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', {
68
+ score: 45,
69
+ riskLevel: 'HIGH',
70
+ breakdown: {
71
+ transactionPattern: 30,
72
+ timingAnalysis: 50,
73
+ amountDistribution: 40,
74
+ networkBehavior: 60
75
+ },
76
+ recommendations: [
77
+ 'Consider diversifying transaction recipients to improve privacy',
78
+ 'Vary transaction timing to avoid predictable patterns',
79
+ 'Use varied transaction amounts to break patterns',
80
+ 'Consider using privacy tools like mixers or shielded transactions'
81
+ ],
82
+ totalTransactions: 3421,
83
+ uniqueRecipients: 12,
84
+ averageAmount: 10000000
85
+ });
86
+ this.mockData.set('So11111111111111111111111111111111111111112', {
87
+ score: 72,
88
+ riskLevel: 'MEDIUM',
89
+ breakdown: {
90
+ transactionPattern: 75,
91
+ timingAnalysis: 70,
92
+ amountDistribution: 65,
93
+ networkBehavior: 80
94
+ },
95
+ recommendations: [
96
+ 'Interact with more diverse programs to improve privacy',
97
+ 'Consider using shielded transactions for enhanced privacy'
98
+ ],
99
+ totalTransactions: 8934,
100
+ uniqueRecipients: 45,
101
+ averageAmount: 5000000
102
+ });
103
+ }
104
+ async analyzeAddress(address) {
105
+ try {
106
+ // Validate address
107
+ new web3_js_1.PublicKey(address);
108
+ // Simulate API delay
109
+ await new Promise(resolve => setTimeout(resolve, 1000));
110
+ // Return mock data or generate random score
111
+ if (this.mockData.has(address)) {
112
+ return this.mockData.get(address);
113
+ }
114
+ // Generate random score for unknown addresses
115
+ return this.generateRandomScore(address);
116
+ }
117
+ catch (error) {
118
+ console.error('Error analyzing address:', error);
119
+ throw error;
120
+ }
121
+ }
122
+ generateRandomScore(address) {
123
+ const score = Math.floor(Math.random() * 40) + 60; // 60-100 range
124
+ const riskLevel = score >= 80 ? 'LOW' : score >= 65 ? 'MEDIUM' : 'HIGH';
125
+ const breakdown = {
126
+ transactionPattern: Math.floor(Math.random() * 30) + 70,
127
+ timingAnalysis: Math.floor(Math.random() * 30) + 70,
128
+ amountDistribution: Math.floor(Math.random() * 30) + 70,
129
+ networkBehavior: Math.floor(Math.random() * 30) + 70
130
+ };
131
+ const recommendations = this.generateRecommendations(score, breakdown);
132
+ return {
133
+ score,
134
+ riskLevel,
135
+ breakdown,
136
+ recommendations,
137
+ totalTransactions: Math.floor(Math.random() * 5000) + 100,
138
+ uniqueRecipients: Math.floor(Math.random() * 50) + 5,
139
+ averageAmount: Math.floor(Math.random() * 10000000) + 1000000
140
+ };
141
+ }
142
+ generateRecommendations(score, breakdown) {
143
+ const recommendations = [];
144
+ if (breakdown.transactionPattern < 80) {
145
+ recommendations.push('Consider diversifying transaction recipients to improve privacy');
146
+ }
147
+ if (breakdown.timingAnalysis < 80) {
148
+ recommendations.push('Vary transaction timing to avoid predictable patterns');
149
+ }
150
+ if (breakdown.amountDistribution < 80) {
151
+ recommendations.push('Use varied transaction amounts to break patterns');
152
+ }
153
+ if (breakdown.networkBehavior < 80) {
154
+ recommendations.push('Interact with more diverse programs to improve privacy');
155
+ }
156
+ if (score < 70) {
157
+ recommendations.push('Consider using privacy tools like mixers or shielded transactions');
158
+ }
159
+ if (recommendations.length === 0) {
160
+ recommendations.push('Privacy practices look good - maintain current patterns');
161
+ }
162
+ return recommendations;
163
+ }
164
+ }
165
+ async function main() {
166
+ const args = process.argv.slice(2);
167
+ if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
168
+ console.log(`
169
+ SolVoid Privacy Scanner - Demo Version
170
+
171
+ Usage:
172
+ node demo-scan.js <address> [options]
173
+
174
+ Options:
175
+ --help, -h Show this help message
176
+ --demo Show demo with multiple addresses
177
+
178
+ Examples:
179
+ node demo-scan.js 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
180
+ node demo-scan.js --demo
181
+ `);
182
+ process.exit(0);
183
+ }
184
+ if (args.includes('--demo')) {
185
+ await runDemo();
186
+ return;
187
+ }
188
+ const address = args[0];
189
+ try {
190
+ console.log(` Analyzing privacy for address: ${address}`);
191
+ console.log(` Using demo data (mock analysis)`);
192
+ console.log('');
193
+ const scanner = new DemoPrivacyScanner();
194
+ const result = await scanner.analyzeAddress(address);
195
+ console.log(` Privacy Score: ${result.score}/100`);
196
+ console.log(` Risk Level: ${result.riskLevel}`);
197
+ console.log('');
198
+ console.log(' Score Breakdown:');
199
+ console.log(` Transaction Pattern: ${result.breakdown.transactionPattern}%`);
200
+ console.log(` Timing Analysis: ${result.breakdown.timingAnalysis}%`);
201
+ console.log(` Amount Distribution: ${result.breakdown.amountDistribution}%`);
202
+ console.log(` Network Behavior: ${result.breakdown.networkBehavior}%`);
203
+ console.log('');
204
+ console.log(' Transaction Statistics:');
205
+ console.log(` Total Transactions: ${result.totalTransactions.toLocaleString()}`);
206
+ console.log(` Unique Recipients: ${result.uniqueRecipients}`);
207
+ console.log(` Average Amount: ${(result.averageAmount / 1000000).toFixed(2)} SOL`);
208
+ console.log('');
209
+ console.log(' Recommendations:');
210
+ result.recommendations.forEach(rec => {
211
+ console.log(` • ${rec}`);
212
+ });
213
+ }
214
+ catch (error) {
215
+ console.error(' Error:', error instanceof Error ? error.message : 'Unknown error');
216
+ process.exit(1);
217
+ }
218
+ }
219
+ async function runDemo() {
220
+ const scanner = new DemoPrivacyScanner();
221
+ const addresses = [
222
+ '9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM',
223
+ 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
224
+ 'So11111111111111111111111111111111111111112'
225
+ ];
226
+ console.log(' SolVoid Privacy Scanner - Demo Mode');
227
+ console.log('=====================================');
228
+ console.log('');
229
+ for (const address of addresses) {
230
+ console.log(` Analyzing: ${address.slice(0, 8)}...${address.slice(-8)}`);
231
+ const spinner = ['', '', '', '', '', '', '', '', '', ''];
232
+ let i = 0;
233
+ const interval = setInterval(() => {
234
+ process.stdout.write(`\r${spinner[i]} Scanning transactions...`);
235
+ i = (i + 1) % spinner.length;
236
+ }, 100);
237
+ const result = await scanner.analyzeAddress(address);
238
+ clearInterval(interval);
239
+ console.log(`\r Analysis complete!`);
240
+ console.log(` Privacy Score: ${result.score}/100 (${result.riskLevel})`);
241
+ console.log(` ${result.totalTransactions.toLocaleString()} transactions analyzed`);
242
+ console.log('');
243
+ await new Promise(resolve => setTimeout(resolve, 500));
244
+ }
245
+ console.log('');
246
+ console.log(' Demo Complete!');
247
+ console.log('');
248
+ console.log(' Key Features Demonstrated:');
249
+ console.log(' • Privacy scoring algorithm');
250
+ console.log(' • Transaction pattern analysis');
251
+ console.log(' • Risk assessment');
252
+ console.log(' • Personalized recommendations');
253
+ console.log('');
254
+ console.log(' Try it yourself:');
255
+ console.log(' node demo-scan.js <your-address>');
256
+ }
257
+ if (require.main === module) {
258
+ main().catch(console.error);
259
+ }
260
+ //# sourceMappingURL=demo-scan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo-scan.js","sourceRoot":"","sources":["../../cli/demo-scan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SolVoid Enhanced Privacy Scanner - Multiple Working RPCs
4
+ * Solves rate limits with verified working endpoints
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
+ };
26
+ }
27
+ declare class EnhancedPrivacyScanner {
28
+ private workingRPCs;
29
+ private currentRPCIndex;
30
+ constructor();
31
+ private testRPCConnection;
32
+ private getWorkingConnection;
33
+ private getRPCName;
34
+ analyzeAddress(address: string): Promise<PrivacyScore>;
35
+ private fetchTransactionData;
36
+ private getRealisticBalance;
37
+ private generateRealisticDemoData;
38
+ private calculatePrivacyScore;
39
+ private scoreTransactionPattern;
40
+ private scoreTimingPattern;
41
+ private scoreAmountPattern;
42
+ private scoreNetworkBehavior;
43
+ private generateRecommendations;
44
+ }
45
+ export { EnhancedPrivacyScanner };
46
+ //# sourceMappingURL=enhanced-privacy-scan.d.ts.map