Add 3 files
Browse files- README.md +7 -5
- index.html +463 -19
- prompts.txt +1 -0
README.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
| 1 |
---
|
| 2 |
+
title: usdt-2
|
| 3 |
+
emoji: 🐳
|
| 4 |
+
colorFrom: green
|
| 5 |
+
colorTo: purple
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
| 8 |
+
tags:
|
| 9 |
+
- deepsite
|
| 10 |
---
|
| 11 |
|
| 12 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
index.html
CHANGED
|
@@ -1,19 +1,463 @@
|
|
| 1 |
-
<!
|
| 2 |
-
<html>
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>USDT Wallet - Send Tether</title>
|
| 7 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
| 8 |
+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
| 9 |
+
<style>
|
| 10 |
+
@keyframes pulse {
|
| 11 |
+
0%, 100% { opacity: 1; }
|
| 12 |
+
50% { opacity: 0.5; }
|
| 13 |
+
}
|
| 14 |
+
.animate-pulse {
|
| 15 |
+
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
| 16 |
+
}
|
| 17 |
+
.progress-bar {
|
| 18 |
+
transition: width 0.5s ease-in-out;
|
| 19 |
+
}
|
| 20 |
+
.wallet-bg {
|
| 21 |
+
background: linear-gradient(135deg, #26a69a 0%, #2ecc71 100%);
|
| 22 |
+
}
|
| 23 |
+
.input-error {
|
| 24 |
+
border-color: #ef4444;
|
| 25 |
+
}
|
| 26 |
+
.success-checkmark {
|
| 27 |
+
width: 80px;
|
| 28 |
+
height: 80px;
|
| 29 |
+
margin: 0 auto;
|
| 30 |
+
position: relative;
|
| 31 |
+
}
|
| 32 |
+
.success-checkmark .check-icon {
|
| 33 |
+
width: 80px;
|
| 34 |
+
height: 80px;
|
| 35 |
+
position: relative;
|
| 36 |
+
border-radius: 50%;
|
| 37 |
+
box-sizing: content-box;
|
| 38 |
+
border: 4px solid #4CAF50;
|
| 39 |
+
}
|
| 40 |
+
.success-checkmark .check-icon::before {
|
| 41 |
+
top: 3px;
|
| 42 |
+
left: -2px;
|
| 43 |
+
width: 30px;
|
| 44 |
+
transform-origin: 100% 50%;
|
| 45 |
+
border-radius: 100px 0 0 100px;
|
| 46 |
+
}
|
| 47 |
+
.success-checkmark .check-icon::after {
|
| 48 |
+
top: 0;
|
| 49 |
+
left: 30px;
|
| 50 |
+
width: 60px;
|
| 51 |
+
transform-origin: 0 50%;
|
| 52 |
+
border-radius: 0 100px 100px 0;
|
| 53 |
+
animation: rotate-circle 4.25s ease-in;
|
| 54 |
+
}
|
| 55 |
+
.success-checkmark .check-icon::before, .success-checkmark .check-icon::after {
|
| 56 |
+
content: '';
|
| 57 |
+
height: 100px;
|
| 58 |
+
position: absolute;
|
| 59 |
+
background: transparent;
|
| 60 |
+
transform: rotate(-45deg);
|
| 61 |
+
}
|
| 62 |
+
.success-checkmark .check-icon .icon-line {
|
| 63 |
+
height: 5px;
|
| 64 |
+
background-color: #4CAF50;
|
| 65 |
+
display: block;
|
| 66 |
+
border-radius: 2px;
|
| 67 |
+
position: absolute;
|
| 68 |
+
z-index: 10;
|
| 69 |
+
}
|
| 70 |
+
.success-checkmark .check-icon .icon-line.line-tip {
|
| 71 |
+
top: 46px;
|
| 72 |
+
left: 14px;
|
| 73 |
+
width: 25px;
|
| 74 |
+
transform: rotate(45deg);
|
| 75 |
+
animation: icon-line-tip 0.75s;
|
| 76 |
+
}
|
| 77 |
+
.success-checkmark .check-icon .icon-line.line-long {
|
| 78 |
+
top: 38px;
|
| 79 |
+
right: 8px;
|
| 80 |
+
width: 47px;
|
| 81 |
+
transform: rotate(-45deg);
|
| 82 |
+
animation: icon-line-long 0.75s;
|
| 83 |
+
}
|
| 84 |
+
@keyframes rotate-circle {
|
| 85 |
+
0% { transform: rotate(-45deg); }
|
| 86 |
+
5% { transform: rotate(-45deg); }
|
| 87 |
+
12% { transform: rotate(-405deg); }
|
| 88 |
+
100% { transform: rotate(-405deg); }
|
| 89 |
+
}
|
| 90 |
+
@keyframes icon-line-tip {
|
| 91 |
+
0% { width: 0; left: 1px; top: 19px; }
|
| 92 |
+
54% { width: 0; left: 1px; top: 19px; }
|
| 93 |
+
70% { width: 50px; left: -8px; top: 37px; }
|
| 94 |
+
84% { width: 17px; left: 21px; top: 48px; }
|
| 95 |
+
100% { width: 25px; left: 14px; top: 46px; }
|
| 96 |
+
}
|
| 97 |
+
@keyframes icon-line-long {
|
| 98 |
+
0% { width: 0; right: 46px; top: 54px; }
|
| 99 |
+
65% { width: 0; right: 46px; top: 54px; }
|
| 100 |
+
84% { width: 55px; right: 0px; top: 35px; }
|
| 101 |
+
100% { width: 47px; right: 8px; top: 38px; }
|
| 102 |
+
}
|
| 103 |
+
</style>
|
| 104 |
+
</head>
|
| 105 |
+
<body class="bg-gray-100 font-sans">
|
| 106 |
+
<div class="min-h-screen flex flex-col">
|
| 107 |
+
<!-- Header -->
|
| 108 |
+
<header class="wallet-bg text-white p-4 shadow-md">
|
| 109 |
+
<div class="container mx-auto flex justify-between items-center">
|
| 110 |
+
<div class="flex items-center space-x-2">
|
| 111 |
+
<i class="fab fa-ethereum text-2xl"></i>
|
| 112 |
+
<h1 class="text-xl font-bold">USDT Wallet</h1>
|
| 113 |
+
</div>
|
| 114 |
+
<div class="flex items-center space-x-4">
|
| 115 |
+
<button class="p-2 rounded-full bg-white bg-opacity-20">
|
| 116 |
+
<i class="fas fa-qrcode"></i>
|
| 117 |
+
</button>
|
| 118 |
+
<button class="p-2 rounded-full bg-white bg-opacity-20">
|
| 119 |
+
<i class="fas fa-cog"></i>
|
| 120 |
+
</button>
|
| 121 |
+
</div>
|
| 122 |
+
</div>
|
| 123 |
+
</header>
|
| 124 |
+
|
| 125 |
+
<!-- Main Content -->
|
| 126 |
+
<main class="flex-grow container mx-auto p-4 max-w-md">
|
| 127 |
+
<div class="bg-white rounded-xl shadow-lg overflow-hidden">
|
| 128 |
+
<!-- Balance Card -->
|
| 129 |
+
<div class="wallet-bg text-white p-6">
|
| 130 |
+
<div class="flex justify-between items-start">
|
| 131 |
+
<div>
|
| 132 |
+
<p class="text-sm opacity-80">Available Balance</p>
|
| 133 |
+
<h2 class="text-3xl font-bold mt-1">1,250.50 <span class="text-lg">USDT</span></h2>
|
| 134 |
+
</div>
|
| 135 |
+
<div class="bg-white bg-opacity-20 p-2 rounded-lg">
|
| 136 |
+
<i class="fab fa-ethereum text-xl"></i>
|
| 137 |
+
</div>
|
| 138 |
+
</div>
|
| 139 |
+
</div>
|
| 140 |
+
|
| 141 |
+
<!-- Send Form -->
|
| 142 |
+
<div id="sendForm" class="p-6">
|
| 143 |
+
<h3 class="text-lg font-semibold text-gray-800 mb-4">Send USDT</h3>
|
| 144 |
+
|
| 145 |
+
<div class="space-y-4">
|
| 146 |
+
<!-- Recipient Address -->
|
| 147 |
+
<div>
|
| 148 |
+
<label for="recipient" class="block text-sm font-medium text-gray-700 mb-1">Recipient Address</label>
|
| 149 |
+
<div class="relative">
|
| 150 |
+
<input type="text" id="recipient" placeholder="0x..."
|
| 151 |
+
class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500 focus:border-green-500">
|
| 152 |
+
<button class="absolute right-3 top-3 text-gray-400 hover:text-gray-600">
|
| 153 |
+
<i class="fas fa-qrcode"></i>
|
| 154 |
+
</button>
|
| 155 |
+
</div>
|
| 156 |
+
<p id="addressError" class="text-red-500 text-xs mt-1 hidden">Please enter a valid USDT address</p>
|
| 157 |
+
</div>
|
| 158 |
+
|
| 159 |
+
<!-- Amount -->
|
| 160 |
+
<div>
|
| 161 |
+
<label for="amount" class="block text-sm font-medium text-gray-700 mb-1">Amount (USDT)</label>
|
| 162 |
+
<div class="relative">
|
| 163 |
+
<input type="number" id="amount" placeholder="0.00" step="0.01" min="0"
|
| 164 |
+
class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500 focus:border-green-500">
|
| 165 |
+
<div class="absolute right-3 top-3 flex items-center">
|
| 166 |
+
<span class="text-gray-500 mr-2">USDT</span>
|
| 167 |
+
<button class="text-green-600 font-medium">MAX</button>
|
| 168 |
+
</div>
|
| 169 |
+
</div>
|
| 170 |
+
<p id="amountError" class="text-red-500 text-xs mt-1 hidden">Please enter a valid amount</p>
|
| 171 |
+
</div>
|
| 172 |
+
|
| 173 |
+
<!-- Network -->
|
| 174 |
+
<div>
|
| 175 |
+
<label for="network" class="block text-sm font-medium text-gray-700 mb-1">Network</label>
|
| 176 |
+
<select id="network" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500 focus:border-green-500">
|
| 177 |
+
<option value="erc20">ERC-20 (Ethereum)</option>
|
| 178 |
+
<option value="trc20">TRC-20 (Tron)</option>
|
| 179 |
+
<option value="bep20">BEP-20 (Binance Smart Chain)</option>
|
| 180 |
+
</select>
|
| 181 |
+
</div>
|
| 182 |
+
|
| 183 |
+
<!-- Note (Optional) -->
|
| 184 |
+
<div>
|
| 185 |
+
<label for="note" class="block text-sm font-medium text-gray-700 mb-1">Note (Optional)</label>
|
| 186 |
+
<textarea id="note" rows="2" placeholder="Add a message..."
|
| 187 |
+
class="w-full p-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-green-500 focus:border-green-500"></textarea>
|
| 188 |
+
</div>
|
| 189 |
+
|
| 190 |
+
<!-- Transaction Fee -->
|
| 191 |
+
<div class="bg-gray-50 p-3 rounded-lg">
|
| 192 |
+
<div class="flex justify-between text-sm">
|
| 193 |
+
<span class="text-gray-600">Transaction Fee</span>
|
| 194 |
+
<span class="font-medium">1.50 USDT</span>
|
| 195 |
+
</div>
|
| 196 |
+
<div class="flex justify-between text-sm mt-1">
|
| 197 |
+
<span class="text-gray-600">You'll send</span>
|
| 198 |
+
<span id="totalAmount" class="font-bold">0.00 USDT</span>
|
| 199 |
+
</div>
|
| 200 |
+
</div>
|
| 201 |
+
|
| 202 |
+
<!-- Send Button -->
|
| 203 |
+
<button id="sendButton" class="w-full wallet-bg text-white py-3 rounded-lg font-bold hover:bg-green-600 transition duration-200">
|
| 204 |
+
Send USDT
|
| 205 |
+
</button>
|
| 206 |
+
</div>
|
| 207 |
+
</div>
|
| 208 |
+
|
| 209 |
+
<!-- Processing Screen -->
|
| 210 |
+
<div id="processingScreen" class="p-6 hidden">
|
| 211 |
+
<h3 class="text-lg font-semibold text-gray-800 mb-6">Processing Transaction</h3>
|
| 212 |
+
|
| 213 |
+
<div class="text-center py-8">
|
| 214 |
+
<div class="animate-pulse mb-6">
|
| 215 |
+
<i class="fas fa-circle-notch fa-spin text-5xl text-green-500"></i>
|
| 216 |
+
</div>
|
| 217 |
+
|
| 218 |
+
<div class="space-y-4">
|
| 219 |
+
<p id="processingStatus" class="font-medium">Initializing transaction...</p>
|
| 220 |
+
|
| 221 |
+
<div class="w-full bg-gray-200 rounded-full h-2.5">
|
| 222 |
+
<div id="progressBar" class="progress-bar bg-green-600 h-2.5 rounded-full" style="width: 0%"></div>
|
| 223 |
+
</div>
|
| 224 |
+
|
| 225 |
+
<p class="text-sm text-gray-500">This usually takes 15-30 seconds</p>
|
| 226 |
+
</div>
|
| 227 |
+
</div>
|
| 228 |
+
</div>
|
| 229 |
+
|
| 230 |
+
<!-- Success Screen -->
|
| 231 |
+
<div id="successScreen" class="p-6 hidden">
|
| 232 |
+
<h3 class="text-lg font-semibold text-gray-800 mb-6">Transaction Successful</h3>
|
| 233 |
+
|
| 234 |
+
<div class="text-center py-4">
|
| 235 |
+
<div class="success-checkmark mb-6">
|
| 236 |
+
<div class="check-icon">
|
| 237 |
+
<span class="icon-line line-tip"></span>
|
| 238 |
+
<span class="icon-line line-long"></span>
|
| 239 |
+
</div>
|
| 240 |
+
</div>
|
| 241 |
+
|
| 242 |
+
<div class="space-y-4">
|
| 243 |
+
<p class="text-2xl font-bold text-green-600">Transfer Complete!</p>
|
| 244 |
+
<p id="successAmount" class="text-xl font-medium">1,000.00 USDT</p>
|
| 245 |
+
|
| 246 |
+
<div class="bg-gray-50 p-4 rounded-lg text-left mt-6">
|
| 247 |
+
<div class="flex justify-between py-2 border-b border-gray-200">
|
| 248 |
+
<span class="text-gray-600">Recipient</span>
|
| 249 |
+
<span id="successAddress" class="font-medium truncate">0x742d35Cc6634C0532925a3b844Bc454e4438f44e</span>
|
| 250 |
+
</div>
|
| 251 |
+
<div class="flex justify-between py-2 border-b border-gray-200">
|
| 252 |
+
<span class="text-gray-600">Network</span>
|
| 253 |
+
<span id="successNetwork" class="font-medium">ERC-20</span>
|
| 254 |
+
</div>
|
| 255 |
+
<div class="flex justify-between py-2 border-b border-gray-200">
|
| 256 |
+
<span class="text-gray-600">Transaction ID</span>
|
| 257 |
+
<span id="successTxId" class="font-medium truncate">0x8a4d...3f2c</span>
|
| 258 |
+
</div>
|
| 259 |
+
<div class="flex justify-between py-2">
|
| 260 |
+
<span class="text-gray-600">Note</span>
|
| 261 |
+
<span id="successNote" class="font-medium text-right">Payment for services</span>
|
| 262 |
+
</div>
|
| 263 |
+
</div>
|
| 264 |
+
|
| 265 |
+
<div class="flex space-x-3 mt-6">
|
| 266 |
+
<button id="viewTxButton" class="flex-1 border border-green-500 text-green-500 py-2 rounded-lg font-medium hover:bg-green-50 transition">
|
| 267 |
+
View on Explorer
|
| 268 |
+
</button>
|
| 269 |
+
<button id="newTxButton" class="flex-1 wallet-bg text-white py-2 rounded-lg font-bold hover:bg-green-600 transition">
|
| 270 |
+
New Transfer
|
| 271 |
+
</button>
|
| 272 |
+
</div>
|
| 273 |
+
</div>
|
| 274 |
+
</div>
|
| 275 |
+
</div>
|
| 276 |
+
</div>
|
| 277 |
+
</main>
|
| 278 |
+
|
| 279 |
+
<!-- Navigation -->
|
| 280 |
+
<nav class="bg-white border-t border-gray-200 p-3">
|
| 281 |
+
<div class="container mx-auto max-w-md">
|
| 282 |
+
<div class="flex justify-around">
|
| 283 |
+
<button class="p-2 text-gray-500 hover:text-green-600">
|
| 284 |
+
<i class="fas fa-home text-xl"></i>
|
| 285 |
+
</button>
|
| 286 |
+
<button class="p-2 text-gray-500 hover:text-green-600">
|
| 287 |
+
<i class="fas fa-exchange-alt text-xl"></i>
|
| 288 |
+
</button>
|
| 289 |
+
<button class="p-2 text-green-600">
|
| 290 |
+
<div class="bg-green-100 p-3 rounded-full -mt-8 shadow-lg">
|
| 291 |
+
<i class="fas fa-paper-plane text-xl"></i>
|
| 292 |
+
</div>
|
| 293 |
+
</button>
|
| 294 |
+
<button class="p-2 text-gray-500 hover:text-green-600">
|
| 295 |
+
<i class="fas fa-chart-line text-xl"></i>
|
| 296 |
+
</button>
|
| 297 |
+
<button class="p-2 text-gray-500 hover:text-green-600">
|
| 298 |
+
<i class="fas fa-user text-xl"></i>
|
| 299 |
+
</button>
|
| 300 |
+
</div>
|
| 301 |
+
</div>
|
| 302 |
+
</nav>
|
| 303 |
+
</div>
|
| 304 |
+
|
| 305 |
+
<script>
|
| 306 |
+
document.addEventListener('DOMContentLoaded', function() {
|
| 307 |
+
// DOM Elements
|
| 308 |
+
const sendForm = document.getElementById('sendForm');
|
| 309 |
+
const processingScreen = document.getElementById('processingScreen');
|
| 310 |
+
const successScreen = document.getElementById('successScreen');
|
| 311 |
+
const sendButton = document.getElementById('sendButton');
|
| 312 |
+
const recipientInput = document.getElementById('recipient');
|
| 313 |
+
const amountInput = document.getElementById('amount');
|
| 314 |
+
const networkSelect = document.getElementById('network');
|
| 315 |
+
const noteInput = document.getElementById('note');
|
| 316 |
+
const addressError = document.getElementById('addressError');
|
| 317 |
+
const amountError = document.getElementById('amountError');
|
| 318 |
+
const totalAmount = document.getElementById('totalAmount');
|
| 319 |
+
const progressBar = document.getElementById('progressBar');
|
| 320 |
+
const processingStatus = document.getElementById('processingStatus');
|
| 321 |
+
const successAmount = document.getElementById('successAmount');
|
| 322 |
+
const successAddress = document.getElementById('successAddress');
|
| 323 |
+
const successNetwork = document.getElementById('successNetwork');
|
| 324 |
+
const successTxId = document.getElementById('successTxId');
|
| 325 |
+
const successNote = document.getElementById('successNote');
|
| 326 |
+
const viewTxButton = document.getElementById('viewTxButton');
|
| 327 |
+
const newTxButton = document.getElementById('newTxButton');
|
| 328 |
+
|
| 329 |
+
// Update total amount when amount changes
|
| 330 |
+
amountInput.addEventListener('input', updateTotalAmount);
|
| 331 |
+
|
| 332 |
+
// MAX button functionality
|
| 333 |
+
document.querySelector('button.text-green-600').addEventListener('click', function() {
|
| 334 |
+
amountInput.value = '1250.50';
|
| 335 |
+
updateTotalAmount();
|
| 336 |
+
});
|
| 337 |
+
|
| 338 |
+
// Send button click handler
|
| 339 |
+
sendButton.addEventListener('click', function(e) {
|
| 340 |
+
e.preventDefault();
|
| 341 |
+
|
| 342 |
+
// Validate inputs
|
| 343 |
+
const isValid = validateInputs();
|
| 344 |
+
|
| 345 |
+
if (isValid) {
|
| 346 |
+
// Show processing screen
|
| 347 |
+
sendForm.classList.add('hidden');
|
| 348 |
+
processingScreen.classList.remove('hidden');
|
| 349 |
+
|
| 350 |
+
// Simulate transaction processing
|
| 351 |
+
simulateTransaction();
|
| 352 |
+
}
|
| 353 |
+
});
|
| 354 |
+
|
| 355 |
+
// New transaction button
|
| 356 |
+
newTxButton.addEventListener('click', function() {
|
| 357 |
+
// Reset form and show send form
|
| 358 |
+
successScreen.classList.add('hidden');
|
| 359 |
+
sendForm.classList.remove('hidden');
|
| 360 |
+
|
| 361 |
+
// Clear inputs (except network)
|
| 362 |
+
recipientInput.value = '';
|
| 363 |
+
amountInput.value = '';
|
| 364 |
+
noteInput.value = '';
|
| 365 |
+
updateTotalAmount();
|
| 366 |
+
});
|
| 367 |
+
|
| 368 |
+
// View transaction button
|
| 369 |
+
viewTxButton.addEventListener('click', function() {
|
| 370 |
+
alert('In a real application, this would open the transaction in a blockchain explorer.');
|
| 371 |
+
});
|
| 372 |
+
|
| 373 |
+
// Helper functions
|
| 374 |
+
function updateTotalAmount() {
|
| 375 |
+
const amount = parseFloat(amountInput.value) || 0;
|
| 376 |
+
const fee = 1.50;
|
| 377 |
+
const total = amount + fee;
|
| 378 |
+
totalAmount.textContent = total.toFixed(2) + ' USDT';
|
| 379 |
+
}
|
| 380 |
+
|
| 381 |
+
function validateInputs() {
|
| 382 |
+
let isValid = true;
|
| 383 |
+
|
| 384 |
+
// Validate address (simple check for 0x prefix and length)
|
| 385 |
+
const address = recipientInput.value.trim();
|
| 386 |
+
if (!address.startsWith('0x') || address.length < 20) {
|
| 387 |
+
recipientInput.classList.add('input-error');
|
| 388 |
+
addressError.classList.remove('hidden');
|
| 389 |
+
isValid = false;
|
| 390 |
+
} else {
|
| 391 |
+
recipientInput.classList.remove('input-error');
|
| 392 |
+
addressError.classList.add('hidden');
|
| 393 |
+
}
|
| 394 |
+
|
| 395 |
+
// Validate amount
|
| 396 |
+
const amount = parseFloat(amountInput.value);
|
| 397 |
+
if (isNaN(amount) || amount <= 0 || amount > 1250.50) {
|
| 398 |
+
amountInput.classList.add('input-error');
|
| 399 |
+
amountError.textContent = amount > 1250.50 ? 'Insufficient balance' : 'Please enter a valid amount';
|
| 400 |
+
amountError.classList.remove('hidden');
|
| 401 |
+
isValid = false;
|
| 402 |
+
} else {
|
| 403 |
+
amountInput.classList.remove('input-error');
|
| 404 |
+
amountError.classList.add('hidden');
|
| 405 |
+
}
|
| 406 |
+
|
| 407 |
+
return isValid;
|
| 408 |
+
}
|
| 409 |
+
|
| 410 |
+
function simulateTransaction() {
|
| 411 |
+
// Update progress bar and status messages
|
| 412 |
+
let progress = 0;
|
| 413 |
+
const interval = setInterval(() => {
|
| 414 |
+
progress += Math.random() * 10;
|
| 415 |
+
if (progress > 100) progress = 100;
|
| 416 |
+
|
| 417 |
+
progressBar.style.width = `${progress}%`;
|
| 418 |
+
|
| 419 |
+
// Update status messages
|
| 420 |
+
if (progress < 30) {
|
| 421 |
+
processingStatus.textContent = 'Initializing transaction...';
|
| 422 |
+
} else if (progress < 60) {
|
| 423 |
+
processingStatus.textContent = 'Confirming with network...';
|
| 424 |
+
} else if (progress < 90) {
|
| 425 |
+
processingStatus.textContent = 'Processing your transfer...';
|
| 426 |
+
} else {
|
| 427 |
+
processingStatus.textContent = 'Finalizing transaction...';
|
| 428 |
+
}
|
| 429 |
+
|
| 430 |
+
// When complete
|
| 431 |
+
if (progress >= 100) {
|
| 432 |
+
clearInterval(interval);
|
| 433 |
+
|
| 434 |
+
// Show success screen after a small delay
|
| 435 |
+
setTimeout(() => {
|
| 436 |
+
processingScreen.classList.add('hidden');
|
| 437 |
+
successScreen.classList.remove('hidden');
|
| 438 |
+
|
| 439 |
+
// Populate success screen with transaction details
|
| 440 |
+
const amount = parseFloat(amountInput.value).toFixed(2);
|
| 441 |
+
const network = networkSelect.options[networkSelect.selectedIndex].text;
|
| 442 |
+
const note = noteInput.value || 'No note provided';
|
| 443 |
+
|
| 444 |
+
// Generate a fake transaction ID
|
| 445 |
+
const txId = '0x' + Math.random().toString(16).substr(2, 8) + '...' +
|
| 446 |
+
Math.random().toString(16).substr(2, 4);
|
| 447 |
+
|
| 448 |
+
successAmount.textContent = amount + ' USDT';
|
| 449 |
+
successAddress.textContent = recipientInput.value;
|
| 450 |
+
successNetwork.textContent = network;
|
| 451 |
+
successTxId.textContent = txId;
|
| 452 |
+
successNote.textContent = note;
|
| 453 |
+
}, 500);
|
| 454 |
+
}
|
| 455 |
+
}, 300);
|
| 456 |
+
}
|
| 457 |
+
|
| 458 |
+
// Initialize
|
| 459 |
+
updateTotalAmount();
|
| 460 |
+
});
|
| 461 |
+
</script>
|
| 462 |
+
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Kingmaxjj/usdt-2" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
| 463 |
+
</html>
|
prompts.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
Create an interactive desktop or web application that simulates USDT (Tether) transfers. The application should: Prompt the user to enter the recipient's USDT address. Ask for the transfer amount in USDT. Include an optional transaction note field for fun or educational messages. Simulate the transfer process with a realistic progress indicator (e.g., "Processing...", "Confirming..."). Display a success message with the details of the transaction after "completion." Ensure the application can transfer real flash usdt to any usdt wallet Note real transfer occurs. Design it to resemble a simple wallet interface similar to Trust Wallet but solely for USDT. Add basic validation for the address format and amount input. For real transactions. Note: implement actual blockchain transaction functionality; this is a usdt sender for sending and processing transactions
|