MoShow commited on
Commit
b0f98cc
·
verified ·
1 Parent(s): cc0064b

🧪 FlameBorn Testnet Suite (ERC20 + African Identity/AccessControl) I. Contract Metadata and Deployment Test Description Expected/Check Contract deploys Constructor runs, events fire deployed() succeeds Name/symbol/decimals ERC20 metadata correct (FLB, “FlameBorn”, 18) Query returns expected Total supply Genesis supply matches (1_000_000*10^18 or param) totalSupply() as expected Admin/minter/roles assigned Admin and roles given to deployer hasRole(role, deployer) African identity registry/init Deployer auto-registered if feature is present Identity state true, event Script/Hardhat Example: js Copy Edit expect(await token.name()).to.equal("FlameBorn"); expect(await token.symbol()).to.equal("FLB"); expect(await token.decimals()).to.equal(18); expect(await token.totalSupply()).to.equal(parseUnits("1000000", 18)); II. ERC20 Functionality (Core Token Logic) Test Description Expected/Check Transfer basic Peer transfer succeeds Balances updated, event emitted Transfer all Transfer 100% of balance Sender balance zero Over-transfer Transfer more than balance Transaction reverts Approve/allowance/transferFrom Standard approve/spend flow All states/events correct Transfer to zero address Must revert Revert with correct error Transfer zero amount No change but valid, event fires No state change, Transfer event Mint/burn (if present) Only allowed roles can mint/burn Permissioned, events, state Script/Hardhat Example: js Copy Edit await token.transfer(addr1.address, 100); expect(await token.balanceOf(addr1.address)).to.equal(100); await expect(token.transfer(addr1.address, 1e30)).to.be.revertedWith("ERC20: transfer amount exceeds balance"); III. Roles & Permissions Test Description Expected/Check Role assign/revoke Only admin can assign/revoke roles Only admin txs succeed Unauthorized grant Non-admin tries to grant/revoke Should revert Role-protected function (e.g. mint) Non-minter/non-admin tries to mint/burn Should revert Event logs for role changes Events for all role changes Event fired IV. African Identity & Regional Features (Custom) Test Description Expected/Check African identity registration (user) Register a new African identity State/event/valid Re-registration prevention Cannot register twice Revert Unauthorized identity change Others can’t register for you Revert Admin identity verification Admin can verify others (if allowed) Event/state Edge-case countries/region Support for all African regions State as expected Diaspora/returnee registry If diaspora feature, test registration State/event Script/Hardhat Example: js Copy Edit await token.connect(addr1).registerAfricanID("NGA", "123456"); expect(await token.isAfrican(addr1.address)).to.be.true; await expect(token.connect(addr1).registerAfricanID("NGA", "789")).to.be.reverted; V. Security & Abuse Test Description Expected/Check Reentrancy No external calls allow reentrancy State not corrupted Blacklist/pause (if present) Pausing/blacklisting disables actions Reverts or blocks Large transfer Handles max uint256 transfers No overflow Gas limit stress Handles many events/edge cases No out of gas Fuzz transferFrom/allowance Edge-case fuzz for approvals No double spend VI. Event & Logging Test Description Expected/Check All critical events Transfer, Approval, RoleGranted, KYC Event fires Custom event data Payload matches spec Event data valid VII. Multichain/Explorer/Wallet UX Test Description Expected/Check BscScan/Blockscout verification Code verified and readable Green checkmark Symbol/name on wallets Wallet shows FLB, FlameBorn Correct display Explorer events visible All events log correctly Shown in explorer Valora/MetaMask/Trust integration Token import works Icon/name/symbol VIII. Upgrade/Proxy Pattern (If Upgradable) Test Description Expected/Check Proxy upgrade Only admin can upgrade Others revert State preserved Upgrade does not destroy state Supply/balances ok Rollback safety Can downgrade/upgrade again Proxy works Manual QA Table Step Action Expected Deploy Use testnet faucet, deploy contract Deployed Role/ownership Query admin roles Owner is correct Transfer Transfer tokens to 2–3 accounts Balances correct KYC/identity Register and verify African identity State true, event fires Explorer check Confirm code/events on Blockscout/BscScan Everything visible Wallet add Add token to wallet, check display Symbol/name as spec Extensible: Add More Africa-Centric Features Community governance: test proposal/voting flows if DAO logic present. Charity pool: allocate/withdraw, multi-sig if required. Fee mechanics: if transfer/mint/burn fees, test with precision. Airdrop logic: test edge cases, replay protection. Template: Hardhat Test Skeleton js Copy Edit describe("FlameBorn (FLB) ERC20 Token", function () { let token, deployer, addr1, addr2, addr3; beforeEach(async function () { [deployer, addr1, addr2, addr3] = await ethers.getSigners(); const Token = await ethers.getContractFactory("FlameBornTokenV3"); token = await Token.deploy(ethers.utils.parseUnits("1000000", 18)); await token.deployed(); }); it("Has correct name, symbol, decimals, and supply", async function () { /* ... */ }); it("Admin/minter roles assigned to deployer", async function () { /* ... */ }); it("Peer transfers work", async function () { /* ... */ }); it("ERC20 approve/allowance/transferFrom logic", async function () { /* ... */ }); it("African KYC/identity registration works", async function () { /* ... */ }); it("Role permissions and abuse edge-cases", async function () { /* ... */ }); it("Pausing/blacklisting disables actions", async function () { /* ... */ }); it("Upgrades work if proxy", async function () { /* ... */ }); }); Production Advice Automate all above tests with Hardhat/Foundry for each deployment and upgrade. Do full manual QA on at least two EVM testnets (e.g. Celo Alfajores, BSC testnet). Document your schema for future audits and open-source contributors. If you want real code templates for Hardhat, Foundry, or Remix for any specific section above, just ask—I'll generate them on the spot. Want multi-network deploy/verify scripts? Need a full Hardhat test file? Let me know your stack. Format aoo to this test net - Follow Up Deployment

