v0.4.8-pre.010

This commit is contained in:
2026-08-06 17:26:14 +02:00
parent b314bfc244
commit 3167297283
40 changed files with 2556 additions and 1125 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: kb-app-demo-desktop/frontend/demo_execution_metadata.html -->
<!-- version: 9 -->
<!-- version: 10 -->
<!DOCTYPE html>
<html lang="fr">
@@ -23,20 +23,27 @@
<main class="app-main">
<div class="osb-scrollable pt-1 pb-4" data-simplebar>
<div class="container-fluid px-4 py-4">
<div class="alert alert-info">Cette fenêtre accueille les familles dexécution metadata. Metaplex Token Metadata est la première famille ; SPL Token Metadata sera ajouté ultérieurement sans changer la frontière de la fenêtre.</div>
<div class="alert alert-info">Cette fenêtre sépare les familles metadata. Metaplex Token Metadata conserve ses scénarios propres ; Solana Program Metadata exécute les neuf opérations stables de <code>ProgM6…</code> via deux parcours Devnet. Token-2022 Token Metadata sera ajouté dans une étape ultérieure.</div>
<div class="accordion shadow-sm mb-4" id="metadataGuideAccordion">
<div class="accordion-item">
<h2 class="accordion-header"><button class="accordion-button collapsed" data-bs-target="#metadataGuideCollapse" data-bs-toggle="collapse" type="button">Guide dexécution Metaplex Devnet</button></h2>
<h2 class="accordion-header"><button class="accordion-button collapsed" data-bs-target="#metadataGuideCollapse" data-bs-toggle="collapse" type="button">Guide dexécution Metadata Devnet</button></h2>
<div class="accordion-collapse collapse" id="metadataGuideCollapse" data-bs-parent="#metadataGuideAccordion">
<div class="accordion-body">
<ol class="mb-2">
<h3 class="h6">Metaplex Token Metadata</h3>
<ol class="mb-3">
<li>Choisir un profil Devnet puis préparer sa base PostgreSQL.</li>
<li>Choisir le parcours Devnet puis son étape. Le parcours actuellement exécutable couvre <code>create</code> puis <code>update</code> sur un NFT classique.</li>
<li>Cliquer sur <strong>Préparer létape courante</strong> : lintent, les lectures stateful et les postconditions sont générés ensemble.</li>
<li>Lancer dabord une simulation. La soumission exige les deux confirmations explicites.</li>
<li>Contrôler le journal, le plan exact, la simulation RPC, la signature éventuelle et les états avant/après.</li>
<li>Choisir le parcours Devnet puis son étape.</li>
<li>Préparer létape afin de générer ensemble lintent, les lectures stateful et les postconditions.</li>
<li>Lancer dabord une simulation. La soumission exige une confirmation explicite.</li>
</ol>
<div class="small text-muted">Les chaînes entre chevrons sont des placeholders non exécutables. Ne jamais les soumettre telles quelles.</div>
<h3 class="h6">Solana Program Metadata</h3>
<ol class="mb-2">
<li>Choisir et préparer un profil Devnet persistant, autorisé à soumettre.</li>
<li>Contrôler les deux parcours et leurs neuf étapes dans linventaire.</li>
<li>Confirmer la campagne complète : deux transferts de préfinancement puis neuf transactions <code>ProgM6…</code>.</li>
<li>Contrôler les simulations, signatures, confirmations, lectures avant/après, postconditions et snapshots matérialisés.</li>
</ol>
<div class="small text-muted">La campagne Solana Program Metadata est indivisible : elle crée des PDA frais et arrête immédiatement le parcours au premier échec ou à la première preuve manquante.</div>
</div>
</div>
</div>
@@ -80,7 +87,7 @@
<button class="btn btn-outline-secondary flex-fill" id="nextMetadataStepButton" type="button">Étape suivante</button>
</div>
<div class="d-grid mt-2"><button class="btn btn-outline-success" id="prepareMetadataScenarioStepButton" type="button">Préparer létape courante</button></div>
<div class="form-text">Le scénario remplit ensemble lintent, les lectures avant/après et les cibles de matérialisation. Les étapes non encore préparables sont refusées explicitement.</div>
<div class="form-text">Le scénario remplit ensemble lintent, les lectures avant/après et les cibles de matérialisation.</div>
<label class="form-label mt-3" for="metadataOperationJson">Intent Metaplex typé</label>
<textarea class="form-control font-monospace" id="metadataOperationJson" rows="12" spellcheck="false"></textarea>
<label class="form-label mt-3" for="metadataPreflightReadsJson">Lectures stateful avant simulation</label>
@@ -106,11 +113,36 @@
</div>
</div>
<div class="d-grid mt-3">
<button class="btn btn-primary" id="refreshMetadataScenariosButton" type="button">Recharger les contrats</button>
<button class="btn btn-primary" id="refreshMetadataScenariosButton" type="button">Recharger les contrats Metaplex</button>
</div>
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" data-bs-target="#solanaProgramMetadataCollapse" data-bs-toggle="collapse" type="button">Solana Program Metadata</button>
</h2>
<div class="accordion-collapse collapse" id="solanaProgramMetadataCollapse" data-bs-parent="#metadataExecutionAccordion">
<div class="accordion-body">
<label class="form-label" for="solanaProgramMetadataProfileSelect">Profil Devnet</label>
<select class="form-select" id="solanaProgramMetadataProfileSelect"></select>
<div class="form-text mb-3" id="solanaProgramMetadataProfileHelp">Chargement du profil Devnet.</div>
<div class="d-grid"><button class="btn btn-outline-primary" id="prepareSolanaProgramMetadataProfileButton" type="button">Charger le profil et préparer la base</button></div>
<div class="d-flex justify-content-between align-items-center mt-3"><span class="small text-muted">État du profil</span><span class="badge text-bg-secondary" id="solanaProgramMetadataProfileStatusBadge">Non chargé</span></div>
<div class="mt-3" id="solanaProgramMetadataProfileOutput"></div>
<label class="form-label mt-3" for="solanaProgramMetadataScenarioSelect">Parcours</label>
<select class="form-select" id="solanaProgramMetadataScenarioSelect"></select>
<div class="mt-3" id="solanaProgramMetadataScenarioOutput"></div>
<div class="alert alert-warning mt-3">Cette campagne soumet onze transactions : deux transferts de préfinancement et les neuf opérations stables. Elle utilise des PDA frais et ne peut pas reprendre au milieu dun parcours.</div>
<div class="form-check mt-3">
<input class="form-check-input" id="solanaProgramMetadataOperatorConfirmed" type="checkbox">
<label class="form-check-label" for="solanaProgramMetadataOperatorConfirmed">Je confirme le préfinancement et les neuf mutations Devnet</label>
</div>
<div class="d-grid mt-3"><button class="btn btn-danger" id="executeSolanaProgramMetadataCampaignButton" type="button">Exécuter la campagne complète</button></div>
<div class="form-text">Le runner arrête la campagne dès quune simulation, une confirmation, une postcondition ou une matérialisation requise échoue.</div>
</div>
</div>
</div>
</div>
<div class="card shadow-sm border-0 mt-4">
<div class="card-body">
@@ -152,4 +184,4 @@
<script type="module" src="ts/demo_execution_metadata.ts"></script>
</body>
</html>
</html>