What's new, what's coming, how it works under the hood
/receipt/).erc20Fee:true now go through a two-step allowance check + approval before sending GM/GN, using raw RPC calls (no extra dependency).#f5e642 (1-chain), medium yellow #e8c830 (2-chain), deeper amber #d4a820 (3+ chains). Node radius scales with total GM+GN interactions capped at 18px. Text hides on nodes smaller than 10px radius.
3☀️ 2🌙 (GM / GN counts) or —. Wallets active on 3+ chains highlighted with a faint amber tint. Sticky first column, horizontal scroll for many chains. Address copies to clipboard on click.
CHAINS array to js/chains-dashboard.js (separate schema from chains-index.js). Translated 20 French comments to English. Standardised hash truncation to use shortHash() from state.js. Added roundRect() polyfill in modal.js for Safari < 16.4. Fixed MegaETH Testnet color (#ffc3f7 → #00ff88) and OP Sepolia link color (#ff0420 → #ff6b6b).
GM·GN tab. Each button shows ✓ HH:MM when already sent today, or the action icon when available. Clicking a done button shows a red toast — no accidental double-sends.
#6f75e5 / #ff68f0) on a clean white surface. Theme selector moved to a Settings modal (⚙️ in the address dropdown) showing 4 theme cards with live previews: Light, Dark, Web3 Dark, Web3 Light. Cycle shortcut removed from nav.
feGaussianBlur + feMerge glow filters on hub and active wallet nodes, softer semi-transparent links, more aggressive radius scaling (pow(x, 0.55)). Zoom controls overlaid top-right (+ / − / ⊙). Address labels removed from all nodes.
position:fixed — stays visible on scroll. Done button locked on hover (no color change, cursor:default). CSS grid background pattern removed from all pages and themes. Active chain card uses border highlight only (no background tint).
usdc in FEE_CONFIG, causing getFeeWei() to return 0. All GM/GN transactions on Arc reverted with IncorrectFee. Fixed to native — the contract now receives the correct fee value (0.0123 USDC native = 12300000000000000 wei).
eth_sendTransaction), before onchain confirmation. A reverted transaction would incorrectly lock the daily slot. sendTx() now polls eth_getTransactionReceipt every 2 seconds and only updates local state (streak, history, done flag) when the receipt returns status 0x1. Failed or reverted transactions no longer affect local state.
gn() on the deployed SC. Selector 0x3118f543. Same fee mechanics as GM — 1 per chain per day, enforced onchain.
0.00000123 ETH on ETH chains, native token elsewhere. BNB Chain removed (no SC).
0xc0129d43 — gm()0x3118f543 — gn()0xb691…635 — all ETH mainnets0xAC39…6Db — all mainnets0.00000123 ETH (~$0.003) on ETH chainsgm() selector — fee enforcement onchain. Chains: Ethereum Sepolia, Base Sepolia, Arb Sepolia, OP Sepolia, Soneium Minato, Robinhood Testnet, Arc Testnet, MegaETH Testnet v2.
0xb691…635 sur MegaETH)0.0000123 ETH natif (ou USDC natif sur Arc)gm() — 0xc0129d43 (verified keccak256)GM(address indexed sender, uint256 indexed dayIndex, uint256 timestamp, uint256 feePaid)0xca96…1547 (EOA, until SC deployment)0.0000123 ETH (native) or 0.0123 USDC on supported chains0x474d (GM) or 0x474e (GN)localStorage — never sent to any servergn() onchain — same mechanics as GM SC.0xa5bf) once available.