Skip to content

feat(vibenet): add Reflex easter egg linked from tx popups - #178

Open
haardikk21 wants to merge 6 commits into
mainfrom
hh/200ms-reflex-demo
Open

haardikk21 wants to merge 6 commits into
mainfrom
hh/200ms-reflex-demo

Conversation

@haardikk21

@haardikk21 haardikk21 commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • add Reflex, an account-backed reaction game: sign first, count down 3–2–1, then race a real Vibenet transaction receipt
  • Reflex is an easter egg at the unlisted, noindex /vibenet/demos/reflex. The only way in is a footnote ("Think you're faster? Race a block") under the inclusion line in transaction popups, which covers the Accounts, B20, and Validity demos
  • no 200ms category, nav entry, sitemap entry, or llms/agents listing. Block Runner stays at its unlisted /vibenet/demos/200 route, same as on main
  • Reflex compares your reaction time against browser-observed transaction inclusion latency, which is different from the fixed 200 ms block cadence
  • sendActiveCalls gains beforeBroadcast / onBroadcast / onReceipt hooks so the game can start the countdown after signing and start the clock when the transaction is broadcast
  • merged main to pick up the Keystore-free EIP-8130 vendor (feat(vibenet): account demo on Keystore-free EIP-8130 (EOA + delegation) #177). The earlier preview failed with a getChangeSequences error because Vibenet no longer deploys the Keystore
  • Reflex checks the account's ETH balance before signing and tops up from the faucet when it's low. Accounts saved in the browser outlive Vibenet resets but their ETH doesn't, and the node rejects those sends as -32003, which viem shows only as "Transaction creation failed." Other rejections now show the node's actual reason

Screenshots

Transaction popup footnote

Popup footnote

Reflex — ready

Reflex ready state

Reflex — countdown

Reflex countdown

Reflex — result

Reflex result

Reflex — mobile

Reflex mobile

Test plan

  • npm test (417 tests), npm run typecheck, npm run lint (0 errors), npm run llms -- --check
  • against Vibenet: sent a transaction from the Accounts demo, saw the footnote in the popup, followed it to Reflex
  • ran a full Reflex race on a fresh account: the transaction was included in about 230 ms
  • unfunded account (faucet blocked at creation): Reflex tops up, then races. Faucet down: clear error message instead of the generic viem text
  • /vibenet index lists no 200ms or Reflex card; /vibenet/demos/200 still serves Block Runner

@cb-heimdall

cb-heimdall commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@vercel

vercel Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
omni-ui Ready Ready Preview Oct 2, 2026 8:52pm UTC

Request Review

# Conflicts:
#	app/vibenet/demos/account/useAccountEngine.tsx
Drop the 200ms Blocks category and restore Block Runner's unlisted
/vibenet/demos/200 route as on main. Reflex moves to an unlisted, noindex
/vibenet/demos/reflex, reached from a footnote under the inclusion line in
transaction popups.
@haardikk21 haardikk21 changed the title feat(vibenet): add 200ms reflex demo feat(vibenet): add Reflex easter egg linked from tx popups Oct 2, 2026
Accounts persist in the browser across Vibenet resets but their ETH does not,
and Reflex self-pays gas. The node rejected those sends with -32003
(insufficient funds), which viem shows as the generic "Transaction creation
failed." after the full countdown. Check the balance before signing and drip
from the faucet when it is low, and show the node's rejection reason instead
of viem's short message.

This branch was successfully deployed

1 active deployment
Preview — 12c1b866 Deployed Oct 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants