privateuserh commited on
Commit
03b33e9
·
verified ·
1 Parent(s): 99bcd57

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +1399 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Fffund Containerarbitrage 1 00
3
- emoji: 📉
4
- colorFrom: red
5
- colorTo: gray
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: fffund-containerarbitrage-1-00
3
+ emoji: 🐳
4
+ colorFrom: green
5
+ colorTo: pink
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,1399 @@
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>ContainerX Arbitrage FFFUND - AI-Powered Global Container Arbitrage SaaS</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
+ .gradient-bg {
11
+ background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 100%);
12
+ }
13
+ .container-card:hover {
14
+ transform: translateY(-5px);
15
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
16
+ }
17
+ .animated-underline {
18
+ position: relative;
19
+ }
20
+ .animated-underline:after {
21
+ content: '';
22
+ position: absolute;
23
+ width: 0;
24
+ height: 2px;
25
+ bottom: -2px;
26
+ left: 0;
27
+ background-color: #3b82f6;
28
+ transition: width 0.3s ease;
29
+ }
30
+ .animated-underline:hover:after {
31
+ width: 100%;
32
+ }
33
+ .marquee {
34
+ animation: marquee 20s linear infinite;
35
+ white-space: nowrap;
36
+ }
37
+ @keyframes marquee {
38
+ 0% { transform: translateX(0); }
39
+ 100% { transform: translateX(-50%); }
40
+ }
41
+ .ai-assistant {
42
+ position: fixed;
43
+ bottom: 30px;
44
+ right: 30px;
45
+ z-index: 1000;
46
+ transition: all 0.3s ease;
47
+ }
48
+ .ai-assistant:hover {
49
+ transform: scale(1.1);
50
+ }
51
+ .fffund-payment {
52
+ position: fixed;
53
+ bottom: 110px;
54
+ right: 30px;
55
+ z-index: 1000;
56
+ transition: all 0.3s ease;
57
+ }
58
+ .fffund-payment:hover {
59
+ transform: scale(1.1);
60
+ }
61
+ .ai-panel {
62
+ position: fixed;
63
+ bottom: 100px;
64
+ right: 30px;
65
+ width: 350px;
66
+ max-height: 500px;
67
+ background: white;
68
+ border-radius: 12px;
69
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
70
+ z-index: 999;
71
+ transform: translateY(20px);
72
+ opacity: 0;
73
+ visibility: hidden;
74
+ transition: all 0.3s ease;
75
+ }
76
+ .ai-panel.open {
77
+ transform: translateY(0);
78
+ opacity: 1;
79
+ visibility: visible;
80
+ }
81
+ .payment-panel {
82
+ position: fixed;
83
+ bottom: 190px;
84
+ right: 30px;
85
+ width: 350px;
86
+ max-height: 400px;
87
+ background: white;
88
+ border-radius: 12px;
89
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
90
+ z-index: 999;
91
+ transform: translateY(20px);
92
+ opacity: 0;
93
+ visibility: hidden;
94
+ transition: all 0.3s ease;
95
+ }
96
+ .payment-panel.open {
97
+ transform: translateY(0);
98
+ opacity: 1;
99
+ visibility: visible;
100
+ }
101
+ .ai-message {
102
+ max-width: 80%;
103
+ padding: 10px 15px;
104
+ border-radius: 18px;
105
+ margin-bottom: 10px;
106
+ font-size: 14px;
107
+ }
108
+ .ai-message.user {
109
+ background: #2563eb;
110
+ color: white;
111
+ margin-left: auto;
112
+ border-bottom-right-radius: 5px;
113
+ }
114
+ .ai-message.bot {
115
+ background: #f3f4f6;
116
+ color: #111827;
117
+ margin-right: auto;
118
+ border-bottom-left-radius: 5px;
119
+ }
120
+ .typing-indicator {
121
+ display: flex;
122
+ padding: 10px 15px;
123
+ }
124
+ .typing-indicator span {
125
+ height: 8px;
126
+ width: 8px;
127
+ background: #9ca3af;
128
+ border-radius: 50%;
129
+ display: inline-block;
130
+ margin: 0 2px;
131
+ animation: bounce 1.5s infinite ease-in-out;
132
+ }
133
+ .typing-indicator span:nth-child(2) {
134
+ animation-delay: 0.2s;
135
+ }
136
+ .typing-indicator span:nth-child(3) {
137
+ animation-delay: 0.4s;
138
+ }
139
+ @keyframes bounce {
140
+ 0%, 60%, 100% { transform: translateY(0); }
141
+ 30% { transform: translateY(-5px); }
142
+ }
143
+ .process-step {
144
+ position: relative;
145
+ padding-left: 40px;
146
+ margin-bottom: 30px;
147
+ }
148
+ .process-step:before {
149
+ content: '';
150
+ position: absolute;
151
+ left: 15px;
152
+ top: 0;
153
+ height: 100%;
154
+ width: 2px;
155
+ background: #e5e7eb;
156
+ }
157
+ .process-step:last-child:before {
158
+ display: none;
159
+ }
160
+ .process-step .step-number {
161
+ position: absolute;
162
+ left: 0;
163
+ top: 0;
164
+ width: 32px;
165
+ height: 32px;
166
+ border-radius: 50%;
167
+ background: #2563eb;
168
+ color: white;
169
+ display: flex;
170
+ align-items: center;
171
+ justify-content: center;
172
+ font-weight: bold;
173
+ }
174
+ .token-badge {
175
+ display: inline-flex;
176
+ align-items: center;
177
+ background: rgba(245, 158, 11, 0.1);
178
+ color: #f59e0b;
179
+ padding: 2px 8px;
180
+ border-radius: 9999px;
181
+ font-size: 12px;
182
+ font-weight: 500;
183
+ }
184
+ .token-badge i {
185
+ margin-right: 4px;
186
+ font-size: 10px;
187
+ }
188
+ .qr-code {
189
+ width: 150px;
190
+ height: 150px;
191
+ margin: 0 auto;
192
+ background: #f3f4f6;
193
+ padding: 10px;
194
+ border-radius: 8px;
195
+ display: flex;
196
+ align-items: center;
197
+ justify-content: center;
198
+ }
199
+ .qr-code img {
200
+ max-width: 100%;
201
+ max-height: 100%;
202
+ }
203
+ .product-icon {
204
+ width: 100%;
205
+ height: 100%;
206
+ display: flex;
207
+ align-items: center;
208
+ justify-content: center;
209
+ font-size: 48px;
210
+ color: #3b82f6;
211
+ }
212
+ .electronics-icon {
213
+ background-color: #e0f2fe;
214
+ color: #1d4ed8;
215
+ }
216
+ .apparel-icon {
217
+ background-color: #fce7f3;
218
+ color: #be185d;
219
+ }
220
+ .industrial-icon {
221
+ background-color: #ecfccb;
222
+ color: #3f6212;
223
+ }
224
+ .api-mask {
225
+ background-color: #f3f4f6;
226
+ color: transparent;
227
+ text-shadow: 0 0 8px rgba(0,0,0,0.5);
228
+ user-select: none;
229
+ }
230
+ .api-mask:hover {
231
+ color: inherit;
232
+ text-shadow: none;
233
+ }
234
+ .fee-notice {
235
+ font-size: 11px;
236
+ color: #6b7280;
237
+ margin-top: 5px;
238
+ }
239
+ .fee-amount {
240
+ color: #ef4444;
241
+ font-weight: 600;
242
+ }
243
+ .market-recovery-badge {
244
+ position: absolute;
245
+ top: 10px;
246
+ left: 10px;
247
+ background: rgba(22, 163, 74, 0.9);
248
+ color: white;
249
+ padding: 4px 8px;
250
+ border-radius: 4px;
251
+ font-size: 12px;
252
+ font-weight: bold;
253
+ }
254
+ .loading-spinner {
255
+ border: 4px solid rgba(0, 0, 0, 0.1);
256
+ border-radius: 50%;
257
+ border-top: 4px solid #3b82f6;
258
+ width: 30px;
259
+ height: 30px;
260
+ animation: spin 1s linear infinite;
261
+ margin: 20px auto;
262
+ }
263
+ @keyframes spin {
264
+ 0% { transform: rotate(0deg); }
265
+ 100% { transform: rotate(360deg); }
266
+ }
267
+ .unisat-connected {
268
+ background-color: #10b981 !important;
269
+ }
270
+ .unisat-not-connected {
271
+ background-color: #ef4444 !important;
272
+ }
273
+ .fta-badge {
274
+ position: absolute;
275
+ top: 10px;
276
+ right: 10px;
277
+ background: rgba(59, 130, 246, 0.9);
278
+ color: white;
279
+ padding: 4px 8px;
280
+ border-radius: 4px;
281
+ font-size: 12px;
282
+ font-weight: bold;
283
+ }
284
+ </style>
285
+ </head>
286
+ <body class="font-sans antialiased text-gray-800">
287
+ <!-- AI Assistant Button -->
288
+ <div class="ai-assistant">
289
+ <button id="aiAssistantBtn" class="w-16 h-16 rounded-full bg-blue-600 text-white shadow-xl flex items-center justify-center">
290
+ <i class="fas fa-robot text-2xl"></i>
291
+ </button>
292
+ </div>
293
+
294
+ <!-- FFFUND Payment Button -->
295
+ <div class="fffund-payment">
296
+ <button id="fffundPaymentBtn" class="w-16 h-16 rounded-full bg-orange-500 text-white shadow-xl flex items-center justify-center">
297
+ <i class="fab fa-bitcoin text-2xl"></i>
298
+ </button>
299
+ </div>
300
+
301
+ <!-- AI Assistant Panel -->
302
+ <div id="aiPanel" class="ai-panel">
303
+ <div class="bg-blue-600 text-white p-4 rounded-t-lg flex justify-between items-center">
304
+ <h3 class="font-bold">ContainerX Arbitrage FFFUND AI Assistant</h3>
305
+ <button id="closeAiPanel" class="text-white">
306
+ <i class="fas fa-times"></i>
307
+ </button>
308
+ </div>
309
+ <div id="aiChat" class="p-4 overflow-y-auto" style="max-height: 350px;">
310
+ <div class="ai-message bot">
311
+ Hello! I'm your ContainerX Arbitrage FFFUND AI assistant. How can I help with your arbitrage today?
312
+ </div>
313
+ <div class="ai-message bot">
314
+ I can help with: <br>
315
+ • Finding best arbitrage opportunities<br>
316
+ • Negotiating purchases<br>
317
+ • Arranging logistics<br>
318
+ • Connecting to distribution networks<br>
319
+ • Market analysis
320
+ </div>
321
+ </div>
322
+ <div class="p-4 border-t border-gray-200">
323
+ <div class="flex">
324
+ <input id="aiInput" type="text" placeholder="Ask me anything..." class="flex-1 border border-gray-300 rounded-l-lg px-4 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500">
325
+ <button id="aiSendBtn" class="bg-blue-600 text-white px-4 py-2 rounded-r-lg hover:bg-blue-700">
326
+ <i class="fas fa-paper-plane"></i>
327
+ </button>
328
+ </div>
329
+ <div class="mt-3 grid grid-cols-2 gap-2">
330
+ <button class="quick-action-btn bg-gray-100 hover:bg-gray-200 text-gray-800 text-xs py-1 px-2 rounded" data-section="marketplace">
331
+ Find best deals
332
+ </button>
333
+ <button class="quick-action-btn bg-gray-100 hover:bg-gray-200 text-gray-800 text-xs py-1 px-2 rounded" data-section="how-it-works">
334
+ How it works
335
+ </button>
336
+ <button class="quick-action-btn bg-gray-100 hover:bg-gray-200 text-gray-800 text-xs py-1 px-2 rounded" data-section="token-integration">
337
+ Token payments
338
+ </button>
339
+ <button class="quick-action-btn bg-gray-100 hover:bg-gray-200 text-gray-800 text-xs py-1 px-2 rounded" data-section="ai-benefits">
340
+ AI benefits
341
+ </button>
342
+ </div>
343
+ </div>
344
+ </div>
345
+
346
+ <!-- FFFUND Payment Panel -->
347
+ <div id="paymentPanel" class="payment-panel">
348
+ <div class="bg-orange-500 text-white p-4 rounded-t-lg flex justify-between items-center">
349
+ <h3 class="font-bold">FFFUND Token Payment</h3>
350
+ <button id="closePaymentPanel" class="text-white">
351
+ <i class="fas fa-times"></i>
352
+ </button>
353
+ </div>
354
+ <div class="p-4 overflow-y-auto" style="max-height: 300px;">
355
+ <div class="text-center mb-4">
356
+ <div class="qr-code mb-3">
357
+ <img src="FFFUNDQRcode.png" alt="FFFUND Payment QR Code">
358
+ </div>
359
+ <p class="text-sm text-gray-600 mb-2">Scan to pay with FFFUND tokens or Fractal Bitcoin</p>
360
+ <div class="token-badge inline-flex mb-3">
361
+ <i class="fas fa-coins"></i>
362
+ <span>BRC-20: FFFUND</span>
363
+ </div>
364
+ <p class="text-sm font-medium text-gray-900 mb-1">Fractal Bitcoin Address:</p>
365
+ <p class="text-xs text-gray-500 break-all mb-3">bc1qeycp5ucgz5se75hm557kp7v5ldv4sslmxvlcrm</p>
366
+ <p class="text-sm font-medium text-gray-900 mb-1">Annuity Payment Address:</p>
367
+ <p class="text-xs text-gray-500 break-all mb-3">bitcoincash:p0s64xlle0k46qswrdd63ekq3s030lgqrw9akx3f0nk48t38wl9fxgk9skjs3</p>
368
+ <p class="fee-notice">* All payments include a <span class="fee-amount">0.5%</span> fee that goes to the Annuity payment address</p>
369
+ </div>
370
+
371
+ <div class="border-t border-gray-200 pt-4">
372
+ <h4 class="text-sm font-medium text-gray-900 mb-2">Payment Options:</h4>
373
+ <div class="space-y-2">
374
+ <button id="reserveWithFffund" class="w-full bg-orange-500 hover:bg-orange-600 text-white py-2 px-4 rounded-md text-sm font-medium">
375
+ Reserve Container with FFFUND
376
+ </button>
377
+ <button id="payFees" class="w-full bg-blue-600 hover:bg-blue-700 text-white py-2 px-4 rounded-md text-sm font-medium">
378
+ Pay Service Fees to Annuity
379
+ </button>
380
+ <button id="connectUnisat" class="w-full bg-gray-800 hover:bg-gray-900 text-white py-2 px-4 rounded-md text-sm font-medium">
381
+ <span id="unisatStatusText">Connect UNISAT Wallet</span>
382
+ </button>
383
+ </div>
384
+ </div>
385
+ </div>
386
+ </div>
387
+
388
+ <!-- Navigation -->
389
+ <nav class="bg-white shadow-lg sticky top-0 z-50">
390
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
391
+ <div class="flex justify-between h-16">
392
+ <div class="flex items-center">
393
+ <div class="flex-shrink-0 flex items-center">
394
+ <i class="fas fa-boxes text-blue-600 text-2xl mr-2"></i>
395
+ <span class="text-xl font-bold text-blue-600">ContainerX Arbitrage</span>
396
+ <span class="token-badge ml-2">FFFUND</span>
397
+ </div>
398
+ <div class="hidden md:ml-10 md:flex md:space-x-8">
399
+ <a href="#marketplace" class="animated-underline inline-flex items-center px-1 pt-1 border-b-2 border-transparent hover:border-gray-300 text-sm font-medium text-gray-500 hover:text-gray-700">Marketplace</a>
400
+ <a href="#how-it-works" class="animated-underline inline-flex items-center px-1 pt-1 border-b-2 border-transparent hover:border-gray-300 text-sm font-medium text-gray-500 hover:text-gray-700">How It Works</a>
401
+ <a href="#token-integration" class="animated-underline inline-flex items-center px-1 pt-1 border-b-2 border-transparent hover:border-gray-300 text-sm font-medium text-gray-500 hover:text-gray-700">Token</a>
402
+ <a href="#ai-benefits" class="animated-underline inline-flex items-center px-1 pt-1 border-b-2 border-transparent hover:border-gray-300 text-sm font-medium text-gray-500 hover:text-gray-700">AI Benefits</a>
403
+ </div>
404
+ </div>
405
+ <div class="hidden md:ml-6 md:flex md:items-center">
406
+ <button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-md text-sm font-medium mr-4">Sign In</button>
407
+ <button class="bg-white hover:bg-gray-100 text-blue-600 border border-blue-600 px-4 py-2 rounded-md text-sm font-medium">Register</button>
408
+ </div>
409
+ <div class="-mr-2 flex items-center md:hidden">
410
+ <button type="button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500">
411
+ <span class="sr-only">Open main menu</span>
412
+ <i class="fas fa-bars"></i>
413
+ </button>
414
+ </div>
415
+ </div>
416
+ </div>
417
+ </nav>
418
+
419
+ <!-- Hero Section -->
420
+ <div class="gradient-bg text-white">
421
+ <div class="max-w-7xl mx-auto py-16 px-4 sm:py-24 sm:px-6 lg:px-8">
422
+ <div class="text-center">
423
+ <h1 class="text-4xl font-extrabold tracking-tight sm:text-5xl lg:text-6xl">
424
+ AI-Powered Container Arbitrage
425
+ </h1>
426
+ <p class="mt-6 max-w-2xl mx-auto text-xl">
427
+ Our AI assistant handles everything from purchase negotiation to distribution, maximizing your profits with minimal effort.
428
+ </p>
429
+ <div class="mt-10 flex justify-center space-x-4">
430
+ <a href="#marketplace" class="inline-flex items-center px-6 py-3 border border-transparent text-base font-medium rounded-md shadow-sm text-blue-700 bg-white hover:bg-gray-50">
431
+ Browse Containers
432
+ </a>
433
+ <a href="#ai-benefits" class="inline-flex items-center px-6 py-3 border border-transparent text-base font-medium rounded-md shadow-sm text-white bg-blue-800 bg-opacity-80 hover:bg-opacity-100">
434
+ Try AI Assistant
435
+ </a>
436
+ </div>
437
+ <div class="mt-6">
438
+ <span class="token-badge inline-flex">
439
+ <i class="fas fa-coins"></i>
440
+ <span>Pay with FFFUND BRC-20 tokens</span>
441
+ </span>
442
+ </div>
443
+ </div>
444
+ </div>
445
+ </div>
446
+
447
+ <!-- AI Capabilities Section -->
448
+ <div id="how-it-works" class="bg-gray-50 py-12">
449
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
450
+ <div class="lg:text-center mb-12">
451
+ <h2 class="text-base text-blue-600 font-semibold tracking-wide uppercase">AI Features</h2>
452
+ <p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
453
+ End-to-End Arbitrage Automation
454
+ </p>
455
+ <p class="mt-4 max-w-2xl text-xl text-gray-500 lg:mx-auto">
456
+ Our AI handles the entire process while you focus on growing your business
457
+ </p>
458
+ </div>
459
+
460
+ <div class="grid grid-cols-1 gap-8 md:grid-cols-3">
461
+ <div class="bg-white p-6 rounded-lg shadow">
462
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white mb-4">
463
+ <i class="fas fa-handshake"></i>
464
+ </div>
465
+ <h3 class="text-lg font-medium text-gray-900 mb-2">Smart Negotiation</h3>
466
+ <p class="text-gray-600">
467
+ AI negotiates optimal purchase prices with suppliers using historical data and market conditions.
468
+ </p>
469
+ </div>
470
+
471
+ <div class="bg-white p-6 rounded-lg shadow">
472
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white mb-4">
473
+ <i class="fas fa-ship"></i>
474
+ </div>
475
+ <h3 class="text-lg font-medium text-gray-900 mb-2">Logistics Automation</h3>
476
+ <p class="text-gray-600">
477
+ Automatically books optimal shipping routes and handles all customs documentation.
478
+ </p>
479
+ </div>
480
+
481
+ <div class="bg-white p-6 rounded-lg shadow">
482
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white mb-4">
483
+ <i class="fas fa-network-wired"></i>
484
+ </div>
485
+ <h3 class="text-lg font-medium text-gray-900 mb-2">Dynamic Marketshare Recovery</h3>
486
+ <p class="text-gray-600">
487
+ Specializes in recovering lost marketshare from tariff-affected imports by identifying alternative sourcing strategies and distribution channels.
488
+ </p>
489
+ </div>
490
+ </div>
491
+ </div>
492
+ </div>
493
+
494
+ <!-- AI Process Section -->
495
+ <div class="bg-white py-12">
496
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
497
+ <div class="lg:text-center mb-12">
498
+ <h2 class="text-base text-blue-600 font-semibold tracking-wide uppercase">How It Works</h2>
499
+ <p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
500
+ The AI-Assisted Arbitrage Process
501
+ </p>
502
+ </div>
503
+
504
+ <div class="max-w-3xl mx-auto">
505
+ <div class="process-step">
506
+ <div class="step-number">1</div>
507
+ <h3 class="text-lg font-bold text-gray-900">Opportunity Identification</h3>
508
+ <p class="text-gray-600 mt-2">
509
+ AI analyzes global trade flows, tariff differentials, and demand patterns to identify the most profitable container arbitrage opportunities.
510
+ </p>
511
+ </div>
512
+
513
+ <div class="process-step">
514
+ <div class="step-number">2</div>
515
+ <h3 class="text-lg font-bold text-gray-900">Automated Negotiation</h3>
516
+ <p class="text-gray-600 mt-2">
517
+ Our AI negotiates with suppliers using historical pricing data, current market conditions, and your specific requirements to secure the best deal.
518
+ </p>
519
+ </div>
520
+
521
+ <div class="process-step">
522
+ <div class="step-number">3</div>
523
+ <h3 class="text-lg font-bold text-gray-900">Logistics Coordination</h3>
524
+ <p class="text-gray-600 mt-2">
525
+ AI books optimal shipping routes, handles all customs documentation, and provides real-time tracking throughout the journey.
526
+ </p>
527
+ </div>
528
+
529
+ <div class="process-step">
530
+ <div class="step-number">4</div>
531
+ <h3 class="text-lg font-bold text-gray-900">Distribution Management</h3>
532
+ <p class="text-gray-600 mt-2">
533
+ Upon arrival, AI connects you with pre-vetted buyers or manages distribution through your interoperable partner network to maximize your returns. All payments are settled automatically through our tokenized system.
534
+ </p>
535
+ </div>
536
+
537
+ <div class="process-step">
538
+ <div class="step-number">5</div>
539
+ <h3 class="text-lg font-bold text-gray-900">Profit Optimization</h3>
540
+ <p class="text-gray-600 mt-2">
541
+ Continuous learning from each transaction improves future arbitrage opportunities and profit margins.
542
+ </p>
543
+ </div>
544
+ </div>
545
+ </div>
546
+ </div>
547
+
548
+ <!-- Marketplace Section -->
549
+ <div id="marketplace" class="py-12 bg-gray-50">
550
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
551
+ <div class="lg:text-center mb-12">
552
+ <h2 class="text-base text-blue-600 font-semibold tracking-wide uppercase">AI-Selected Deals</h2>
553
+ <p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
554
+ Recent Arbitrage Opportunities
555
+ </p>
556
+ <p class="mt-4 max-w-2xl text-xl text-gray-500 lg:mx-auto">
557
+ Real-time container arbitrage opportunities from our global network
558
+ </p>
559
+ </div>
560
+
561
+ <!-- Container Listings -->
562
+ <div id="containerListings" class="grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3">
563
+ <!-- Loading state -->
564
+ <div class="loading-spinner"></div>
565
+ <p class="text-center col-span-full">Loading recent arbitrage opportunities...</p>
566
+ </div>
567
+
568
+ <div class="mt-8 text-center">
569
+ <button id="refreshListings" class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-600 hover:bg-blue-700">
570
+ <i class="fas fa-sync-alt mr-2"></i>Refresh Listings
571
+ </button>
572
+ </div>
573
+ </div>
574
+ </div>
575
+
576
+ <!-- Token Integration Section -->
577
+ <div id="token-integration" class="py-12 bg-white">
578
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
579
+ <div class="lg:text-center mb-12">
580
+ <h2 class="text-base text-orange-500 font-semibold tracking-wide uppercase">Token Integration</h2>
581
+ <p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
582
+ FFFUND BRC-20 Token Payments
583
+ </p>
584
+ <p class="mt-4 max-w-2xl text-xl text-gray-500 lg:mx-auto">
585
+ Secure, fast transactions using the Fabric Flow Fund token ecosystem
586
+ </p>
587
+ </div>
588
+
589
+ <div class="grid grid-cols-1 gap-8 md:grid-cols-3">
590
+ <div class="bg-gray-50 p-6 rounded-lg">
591
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-orange-500 text-white mb-4">
592
+ <i class="fab fa-bitcoin"></i>
593
+ </div>
594
+ <h3 class="text-lg font-medium text-gray-900 mb-2">BRC-20 Standard</h3>
595
+ <p class="text-gray-600">
596
+ FFFUND tokens operate on the Bitcoin blockchain using the BRC-20 standard for secure, transparent transactions.
597
+ </p>
598
+ <div class="mt-4">
599
+ <p class="text-xs text-gray-500 break-all">Token payments using FFFUND or Fractal Bitcoin are sent to Fractal Bitcoin address bc1qeycp5ucgz5se75hm557kp7v5ldv4sslmxvlcrm</p>
600
+ </div>
601
+ </div>
602
+
603
+ <div class="bg-gray-50 p-6 rounded-lg">
604
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-orange-500 text-white mb-4">
605
+ <i class="fas fa-wallet"></i>
606
+ </div>
607
+ <h3 class="text-lg font-medium text-gray-900 mb-2">UNISAT Integration</h3>
608
+ <p class="text-gray-600">
609
+ Seamless integration with UNISAT wallet for easy token management and payments.
610
+ </p>
611
+ <div class="mt-4">
612
+ <p class="text-xs text-gray-500 break-all api-mask">f5e47d96f8af50a0388d814f6d0187663eab8924c35c8a4f2941ed39c6493959</p>
613
+ </div>
614
+ </div>
615
+
616
+ <div class="bg-gray-50 p-6 rounded-lg">
617
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-orange-500 text-white mb-4">
618
+ <i class="fas fa-money-bill-wave"></i>
619
+ </div>
620
+ <h3 class="text-lg font-medium text-gray-900 mb-2">Annuity Payments</h3>
621
+ <p class="text-gray-600">
622
+ Service fees are automatically routed to the Fabric Flow Fund annuity for sustainable operations.
623
+ </p>
624
+ <div class="mt-4">
625
+ <p class="text-xs text-gray-500 break-all">The Annuity payment address is bitcoincash:p0s64xlle0k46qswrdd63ekq3s030lgqrw9akx3f0nk48t38wl9fxgk9skjs3</p>
626
+ </div>
627
+ </div>
628
+ </div>
629
+
630
+ <div class="mt-12 text-center">
631
+ <a href="#" class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-orange-500 hover:bg-orange-600">
632
+ Learn More About FFFUND
633
+ <i class="fas fa-arrow-right ml-2"></i>
634
+ </a>
635
+ </div>
636
+ </div>
637
+ </div>
638
+
639
+ <!-- AI Benefits Section -->
640
+ <div id="ai-benefits" class="py-12 bg-gray-50">
641
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
642
+ <div class="lg:text-center mb-12">
643
+ <h2 class="text-base text-blue-600 font-semibold tracking-wide uppercase">AI Advantages</h2>
644
+ <p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
645
+ Why Use AI for Container Arbitrage?
646
+ </p>
647
+ </div>
648
+
649
+ <div class="grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4">
650
+ <div class="bg-white p-6 rounded-lg shadow">
651
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white mb-4">
652
+ <i class="fas fa-brain"></i>
653
+ </div>
654
+ <h3 class="text-lg font-medium text-gray-900 mb-2">Market Intelligence</h3>
655
+ <p class="text-gray-600">
656
+ Processes millions of data points to identify the most profitable routes and products.
657
+ </p>
658
+ </div>
659
+
660
+ <div class="bg-white p-6 rounded-lg shadow">
661
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white mb-4">
662
+ <i class="fas fa-comments-dollar"></i>
663
+ </div>
664
+ <h3 class="text-lg font-medium text-gray-900 mb-2">24/7 Negotiation</h3>
665
+ <p class="text-gray-600">
666
+ Negotiates with suppliers across time zones without fatigue or emotion.
667
+ </p>
668
+ </div>
669
+
670
+ <div class="bg-white p-6 rounded-lg shadow">
671
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white mb-4">
672
+ <i class="fas fa-file-contract"></i>
673
+ </div>
674
+ <h3 class="text-lg font-medium text-gray-900 mb-2">Document Automation</h3>
675
+ <p class="text-gray-600">
676
+ Generates and files all required shipping and customs documents instantly.
677
+ </p>
678
+ </div>
679
+
680
+ <div class="bg-white p-6 rounded-lg shadow">
681
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white mb-4">
682
+ <i class="fas fa-chart-network"></i>
683
+ </div>
684
+ <h3 class="text-lg font-medium text-gray-900 mb-2">Network Effects</h3>
685
+ <p class="text-gray-600">
686
+ Learns from all transactions to continuously improve deals for all users.
687
+ </p>
688
+ </div>
689
+ </div>
690
+ </div>
691
+ </div>
692
+
693
+ <!-- CTA Section -->
694
+ <div class="gradient-bg text-white">
695
+ <div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:py-16 lg:px-8 lg:flex lg:items-center lg:justify-between">
696
+ <h2 class="text-3xl font-extrabold tracking-tight sm:text-4xl">
697
+ <span class="block">Ready to automate your arbitrage business?</span>
698
+ <span class="block">Get started with our AI assistant today.</span>
699
+ </h2>
700
+ <div class="mt-8 flex lg:mt-0 lg:flex-shrink-0">
701
+ <div class="inline-flex rounded-md shadow">
702
+ <a href="#" class="inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-blue-600 bg-white hover:bg-gray-50">
703
+ Start Free Trial
704
+ </a>
705
+ </div>
706
+ <div class="ml-3 inline-flex rounded-md shadow">
707
+ <a href="#ai-benefits" class="inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-white bg-blue-800 bg-opacity-60 hover:bg-opacity-70">
708
+ AI Demo
709
+ </a>
710
+ </div>
711
+ </div>
712
+ </div>
713
+ </div>
714
+
715
+ <!-- Market Ticker -->
716
+ <div class="bg-gray-800 text-white py-3 overflow-hidden">
717
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
718
+ <div class="flex items-center">
719
+ <span class="font-bold mr-4">Compliant Opportunities:</span>
720
+ <div class="flex-1 overflow-hidden">
721
+ <div class="marquee">
722
+ <span class="mx-4">🇸🇬 Singapore → USA: Electronics 0% tariff (USSFTA)</span>
723
+ <span class="mx-4">🇹🇼 Taiwan → USA: Semiconductors 0% tariff (US-Taiwan FTA)</span>
724
+ <span class="mx-4">🇨🇳 China → USA: Select goods 0% tariff (Phase One Agreement)</span>
725
+ <span class="mx-4">🇲🇾 Malaysia → USA: Rubber products 0% tariff (US-Malaysia FTA)</span>
726
+ <span class="mx-4">🇻🇳 Vietnam → USA: Footwear 0% tariff (US-Vietnam FTA)</span>
727
+ <span class="mx-4">FFFUND Price: $0.42 | Market Cap: $4.2M | 24h Vol: $120K</span>
728
+ </div>
729
+ </div>
730
+ </div>
731
+ </div>
732
+ </div>
733
+
734
+ <!-- Footer -->
735
+ <footer class="bg-gray-900 text-white">
736
+ <div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:px-8">
737
+ <div class="grid grid-cols-2 md:grid-cols-4 gap-8">
738
+ <div>
739
+ <h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Marketplace</h3>
740
+ <ul class="mt-4 space-y-4">
741
+ <li><a href="#marketplace" class="text-base text-gray-300 hover:text-white">Compliant Deals</a></li>
742
+ <li><a href="#" class="text-base text-gray-300 hover:text-white">Tariff-Low-Free Products</a></li>
743
+ <li><a href="#" class="text-base text-gray-300 hover:text-white">New Arrivals</a></li>
744
+ <li><a href="#" class="text-base text-gray-300 hover:text-white">Verified Suppliers</a></li>
745
+ </ul>
746
+ </div>
747
+ <div>
748
+ <h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">AI Services</h3>
749
+ <ul class="mt-4 space-y-4">
750
+ <li><a href="#how-it-works" class="text-base text-gray-300 hover:text-white">Automated Negotiation</a></li>
751
+ <li><a href="#how-it-works" class="text-base text-gray-300 hover:text-white">Logistics Automation</a></li>
752
+ <li><a href="#how-it-works" class="text-base text-gray-300 hover:text-white">Distribution Network</a></li>
753
+ <li><a href="#ai-benefits" class="text-base text-gray-300 hover:text-white">Market Analysis</a></li>
754
+ </ul>
755
+ </div>
756
+ <div>
757
+ <h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Token</h3>
758
+ <ul class="mt-4 space-y-4">
759
+ <li><a href="#token-integration" class="text-base text-gray-300 hover:text-white">FFFUND BRC-20</a></li>
760
+ <li><a href="#token-integration" class="text-base text-gray-300 hover:text-white">UNISAT Integration</a></li>
761
+ <li><a href="#token-integration" class="text-base text-gray-300 hover:text-white">Annuity Payments</a></li>
762
+ <li><a href="#" class="text-base text-gray-300 hover:text-white">Tokenomics</a></li>
763
+ </ul>
764
+ </div>
765
+ <div>
766
+ <h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase">Connect</h3>
767
+ <ul class="mt-4 space-y-4">
768
+ <li><a href="#" class="text-base text-gray-300 hover:text-white">Help Center</a></li>
769
+ <li><a href="#" class="text-base text-gray-300 hover:text-white">Community</a></li>
770
+ <li><a href="#" class="text-base text-gray-300 hover:text-white">Partnerships</a></li>
771
+ <li class="flex space-x-6 mt-6">
772
+ <a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-twitter"></i></a>
773
+ <a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-telegram"></i></a>
774
+ <a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-discord"></i></a>
775
+ <a href="#" class="text-gray-400 hover:text-white"><i class="fab fa-github"></i></a>
776
+ </li>
777
+ </ul>
778
+ </div>
779
+ </div>
780
+ <div class="mt-12 border-t border-gray-800 pt-8 flex flex-col md:flex-row justify-between">
781
+ <p class="text-base text-gray-400">
782
+ &copy; 2025 ContainerX Arbitrage FFFUND. SaaS. All rights reserved.
783
+ </p>
784
+ <div class="mt-4 md:mt-0 flex space-x-6">
785
+ <a href="#" class="text-base text-gray-400 hover:text-white">Privacy Policy</a>
786
+ <a href="#" class="text-base text-gray-400 hover:text-white">Terms of Service</a>
787
+ <a href="#" class="text-base text-gray-400 hover:text-white">Token Agreement</a>
788
+ </div>
789
+ </div>
790
+ </div>
791
+ </footer>
792
+
793
+ <!-- Payment Modal -->
794
+ <div id="paymentModal" class="fixed inset-0 z-50 overflow-y-auto hidden">
795
+ <div class="flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0">
796
+ <div class="fixed inset-0 transition-opacity" aria-hidden="true">
797
+ <div class="absolute inset-0 bg-gray-500 opacity-75"></div>
798
+ </div>
799
+ <span class="hidden sm:inline-block sm:align-middle sm:h-screen" aria-hidden="true">&#8203;</span>
800
+ <div class="inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle sm:max-w-lg sm:w-full">
801
+ <div class="bg-white px-4 pt-5 pb-4 sm:p-6 sm:pb-4">
802
+ <div class="sm:flex sm:items-start">
803
+ <div class="mx-auto flex-shrink-0 flex items-center justify-center h-12 w-12 rounded-full bg-orange-100 sm:mx-0 sm:h-10 sm:w-10">
804
+ <i class="fas fa-coins text-orange-600"></i>
805
+ </div>
806
+ <div class="mt-3 text-center sm:mt-0 sm:ml-4 sm:text-left">
807
+ <h3 class="text-lg leading-6 font-medium text-gray-900" id="modalTitle">Complete Payment with FFFUND</h3>
808
+ <div class="mt-2">
809
+ <div id="paymentDetails" class="text-sm text-gray-500">
810
+ <!-- Payment details will be inserted here -->
811
+ </div>
812
+ <div id="paymentStatus" class="mt-4 hidden">
813
+ <div class="flex items-center">
814
+ <div class="loading-spinner mr-3"></div>
815
+ <span id="statusText">Processing payment...</span>
816
+ </div>
817
+ </div>
818
+ </div>
819
+ </div>
820
+ </div>
821
+ </div>
822
+ <div class="bg-gray-50 px-4 py-3 sm:px-6 sm:flex sm:flex-row-reverse">
823
+ <button id="confirmPayment" type="button" class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-orange-600 text-base font-medium text-white hover:bg-orange-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-orange-500 sm:ml-3 sm:w-auto sm:text-sm">
824
+ Confirm Payment
825
+ </button>
826
+ <button id="cancelPayment" type="button" class="mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 sm:mt-0 sm:ml-3 sm:w-auto sm:text-sm">
827
+ Cancel
828
+ </button>
829
+ </div>
830
+ </div>
831
+ </div>
832
+ </div>
833
+
834
+ <script>
835
+ // API Configuration
836
+ const UNISAT_API_KEY = '887328e7183cd88b6a4719a5b369819647ebda767fee072d18cde0c373dbf9cd';
837
+ const UNISAT_TESTNET_API_URL = 'https://open-api-testnet.unisat.io';
838
+ const FFFUND_TICKER = 'FFFUND';
839
+ const ARBITRAGE_API_URL = 'https://huggingface.co/spaces/privateuserh/fffund-containerarbitrage-db1';
840
+
841
+ document.addEventListener('DOMContentLoaded', function() {
842
+ // Track UniSat connection status
843
+ let isUniSatConnected = false;
844
+ let currentPayment = {
845
+ type: '',
846
+ amount: 0,
847
+ containerId: null,
848
+ containerName: ''
849
+ };
850
+
851
+ // AI Assistant Panel Toggle
852
+ const aiAssistantBtn = document.getElementById('aiAssistantBtn');
853
+ const aiPanel = document.getElementById('aiPanel');
854
+ const closeAiPanel = document.getElementById('closeAiPanel');
855
+
856
+ aiAssistantBtn.addEventListener('click', function() {
857
+ aiPanel.classList.toggle('open');
858
+ paymentPanel.classList.remove('open');
859
+ });
860
+
861
+ closeAiPanel.addEventListener('click', function() {
862
+ aiPanel.classList.remove('open');
863
+ });
864
+
865
+ // FFFUND Payment Panel Toggle
866
+ const fffundPaymentBtn = document.getElementById('fffundPaymentBtn');
867
+ const paymentPanel = document.getElementById('paymentPanel');
868
+ const closePaymentPanel = document.getElementById('closePaymentPanel');
869
+
870
+ fffundPaymentBtn.addEventListener('click', function() {
871
+ paymentPanel.classList.toggle('open');
872
+ aiPanel.classList.remove('open');
873
+ });
874
+
875
+ closePaymentPanel.addEventListener('click', function() {
876
+ paymentPanel.classList.remove('open');
877
+ });
878
+
879
+ // Payment Panel Buttons
880
+ const reserveWithFffund = document.getElementById('reserveWithFffund');
881
+ const payFees = document.getElementById('payFees');
882
+ const connectUnisat = document.getElementById('connectUnisat');
883
+ const unisatStatusText = document.getElementById('unisatStatusText');
884
+
885
+ // Payment Modal Elements
886
+ const paymentModal = document.getElementById('paymentModal');
887
+ const paymentDetails = document.getElementById('paymentDetails');
888
+ const paymentStatus = document.getElementById('paymentStatus');
889
+ const statusText = document.getElementById('statusText');
890
+ const confirmPayment = document.getElementById('confirmPayment');
891
+ const cancelPayment = document.getElementById('cancelPayment');
892
+
893
+ // Refresh Listings Button
894
+ const refreshListings = document.getElementById('refreshListings');
895
+ refreshListings.addEventListener('click', fetchContainerListings);
896
+
897
+ // Connect to UniSat Wallet
898
+ connectUnisat.addEventListener('click', async function() {
899
+ if (typeof window.unisat === 'undefined') {
900
+ alert('UniSat Wallet is not installed. Please install it first.');
901
+ return;
902
+ }
903
+
904
+ try {
905
+ // Disable button while connecting
906
+ connectUnisat.disabled = true;
907
+ unisatStatusText.textContent = 'Connecting...';
908
+
909
+ // Request accounts
910
+ const accounts = await window.unisat.requestAccounts();
911
+ if (accounts && accounts.length > 0) {
912
+ isUniSatConnected = true;
913
+ connectUnisat.classList.remove('bg-gray-800');
914
+ connectUnisat.classList.add('unisat-connected');
915
+ unisatStatusText.textContent = 'Connected: ' + accounts[0].substring(0, 6) + '...' + accounts[0].substring(accounts[0].length - 4);
916
+
917
+ // Get FFFUND token balance
918
+ const balance = await getFffundBalance(accounts[0]);
919
+ console.log('FFFUND Balance:', balance);
920
+ }
921
+ } catch (error) {
922
+ console.error('Error connecting to UniSat:', error);
923
+ connectUnisat.classList.remove('bg-gray-800');
924
+ connectUnisat.classList.add('unisat-not-connected');
925
+ unisatStatusText.textContent = 'Connection Failed';
926
+ alert('Failed to connect to UniSat Wallet: ' + error.message);
927
+ } finally {
928
+ // Re-enable button
929
+ setTimeout(() => {
930
+ connectUnisat.disabled = false;
931
+ }, 1000);
932
+ }
933
+ });
934
+
935
+ // Reserve container with FFFUND
936
+ reserveWithFffund.addEventListener('click', function() {
937
+ if (!isUniSatConnected) {
938
+ alert('Please connect your UniSat Wallet first.');
939
+ return;
940
+ }
941
+
942
+ // In a real implementation, this would be set based on the selected container
943
+ currentPayment = {
944
+ type: 'reserve',
945
+ amount: 1000, // Example amount in FFFUND tokens
946
+ containerId: 123, // Example container ID
947
+ containerName: 'Electronics Mix (40HQ)' // Example container name
948
+ };
949
+
950
+ // Show payment modal
951
+ paymentDetails.innerHTML = `
952
+ <p>You are about to reserve <strong>${currentPayment.containerName}</strong> using FFFUND tokens.</p>
953
+ <div class="mt-4 p-4 bg-gray-100 rounded-md">
954
+ <div class="flex justify-between">
955
+ <span>Container Price:</span>
956
+ <strong>${currentPayment.amount} FFFUND</strong>
957
+ </div>
958
+ <div class="flex justify-between mt-2">
959
+ <span>Service Fee (0.5%):</span>
960
+ <strong>${(currentPayment.amount * 0.005).toFixed(2)} FFFUND</strong>
961
+ </div>
962
+ <div class="flex justify-between mt-2 font-bold text-lg">
963
+ <span>Total:</span>
964
+ <strong>${(currentPayment.amount * 1.005).toFixed(2)} FFFUND</strong>
965
+ </div>
966
+ </div>
967
+ <p class="mt-4 text-sm text-gray-500">This will create a BRC-20 transfer inscription for your payment.</p>
968
+ `;
969
+
970
+ paymentModal.classList.remove('hidden');
971
+ });
972
+
973
+ // Pay service fees
974
+ payFees.addEventListener('click', function() {
975
+ if (!isUniSatConnected) {
976
+ alert('Please connect your UniSat Wallet first.');
977
+ return;
978
+ }
979
+
980
+ currentPayment = {
981
+ type: 'fee',
982
+ amount: 50, // Example fee amount in FFFUND tokens
983
+ containerId: null,
984
+ containerName: 'Service Fee Payment'
985
+ };
986
+
987
+ // Show payment modal
988
+ paymentDetails.innerHTML = `
989
+ <p>You are about to pay service fees to the Fabric Flow Fund annuity.</p>
990
+ <div class="mt-4 p-4 bg-gray-100 rounded-md">
991
+ <div class="flex justify-between font-bold text-lg">
992
+ <span>Amount:</span>
993
+ <strong>${currentPayment.amount} FFFUND</strong>
994
+ </div>
995
+ </div>
996
+ <p class="mt-4 text-sm text-gray-500">This will create a BRC-20 transfer inscription for your payment.</p>
997
+ `;
998
+
999
+ paymentModal.classList.remove('hidden');
1000
+ });
1001
+
1002
+ // Confirm payment
1003
+ confirmPayment.addEventListener('click', async function() {
1004
+ if (!isUniSatConnected) {
1005
+ alert('Wallet connection lost. Please reconnect your UniSat Wallet.');
1006
+ return;
1007
+ }
1008
+
1009
+ // Show processing status
1010
+ paymentStatus.classList.remove('hidden');
1011
+ confirmPayment.disabled = true;
1012
+ cancelPayment.disabled = true;
1013
+ statusText.textContent = 'Creating payment inscription...';
1014
+
1015
+ try {
1016
+ // Get current account
1017
+ const accounts = await window.unisat.getAccounts();
1018
+ const address = accounts[0];
1019
+
1020
+ // Create BRC-20 transfer inscription
1021
+ statusText.textContent = 'Preparing FFFUND transfer...';
1022
+ const transferResult = await createFffundTransfer(
1023
+ address,
1024
+ currentPayment.type === 'reserve' ?
1025
+ 'bc1qeycp5ucgz5se75hm557kp7v5ldv4sslmxvlcrm' : // Container payment address
1026
+ 'bitcoincash:p0s64xlle0k46qswrdd63ekq3s030lgqrw9akx3f0nk48t38wl9fxgk9skjs3', // Annuity address
1027
+ currentPayment.amount
1028
+ );
1029
+
1030
+ statusText.textContent = 'Payment successful!';
1031
+ setTimeout(() => {
1032
+ paymentModal.classList.add('hidden');
1033
+ paymentStatus.classList.add('hidden');
1034
+ confirmPayment.disabled = false;
1035
+ cancelPayment.disabled = false;
1036
+
1037
+ // Show success message
1038
+ alert(`Payment of ${currentPayment.amount} FFFUND completed successfully!`);
1039
+ }, 2000);
1040
+
1041
+ console.log('Payment result:', transferResult);
1042
+ } catch (error) {
1043
+ console.error('Payment error:', error);
1044
+ statusText.textContent = 'Payment failed: ' + error.message;
1045
+ confirmPayment.disabled = false;
1046
+ cancelPayment.disabled = false;
1047
+ }
1048
+ });
1049
+
1050
+ // Cancel payment
1051
+ cancelPayment.addEventListener('click', function() {
1052
+ paymentModal.classList.add('hidden');
1053
+ paymentStatus.classList.add('hidden');
1054
+ confirmPayment.disabled = false;
1055
+ cancelPayment.disabled = false;
1056
+ });
1057
+
1058
+ // AI Chat Functionality
1059
+ const aiChat = document.getElementById('aiChat');
1060
+ const aiInput = document.getElementById('aiInput');
1061
+ const aiSendBtn = document.getElementById('aiSendBtn');
1062
+ const quickActionBtns = document.querySelectorAll('.quick-action-btn');
1063
+
1064
+ function addBotMessage(message) {
1065
+ // Show typing indicator
1066
+ const typingIndicator = document.createElement('div');
1067
+ typingIndicator.className = 'typing-indicator';
1068
+ typingIndicator.innerHTML = '<span></span><span></span><span></span>';
1069
+ aiChat.appendChild(typingIndicator);
1070
+
1071
+ // Scroll to bottom
1072
+ aiChat.scrollTop = aiChat.scrollHeight;
1073
+
1074
+ // After delay, show message
1075
+ setTimeout(() => {
1076
+ // Remove typing indicator
1077
+ aiChat.removeChild(typingIndicator);
1078
+
1079
+ // Add message
1080
+ const messageDiv = document.createElement('div');
1081
+ messageDiv.className = 'ai-message bot';
1082
+ messageDiv.textContent = message;
1083
+ aiChat.appendChild(messageDiv);
1084
+
1085
+ // Scroll to bottom
1086
+ aiChat.scrollTop = aiChat.scrollHeight;
1087
+ }, 1500);
1088
+ }
1089
+
1090
+ function addUserMessage(message) {
1091
+ const messageDiv = document.createElement('div');
1092
+ messageDiv.className = 'ai-message user';
1093
+ messageDiv.textContent = message;
1094
+ aiChat.appendChild(messageDiv);
1095
+
1096
+ // Scroll to bottom
1097
+ aiChat.scrollTop = aiChat.scrollHeight;
1098
+ }
1099
+
1100
+ aiSendBtn.addEventListener('click', function() {
1101
+ const message = aiInput.value.trim();
1102
+ if (message) {
1103
+ addUserMessage(message);
1104
+ aiInput.value = '';
1105
+
1106
+ // Simulate bot response
1107
+ setTimeout(() => {
1108
+ const responses = [
1109
+ "I can help you find the best container arbitrage opportunities based on your criteria.",
1110
+ "Based on current market conditions, I recommend focusing on electronics from China to the US market with estimated 42% margins.",
1111
+ "I can negotiate with suppliers to get you better prices. Would you like me to proceed?",
1112
+ "I've identified 3 potential buyers in your target market who are interested in similar containers.",
1113
+ "The shipping logistics can be arranged automatically. Just confirm your purchase and I'll handle the rest."
1114
+ ];
1115
+
1116
+ const randomResponse = responses[Math.floor(Math.random() * responses.length)];
1117
+ addBotMessage(randomResponse);
1118
+ }, 1000);
1119
+ }
1120
+ });
1121
+
1122
+ aiInput.addEventListener('keypress', function(e) {
1123
+ if (e.key === 'Enter') {
1124
+ aiSendBtn.click();
1125
+ }
1126
+ });
1127
+
1128
+ quickActionBtns.forEach(btn => {
1129
+ btn.addEventListener('click', function() {
1130
+ const section = this.getAttribute('data-section');
1131
+ if (section) {
1132
+ // Close AI panel
1133
+ aiPanel.classList.remove('open');
1134
+
1135
+ // Scroll to section
1136
+ document.getElementById(section).scrollIntoView({
1137
+ behavior: 'smooth'
1138
+ });
1139
+ }
1140
+ });
1141
+ });
1142
+
1143
+ // Container card hover effect
1144
+ const containerCards = document.querySelectorAll('.container-card');
1145
+ containerCards.forEach(card => {
1146
+ card.addEventListener('mouseenter', function() {
1147
+ this.style.transition = 'transform 0.3s ease, box-shadow 0.3s ease';
1148
+ });
1149
+ });
1150
+
1151
+ // Marquee effect for market ticker
1152
+ const marquee = document.querySelector('.marquee');
1153
+ if (marquee) {
1154
+ const contentWidth = marquee.scrollWidth;
1155
+ const viewportWidth = marquee.parentElement.offsetWidth;
1156
+ const duration = (contentWidth / viewportWidth) * 15;
1157
+ marquee.style.animationDuration = `${duration}s`;
1158
+ }
1159
+
1160
+ // Function to fetch and display real container listings from Hugging Face API
1161
+ async function fetchContainerListings() {
1162
+ const containerListings = document.getElementById('containerListings');
1163
+
1164
+ try {
1165
+ // Show loading state
1166
+ containerListings.innerHTML = `
1167
+ <div class="loading-spinner"></div>
1168
+ <p class="text-center col-span-full">Loading recent arbitrage opportunities...</p>
1169
+ `;
1170
+
1171
+ // Fetch data from Hugging Face API
1172
+ const response = await fetch(ARBITRAGE_API_URL);
1173
+
1174
+ if (!response.ok) {
1175
+ throw new Error(`API request failed with status ${response.status}`);
1176
+ }
1177
+
1178
+ const data = await response.json();
1179
+
1180
+ // Clear loading state
1181
+ containerListings.innerHTML = '';
1182
+
1183
+ // Check if we have data
1184
+ if (!data || !data.length) {
1185
+ containerListings.innerHTML = `
1186
+ <div class="col-span-full text-center py-8">
1187
+ <i class="fas fa-info-circle text-blue-500 text-4xl mb-4"></i>
1188
+ <p class="text-gray-600">No recent arbitrage opportunities found. Please check back later.</p>
1189
+ </div>
1190
+ `;
1191
+ return;
1192
+ }
1193
+
1194
+ // Add listings to DOM
1195
+ data.forEach(listing => {
1196
+ const category = listing.category || 'industrial';
1197
+ const categoryClass = category === 'electronics' ? 'electronics-icon' :
1198
+ category === 'apparel' ? 'apparel-icon' : 'industrial-icon';
1199
+ const icon = category === 'electronics' ? 'fas fa-laptop' :
1200
+ category === 'apparel' ? 'fas fa-tshirt' : 'fas fa-tools';
1201
+
1202
+ const statusBadge = listing.status === 'verified' ?
1203
+ '<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800">Verified</span>' :
1204
+ listing.status === 'new' ?
1205
+ '<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-yellow-100 text-yellow-800">New Listing</span>' : '';
1206
+
1207
+ const marketRecoveryBadge = listing.market_recovery ?
1208
+ '<div class="market-recovery-badge">Tariff Recovery</div>' : '';
1209
+
1210
+ const ftaBadge = listing.fta ?
1211
+ `<div class="fta-badge">${listing.fta}</div>` : '';
1212
+
1213
+ containerListings.innerHTML += `
1214
+ <div class="container-card bg-white rounded-lg shadow-md overflow-hidden transition duration-300 ease-in-out">
1215
+ <div class="relative pb-48 overflow-hidden">
1216
+ <div class="absolute inset-0 h-full w-full ${categoryClass}">
1217
+ <i class="${icon} product-icon"></i>
1218
+ </div>
1219
+ ${marketRecoveryBadge}
1220
+ ${ftaBadge}
1221
+ <div class="absolute top-2 right-2 bg-blue-600 text-white text-xs font-bold px-2 py-1 rounded-full">
1222
+ AI Recommended
1223
+ </div>
1224
+ </div>
1225
+ <div class="p-4">
1226
+ <div class="flex items-center justify-between">
1227
+ <h3 class="text-lg font-medium text-gray-900">${listing.title || 'Container Load'}</h3>
1228
+ ${statusBadge}
1229
+ </div>
1230
+ <div class="mt-2 flex items-center text-sm text-gray-500">
1231
+ <i class="fas fa-map-marker-alt mr-1"></i>
1232
+ <span>${listing.origin || 'Unknown'} → ${listing.destination || 'Unknown'}</span>
1233
+ </div>
1234
+ <div class="mt-2">
1235
+ <span class="text-sm text-gray-500">US Tariff Rate:</span>
1236
+ <p class="text-sm font-medium text-green-600">${listing.tariff || '0%'} ${listing.fta ? '('+listing.fta+')' : ''}</p>
1237
+ </div>
1238
+ <div class="mt-2">
1239
+ <span class="text-sm text-gray-500">AI Profit Estimate:</span>
1240
+ <p class="text-sm font-medium text-green-600">${listing.roi || '40-60%'} ROI potential</p>
1241
+ </div>
1242
+ <div class="mt-4 flex justify-between items-center">
1243
+ <div>
1244
+ <span class="text-sm text-gray-500">Purchase Price:</span>
1245
+ <p class="text-lg font-bold text-gray-900">$${(listing.price || 0).toLocaleString()}</p>
1246
+ </div>
1247
+ <div class="text-right">
1248
+ <span class="text-sm text-gray-500">Est. Resale Value:</span>
1249
+ <p class="text-lg font-bold text-blue-600">$${(listing.est_value || 0).toLocaleString()}+</p>
1250
+ </div>
1251
+ </div>
1252
+ <div class="mt-4 flex space-x-2">
1253
+ <button class="flex-1 bg-blue-600 hover:bg-blue-700 text-white py-2 px-4 rounded-md text-sm font-medium">
1254
+ Buy Now
1255
+ </button>
1256
+ <button class="flex-1 bg-white hover:bg-gray-100 text-blue-600 border border-blue-600 py-2 px-4 rounded-md text-sm font-medium">
1257
+ AI Negotiate
1258
+ </button>
1259
+ </div>
1260
+ <div class="mt-3 text-center">
1261
+ <button class="text-xs text-orange-500 hover:text-orange-600 font-medium" onclick="showFffundPayment('${listing.title || 'Container'}', ${listing.price || 0})">
1262
+ <i class="fas fa-coins mr-1"></i>Reserve with FFFUND
1263
+ </button>
1264
+ </div>
1265
+ </div>
1266
+ </div>
1267
+ `;
1268
+ });
1269
+ } catch (error) {
1270
+ console.error('Error fetching container listings:', error);
1271
+ containerListings.innerHTML = `
1272
+ <div class="col-span-full text-center py-8">
1273
+ <i class="fas fa-exclamation-triangle text-yellow-500 text-4xl mb-4"></i>
1274
+ <p class="text-gray-600">Failed to load container listings. Please try again later.</p>
1275
+ <button onclick="fetchContainerListings()" class="mt-4 bg-blue-600 hover:bg-blue-700 text-white py-2 px-4 rounded-md text-sm font-medium">
1276
+ Retry
1277
+ </button>
1278
+ </div>
1279
+ `;
1280
+ }
1281
+ }
1282
+
1283
+ // Fetch container listings on page load
1284
+ fetchContainerListings();
1285
+ });
1286
+
1287
+ // Function to show FFFUND payment panel for specific container
1288
+ function showFffundPayment(containerName, price) {
1289
+ const paymentPanel = document.getElementById('paymentPanel');
1290
+ const aiPanel = document.getElementById('aiPanel');
1291
+
1292
+ paymentPanel.classList.add('open');
1293
+ aiPanel.classList.remove('open');
1294
+
1295
+ // Calculate 0.5% fee
1296
+ const fee = price * 0.005;
1297
+ const totalAmount = price + fee;
1298
+
1299
+ // In a real implementation, this would update the payment interface
1300
+ console.log(`Preparing FFFUND payment for: ${containerName}`);
1301
+ console.log(`Container price: $${price.toFixed(2)}`);
1302
+ console.log(`Annuity fee (0.5%): $${fee.toFixed(2)}`);
1303
+ console.log(`Total amount to pay: $${totalAmount.toFixed(2)}`);
1304
+
1305
+ // Show fee notice in the payment panel
1306
+ const feeNotice = document.querySelector('.fee-notice');
1307
+ if (feeNotice) {
1308
+ feeNotice.innerHTML = `* Includes <span class="fee-amount">0.5%</span> annuity fee of $${fee.toFixed(2)} (Total: $${totalAmount.toFixed(2)})`;
1309
+ }
1310
+ }
1311
+
1312
+ // Function to get FFFUND token balance
1313
+ async function getFffundBalance(address) {
1314
+ try {
1315
+ const response = await fetch(`${UNISAT_TESTNET_API_URL}/v1/indexer/address/${address}/brc20/summary`, {
1316
+ method: 'GET',
1317
+ headers: {
1318
+ 'accept': 'application/json',
1319
+ 'Authorization': `Bearer ${UNISAT_API_KEY}`
1320
+ }
1321
+ });
1322
+
1323
+ if (!response.ok) {
1324
+ throw new Error(`API request failed with status ${response.status}`);
1325
+ }
1326
+
1327
+ const data = await response.json();
1328
+ const fffundData = data.detail.find(token => token.ticker === FFFUND_TICKER);
1329
+
1330
+ return fffundData ? {
1331
+ available: fffundData.availableBalance,
1332
+ transferable: fffundData.transferableBalance
1333
+ } : {
1334
+ available: '0',
1335
+ transferable: '0'
1336
+ };
1337
+ } catch (error) {
1338
+ console.error('Error fetching FFFUND balance:', error);
1339
+ throw error;
1340
+ }
1341
+ }
1342
+
1343
+ // Function to create FFFUND transfer inscription
1344
+ async function createFffundTransfer(fromAddress, toAddress, amount) {
1345
+ try {
1346
+ // First create the order
1347
+ const orderResponse = await fetch(`${UNISAT_TESTNET_API_URL}/v1/indexer/brc20/transfer-inscribe`, {
1348
+ method: 'POST',
1349
+ headers: {
1350
+ 'accept': 'application/json',
1351
+ 'Authorization': `Bearer ${UNISAT_API_KEY}`,
1352
+ 'Content-Type': 'application/json'
1353
+ },
1354
+ body: JSON.stringify({
1355
+ "ticker": FFFUND_TICKER,
1356
+ "amount": amount.toString(),
1357
+ "feeRate": 1, // Standard fee rate
1358
+ "toAddress": toAddress
1359
+ })
1360
+ });
1361
+
1362
+ if (!orderResponse.ok) {
1363
+ throw new Error(`Order creation failed with status ${orderResponse.status}`);
1364
+ }
1365
+
1366
+ const orderData = await orderResponse.json();
1367
+ console.log('Order created:', orderData);
1368
+
1369
+ // In a real implementation, you would now:
1370
+ // 1. Show the payment address and amount to the user
1371
+ // 2. Wait for the payment to be made
1372
+ // 3. Check the payment status periodically
1373
+ // 4. Once paid, the inscription will be created
1374
+
1375
+ // For demo purposes, we'll simulate this process
1376
+ return {
1377
+ success: true,
1378
+ orderId: orderData.data.orderId,
1379
+ payAddress: orderData.data.payAddress,
1380
+ amount: orderData.data.amount,
1381
+ inscriptionId: 'simulated-inscription-id'
1382
+ };
1383
+ } catch (error) {
1384
+ console.error('Error creating FFFUND transfer:', error);
1385
+ throw error;
1386
+ }
1387
+ }
1388
+
1389
+ // Function to check if UniSat Wallet is installed
1390
+ function checkUniSatInstalled() {
1391
+ if (typeof window.unisat === 'undefined') {
1392
+ console.log('UniSat Wallet is not installed');
1393
+ return false;
1394
+ }
1395
+ return true;
1396
+ }
1397
+ </script>
1398
+ <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=privateuserh/fffund-containerarbitrage-1-00" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
1399
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Modify Compliant Arbitrage Opportunities display window to load Recent Arbitrage Opportunities from location https://huggingface.co/spaces/privateuserh/fffund-containerarbitrage-db1