solvoid 1.2.0 → 1.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 (97) hide show
  1. package/README.md +116 -258
  2. package/SECURITY.md +27 -24
  3. package/dist/cli/commands/ghost.d.ts +3 -3
  4. package/dist/cli/commands/ghost.d.ts.map +1 -1
  5. package/dist/cli/commands/ghost.js +67 -91
  6. package/dist/cli/commands/ghost.js.map +1 -1
  7. package/dist/cli/commands/rescue.d.ts +4 -0
  8. package/dist/cli/commands/rescue.d.ts.map +1 -1
  9. package/dist/cli/commands/rescue.js +102 -199
  10. package/dist/cli/commands/rescue.js.map +1 -1
  11. package/dist/cli/demo-scan.js +48 -130
  12. package/dist/cli/demo-scan.js.map +1 -1
  13. package/dist/cli/solvoid-scan.d.ts +4 -3
  14. package/dist/cli/solvoid-scan.d.ts.map +1 -1
  15. package/dist/cli/solvoid-scan.js +55 -46
  16. package/dist/cli/solvoid-scan.js.map +1 -1
  17. package/dist/cli/utils/asset-scanner.d.ts.map +1 -1
  18. package/dist/cli/utils/asset-scanner.js +7 -5
  19. package/dist/cli/utils/asset-scanner.js.map +1 -1
  20. package/dist/cli/utils/badge-generator.d.ts.map +1 -1
  21. package/dist/cli/utils/badge-generator.js +11 -9
  22. package/dist/cli/utils/badge-generator.js.map +1 -1
  23. package/dist/cli/utils/enhanced-monitoring.d.ts +13 -0
  24. package/dist/cli/utils/enhanced-monitoring.d.ts.map +1 -0
  25. package/dist/cli/utils/enhanced-monitoring.js +46 -0
  26. package/dist/cli/utils/enhanced-monitoring.js.map +1 -0
  27. package/dist/cli/utils/enhanced-pyth-feed.d.ts +20 -0
  28. package/dist/cli/utils/enhanced-pyth-feed.d.ts.map +1 -0
  29. package/dist/cli/utils/enhanced-pyth-feed.js +64 -0
  30. package/dist/cli/utils/enhanced-pyth-feed.js.map +1 -0
  31. package/dist/cli/utils/enhanced-threat-intel.d.ts +20 -0
  32. package/dist/cli/utils/enhanced-threat-intel.d.ts.map +1 -0
  33. package/dist/cli/utils/enhanced-threat-intel.js +57 -0
  34. package/dist/cli/utils/enhanced-threat-intel.js.map +1 -0
  35. package/dist/cli/utils/env-validator.d.ts.map +1 -1
  36. package/dist/cli/utils/env-validator.js +6 -3
  37. package/dist/cli/utils/env-validator.js.map +1 -1
  38. package/dist/cli/utils/jito-mev-bundle.d.ts +9 -0
  39. package/dist/cli/utils/jito-mev-bundle.d.ts.map +1 -0
  40. package/dist/cli/utils/jito-mev-bundle.js +40 -0
  41. package/dist/cli/utils/jito-mev-bundle.js.map +1 -0
  42. package/dist/cli/utils/rescue-engine.d.ts +0 -4
  43. package/dist/cli/utils/rescue-engine.d.ts.map +1 -1
  44. package/dist/cli/utils/rescue-engine.js +28 -46
  45. package/dist/cli/utils/rescue-engine.js.map +1 -1
  46. package/dist/cli/utils/shadow-bridge.d.ts +20 -0
  47. package/dist/cli/utils/shadow-bridge.d.ts.map +1 -0
  48. package/dist/cli/utils/shadow-bridge.js +33 -0
  49. package/dist/cli/utils/shadow-bridge.js.map +1 -0
  50. package/dist/relayer/key-manager.d.ts +52 -0
  51. package/dist/relayer/key-manager.d.ts.map +1 -0
  52. package/dist/relayer/key-manager.js +356 -0
  53. package/dist/relayer/key-manager.js.map +1 -0
  54. package/dist/relayer/replay-protection.d.ts +94 -0
  55. package/dist/relayer/replay-protection.d.ts.map +1 -0
  56. package/dist/relayer/replay-protection.js +189 -0
  57. package/dist/relayer/replay-protection.js.map +1 -0
  58. package/dist/relayer/secure-service.d.ts +46 -0
  59. package/dist/relayer/secure-service.d.ts.map +1 -0
  60. package/dist/relayer/secure-service.js +538 -0
  61. package/dist/relayer/secure-service.js.map +1 -0
  62. package/dist/relayer/service.d.ts +25 -0
  63. package/dist/relayer/service.d.ts.map +1 -0
  64. package/dist/relayer/service.js +380 -0
  65. package/dist/relayer/service.js.map +1 -0
  66. package/dist/sdk/client.d.ts +42 -8
  67. package/dist/sdk/client.d.ts.map +1 -1
  68. package/dist/sdk/client.js +115 -242
  69. package/dist/sdk/client.js.map +1 -1
  70. package/dist/sdk/crypto/poseidon.d.ts +4 -4
  71. package/dist/sdk/crypto/poseidon.d.ts.map +1 -1
  72. package/dist/sdk/crypto/poseidon.js +34 -17
  73. package/dist/sdk/crypto/poseidon.js.map +1 -1
  74. package/dist/sdk/integrity.d.ts +3 -3
  75. package/dist/sdk/integrity.d.ts.map +1 -1
  76. package/dist/sdk/integrity.js +2 -2
  77. package/dist/sdk/integrity.js.map +1 -1
  78. package/dist/sdk/passport/manager.d.ts +15 -3
  79. package/dist/sdk/passport/manager.d.ts.map +1 -1
  80. package/dist/sdk/passport/manager.js +30 -17
  81. package/dist/sdk/passport/manager.js.map +1 -1
  82. package/dist/sdk/pipeline.d.ts.map +1 -1
  83. package/dist/sdk/pipeline.js +69 -12
  84. package/dist/sdk/pipeline.js.map +1 -1
  85. package/dist/sdk/polyfill.d.ts +8 -0
  86. package/dist/sdk/polyfill.d.ts.map +1 -0
  87. package/dist/sdk/polyfill.js +21 -0
  88. package/dist/sdk/polyfill.js.map +1 -0
  89. package/dist/sdk/privacy/shield.d.ts +46 -0
  90. package/dist/sdk/privacy/shield.d.ts.map +1 -1
  91. package/dist/sdk/privacy/shield.js +117 -35
  92. package/dist/sdk/privacy/shield.js.map +1 -1
  93. package/dist/sdk/privacy-engine.d.ts +17 -3
  94. package/dist/sdk/privacy-engine.d.ts.map +1 -1
  95. package/dist/sdk/privacy-engine.js +46 -20
  96. package/dist/sdk/privacy-engine.js.map +1 -1
  97. package/package.json +2 -2
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
- // cli/commands/rescue.ts
3
- // Atomic Rescue - Emergency Privacy Rescue System
4
- // One command to save a wallet from active threats
5
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
6
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
7
4
  };