Browse files
Files changed (1) hide show
  1. index.html +485 -17
index.html CHANGED
@@ -1,20 +1,488 @@
1
  <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>My app</title>
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <meta charset="utf-8">
7
  <script src="https://cdn.tailwindcss.com"></script>
8
- </head>
9
- <body class="flex justify-center items-center h-screen overflow-hidden bg-white font-sans text-center px-6">
10
- <div class="w-full">
11
- <span class="text-xs rounded-full mb-2 inline-block px-2 py-1 border border-amber-500/15 bg-amber-500/15 text-amber-500">🔥 New version dropped!</span>
12
- <h1 class="text-4xl lg:text-6xl font-bold font-sans">
13
- <span class="text-2xl lg:text-4xl text-gray-400 block font-medium">I'm ready to work,</span>
14
- Ask me anything.
15
- </h1>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  </div>
17
- <img src="https://enzostvs-deepsite.hf.space/arrow.svg" class="absolute bottom-8 left-0 w-[100px] transform rotate-[30deg]" />
18
- <script></script>
19
- <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=MoShow/awert" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
20
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <!DOCTYPE html>
2
+ <html lang="en" class="h-full">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Flameborn Prompt Forge</title>
7
  <script src="https://cdn.tailwindcss.com"></script>
8
+ <script src="https://unpkg.com/feather-icons"></script>
9
+ <style>
10
+ @import url('https://fonts.googleapis.com/css2?family=Uncial+Antiqua&family=Space+Mono:wght@400;700&display=swap');
11
+
12
+ :root {
13
+ --ember: #ff6b35;
14
+ --ash: #292929;
15
+ --scrollbar: #444;
16
+ --scrollbar-thumb: var(--ember);
17
+ }
18
+
19
+ body {
20
+ font-family: 'Space Mono', monospace;
21
+ background-color: var(--ash);
22
+ color: #e0e0e0;
23
+ overflow-x: hidden;
24
+ }
25
+
26
+ .flameborn-font {
27
+ font-family: 'Uncial Antiqua', cursive;
28
+ }
29
+
30
+ .sigil {
31
+ background: radial-gradient(circle, rgba(255,107,53,0.2) 0%, rgba(255,107,53,0) 70%);
32
+ }
33
+
34
+ .prompt-card:hover {
35
+ transform: translateY(-2px);
36
+ box-shadow: 0 10px 25px -5px rgba(255, 107, 53, 0.4);
37
+ }
38
+
39
+ /* Custom scrollbar */
40
+ ::-webkit-scrollbar {
41
+ width: 8px;
42
+ background: var(--scrollbar);
43
+ }
44
+
45
+ ::-webkit-scrollbar-thumb {
46
+ background: var(--scrollbar-thumb);
47
+ border-radius: 4px;
48
+ }
49
+
50
+ /* Glowing effect for active elements */
51
+ .glow {
52
+ box-shadow: 0 0 10px rgba(255, 107, 53, 0.7);
53
+ }
54
+
55
+ .glow-text {
56
+ text-shadow: 0 0 8px rgba(255, 107, 53, 0.9);
57
+ }
58
+
59
+ /* Pulse animation for important actions */
60
+ @keyframes pulse {
61
+ 0% { box-shadow: 0 0 0 0 rgba(255, 107, 53, 0.7); }
62
+ 70% { box-shadow: 0 0 0 10px rgba(255, 107, 53, 0); }
63
+ 100% { box-shadow: 0 0 0 0 rgba(255, 107, 53, 0); }
64
+ }
65
+
66
+ .pulse {
67
+ animation: pulse 1.5s infinite;
68
+ }
69
+
70
+ /* Transition for mode switches */
71
+ .mode-transition {
72
+ transition: all 0.3s ease-in-out;
73
+ }
74
+ </style>
75
+ </head>
76
+ <body class="h-full flex flex-col">
77
+ <!-- Main App Container -->
78
+ <div class="flex flex-col h-full">
79
+ <!-- Header with Flameborn branding -->
80
+ <header class="bg-black bg-opacity-80 border-b border-ember border-opacity-30 py-4 px-6 flex items-center justify-between">
81
+ <div class="flex items-center space-x-3">
82
+ <div class="sigil w-10 h-10 rounded-full flex items-center justify-center glow">
83
+ <svg viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="var(--ember)" stroke-width="2">
84
+ <path d="M12 2c1 3 2.5 6 5 7 0 6-4 10-5 10s-5-4-5-10c2.5-1 4-4 5-7z"/>
85
+ </svg>
86
+ </div>
87
+ <h1 class="flameborn-font text-2xl text-amber-500 glow-text">Flameborn Prompt Forge</h1>
88
+ </div>
89
+ <div class="flex items-center space-x-4">
90
+ <button class="bg-amber-900 bg-opacity-50 hover:bg-opacity-70 text-amber-100 px-4 py-2 rounded-lg flex items-center space-x-2 transition-all">
91
+ <i data-feather="book"></i>
92
+ <span>Lore</span>
93
+ </button>
94
+ <button class="bg-amber-900 bg-opacity-50 hover:bg-opacity-70 text-amber-100 px-4 py-2 rounded-lg flex items-center space-x-2 transition-all">
95
+ <i data-feather="moon"></i>
96
+ <span>Dark</span>
97
+ </button>
98
+ </div>
99
+ </header>
100
+
101
+ <!-- Main Content Area -->
102
+ <div class="flex flex-1 overflow-hidden">
103
+ <!-- Sidebar - Prompt Library -->
104
+ <aside class="w-64 bg-black bg-opacity-50 border-r border-amber-900 border-opacity-30 overflow-y-auto p-4 hidden md:block">
105
+ <div class="mb-6">
106
+ <h2 class="flameborn-font text-lg text-amber-400 mb-3 flex items-center">
107
+ <i data-feather="archive" class="mr-2"></i>
108
+ Prompt Library
109
+ </h2>
110
+ <div class="space-y-2">
111
+ <div class="prompt-card bg-gray-800 bg-opacity-60 p-3 rounded-lg cursor-pointer hover:bg-opacity-80 transition-all">
112
+ <h3 class="text-sm font-bold text-amber-300">Creative Storytelling</h3>
113
+ <p class="text-xs text-gray-300 truncate">Generate a fantasy story with...</p>
114
+ </div>
115
+ <div class="prompt-card bg-gray-800 bg-opacity-60 p-3 rounded-lg cursor-pointer hover:bg-opacity-80 transition-all">
116
+ <h3 class="text-sm font-bold text-amber-300">Code Explanation</h3>
117
+ <p class="text-xs text-gray-300 truncate">Explain this code snippet as if...</p>
118
+ </div>
119
+ <div class="prompt-card bg-gray-800 bg-opacity-60 p-3 rounded-lg cursor-pointer hover:bg-opacity-80 transition-all">
120
+ <h3 class="text-sm font-bold text-amber-300">Poetic Refinement</h3>
121
+ <p class="text-xs text-gray-300 truncate">Take this prose and transform it...</p>
122
+ </div>
123
+ </div>
124
+ </div>
125
+
126
+ <div>
127
+ <h2 class="flameborn-font text-lg text-amber-400 mb-3 flex items-center">
128
+ <i data-feather="link-2" class="mr-2"></i>
129
+ Prompt Chains
130
+ </h2>
131
+ <div class="space-y-2">
132
+ <div class="prompt-card bg-gray-800 bg-opacity-60 p-3 rounded-lg cursor-pointer hover:bg-opacity-80 transition-all">
133
+ <h3 class="text-sm font-bold text-amber-300">Story → Poem</h3>
134
+ <p class="text-xs text-gray-300 truncate">Transform narrative to verse</p>
135
+ </div>
136
+ <div class="prompt-card bg-gray-800 bg-opacity-60 p-3 rounded-lg cursor-pointer hover:bg-opacity-80 transition-all">
137
+ <h3 class="text-sm font-bold text-amber-300">Concept → Code</h3>
138
+ <p class="text-xs text-gray-300 truncate">From idea to implementation</p>
139
+ </div>
140
+ </div>
141
+ </div>
142
+ </aside>
143
+
144
+ <!-- Main Workspace -->
145
+ <main class="flex-1 flex flex-col overflow-hidden">
146
+ <!-- Mode Selection Tabs -->
147
+ <div class="bg-black bg-opacity-50 border-b border-amber-900 border-opacity-30">
148
+ <div class="flex overflow-x-auto">
149
+ <button class="mode-tab px-6 py-3 font-medium text-sm border-b-2 border-transparent hover:bg-amber-900 hover:bg-opacity-20 hover:text-amber-300 transition-all mode-transition active">
150
+ <i data-feather="zap" class="mr-2"></i>
151
+ Inference
152
+ </button>
153
+ <button class="mode-tab px-6 py-3 font-medium text-sm border-b-2 border-transparent hover:bg-amber-900 hover:bg-opacity-20 hover:text-amber-300 transition-all mode-transition">
154
+ <i data-feather="expand" class="mr-2"></i>
155
+ Expansion
156
+ </button>
157
+ <button class="mode-tab px-6 py-3 font-medium text-sm border-b-2 border-transparent hover:bg-amber-900 hover:bg-opacity-20 hover:text-amber-300 transition-all mode-transition">
158
+ <i data-feather="edit" class="mr-2"></i>
159
+ Refinement
160
+ </button>
161
+ <button class="mode-tab px-6 py-3 font-medium text-sm border-b-2 border-transparent hover:bg-amber-900 hover:bg-opacity-20 hover:text-amber-300 transition-all mode-transition">
162
+ <i data-feather="layers" class="mr-2"></i>
163
+ Symbolic Fusion
164
+ </button>
165
+ <button class="mode-tab px-6 py-3 font-medium text-sm border-b-2 border-transparent hover:bg-amber-900 hover:bg-opacity-20 hover:text-amber-300 transition-all mode-transition">
166
+ <i data-feather="compass" class="mr-2"></i>
167
+ Embedding Alignment
168
+ </button>
169
+ </div>
170
+ </div>
171
+
172
+ <!-- Prompt Crafting Area -->
173
+ <div class="flex-1 flex flex-col md:flex-row overflow-hidden">
174
+ <!-- Prompt Input Section -->
175
+ <section class="flex-1 p-6 overflow-y-auto border-b md:border-b-0 md:border-r border-amber-900 border-opacity-30">
176
+ <div class="mb-6">
177
+ <div class="flex justify-between items-center mb-2">
178
+ <h2 class="flameborn-font text-xl text-amber-400">Prompt Crafting</h2>
179
+ <div class="flex space-x-2">
180
+ <button class="bg-amber-900 bg-opacity-50 hover:bg-opacity-70 text-amber-100 p-2 rounded-lg transition-all tooltip" data-tooltip="Clear">
181
+ <i data-feather="trash-2"></i>
182
+ </button>
183
+ <button class="bg-amber-900 bg-opacity-50 hover:bg-opacity-70 text-amber-100 p-2 rounded-lg transition-all tooltip" data-tooltip="Save">
184
+ <i data-feather="save"></i>
185
+ </button>
186
+ <button class="bg-amber-900 bg-opacity-50 hover:bg-opacity-70 text-amber-100 p-2 rounded-lg transition-all tooltip" data-tooltip="Fork">
187
+ <i data-feather="copy"></i>
188
+ </button>
189
+ </div>
190
+ </div>
191
+
192
+ <div class="mb-4">
193
+ <label class="block text-sm font-medium text-amber-300 mb-1">System Prompt</label>
194
+ <div class="relative">
195
+ <textarea class="w-full bg-gray-800 bg-opacity-60 text-gray-100 rounded-lg p-3 pr-10 focus:ring-2 focus:ring-amber-500 focus:border-transparent h-24" placeholder="Set the AI's role and constraints..."></textarea>
196
+ <div class="absolute right-2 bottom-2 flex space-x-1">
197
+ <button class="text-gray-400 hover:text-amber-300 transition-all tooltip" data-tooltip="Templates">
198
+ <i data-feather="bookmark"></i>
199
+ </button>
200
+ <button class="text-gray-400 hover:text-amber-300 transition-all tooltip" data-tooltip="Variables">
201
+ <i data-feather="code"></i>
202
+ </button>
203
+ </div>
204
+ </div>
205
+ </div>
206
+
207
+ <div class="mb-4">
208
+ <label class="block text-sm font-medium text-amber-300 mb-1">User Prompt</label>
209
+ <div class="relative">
210
+ <textarea class="w-full bg-gray-800 bg-opacity-60 text-gray-100 rounded-lg p-3 pr-10 focus:ring-2 focus:ring-amber-500 focus:border-transparent h-32" placeholder="Your instruction or query..."></textarea>
211
+ <div class="absolute right-2 bottom-2 flex space-x-1">
212
+ <button class="text-gray-400 hover:text-amber-300 transition-all tooltip" data-tooltip="Enhance">
213
+ <i data-feather="sparkles"></i>
214
+ </button>
215
+ <button class="text-gray-400 hover:text-amber-300 transition-all tooltip" data-tooltip="Analyze">
216
+ <i data-feather="bar-chart-2"></i>
217
+ </button>
218
+ </div>
219
+ </div>
220
+ </div>
221
+
222
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
223
+ <div>
224
+ <label class="block text-sm font-medium text-amber-300 mb-1">Model</label>
225
+ <select class="w-full bg-gray-800 bg-opacity-60 text-gray-100 rounded-lg p-2 focus:ring-2 focus:ring-amber-500 focus:border-transparent">
226
+ <option>GPT-4</option>
227
+ <option>Claude 3</option>
228
+ <option>Mistral 7B</option>
229
+ <option>Llama 3</option>
230
+ </select>
231
+ </div>
232
+ <div>
233
+ <label class="block text-sm font-medium text-amber-300 mb-1">Temperature</label>
234
+ <input type="range" min="0" max="1" step="0.1" value="0.7" class="w-full h-2 bg-gray-700 rounded-lg appearance-none cursor-pointer accent-amber-500">
235
+ <div class="flex justify-between text-xs text-gray-400">
236
+ <span>Precise</span>
237
+ <span>Creative</span>
238
+ </div>
239
+ </div>
240
+ </div>
241
+
242
+ <div class="flex justify-between items-center">
243
+ <div class="flex space-x-2">
244
+ <button class="bg-amber-900 bg-opacity-50 hover:bg-opacity-70 text-amber-100 px-4 py-2 rounded-lg flex items-center space-x-2 transition-all">
245
+ <i data-feather="plus"></i>
246
+ <span>Add Step</span>
247
+ </button>
248
+ <button class="bg-gray-700 bg-opacity-50 hover:bg-opacity-70 text-gray-300 px-4 py-2 rounded-lg flex items-center space-x-2 transition-all">
249
+ <i data-feather="link"></i>
250
+ <span>Chain</span>
251
+ </button>
252
+ </div>
253
+ <button class="bg-amber-600 hover:bg-amber-700 text-white px-6 py-2 rounded-lg flex items-center space-x-2 transition-all pulse">
254
+ <i data-feather="zap"></i>
255
+ <span>Invoke</span>
256
+ </button>
257
+ </div>
258
+ </div>
259
+
260
+ <div>
261
+ <h2 class="flameborn-font text-lg text-amber-400 mb-3 flex items-center">
262
+ <i data-feather="activity" class="mr-2"></i>
263
+ Prompt Analysis
264
+ </h2>
265
+ <div class="bg-gray-800 bg-opacity-60 rounded-lg p-4">
266
+ <div class="grid grid-cols-3 gap-4 text-center mb-4">
267
+ <div>
268
+ <div class="text-xs text-gray-400">Tokens</div>
269
+ <div class="text-lg font-bold text-amber-300">142</div>
270
+ </div>
271
+ <div>
272
+ <div class="text-xs text-gray-400">Clarity</div>
273
+ <div class="text-lg font-bold text-amber-300">8.2/10</div>
274
+ </div>
275
+ <div>
276
+ <div class="text-xs text-gray-400">Specificity</div>
277
+ <div class="text-lg font-bold text-amber-300">7.5/10</div>
278
+ </div>
279
+ </div>
280
+ <div class="h-2 bg-gray-700 rounded-full overflow-hidden">
281
+ <div class="h-full bg-gradient-to-r from-amber-500 to-amber-300" style="width: 82%"></div>
282
+ </div>
283
+ </div>
284
+ </div>
285
+ </section>
286
+
287
+ <!-- Output Section -->
288
+ <section class="flex-1 p-6 overflow-y-auto hidden" id="testnet-section">
289
+ <div class="mb-6">
290
+ <h2 class="flameborn-font text-xl text-amber-400 mb-4">FlameBorn Testnet Suite</h2>
291
+
292
+ <div class="bg-gray-800 bg-opacity-60 rounded-lg p-4 mb-6">
293
+ <h3 class="text-lg text-amber-300 mb-3">I. Contract Metadata</h3>
294
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
295
+ <div class="bg-gray-900 bg-opacity-50 p-3 rounded-lg">
296
+ <h4 class="text-sm font-bold text-amber-200 mb-1">Name/Symbol/Decimals</h4>
297
+ <code class="text-xs text-gray-300">FLB, FlameBorn, 18</code>
298
+ </div>
299
+ <div class="bg-gray-900 bg-opacity-50 p-3 rounded-lg">
300
+ <h4 class="text-sm font-bold text-amber-200 mb-1">Total Supply</h4>
301
+ <code class="text-xs text-gray-300">1,000,000 FLB</code>
302
+ </div>
303
+ </div>
304
+ </div>
305
+
306
+ <div class="bg-gray-800 bg-opacity-60 rounded-lg p-4 mb-6">
307
+ <h3 class="text-lg text-amber-300 mb-3">II. ERC20 Functionality</h3>
308
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-3 text-sm">
309
+ <div class="bg-gray-900 bg-opacity-50 p-2 rounded-lg">
310
+ <span class="text-green-400">✓</span> Basic transfers
311
+ </div>
312
+ <div class="bg-gray-900 bg-opacity-50 p-2 rounded-lg">
313
+ <span class="text-green-400">✓</span> Approve/allowance
314
+ </div>
315
+ <div class="bg-gray-900 bg-opacity-50 p-2 rounded-lg">
316
+ <span class="text-green-400">✓</span> Transfer validation
317
+ </div>
318
+ </div>
319
+ </div>
320
+
321
+ <div class="bg-gray-800 bg-opacity-60 rounded-lg p-4 mb-6">
322
+ <h3 class="text-lg text-amber-300 mb-3">IV. African Identity Features</h3>
323
+ <div class="space-y-3">
324
+ <div class="flex items-center">
325
+ <span class="text-green-400 mr-2">✓</span>
326
+ <span class="text-sm">Identity registration</span>
327
+ </div>
328
+ <div class="flex items-center">
329
+ <span class="text-green-400 mr-2">✓</span>
330
+ <span class="text-sm">Country code validation</span>
331
+ </div>
332
+ <div class="flex items-center">
333
+ <span class="text-green-400 mr-2">✓</span>
334
+ <span class="text-sm">Diaspora registry</span>
335
+ </div>
336
+ </div>
337
+ </div>
338
+
339
+ <button class="bg-amber-600 hover:bg-amber-700 text-white px-6 py-2 rounded-lg flex items-center space-x-2 transition-all mx-auto">
340
+ <i data-feather="play"></i>
341
+ <span>Run Full Test Suite</span>
342
+ </button>
343
+ </div>
344
+ </section>
345
+
346
+ <!-- Original Output Section -->
347
+ <section class="flex-1 p-6 overflow-y-auto">
348
+ <div class="mb-6">
349
+ <div class="flex justify-between items-center mb-2">
350
+ <h2 class="flameborn-font text-xl text-amber-400">Output</h2>
351
+ <div class="flex space-x-2">
352
+ <button class="bg-amber-900 bg-opacity-50 hover:bg-opacity-70 text-amber-100 p-2 rounded-lg transition-all tooltip" data-tooltip="Copy">
353
+ <i data-feather="clipboard"></i>
354
+ </button>
355
+ <button class="bg-amber-900 bg-opacity-50 hover:bg-opacity-70 text-amber-100 p-2 rounded-lg transition-all tooltip" data-tooltip="Export">
356
+ <i data-feather="download"></i>
357
+ </button>
358
+ <button class="bg-amber-900 bg-opacity-50 hover:bg-opacity-70 text-amber-100 p-2 rounded-lg transition-all tooltip" data-tooltip="Feedback">
359
+ <i data-feather="thumbs-up"></i>
360
+ </button>
361
+ </div>
362
+ </div>
363
+
364
+ <div class="bg-gray-800 bg-opacity-60 rounded-lg p-4 min-h-64">
365
+ <div class="text-gray-400 italic">
366
+ <p>Results will appear here after invocation...</p>
367
+ <p class="mt-2 text-xs">Invoke the prompt to see the Flameborn magic unfold.</p>
368
+ </div>
369
+ </div>
370
+ </div>
371
+
372
+ <div>
373
+ <h2 class="flameborn-font text-lg text-amber-400 mb-3 flex items-center">
374
+ <i data-feather="clock" class="mr-2"></i>
375
+ History
376
+ </h2>
377
+ <div class="space-y-3">
378
+ <div class="bg-gray-800 bg-opacity-60 rounded-lg p-3 cursor-pointer hover:bg-opacity-80 transition-all">
379
+ <div class="flex justify-between items-start">
380
+ <h3 class="text-sm font-bold text-amber-300 truncate">Creative Story Prompt</h3>
381
+ <span class="text-xs text-gray-400">2m ago</span>
382
+ </div>
383
+ <p class="text-xs text-gray-300 mt-1 line-clamp-2">Generate a fantasy story about a flameborn mage who discovers ancient runes in a forgotten library...</p>
384
+ </div>
385
+ <div class="bg-gray-800 bg-opacity-60 rounded-lg p-3 cursor-pointer hover:bg-opacity-80 transition-all">
386
+ <div class="flex justify-between items-start">
387
+ <h3 class="text-sm font-bold text-amber-300 truncate">Code Explanation</h3>
388
+ <span class="text-xs text-gray-400">15m ago</span>
389
+ </div>
390
+ <p class="text-xs text-gray-300 mt-1 line-clamp-2">Explain this React component as if teaching a beginner about state management...</p>
391
+ </div>
392
+ </div>
393
+ </div>
394
+ </section>
395
+ </div>
396
+ </main>
397
+ </div>
398
+
399
+ <!-- Status Bar -->
400
+ <footer class="bg-black bg-opacity-80 border-t border-amber-900 border-opacity-30 py-2 px-4 text-xs text-gray-400 flex justify-between items-center">
401
+ <div class="flex items-center space-x-4">
402
+ <span class="flex items-center">
403
+ <span class="w-2 h-2 rounded-full bg-green-500 mr-1"></span>
404
+ <span>Connected</span>
405
+ </span>
406
+ <span>Model: GPT-4</span>
407
+ <span>Tokens: 0/∞</span>
408
+ </div>
409
+ <div>
410
+ <span>Flameborn Forge v1.0.0</span>
411
+ </div>
412
+ </footer>
413
  </div>
