v0.1.0-pre.054

This commit is contained in:
2026-07-26 01:55:35 +02:00
parent 4e76263f88
commit 068eb9ece5
32 changed files with 12958 additions and 5450 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: kb-app-demo-desktop/frontend/demo_execution_spl.html -->
<!-- version: 8 -->
<!-- version: 9 -->
<!DOCTYPE html>
<html lang="fr">
<head>
@@ -12,15 +12,9 @@
<body class="app-body">
<header class="app-header bg-dark text-light">
<nav class="container-fluid h-100 d-flex align-items-center justify-content-between px-4">
<div class="d-flex align-items-center gap-3">
<div class="navbar-brand d-flex align-items-center mb-0">
<img alt="Logo" src="imgs/logo.png" class="app-logo" />
<span class="ps-2 fs-4 fw-bold text-primary font-logo">Bot3</span>
</div>
<div>
<h1 class="h4 mb-0">Exécution SPL Devnet</h1>
<small class="text-light-emphasis">Memo, SPL Token classique, Token-2022 et ATA — simulation-first et replay post-exécution</small>
</div>
<div class="navbar-brand d-flex align-items-center mb-0">
<img alt="Logo Khadhroony" src="imgs/logo.png" class="app-logo" />
<span class="ps-2 fs-4 fw-bold text-primary font-logo">Bot3</span>
</div>
<div class="d-flex align-items-center gap-2">
<span class="badge text-bg-success" id="executionStatusBadge">Prêt</span>
@@ -31,6 +25,10 @@
<main class="app-main">
<div class="osb-scrollable pt-1 pb-4" data-simplebar="">
<div class="container-fluid py-4 px-4">
<div class="card shadow-sm border-0 mb-4"><div class="card-body">
<h1 class="h3 card-title mb-2">Exécution SPL Devnet</h1>
<p class="text-body-secondary mb-0">Memo, SPL Token classique, Token-2022 et ATA — simulation-first et replay post-exécution.</p>
</div></div>
<div class="alert alert-warning" role="alert">
Cette fenêtre est limitée à Devnet. La clé privée du wallet source reste dans le backend Rust et nest jamais transmise à la WebView.
</div>
@@ -162,7 +160,7 @@
<label class="form-label" for="ataTokenProgramSelect">Token Program cible</label>
<select class="form-select" id="ataTokenProgramSelect">
<option value="classic">SPL Token classique</option>
<option value="token_2022">Token-2022</option>
<option value="token2022">Token-2022</option>
</select>
</div>
<div class="col-12 col-md-6">
@@ -199,21 +197,21 @@
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header" id="splToken2022DecoderHeading"><button aria-controls="splToken2022DecoderCollapse" aria-expanded="false" class="accordion-button collapsed" data-bs-target="#splToken2022DecoderCollapse" data-bs-toggle="collapse" type="button"><span class="d-flex flex-wrap align-items-center justify-content-between gap-2 w-100 me-2"><span>Exécution spl_token_2022 — scénarios publics</span><span class="badge text-bg-success">Exécutable</span></span></button></h2>
<h2 class="accordion-header" id="splToken2022DecoderHeading"><button aria-controls="splToken2022DecoderCollapse" aria-expanded="false" class="accordion-button collapsed" data-bs-target="#splToken2022DecoderCollapse" data-bs-toggle="collapse" type="button"><span class="d-flex flex-wrap align-items-center justify-content-between gap-2 w-100 me-2"><span>Exécution spl_token2022 — scénarios publics</span><span class="badge text-bg-success">Exécutable</span></span></button></h2>
<div aria-labelledby="splToken2022DecoderHeading" class="accordion-collapse collapse" data-bs-parent="#decoderExecutionAccordion" id="splToken2022DecoderCollapse">
<div class="accordion-body">
<div class="alert alert-info">Chaque opération est simulée sur le message exact avant toute signature. Les scénarios sont indépendants et réutilisent la fixture chargée dans les deux terminaux.</div>
<div class="d-grid mb-3"><button class="btn btn-outline-secondary" id="loadToken2022FixtureButton" type="button">Charger la fixture Token-2022</button></div>
<div class="form-text mb-3" id="token2022FixtureHelp">Aucune fixture chargée.</div>
<div class="mb-3"><label class="form-label" for="token2022ScenarioSelect">Scénario</label><select class="form-select" id="token2022ScenarioSelect">
<option value="token_2022_mint_to_checked">MintToChecked</option>
<option value="token_2022_transfer_checked">TransferChecked</option>
<option value="token_2022_approve_checked">ApproveChecked</option>
<option value="token_2022_revoke">Revoke</option>
<option value="token_2022_burn_checked">BurnChecked</option>
<option value="token_2022_freeze_account">FreezeAccount</option>
<option value="token_2022_thaw_account">ThawAccount</option>
<option value="token_2022_close_destination">CloseAccount</option>
<option value="token2022_mint_to_checked">MintToChecked</option>
<option value="token2022_transfer_checked">TransferChecked</option>
<option value="token2022_approve_checked">ApproveChecked</option>
<option value="token2022_revoke">Revoke</option>
<option value="token2022_burn_checked">BurnChecked</option>
<option value="token2022_freeze_account">FreezeAccount</option>
<option value="token2022_thaw_account">ThawAccount</option>
<option value="token2022_close_destination">CloseAccount</option>
</select></div>
<div class="mb-3"><label class="form-label" for="token2022SourceInput">Compte source / compte cible</label><input class="form-control font-monospace" id="token2022SourceInput" type="text" /></div>
<div class="mb-3"><label class="form-label" for="token2022MintInput">Mint Token-2022</label><input class="form-control font-monospace" id="token2022MintInput" type="text" /></div>
@@ -263,7 +261,7 @@
</h2>
<div class="accordion-collapse collapse" data-bs-parent="#executionDetailsAccordion" id="executionPlanCollapse">
<div class="accordion-body">
<textarea class="form-control font-monospace" id="executionPlanOutput" readonly="" rows="16">Aucun plan.</textarea>
<textarea class="form-control font-monospace" id="executionPlanOutput" readonly="" rows="16" data-json-viewer="true">Aucun plan.</textarea>
</div>
</div>
</div>
@@ -273,7 +271,7 @@
</h2>
<div class="accordion-collapse collapse" data-bs-parent="#executionDetailsAccordion" id="executionSimulationCollapse">
<div class="accordion-body">
<textarea class="form-control font-monospace" id="executionSimulationOutput" readonly="" rows="16">Aucune simulation.</textarea>
<textarea class="form-control font-monospace" id="executionSimulationOutput" readonly="" rows="16" data-json-viewer="true">Aucune simulation.</textarea>
</div>
</div>
</div>
@@ -283,7 +281,7 @@
</h2>
<div class="accordion-collapse collapse" data-bs-parent="#executionDetailsAccordion" id="executionDiagnosticsCollapse">
<div class="accordion-body">
<textarea class="form-control font-monospace" id="executionDiagnosticsOutput" readonly="" rows="16">Aucun diagnostic.</textarea>
<textarea class="form-control font-monospace" id="executionDiagnosticsOutput" readonly="" rows="16" data-json-viewer="true">Aucun diagnostic.</textarea>
</div>
</div>
</div>
@@ -405,7 +403,7 @@
<div class="card shadow-sm border-0 mt-4">
<div class="card-body">
<h2 class="h5 mb-3">Résumé</h2>
<textarea class="form-control font-monospace" id="executionSummaryOutput" readonly="" rows="14">Aucun résultat.</textarea>
<textarea class="form-control font-monospace" id="executionSummaryOutput" readonly="" rows="14" data-json-viewer="true">Aucun résultat.</textarea>
</div>
</div>
<div class="card shadow-sm border-0 mt-4">
@@ -430,4 +428,4 @@
<script defer="" src="ts/demo_execution_spl.ts" type="module"></script>
</body>
</html>
</html>