v0.2.6-pre.008

This commit is contained in:
2026-08-21 11:36:28 +02:00
parent 787df2861f
commit 1a9edd14e1
19 changed files with 902 additions and 45 deletions

View File

@@ -42,7 +42,7 @@
<h1 id="viewTitle" class="h3 mb-1">Dashboard</h1>
<p class="text-body-secondary mb-0">Identité autorisée et balance SOL via le Transport HTTP composite sont actives.</p>
</div>
<span class="badge text-bg-secondary">0.2.6-pre.007</span>
<span class="badge text-bg-secondary">0.2.6-pre.008</span>
</div>
<section data-view-panel="dashboard">
<div class="row g-3">
@@ -163,6 +163,71 @@
Les passwords sont envoyés uniquement du frontend vers Rust pour l'opération courante. Ils ne sont jamais renvoyés par Rust ni journalisés.
</div>
</div>
<div class="col-12">
<div class="card shadow-sm">
<div class="card-header fw-semibold">Importer un keypair Solana vers un wallet KSP</div>
<div class="card-body">
<div class="row g-3 mb-3">
<div class="col-md-5">
<label class="form-label" for="importTransferFormat">Format source</label>
<select id="importTransferFormat" class="form-select">
<option value="solana_cli_json">Solana CLI JSON</option>
<option value="solana_keypair_base58">Keypair Base58 complet</option>
</select>
</div>
<div class="col-md-7 d-flex align-items-end">
<button id="inspectImportSource" class="btn btn-outline-primary" type="button">
<i class="fa-solid fa-folder-open me-2" aria-hidden="true"></i>Choisir et inspecter la source
</button>
</div>
<div class="col-12">
<div class="alert alert-secondary mb-0">
<div><strong>Source :</strong> <span id="importSourceName"></span></div>
<div><strong>Format :</strong> <span id="importSourceFormat"></span></div>
<div><strong>Pubkey inspectée :</strong> <span id="importSourcePubkey" class="text-break"></span></div>
<div class="small text-body-secondary mt-2">Le chemin et le contenu secret restent exclusivement côté Rust. Le frontend ne reçoit que cette projection publique.</div>
</div>
</div>
</div>
<form id="importWalletForm" autocomplete="off">
<div class="row g-3">
<div class="col-md-6">
<label class="form-label" for="importWalletFilename">Destination .kspwallet</label>
<input id="importWalletFilename" class="form-control" type="text" value="imported-01.kspwallet" required spellcheck="false">
</div>
<div class="col-md-6">
<label class="form-label" for="importWalletAlias">Alias interne optionnel</label>
<input id="importWalletAlias" class="form-control" type="text" autocomplete="off">
</div>
<div class="col-md-6">
<label class="form-label" for="importWalletOwnerPassword">Nouveau OWNER password</label>
<input id="importWalletOwnerPassword" class="form-control" type="password" autocomplete="new-password" required>
</div>
<div class="col-md-6 d-flex align-items-end">
<div class="form-check mb-2">
<input id="importWalletEnableView" class="form-check-input" type="checkbox">
<label class="form-check-label" for="importWalletEnableView">Créer aussi une capability VIEW</label>
</div>
</div>
<div class="col-md-6">
<label class="form-label" for="importWalletViewPassword">Nouveau VIEW password</label>
<input id="importWalletViewPassword" class="form-control" type="password" autocomplete="new-password" disabled>
</div>
<div class="col-12">
<label class="form-label" for="importWalletInitialNote">Note initiale optionnelle</label>
<textarea id="importWalletInitialNote" class="form-control" rows="3" autocomplete="off"></textarea>
</div>
<div class="col-12 d-flex align-items-center gap-3">
<button id="importWalletSubmit" class="btn btn-primary" type="submit" disabled>
<i class="fa-solid fa-file-import me-2" aria-hidden="true"></i>Import wallet
</button>
<span id="importWalletStatus" class="text-body-secondary" role="status">Choisir une source.</span>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</section>
<section data-view-panel="details" hidden>
@@ -246,7 +311,7 @@
</div>
</main>
<footer class="app-footer bg-dark text-white-50 d-flex align-items-center px-4">
<span>KSP Wallet Desk · authorized identity + getBalance pre.007</span>
<span>KSP Wallet Desk · native transfer import pre.008</span>
</footer>
<script type="module" src="./ts/main.ts"></script>
</body>