fix(batch-tx): replace simulated confirmation with viem-based provider reads#549
Conversation
- Replace localStorage plaintext UUID storage with salted hash - Add per-session salt stored in sessionStorage - Add synchronous hash function for device identity - Update tests to verify hashed storage behavior Closes MettaChain#448
- Add /api/security/address-check Next.js API route to proxy Chainalysis requests - Remove API key exposure from browser via window global (__CHAINALYSIS_API_KEY__) - Move API key to server-only CHAINALYSIS_API_KEY env variable - Add security:check-globals npm script to prevent future __ global leaks - Update tests to verify proxy endpoint usage Closes MettaChain#442
…ing in ChartStyle - Remove dangerouslySetInnerHTML usage in chart.tsx ChartStyle component - Use React's built-in text content escaping via JSX children - Filter empty CSS rules to prevent rendering empty style tags - CSS content is automatically HTML-escaped by React's text node rendering Closes MettaChain#439
…ovider reads - Replace Math.random()-based simulation with real viem publicClient reads - Add NEXT_PUBLIC_DEMO_TX feature flag for demo/simulation mode - Replace polling loop with viem's waitForTransactionReceipt - Add comprehensive unit tests covering validation, demo mode, and edge cases Closes MettaChain#431
|
@danieloche635-bit Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
Subsumed by #560 — same fix. Closing this duplicate. |
nanaf6203-bit
left a comment
There was a problem hiding this comment.
Thanks @danieloche635-bit — replacing the Math.random() simulation with real viem provider reads is the correct fix for #431's batch-tx race condition. Has merge conflicts against current main though — please rebase and resolve to move this forward. ⛓️
|
Hey @danieloche635-bit — main has moved on while this was open, so theres a rebase needed to unblock the merge. Could you rebase onto latest main and push? Will merge as soon as its clean. Thanks! |
Summary (P2)
\BatchTransactionService\ used \Math.random()\ to fabricate confirmation data and raced between real and fake states, causing inconsistent success/failure branching.
Changes
Tests
Closes #431