trident-client 0.13.0-rc.3

Trident is Rust based fuzzing framework for Solana programs written in Anchor.
Documentation
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Trident Dashboard</title>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            margin: 0;
            padding: 16px;
            background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #334155 100%);
            color: #e2e8f0;
            min-height: 100vh;
        }
        .container {
            width: 100%;
            margin: 0;
            padding: 0 4px;
        }
        .header {
            background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
            padding: 40px 32px;
            border-radius: 16px;
            box-shadow: 0 8px 32px rgba(0,0,0,0.4);
            margin-bottom: 32px;
            border: 1px solid #475569;
            text-align: center;
            position: relative;
            overflow: hidden;
        }
        .header::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: #3b82f6;
        }
        .header h1 {
            margin: 0 0 12px 0;
            color: #e2e8f0;
            font-size: 3rem;
            font-weight: 700;
            text-shadow: 0 2px 4px rgba(0,0,0,0.3);
        }
        .header p {
            margin: 0;
            color: #94a3b8;
            font-size: 1.2rem;
            font-weight: 500;
        }
        .header .logo {
            font-size: 4rem;
            margin-bottom: 16px;
            opacity: 0.1;
            position: absolute;
            top: 20px;
            right: 32px;
        }


        .section-header {
            margin: 32px 0 20px 0;
            width: 100%;
            flex: none;
        }
        .section-header:first-child {
            margin-top: 0;
        }
        .section-header h2 {
            margin: 0;
            color: #e2e8f0;
            font-size: 1.6rem;
            font-weight: 600;
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .count {
            font-size: 1rem;
            color: #64748b;
            font-weight: 400;
        }
        .dashboards-grid {
            display: flex;
            flex-wrap: wrap;
            gap: 16px;
            margin-bottom: 40px;
        }
        .file-item {
            background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
            border: 1px solid #475569;
            border-radius: 10px;
            padding: 16px;
            box-shadow: 0 3px 12px rgba(0,0,0,0.3);
            position: relative;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            min-height: 120px;
            min-width: 280px;
            flex: 1;
        }
        .dashboard-type::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: #3b82f6;
        }
        .log-type::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: #10b981;
        }
        .file-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 14px;
            flex: 1;
        }
        .file-title {
            margin: 0;
            color: #e2e8f0;
            font-size: 1rem;
            font-weight: 600;
            word-break: break-word;
            line-height: 1.3;
        }
        .file-meta {
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            gap: 6px;
        }
        .file-time {
            color: #94a3b8;
            font-size: 0.75rem;
            background: rgba(148, 163, 184, 0.1);
            padding: 3px 6px;
            border-radius: 4px;
            white-space: nowrap;
        }
        .file-actions {
            display: flex;
            gap: 8px;
            margin-top: auto;
        }
        .btn {
            padding: 6px 12px;
            border-radius: 6px;
            text-decoration: none;
            font-weight: 500;
            font-size: 0.85rem;
            transition: all 0.3s ease;
            display: inline-block;
            text-align: center;
            position: relative;
            overflow: hidden;
        }

        .btn-primary {
            background: linear-gradient(135deg, #3b82f6, #2563eb);
            color: white;
            border: 1px solid #2563eb;
            box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3);
        }
        .btn-primary:hover {
            background: #2563eb;
            box-shadow: 0 6px 20px rgba(59, 130, 246, 0.4);
            transform: translateY(-2px);
        }
        .btn-secondary {
            background: linear-gradient(135deg, #10b981, #059669);
            color: white;
            border: 1px solid #059669;
            box-shadow: 0 4px 16px rgba(16, 185, 129, 0.3);
        }
        .btn-secondary:hover {
            background: #059669;
            box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4);
            transform: translateY(-2px);
        }
        .no-dashboards {
            text-align: center;
            padding: 60px 24px;
            color: #64748b;
            background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
            border-radius: 12px;
            border: 2px dashed #475569;
            position: relative;
        }
        .no-dashboards-icon {
            font-size: 5rem;
            margin-bottom: 24px;
            opacity: 0.6;
            filter: drop-shadow(0 0 20px rgba(100, 116, 139, 0.3));
        }
        .no-dashboards h3 {
            margin: 0 0 16px 0;
            color: #64748b;
            font-size: 1.5rem;
        }
        .no-dashboards p {
            margin: 0;
            color: #64748b;
            font-size: 1rem;
            line-height: 1.6;
        }
        .footer {
            margin-top: 48px;
            text-align: center;
            color: #64748b;
            padding: 24px 0;
            border-top: 1px solid #334155;
        }
        .footer p {
            margin: 0;
            font-size: 0.9rem;
        }

        @media (max-width: 768px) {
            .dashboard-header {
                flex-direction: column;
                gap: 16px;
            }
            .dashboard-meta {
                align-items: flex-start;
            }

            .header h1 {
                font-size: 2.2rem;
            }
            .dashboards-grid {
                justify-content: center;
            }
            .file-item {
                width: 100%;
                max-width: 400px;
            }
        }
    </style>
    <script>
        // Auto-refresh every 3 seconds
        setTimeout(function() {
            window.location.reload();
        }, 3000);
    </script>
</head>
<body>
    <div class="container">
        <div class="header">
            <div class="logo">🚀</div>
            <h1>Trident Dashboard</h1>
            <p>Fuzzing Results</p>
        </div>
        

        


        <div class="dashboards-grid">
            {{DASHBOARD_ITEMS}}
        </div>

        <div class="footer">
            <p>Generated by Trident Fuzzing Framework</p>
        </div>
    </div>


</body>
</html>