Files
martbost 489d832546 Sign-in: stop telling a fast returning member off for being fast
The email-code endpoint refuses a request that arrives within two seconds of
the page loading, because a script fills a form instantly and a person does
not. A member whose email is already filled in by the browser has nothing to
type, taps straight away, and gets "Give the page a second, then tap again."

The page now waits out the remainder itself and sends when the window has
passed, so the person sees the normal sending state instead of an error.
The server check is untouched, so anything posting at the endpoint without a
page behind it still fails exactly as before.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 05:50:34 -05:00

54 lines
3.3 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Banner wall | InstantAdPay</title>
<!--OG-->
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&display=swap">
<link rel="icon" type="image/png" href="/logo-icon.png">
<link rel="stylesheet" href="/assets/site.css?v=20260911w">
</head>
<body>
<div id="nav"></div>
<section>
<div class="wrap" style="max-width:920px">
<div class="wall-hero" style="text-align:center;padding:26px 0 18px">
<p style="margin:0 0 8px;font-family:var(--disp);font-weight:800;font-size:clamp(22px,3vw,30px);color:var(--ink);letter-spacing:-.01em">Instant<span style="color:var(--mint)">AdPay</span> <span style="font-weight:500;font-size:.62em;color:var(--muted)">member wall</span></p>
<h1 style="font-size:clamp(28px,4.4vw,44px);margin:0 0 10px;line-height:1.1">Advertise and earn. <em style="font-style:normal;color:var(--mint)">Paid on-chain, instantly.</em></h1>
<p class="muted" style="max-width:640px;margin:0 auto;font-size:15.5px">Real ad packages from $5. Every payout arrives as <b style="color:var(--ink)">POL on Polygon</b> in your own wallet, in the same transaction the package sells, on a public ledger. Free to join by email, and <span id="wallHost">this member</span> is your sponsor if you join from here.</p>
</div>
<div class="bio-head" id="bioHead" hidden>
<img id="bioAvatar" class="bio-avatar" alt="" hidden>
<img id="bioBadge" class="bio-badge" alt="achievement badge" hidden>
<div class="bio-meta">
<p class="eyebrow">Your sponsor on InstantAdPay</p>
<h2 id="wallTitle" style="margin:.1em 0">Loading…</h2>
<p id="bioText" class="lead" style="font-size:16px"></p>
<div id="bioSocials" class="bio-socials"></div>
</div>
<div class="bio-qr"><img id="bioQr" alt="Join QR code" width="150" height="150"><div class="small muted" style="text-align:center">scan to join</div></div>
</div>
<div class="bio-video" id="bioVideo" hidden></div>
<div class="sectionhead" style="text-align:left;margin-top:10px">
<h3 style="margin:0">The line, three levels deep</h3>
<p>Three positions, three levels — the exact levels the contract pays. Every banner here belongs
to a real member of this line, and every payment between them settles on-chain, instantly.</p>
</div>
<div class="grid c3" id="wallGrid"></div>
<div class="card" id="adSlotWallText" hidden style="margin-top:16px"></div>
<div class="card" id="adSlotWallBanner" hidden></div>
<div class="card" style="margin-top:22px;text-align:center">
<h3 id="wallCtaHead">Join this line</h3>
<p class="muted small">Free to join with just an email. Your wallet only comes out if you buy —
and payments go straight to member wallets, never through an admin.</p>
<p id="wallGate" class="small" style="color:var(--amber);font-weight:600" hidden></p>
<p><a class="btn" id="wallJoin">Join free through this wall</a></p>
<p class="small muted"><a href="/ledger">Watch the live ledger</a> · <a href="/contract">Read the contract</a></p>
</div>
</div>
</section>
<script src="/assets/common.js?v=20260923b"></script>
<script src="/assets/wall.js?v=20260911v"></script>
</body>
</html>