**Motivations:** - Synchronisation des modifications sur l'API anchorage, les services et le website skeleton - Ajout de scripts de monitoring et de diagnostic pour l'API anchorage - Documentation des problèmes de mutex et de provisioning UTXO **Root causes:** - N/A (commit de synchronisation) **Correctifs:** - N/A (commit de synchronisation) **Evolutions:** - Ajout de scripts de monitoring et de diagnostic pour l'API anchorage - Amélioration de la gestion des mutex et des UTXOs - Mise à jour de la documentation **Pages affectées:** - api-anchorage/src/bitcoin-rpc.js - api-anchorage/src/routes/anchor.js - api-anchorage/src/routes/health.js - api-anchorage/src/server.js - api-anchorage/README-MONITORING.md - api-anchorage/cleanup-stale-locks.mjs - api-anchorage/diagnose.mjs - api-anchorage/unlock-utxos.mjs - service-login-verify/src/persistentNonceCache.ts - signet-dashboard/src/server.js - signet-dashboard/public/* - userwallet/src/hooks/useChannel.ts - userwallet/src/services/relayNotificationService.ts - userwallet/src/utils/defaultContract.ts - website-skeleton/src/* - docs/DOMAINS_AND_PORTS.md - docs/INTERFACES.md - features/* - fixKnowledge/*
163 lines
3.9 KiB
HTML
163 lines
3.9 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="fr">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>Website skeleton – UserWallet iframe</title>
|
||
<style>
|
||
* {
|
||
box-sizing: border-box;
|
||
}
|
||
body {
|
||
font-family: system-ui, -apple-system, sans-serif;
|
||
max-width: 900px;
|
||
margin: 0 auto;
|
||
padding: 1rem;
|
||
line-height: 1.5;
|
||
}
|
||
h1 {
|
||
font-size: 1.5rem;
|
||
margin-bottom: 1rem;
|
||
}
|
||
#status {
|
||
padding: 0.75rem 1rem;
|
||
margin: 1rem 0;
|
||
border-radius: 6px;
|
||
background: #f0f0f0;
|
||
border: 1px solid #ddd;
|
||
}
|
||
#status.accepted {
|
||
background: #d4edda;
|
||
border-color: #c3e6cb;
|
||
color: #155724;
|
||
}
|
||
#status.rejected {
|
||
background: #f8d7da;
|
||
border-color: #f5c6cb;
|
||
color: #721c24;
|
||
}
|
||
#status.pending {
|
||
background: #fff3cd;
|
||
border-color: #ffeaa7;
|
||
color: #856404;
|
||
}
|
||
.button-group {
|
||
margin: 1rem 0;
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 0.5rem;
|
||
}
|
||
button {
|
||
padding: 0.625rem 1.25rem;
|
||
font-size: 1rem;
|
||
border: 1px solid #ccc;
|
||
border-radius: 6px;
|
||
background: #fff;
|
||
cursor: pointer;
|
||
transition: all 0.2s;
|
||
min-height: 44px;
|
||
}
|
||
button:hover {
|
||
background: #f5f5f5;
|
||
border-color: #999;
|
||
}
|
||
button:active {
|
||
background: #e0e0e0;
|
||
}
|
||
button.primary {
|
||
background: #007bff;
|
||
color: white;
|
||
border-color: #007bff;
|
||
}
|
||
button.primary:hover {
|
||
background: #0056b3;
|
||
border-color: #0056b3;
|
||
}
|
||
button.danger {
|
||
background: #dc3545;
|
||
color: white;
|
||
border-color: #dc3545;
|
||
}
|
||
button.danger:hover {
|
||
background: #c82333;
|
||
border-color: #c82333;
|
||
}
|
||
#iframe-container {
|
||
margin: 1rem 0;
|
||
min-height: 400px;
|
||
border: 1px solid #ccc;
|
||
border-radius: 6px;
|
||
overflow: hidden;
|
||
background: #f9f9f9;
|
||
}
|
||
#iframe-container iframe {
|
||
width: 100%;
|
||
height: 600px;
|
||
border: 0;
|
||
display: block;
|
||
}
|
||
#connected-section {
|
||
padding: 1.5rem;
|
||
background: #f9f9f9;
|
||
border: 1px solid #ddd;
|
||
border-radius: 6px;
|
||
margin: 1rem 0;
|
||
}
|
||
#user-info {
|
||
margin: 1rem 0;
|
||
padding: 1rem;
|
||
background: white;
|
||
border-radius: 4px;
|
||
border: 1px solid #ddd;
|
||
}
|
||
@media (max-width: 768px) {
|
||
body {
|
||
padding: 0.75rem;
|
||
}
|
||
h1 {
|
||
font-size: 1.25rem;
|
||
}
|
||
#iframe-container iframe {
|
||
height: 500px;
|
||
}
|
||
button {
|
||
width: 100%;
|
||
margin-bottom: 0.5rem;
|
||
}
|
||
.button-group {
|
||
flex-direction: column;
|
||
}
|
||
}
|
||
@media (max-width: 480px) {
|
||
#iframe-container iframe {
|
||
height: 400px;
|
||
}
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<h1>Website skeleton – intégration iframe UserWallet</h1>
|
||
<p id="status">En attente du login depuis l'iframe.</p>
|
||
|
||
<div id="login-section">
|
||
<div class="button-group">
|
||
<button type="button" id="btn-login" class="primary">Se connecter</button>
|
||
<button type="button" id="btn-auth">Demander auth (auth-request)</button>
|
||
</div>
|
||
<div id="iframe-container">
|
||
<iframe id="userwallet" title="UserWallet"></iframe>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="connected-section" style="display: none;">
|
||
<h2>Vous êtes connecté</h2>
|
||
<div id="user-info"></div>
|
||
<div class="button-group">
|
||
<button type="button" id="btn-logout" class="danger">Se déconnecter</button>
|
||
</div>
|
||
</div>
|
||
|
||
<script type="module" src="/src/main.ts"></script>
|
||
</body>
|
||
</html>
|