489d832546
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>
54 lines
3.3 KiB
HTML
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>
|