Rewrite claim-ticket-stub as vanilla form; fix printed-stub typos#370
Open
magent-cryptograss wants to merge 1 commit into
Open
Rewrite claim-ticket-stub as vanilla form; fix printed-stub typos#370magent-cryptograss wants to merge 1 commit into
magent-cryptograss wants to merge 1 commit into
Conversation
Claim page: - Strip wagmi/viem, @wagmi/core, @Web3Modal, viem imports and the entire <script type="module"> block. The gasless architecture means the claim page never talks to a wallet directly — it just POSTs {tokenId, secret, recipient} to the delivery-kid relayer, which handles the signed transaction on Optimism from its hot wallet. - Vanilla script: auto-populates the secret from the ?secret= URL param (same as before), submits to https://delivery-kid.cryptograss.live/claim-ticket-stub, renders loading/success/error alerts, and on success shows the transaction hash with an Optimistic Etherscan link. - ENS resolution moves server-side; the page just sends the raw address-or-ENS string and displays what the backend resolved. - SetStone upsell block preserved as-is. It's driven by strike_set_stones.js which has its own wagmi config, so the inline module strip doesn't affect it. Printed-stub typos: - single-ticket-stub.njk: the "Click here to claim / move this ticket stub" link was hardcoded to /blox-office/claim/blah blah — never updated from placeholder. Now points at the real per-token claim URL with the secret pre-populated. - ticketstub-front.njk and ticketstub-back.njk: the token-range text under the tokenId was literal "{100-149}" and "{50-99}" — literal strings in the template, printed onto real paper stubs at every show since Prague. Now renders {{ show.firstTokenId }}-{{ show.lastTokenId }} from the actual show data. - setstone_utils.js: adds firstTokenId and lastTokenId to the show object during stub generation so the templates have real values to render. The delivery-kid endpoint at /claim-ticket-stub is task cryptograss#13 — not yet implemented. Deploying this page against the current backend will show a network error alert until the endpoint lands.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prepares the ticket-stub claim UX to work seamlessly for fans who don't have a wallet and don't have ETH — the "mega seamless" bar we set for this whole rewrite. Also fixes two long-standing printed-stub typos.
Claim page rewrite
Strips wagmi / viem / @Web3Modal from `claim-ticket-stub.njk` entirely. The gasless architecture means the claim page never talks to a wallet directly — it just POSTs `{tokenId, secret, recipient}` to the delivery-kid relayer, which signs and submits the transaction on Optimism from its hot wallet.
Note: the delivery-kid endpoint at `POST /claim-ticket-stub` is task #13 — not yet implemented. Deploying this page against the current backend will show a network-error alert until that endpoint lands.
Printed-stub typos
Two placeholders that were literal strings baked into the templates and — because we've been printing stubs since Prague 2025 — got printed onto real paper stubs:
Files touched
Test plan
Follow-up (blocking full functionality)