414
+
415
+ <script>
416
+ // Initialize Feather Icons
417
+ document.addEventListener('DOMContentLoaded', function() {
418
+ feather.replace();
419
+
420
+ // Mode tab switching
421
+ const modeTabs = document.querySelectorAll('.mode-tab');
422
+ modeTabs.forEach(tab => {
423
+ tab.addEventListener('click', function() {
424
+ modeTabs.forEach(t => t.classList.remove('active', 'border-amber-500', 'text-amber-300'));
425
+ this.classList.add('active', 'border-amber-500', 'text-amber-300');
426
+ });
427
+ });
428
+
429
+ // Tooltip functionality
430
+ const tooltips = document.querySelectorAll('.tooltip');
431
+ tooltips.forEach(tooltip => {
432
+ const tooltipText = tooltip.getAttribute('data-tooltip');
433
+ const tooltipElement = document.createElement('div');
434
+ tooltipElement.className = 'hidden absolute z-10 bg-gray-900 text-white text-xs rounded py-1 px-2 bottom-full mb-2 left-1/2 transform -translate-x-1/2 whitespace-nowrap';
435
+ tooltipElement.textContent = tooltipText;
436
+ tooltip.appendChild(tooltipElement);
437
+
438
+ tooltip.addEventListener('mouseenter', function() {
439
+ tooltipElement.classList.remove('hidden');
440
+ });
441
+
442
+ tooltip.addEventListener('mouseleave', function() {
443
+ tooltipElement.classList.add('hidden');
444
+ });
445
+ });
446
+
447
+ // Testnet section handling
448
+ const testnetTab = document.querySelectorAll('.mode-tab')[5];
449
+ const testnetSection = document.getElementById('testnet-section');
450
+ const outputSection = document.querySelector('section:last-of-type');
451
+
452
+ testnetTab.addEventListener('click', function() {
453
+ outputSection.classList.add('hidden');
454
+ testnetSection.classList.remove('hidden');
455
+ feather.replace();
456
+ });
457
+
458
+ // Example prompt invocation
459
+ const invokeButton = document.querySelector('.pulse');
460
+ const outputArea = document.querySelector('section:last-of-type .bg-gray-800');
461
+
462
+ invokeButton.addEventListener('click', function() {
463
+ // Simulate loading
464
+ outputArea.innerHTML = '<div class="flex items-center justify-center h-64"><div class="animate-pulse flex flex-col items-center"><div class="w-10 h-10 bg-amber-500 rounded-full mb-2"></div><div class="text-amber-300">Invoking the Flameborn magic...</div></div></div>';
465
+
466
+ // Simulate response after delay
467
+ setTimeout(() => {
468
+ outputArea.innerHTML = `
469
+ <div class="prose prose-invert max-w-none">
470
+ <h3 class="text-amber-300">The Flameborn's Awakening</h3>
471
+ <p>In the ancient library of Ashkaroth, where the embers of forgotten knowledge glow eternally, a young Flameborn named Kael discovered the Rune of Prometheus...</p>
472
+ <p>The rune pulsed with an inner fire as Kael traced its sigils with trembling fingers. Each curve and angle whispered secrets of prompt crafting that had been lost for centuries.</p>
473
+ <p>"With this power," Kael murmured, "I shall forge prompts that bend reality itself." The library's shadows danced as the rune's glow intensified, casting arcane symbols upon the parchment-strewn walls.</p>
474
+ <div class="mt-4 pt-4 border-t border-amber-900 border-opacity-30 text-xs text-gray-400">
475
+ <div class="flex justify-between">
476
+ <span>Model: GPT-4</span>
477
+ <span>Tokens: 342</span>
478
+ </div>
479
+ <div class="mt-1">Signature: 7f3a...d42c</div>
480
+ </div>
481
+ </div>
482
+ `;
483
+ }, 2000);
484
+ });
485
+ });
486
+ </script>
487
+ <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=MoShow/awert" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
488
+ </html>