@@ -10,290 +7,196 @@ exports.registerRescueCommand = registerRescueCommand;
10
7
  const web3_js_1 = require("@solana/web3.js");
11
8
  const chalk_1 = __importDefault(require("chalk"));
12
9
  const ora_1 = __importDefault(require("ora"));
13
- const atomic_rescue_engine_1 = require("../utils/atomic-rescue-engine");
10
+ const rescue_engine_1 = require("../utils/rescue-engine");
11
+ const asset_scanner_1 = require("../utils/asset-scanner");
12
+ const threat_detector_1 = require("../utils/threat-detector");
13
+ /**
14
+ * Registry for the Atomic Rescue command suite.
15
+ * Provides emergency remediation protocols for high-threat wallet environments.
16
+ */
14
17
  function registerRescueCommand(program) {
15
18
  program
16
19
  .command('rescue')
17
- .description(' EMERGENCY: Atomic rescue of compromised wallet')
18
- .argument('<wallet>', 'Compromised wallet address or private key')
19
- .option('--to <address>', 'Safe destination address (auto-generated if not provided)')
20
- .option('--emergency', 'Emergency mode: High priority fees, <2s execution')
21
- .option('--reason <type>', 'Threat type: key-leak, mev-attack, drainer, privacy', 'privacy')
22
- .option('--dry-run', 'Simulate rescue without executing')
23
- .option('--jito-bundle', 'Use Jito MEV bundles to front-run attackers')
24
- .option('--auto-generate', 'Auto-generate fresh safe address')
25
- .option('--monitor', 'Start real-time threat monitoring after rescue')
26
- .option('--mev-protection', 'Enable advanced MEV protection')
20
+ .description('Execute atomic rescue protocols for compromised or leaked wallets')
21
+ .argument('<wallet>', 'Target wallet address or private key identifier')
22
+ .option('--to <address>', 'Destination for remediated assets')
23
+ .option('--emergency', 'Emergency Priority: Escalate priority fees for <2s execution')
24
+ .option('--reason <type>', 'Threat classification: key-leak, mev-attack, drainer, privacy', 'privacy')
25
+ .option('--dry-run', 'Simulate rescue orchestration without network broadcast')
26
+ .option('--jito-bundle', 'Utilize Jito MEV bundles for transaction atomicity')
27
+ .option('--auto-generate', 'Initialize a fresh destination address')
28
+ .option('--monitor', 'Activate post-remediation threat monitoring')
29
+ .option('--mev-protection', 'Enable advanced MEV shielding')
30
+ .option('--rpc <url>', 'Specify Solana RPC endpoint')
31
+ .option('--program <id>', 'Specify SolVoid program ID')
32
+ .option('--relayer <url>', 'Specify Shadow Relayer API URL')
27
33
  .action(async (wallet, options) => {
28
34
  try {
29
- // Display emergency banner
30
- displayEmergencyBanner(options.reason || 'unknown');
31
- // Connection is handled internally by AtomicRescueEngine
32
- // Initialize rescue engine - use the new AtomicRescueEngine for bulletproof operation
33
- const atomicRescueEngine = new atomic_rescue_engine_1.AtomicRescueEngine();
34
- // Parse wallet input (could be address or private key)
35
+ displayRescueBanner(options.reason || 'unknown');
36
+ const rpcUrl = options.rpc || process.env.RPC_URL || 'https://api.devnet.solana.com';
37
+ const programId = options.program || process.env.PROGRAM_ID || '3QcKRYWquzbBR3UpKeh4aKVCSpoHy89UT8gyovzRzzan';
38
+ const connection = new web3_js_1.Connection(rpcUrl, 'confirmed');
39
+ const rescueEngine = new rescue_engine_1.RescueEngine(connection, programId);
40
+ const scanner = new asset_scanner_1.AssetScanner(connection);
41
+ const detector = new threat_detector_1.ThreatDetector(connection);
35
42
  const { keypair, publicKey } = await parseWalletInput(wallet);
36
- if (!keypair) {
37
- console.log(chalk_1.default.red('\n Error: Atomic rescue requires private key access.'));
38
- console.log(chalk_1.default.gray('Public key provided can only be used for analysis.\n'));
43
+ if (!keypair && !options.dryRun) {
44
+ console.log(chalk_1.default.red('\n Execution Failed: Continuous rescue requires private key authorization.'));
45
+ console.log(chalk_1.default.gray('Supplied public key is restricted to analysis-only mode.\n'));
39
46
  process.exit(1);
40
47
  }
41
- // Step 1: Generate or validate safe address
48
+ const assets = await scanner.scan(publicKey);
49
+ const threats = await detector.scan(publicKey);
50
+ if (threats.length > 0) {
51
+ console.log(chalk_1.default.red(`\n ACTIVE THREATS DETECTED: ${threats.length} `));
52
+ threats.forEach(t => console.log(chalk_1.default.gray(` - [${t.severity}] ${t.description} `)));
53
+ }
42
54
  let safeAddress;
43
55
  if (options.to) {
44
56
  safeAddress = new web3_js_1.PublicKey(options.to);
45
- console.log(chalk_1.default.cyan(`\n Destination: ${safeAddress.toBase58()}`));
57
+ console.log(chalk_1.default.cyan(`\n Remediation Destination: ${safeAddress.toBase58()} `));
46
58
  }
47
59
  else if (options.autoGenerate) {
48
60
  const newWallet = web3_js_1.Keypair.generate();
49
61
  safeAddress = newWallet.publicKey;
50
- console.log(chalk_1.default.cyan(`\n Generated safe address: ${safeAddress.toBase58()}`));
51
- console.log(chalk_1.default.yellow(` SAVE THIS PRIVATE KEY SECURELY:`));
62
+ console.log(chalk_1.default.cyan(`\n Fresh Destination Initialized: ${safeAddress.toBase58()} `));
63
+ console.log(chalk_1.default.yellow(` VAULT REQUIREMENT: SECURE THE GENERATED PRIVATE KEY: `));
52
64
  console.log(chalk_1.default.gray(Buffer.from(newWallet.secretKey).toString('base64')));
53
65
  console.log();
54
66
  }
55
67
  else {
56
- console.log(chalk_1.default.red('\n Error: Must provide --to <address> or --auto-generate'));
68
+ console.log(chalk_1.default.red('\n Error: Destination required via --to or --auto-generate.'));
57
69
  process.exit(1);
58
70
  }
59
- // Step 2: Display rescue plan
60
71
  console.log(chalk_1.default.bold.cyan('\n'));
61
- console.log(chalk_1.default.bold.cyan(' ATOMIC RESCUE PLAN'));
72
+ console.log(chalk_1.default.bold.cyan(' ATOMIC REMEDIATION PLAN'));
62
73
  console.log(chalk_1.default.bold.cyan('\n'));
63
- console.log(`${chalk_1.default.bold('From:')} ${publicKey.toBase58()}`);
64
- console.log(`${chalk_1.default.bold('To:')} ${safeAddress.toBase58()}`);
65
- console.log(`${chalk_1.default.bold('Mode:')} ${options.emergency ? chalk_1.default.red.bold('EMERGENCY') : chalk_1.default.yellow('Standard')}`);
66
- console.log(`${chalk_1.default.bold('Privacy:')} ${chalk_1.default.green('ZK-Enabled')}`);
74
+ console.log(`${chalk_1.default.bold('Source:')} ${publicKey.toBase58()} `);
75
+ console.log(`${chalk_1.default.bold('Destination:')} ${safeAddress.toBase58()} `);
76
+ console.log(`${chalk_1.default.bold('Priority:')} ${options.emergency ? chalk_1.default.red.bold('EMERGENCY') : chalk_1.default.yellow('Standard')} `);
77
+ console.log(`${chalk_1.default.bold('Anonymity:')} ${chalk_1.default.green('ZK-Optimized')} `);
67
78
  if (options.jitoBundle) {
68
- console.log(`${chalk_1.default.bold('MEV Protection:')} ${chalk_1.default.green('Jito Bundle (Front-running enabled)')}`);
69
- }
70
- if (options.mevProtection) {
71
- console.log(`${chalk_1.default.bold('Advanced MEV:')} ${chalk_1.default.green('Active Protection')}`);
79
+ console.log(`${chalk_1.default.bold('MEV Shield:')} ${chalk_1.default.green('Jito MEV Bundle Active')} `);
72
80
  }
73
81
  console.log(chalk_1.default.bold.cyan('\n\n'));
74
- // Dry run mode
75
82
  if (options.dryRun) {
76
- console.log(chalk_1.default.yellow(' DRY RUN MODE - No transaction will be executed\n'));
77
- console.log(chalk_1.default.green(' Atomic rescue plan validated successfully!'));
78
- console.log(chalk_1.default.gray('\nTo execute for real, remove --dry-run flag\n'));
83
+ console.log(chalk_1.default.yellow(' SIMULATION MODE: Orchestration validated without broadcast.\n'));
84
+ console.log(chalk_1.default.green(' Atomic rescue plan verified successfully.'));
79
85
  process.exit(0);
80
86
  }
81
- // Step 3: Execute Atomic Rescue
82
- console.log(chalk_1.default.red.bold(' EXECUTING ATOMIC RESCUE IN 3 SECONDS...'));
87
+ console.log(chalk_1.default.red.bold(' EXECUTING ATOMIC REMEDIATION IN 3 SECONDS...'));
83
88
  await sleep(3000);
84
89
  const rescueSpinner = (0, ora_1.default)({
85
- text: 'Executing bulletproof atomic rescue...',
90
+ text: 'Executing atomic remediation pipeline...',
86
91
  color: 'red'
87
92
  }).start();
88
93
  try {
89
94
  const startTime = Date.now();
90
- // Execute the atomic rescue with monitoring
91
- const result = await atomicRescueEngine.executeAtomicRescue(keypair, safeAddress, true, // Use ZK privacy by default
92
- (alert) => {
93
- console.log(chalk_1.default.red(`\n ALERT: ${alert.type}`));
94
- if (alert.type === 'transaction_detected') {
95
- console.log(chalk_1.default.yellow(`Unexpected activity: ${alert.count} transactions`));
96
- }
95
+ const result = await rescueEngine.executeAtomicRescue({
96
+ sourceKeypair: keypair,
97
+ destination: safeAddress,
98
+ assets: assets,
99
+ emergencyMode: !!options.emergency,
100
+ useJitoBundle: !!options.jitoBundle,
101
+ reason: options.reason || 'privacy'
97
102
  });
98
103
  const executionTime = ((Date.now() - startTime) / 1000).toFixed(1);
99
- rescueSpinner.succeed(chalk_1.default.green.bold('ATOMIC RESCUE SUCCESSFUL!'));
100
- // Display success banner
104
+ rescueSpinner.succeed(chalk_1.default.green.bold('ATOMIC REMEDIATION SUCCESSFUL!'));
101
105
  displaySuccessBanner(result, executionTime);
102
- // Start monitoring if requested
103
106
  if (options.monitor) {
104
- console.log(chalk_1.default.cyan('\n Real-time monitoring is now active...\n'));
107
+ console.log(chalk_1.default.cyan('\n Real-time threat monitoring operational...\n'));
105
108
  }
106
109
  }
107
110
  catch (error) {
108
- rescueSpinner.fail('Atomic rescue failed!');
109
- console.log(chalk_1.default.red(`\n Error: ${error.message}\n`));
111
+ rescueSpinner.fail('Orchestration failed.');
112
+ console.log(chalk_1.default.red(`\n Error Trace: ${error.message} \n`));
110
113
  if (error.message.includes('insufficient funds')) {
111
- console.log(chalk_1.default.yellow(' Tip: Make sure you have enough SOL for transaction fees'));
112
- }
113
- if (error.message.includes('blockhash')) {
114
- console.log(chalk_1.default.yellow(' Tip: Transaction took too long. Try --emergency mode'));
114
+ console.log(chalk_1.default.yellow(' Requirement: Ensure sufficient SOL balance for priority gas fees.'));
115
115
  }
116
116
  process.exit(1);
117
117
  }
118
118
  }
119
119
  catch (error) {
120
- console.error(chalk_1.default.red('\n Fatal error:'), error.message);
120
+ console.error(chalk_1.default.red('\n Critical Failure:'), error.message);
121
121
  process.exit(1);
122
122
  }
123
123
  });
124
124
  }
125
125
  /**
126
- * Display emergency banner based on threat type
126
+ * Renders the emergency status banner following threat classification.
127
127
  */
128
- function displayEmergencyBanner(reason) {
128
+ function displayRescueBanner(reason) {
129
129
  const banners = {
130
130
  'key-leak': `
131
- ${chalk_1.default.red.bold('')}
132
- ${chalk_1.default.red.bold(' ')}
133
- ${chalk_1.default.red.bold(' PRIVATE KEY LEAK DETECTED ')}
134
- ${chalk_1.default.red.bold(' ')}
135
- ${chalk_1.default.red.bold(' IMMEDIATE ACTION REQUIRED ')}
136
- ${chalk_1.default.red.bold(' ')}
137
- ${chalk_1.default.red.bold('')}
138
- `,
131
+ ${chalk_1.default.red.bold(' ------------------------------------------------------- ')}
132
+ ${chalk_1.default.red.bold(' | PRIVATE KEY COMPROMISE DETECTED | ')}
133
+ ${chalk_1.default.red.bold(' | IMMEDIATE REMEDIATION PATH ACTIVE | ')}
134
+ ${chalk_1.default.red.bold(' ------------------------------------------------------- ')}
135
+ `,
139
136
  'mev-attack': `
140
- ${chalk_1.default.red.bold('')}
141
- ${chalk_1.default.red.bold(' ')}
142
- ${chalk_1.default.red.bold(' MEV BOT ATTACK ACTIVE ')}
143
- ${chalk_1.default.red.bold(' ')}
144
- ${chalk_1.default.red.bold(' Front-running your transactions ')}
145
- ${chalk_1.default.red.bold(' ')}
146
- ${chalk_1.default.red.bold('')}
147
- `,
137
+ ${chalk_1.default.red.bold(' ------------------------------------------------------- ')}
138
+ ${chalk_1.default.red.bold(' | ACTIVE MEV ATTACK DETECTED | ')}
139
+ ${chalk_1.default.red.bold(' | FRONT-RUNNING MITIGATION INITIALIZED | ')}
140
+ ${chalk_1.default.red.bold(' ------------------------------------------------------- ')}
141
+ `,
148
142
  'drainer': `
149
- ${chalk_1.default.red.bold('')}
150
- ${chalk_1.default.red.bold(' ')}
151
- ${chalk_1.default.red.bold(' ACTIVE DRAINER DETECTED ')}
152
- ${chalk_1.default.red.bold(' ')}
153
- ${chalk_1.default.red.bold(' ASSETS ARE BEING STOLEN RIGHT NOW ')}
154
- ${chalk_1.default.red.bold(' ')}
155
- ${chalk_1.default.red.bold('')}
156
- `,
143
+ ${chalk_1.default.red.bold(' ------------------------------------------------------- ')}
144
+ ${chalk_1.default.red.bold(' | ACTIVE WALLET DRAINER DETECTED | ')}
145
+ ${chalk_1.default.red.bold(' | PRIORITY ASSET ROTATION MANDATORY | ')}
146
+ ${chalk_1.default.red.bold(' ------------------------------------------------------- ')}
147
+ `,
157
148
  'privacy': `
158
- ${chalk_1.default.cyan.bold('')}
159
- ${chalk_1.default.cyan.bold(' ')}
160
- ${chalk_1.default.cyan.bold(' PRIVACY RESCUE MODE ')}
161
- ${chalk_1.default.cyan.bold(' ')}
162
- ${chalk_1.default.cyan.bold(' Atomic privacy reset initiated ')}
163
- ${chalk_1.default.cyan.bold(' ')}
164
- ${chalk_1.default.cyan.bold('')}
165
- `
149
+ ${chalk_1.default.cyan.bold(' ------------------------------------------------------- ')}
150
+ ${chalk_1.default.cyan.bold(' | PRIVACY ROTATION INITIATED | ')}
151
+ ${chalk_1.default.cyan.bold(' | ATOMIC ANONYMITY RECOVERY ACTIVE | ')}
152
+ ${chalk_1.default.cyan.bold(' ------------------------------------------------------- ')}
153
+ `
166
154
  };
167
155
  console.log(banners[reason] || banners.privacy);
168
156
  console.log();
169
157
  }
170
158
  /**
171
- * Display detected threats
172
- */
173
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
174
- function displayThreats(threats) {
175
- console.log(chalk_1.default.red.bold('\n ACTIVE THREATS:\n'));
176
- threats.forEach((threat, i) => {
177
- const icon = threat.severity === 'CRITICAL' ? '' :
178
- threat.severity === 'HIGH' ? '' : '';
179
- console.log(`${i + 1}. ${icon} ${chalk_1.default.bold(threat.type)}`);
180
- console.log(` ${threat.description}`);
181
- if (threat.confidence) {
182
- console.log(` ${chalk_1.default.gray(`Confidence: ${threat.confidence}%`)}`);
183
- }
184
- console.log();
185
- });
186
- }
187
- /**
188
- * Display scanned assets
189
- */
190
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
191
- function displayAssets(assets) {
192
- console.log(chalk_1.default.bold('\n Asset Summary:\n'));
193
- // SOL
194
- console.log(`${chalk_1.default.bold('SOL:')} ${assets.sol.balance} SOL (${assets.sol.valueUSD} USD)`);
195
- // Tokens
196
- if (assets.tokens.length > 0) {
197
- console.log(`\n${chalk_1.default.bold('SPL Tokens:')}`);
198
- assets.tokens.slice(0, 5).forEach((token) => {
199
- console.log(` • ${token.amount} ${token.symbol} (${token.valueUSD} USD)`);
200
- });
201
- if (assets.tokens.length > 5) {
202
- console.log(` • ... and ${assets.tokens.length - 5} more`);
203
- }
204
- }
205
- // NFTs
206
- if (assets.nfts.length > 0) {
207
- console.log(`\n${chalk_1.default.bold('NFTs:')}`);
208
- assets.nfts.slice(0, 3).forEach((nft) => {
209
- console.log(` • ${nft.name} (${nft.collection})`);
210
- });
211
- if (assets.nfts.length > 3) {
212
- console.log(` • ... and ${assets.nfts.length - 3} more`);
213
- }
214
- }
215
- console.log();
216
- }
217
- /**
218
- * Display success banner for atomic rescue
159
+ * Success verification and remediation summary.
219
160
  */
220
161
  function displaySuccessBanner(result, executionTime) {
221
- console.log(chalk_1.default.green.bold('\n'));
222
- console.log(chalk_1.default.green.bold(' '));
223
- console.log(chalk_1.default.green.bold(' ATOMIC RESCUE SUCCESSFUL '));
224
- console.log(chalk_1.default.green.bold(' '));
225
- console.log(chalk_1.default.green.bold('\n'));
226
- console.log(`${chalk_1.default.bold('Execution Time:')} ${chalk_1.default.green(executionTime + 's')}`);
227
- console.log(`${chalk_1.default.bold('Transaction:')} ${result.signature?.slice(0, 20)}...`);
162
+ console.log(chalk_1.default.green.bold('\n ATOMIC REMEDIATION STATUS: OPERATIONAL\n'));
163
+ console.log(`${chalk_1.default.bold('Total Latency:')} ${chalk_1.default.green(executionTime + 's')} `);
164
+ console.log(`${chalk_1.default.bold('Signature Trace:')} ${result.signature?.slice(0, 32)}...`);
228
165
  if (result.assets) {
229
- console.log(`\n${chalk_1.default.bold('Assets Rescued:')}`);
230
- console.log(` • ${chalk_1.default.green(result.assets.length + ' assets')}`);
231
166
  const totalValue = result.assets.reduce((sum, asset) => sum + (asset.usdValue || 0), 0);
232
- console.log(` • ${chalk_1.default.green('$' + totalValue.toFixed(2) + ' USD')}`);
167
+ console.log(`${chalk_1.default.bold('Remediated Value:')} ${chalk_1.default.green('$' + totalValue.toFixed(2) + ' USD')} `);
233
168
  }
234
- console.log(`\n${chalk_1.default.bold('Privacy:')} ${chalk_1.default.green('Zero-Knowledge Enabled ')}`);
235
- console.log(`${chalk_1.default.bold('Status:')} ${chalk_1.default.green('BULLETPROOF ')}`);
236
- console.log(chalk_1.default.green.bold('\n Your assets are now SAFE and PRIVATE.\n'));
169
+ console.log(`${chalk_1.default.bold('Security Status:')} ${chalk_1.default.green('BULLETPROOF')} `);
170
+ console.log(chalk_1.default.green.bold('\n Asset state successfully rotated and secured.\n'));
237
171
  }
238
172
  /**
239
- * Parse wallet input (address or private key)
173
+ * Validates and parses wallet credentials from input primitives.
240
174
  */
241
175
  async function parseWalletInput(wallet) {
242
- // Check if it's a base58 public key
243
176
  try {
244
177
  const publicKey = new web3_js_1.PublicKey(wallet);
245
- // If it's just an address, we can only do analysis, not rescue
246
- console.log(chalk_1.default.yellow('\n Warning: Only public key provided.'));
247
- console.log(chalk_1.default.yellow('For full rescue, provide private key.\n'));
178
+ console.log(chalk_1.default.yellow('\n Authorization Note: Public key provided.'));
179
+ console.log(chalk_1.default.yellow(' Full remediation requires private key authentication.\n'));
248
180
  return { publicKey };
249
181
  }
250
182
  catch { }
251
- // Try to parse as private key (base58 or array)
252
183
  try {
253
184
  let secretKey;
254
185
  if (wallet.startsWith('[')) {
255
- // JSON array format
256
186
  secretKey = Uint8Array.from(JSON.parse(wallet));
257
187
  }
258
188
  else {
259
- // Base58 or base64 format
260
- secretKey = Uint8Array.from(Buffer.from(wallet, 'base64'));
189
+ const bs58 = require('bs58');
190
+ secretKey = bs58.decode(wallet);
191
+ }
192
+ if (secretKey.length === 64) {
193
+ const keypair = web3_js_1.Keypair.fromSecretKey(secretKey);
194
+ return { keypair, publicKey: keypair.publicKey };
261
195
  }
262
- const keypair = web3_js_1.Keypair.fromSecretKey(secretKey);
263
- return { keypair, publicKey: keypair.publicKey };
264
196
  }
265
197
  catch { }
266
- throw new Error('Invalid wallet input. Provide either public key or private key.');
267
- }
268
- /**
269
- * Start real-time monitoring (simplified version)
270
- */
271
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
272
- async function startMonitoring(connection, address) {
273
- console.log(chalk_1.default.cyan(`Monitoring: ${address.toBase58()}`));
274
- console.log(chalk_1.default.gray('Press Ctrl+C to stop\n'));
275
- // Monitor every 10 seconds
276
- setInterval(async () => {
277
- try {
278
- const signatures = await connection.getSignaturesForAddress(address, { limit: 10 });
279
- if (signatures.length > 0) {
280
- console.log(chalk_1.default.red(' NEW ACTIVITY DETECTED!'));
281
- signatures.slice(0, 3).forEach(sig => {
282
- console.log(chalk_1.default.gray(` • ${sig.signature.slice(0, 20)}...`));
283
- });
284
- }
285
- else {
286
- process.stdout.write(chalk_1.default.gray('.'));
287
- }
288
- }
289
- catch (error) {
290
- console.error(chalk_1.default.red('Monitoring error:'), error);
291
- }
292
- }, 10000);
198
+ throw new Error('Credential error: Invalid wallet address or private key identifier.');
293
199
  }
294
- /**
295
- * Sleep utility
296
- */
297
200
  function sleep(ms) {
298
201
  return new Promise(resolve => setTimeout(resolve, ms));
299
202
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rescue.js","sourceRoot":"","sources":["../../../cli/commands/rescue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rescue.js","sourceRoot":"","sources":["../../../cli/commands/rescue.ts"],"names":[],"mappings":"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"}