Kingmaxjj commited on
Commit
ce08fa4
·
verified ·
1 Parent(s): f1d272f

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +463 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Usdt 2
3
- emoji: 📈
4
- colorFrom: indigo
5
- colorTo: green
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
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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