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>
41 lines
1.7 KiB
HTML
41 lines
1.7 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>Transaction | InstantAdPay</title>
|
|
<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=20260910h">
|
|
</head>
|
|
<body>
|
|
<div id="nav"></div>
|
|
<section>
|
|
<div class="wrap" style="max-width:860px">
|
|
<div class="sectionhead" style="text-align:left">
|
|
<h2>One transaction, <em>fully public</em></h2>
|
|
<p>Pulled straight from the chain this site settles on. Every field below is read from the node,
|
|
not from our database.</p>
|
|
</div>
|
|
<div class="card">
|
|
<p><span class="badge" id="txStatus">looking it up…</span>
|
|
<span class="small muted" id="txChain"></span></p>
|
|
<p class="mono small" id="txHash" style="overflow-wrap:anywhere"></p>
|
|
<div class="tablewrap"><table id="txTable" hidden>
|
|
<tbody></tbody>
|
|
</table></div>
|
|
<p class="small muted" id="txHint" hidden>Nothing under that hash on this chain yet. If the
|
|
transaction just happened, give the next block a moment and refresh.</p>
|
|
</div>
|
|
<div class="card" id="evCard" hidden>
|
|
<h3>What this transaction did</h3>
|
|
<p class="muted small">The contract events inside it, decoded to plain language.</p>
|
|
<div class="feed" id="evFeed"></div>
|
|
</div>
|
|
<p><a href="/ledger">← Back to the live ledger</a> · <a href="/contract">Read the contract review</a></p>
|
|
</div>
|
|
</section>
|
|
<script src="/assets/common.js?v=20260923b"></script>
|
|
<script src="/assets/tx.js?v=20260906m"></script>
|
|
</body>
|
|
</html>
|