feat: Arc infrastructure tools — USDC indexer, CCTP analytics, linter, subgraph, APS SDK#8
Open
osr21 wants to merge 141 commits into
Open
feat: Arc infrastructure tools — USDC indexer, CCTP analytics, linter, subgraph, APS SDK#8osr21 wants to merge 141 commits into
osr21 wants to merge 141 commits into
Conversation
added 30 commits
May 23, 2026 15:29
Fix SSRF vulnerabilities in the API, enhance wallet connection handling, update explorer links, and resolve precision issues with balance calculations. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: ca3f2fa6-e3fd-49b3-a877-3da13919e240 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/gtYqvB0 Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: a760f603-f463-48cf-b9f7-68a38f57f759 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/gtYqvB0 Replit-Commit-Deployment-Build-Id: c7c4abe9-d7f7-43c3-a067-2a9760e9b1e4 Replit-Helium-Checkpoint-Created: true
…eliability Implement session persistence for interrupted bridge transfers, add RPC failover, and rate limiting to the API. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 6aa9b00f-8a6a-465b-a605-f5b3d54050c9 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/PAsXEgU Replit-Helium-Checkpoint-Created: true
Implement security hardening for the FeeRouter contract, including immutable address configurations, reentrancy protection, and improved error handling, along with updated deployment scripts and ABIs. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 665065ab-506a-42a1-94fb-cd8c7839d3fa Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/NCULMZT Replit-Helium-Checkpoint-Created: true
Upgrades FeeRouter to v3, introducing a slippage guard, two-step ownership transfer, emergency pause functionality, and residual approval reset. Deploys new contract addresses and updates ABIs and documentation. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: bbac657d-31fb-4e79-a609-d1ca661b8690 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/tMRFBgI Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 2a8b1576-c892-4f1c-8bb3-cf74adf4b368 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/tMRFBgI Replit-Commit-Deployment-Build-Id: 86d815b0-536e-44ac-a275-ebdec40c2dc7 Replit-Helium-Checkpoint-Created: true
Update FeeRouter contract to wrap the USDC approval reset in a try/catch block, ensuring transactions do not fail on networks with non-standard ERC-20 implementations like Arc Testnet. Addresses for all deployed networks have been updated. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 430d0f7c-86e9-4ebf-9968-43e93eb4f6d9 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/tMRFBgI Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: d9c7dfdf-e592-4d81-a73e-6a8ba380c5d4 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/tMRFBgI Replit-Commit-Deployment-Build-Id: af0a262a-9d2d-47e1-8380-6376188e0e76 Replit-Helium-Checkpoint-Created: true
Reverts FeeRouter contract to v2, removes v3-specific code from FeeRouterABI.ts and bridge.ts, and updates addresses in replit.md. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 8713886b-3072-4634-b8ff-7e29365915f3 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/tMRFBgI Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 980d562c-e74d-4ad7-a8d8-05c0ae57592e Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/tMRFBgI Replit-Commit-Deployment-Build-Id: 7dc18c65-99fa-4fac-ac40-02b4fe8004fb Replit-Helium-Checkpoint-Created: true
Introduce gasLimitOverride to ChainConfig and apply it to Arc Testnet to bypass unreliable eth_estimateGas calls, ensuring successful transaction submissions. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 51d12701-28c5-41ce-afeb-2e7f48c6aa6c Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/tMRFBgI Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 1b01223d-ec86-4158-95a8-c37a3686ef89 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/tMRFBgI Replit-Commit-Deployment-Build-Id: 948ace0b-4b23-4ca5-a809-f0776f278b36 Replit-Helium-Checkpoint-Created: true
Remove Arc Testnet from FeeRouter contract addresses and add gas overrides for certain write operations on Arc Testnet to bypass unreliable gas estimations. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: d11ace1c-d058-47a5-a7f5-334f6866d3a1 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Remove FeeRouterABI.ts and update bridge.ts to always use the direct CCTP path for cross-chain transfers, eliminating contract-to-contract USDC calls. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 3ed06eb9-4950-4d7f-b506-168fdc9a790d Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: dc6161e9-28b8-4145-8572-551bca1c8dc8 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Commit-Deployment-Build-Id: a51d8fff-c1ab-44af-a108-af8ebe5f1347 Replit-Helium-Checkpoint-Created: true
Add gas overrides for minting on destination chains, enhance error messages for on-chain reverts and gas estimation failures, return a sentinel value for failed balance lookups, and make the Explorer link dynamic. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 11d5c301-ea0d-4731-86eb-0d9b1d301841 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 8953aabb-0cbd-4053-adde-bb3277c307a5 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Commit-Deployment-Build-Id: 9dd3c390-f7e0-48f1-a698-db271b2f12e0 Replit-Helium-Checkpoint-Created: true
Update the UI to disable the MAX button when the balance is zero, display an insufficient balance warning, and prevent bridging with insufficient funds. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: e90a1d53-77f1-402d-b8b6-30ae4a1a8744 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: c2a8425c-4f3e-43d3-a74c-d2fd8f4c1c2a Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Commit-Deployment-Build-Id: bb952d03-b533-4414-80cf-2ea45175af1f Replit-Helium-Checkpoint-Created: true
Update screenshot of transaction details for cross-chain transfer testing. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: db4ef250-e6fb-4583-8c8b-cff63864f869 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Correctly handles CCTP V2 message nonces for replay protection, refactors attestation polling logic, validates fee recipient and burn transaction hash formats, and enhances custom recipient input validation. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 5d9c2630-0afd-44d8-b1a7-bde4c1bfcfe3 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: d36579cb-e445-4448-9736-1fae0d38afdd Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Commit-Deployment-Build-Id: 5bf538d9-ae75-4b72-a9de-5f90472d40bb Replit-Helium-Checkpoint-Created: true
Update Arc Testnet explorer URL in chains.ts to "https://testnet.arcscan.app", update the Arc Docs link in BridgePage.tsx to "https://docs.arc.network", and add a new GitHub link pill for the Arc Network repository. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 118cf7b2-c59f-4b87-84c9-3f182a3546e2 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
…fers Implement a robust transaction waiting mechanism that retries on network errors and falls back to direct RPC calls to ensure reliable confirmation of cross-chain mint transactions. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: ae04cfe4-62e3-42d5-a938-dd2213ee111f Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 1fa1763c-b41a-4206-9e95-6a58499546a0 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Commit-Deployment-Build-Id: edb9b7ae-eccf-45cc-a541-8ddf1942ec2f Replit-Helium-Checkpoint-Created: true
Add FeeRouter v2 Solidity contract and screenshots related to contract verification attempts on ArcScan. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 3448f2d7-a468-4446-b6da-f7b5592d780f Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Fixes bug where wallet chain switching fails on Arc Testnet by always using `wallet_addEthereumChain`. Configures Arc's native currency to ETH and adds a 30% gas price premium to all write transactions to prevent underpricing errors. Extends `waitWithRetry` to approve and fee transactions. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: cc5672c6-7de0-4dcb-b955-9348843bd700 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: ea546e60-6b4e-44a7-9ccc-b65bcbe47e2f Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Commit-Deployment-Build-Id: 79af578b-73e4-4950-9620-484b6f424bef Replit-Helium-Checkpoint-Created: true
Refactor the `switchToChain` function to prioritize `wallet_switchEthereumChain` for existing networks and fall back to `wallet_addEthereumChain` for adding new ones, ensuring compatibility and reliability across different wallet behaviors. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 1e830cf0-2f1c-4c64-9a40-a981d0804938 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 2b65b268-c48a-44d0-a732-192d724c48ed Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/BRkxYoc Replit-Commit-Deployment-Build-Id: a468b0c5-913d-4adf-b2f9-e1c2c2e17e03 Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 71d1889a-3e5e-4116-8e0a-72d8605ef617 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/JnTAXev Replit-Commit-Deployment-Build-Id: fe35470e-cbb9-4f9a-96b1-3dbc44d06f33 Replit-Helium-Checkpoint-Created: true
…el services Implement rate limiting for gas refuel endpoints, validate JSON-RPC structure for bundler requests, add recipient validation in session loading, and validate addresses before encoding in gasless bridging. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: ac41e50c-1ec0-4535-a16d-6f776498784b Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/JnTAXev Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 4dfef8f6-ed66-44f4-b325-2ebe0563b7e2 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/JnTAXev Replit-Commit-Deployment-Build-Id: 6c6d21cb-6f6d-49cf-b094-c6498100e65a Replit-Helium-Checkpoint-Created: true
Add a delay to chain switching to prevent MetaMask race conditions and introduce a recovery UI for minting failures. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: b9ce70c3-e202-4415-a650-6736056d9ea4 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/iqayJrb Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: b207b27a-b3f1-4a93-9e39-8dad0da7cd60 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/iqayJrb Replit-Commit-Deployment-Build-Id: 369ca1c0-981e-4ee0-b747-6f1e17fdf2b3 Replit-Helium-Checkpoint-Created: true
Implement security hardening measures, refine error handling for user-friendly messages, and improve relay protection against replay attacks. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 9d497e98-01ab-4f43-8ca6-b14dfbfddfa5 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/iqayJrb Replit-Helium-Checkpoint-Created: true
Creates a new API route `/api/contracts` that serves contract ABIs, addresses, chain metadata, and compiler settings. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: e7e60fb9-f785-445f-b866-5ee48498dda4 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/iqayJrb Replit-Helium-Checkpoint-Created: true
Correct the `nativeCurrency.symbol` in `artifacts/arc-bridge/src/lib/chains.ts` from "ETH" to "USDC" for the Arc Testnet configuration. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 99b6e929-9407-4b98-ba50-062f72c21453 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/iqayJrb Replit-Helium-Checkpoint-Created: true
This commit addresses security vulnerabilities in multiple smart contracts, including `FeeRouter`, `YieldVault`, `GasRelayer`, and `Paymaster`, by implementing fixes for reentrancy, ownership transfer, and token rescue mechanisms. It also regenerates the `contractData.ts` file with updated ABIs and pushes all changes to GitHub. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: a3c7d460-2a52-4199-b8cb-8faa2d266a58 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/iqayJrb Replit-Helium-Checkpoint-Created: true
Update contract addresses across multiple networks and chains, including Arc Testnet, Ethereum Sepolia, Base Sepolia, and Avalanche Fuji. This involves modifying deployment JSON files, chain configuration, contract data files, and documentation. Additionally, a new `deployAll.ts` script has been introduced to streamline the deployment process for all hardened contracts across all specified chains. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: b1ed58a2-1d34-4b51-b66b-5e795373572c Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/iqayJrb Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: fc8fcf9d-a5e4-40ad-b22f-bc0913877e1e Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/iqayJrb Replit-Commit-Deployment-Build-Id: 8d36a286-9378-4d69-a973-18ebfb24a536 Replit-Helium-Checkpoint-Created: true
Update GasRelayer and Paymaster addresses across multiple chains, fix replay key hashing, and add transaction status checks to prevent relaying reverted transactions. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 355b06ba-5779-4a13-8a10-cf464c4ad00f Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/iqayJrb Replit-Helium-Checkpoint-Created: true
Adds new routes and components for the Ecosystem, Developers, and Portfolio pages, and updates navigation links in BridgePage. Also refactors README.md for clarity and adds Ethereum provider error handling for window.ethereum. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 8f47765e-bb8e-4a18-bdfa-c7217510b2ab Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/TtC8SCn Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 1f055e19-0cc2-4530-9346-df1f0dd75ae3 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/TtC8SCn Replit-Commit-Deployment-Build-Id: 162a0f65-1a31-4724-b6bf-08aad85eea49 Replit-Helium-Checkpoint-Created: true
Add a CONTRIBUTING.md file detailing how to contribute, set up the project, add new chains, and notes on smart contract specifics. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: cdd1d6da-9a3d-4f19-bc33-a4c72a11b18b Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/TtC8SCn Replit-Helium-Checkpoint-Created: true
…er tools Add screenshots of the arc.io/ecosystem page, specifically highlighting the developer tools and crosschain categories. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 727d3a0d-c6cd-4c12-afe4-1f31bb698bb4 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/TtC8SCn Replit-Helium-Checkpoint-Created: true
Address front-running vulnerability in gas refuel, validate input lengths and formats for relay and session data, and correct scientific notation handling in the bridge page. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: f3542b82-b490-4c35-ab68-09973f9b4562 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/DLt0WoQ Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 519f0dbf-04c6-48c0-9215-4d5bc7073808 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/DLt0WoQ Replit-Commit-Deployment-Build-Id: fee60b52-2746-46f2-a3d2-f7c26540f547 Replit-Helium-Checkpoint-Created: true
Add a new screenshot to the attached assets directory. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: a024d492-509e-4f21-bd5c-26be43192c2a Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/DLt0WoQ Replit-Helium-Checkpoint-Created: true
…transfers Updates stale contract addresses in the API and bridge libraries, enhances gas refuel liquidity checks, and adds validation for transaction hashes in session and history logs. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: e0995844-cb5e-4a64-8f52-deb85831641e Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/3pum6oc Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 953a9cc3-9fe0-47a0-b340-c0f85734038b Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/3pum6oc Replit-Commit-Deployment-Build-Id: 12b32059-bf25-48f1-ae91-ff4e02d1d4f0 Replit-Helium-Checkpoint-Created: true
…pdates Update `paymaster.ts` to return `paused` and `gasRate`, modify `gaslessBridge.ts` to fail fast if the paymaster is paused, enhance `bridge.ts` `friendlyError` to better surface rejection reasons (including paused state), and update `BridgePage.tsx` to track and display the `paused` state, block the bridge button when paused, and correctly hide the fee step in gasless mode. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 90e85b72-dce9-45e2-8d13-56c968b5ddcc Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/acRBs6i Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 1c2aba9a-f91d-4396-952d-759b92201c61 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/acRBs6i Replit-Commit-Deployment-Build-Id: ecac5362-d424-4116-89a2-56ea95a8c892 Replit-Helium-Checkpoint-Created: true
Add checks and UI elements to manage the Paymaster's ETH deposit in the EntryPoint for gasless bridging. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: e25fabf1-278b-4cff-a3c2-4cedc337f8c8 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/acRBs6i Replit-Helium-Checkpoint-Created: true
Corrected stale paymaster addresses in the fundPaymaster script for Arc Testnet, Sepolia, Base Sepolia, and Avalanche Fuji networks. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 56a206ff-f89e-47f9-9c3b-ea871ad31458 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/acRBs6i Replit-Helium-Checkpoint-Created: true
Update the attestation timeout error message to provide clearer user guidance, warn against retrying burns, and reference known Circle IRIS service issues. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: db25ee12-9b00-45a1-b72c-17f7f5ab6cc3 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/acRBs6i Replit-Helium-Checkpoint-Created: true
Integrate an event indexer for USDC transfers and memo events, alongside the Arc Analytics dashboard. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: aba6d21e-a3d6-4d59-bb36-582a0a4d2a76 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/TR13Xjn Replit-Helium-Checkpoint-Created: true
Replit-Commit-Author: Deployment Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 8d28d49b-9d11-4ede-b608-daf598e0cec8 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/TR13Xjn Replit-Commit-Deployment-Build-Id: c1d63dd4-bb5f-40cd-8766-8bf48dd26390 Replit-Helium-Checkpoint-Created: true
Enhance API input validation, increase attestation length limit, and refine pagination display logic in the bridge and analytics sections. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 2e8caaef-dc52-4487-ba3d-d2729ef7919c Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/jZoYN4k Replit-Helium-Checkpoint-Created: true
Adjusted RPC endpoints to drpc.org, modified CCTP event indexing, and implemented rate limit handling for the Arc indexer. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: ace4efb8-e98e-4d40-9ae0-a5e03ddecb56 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3b0dacfd-d67c-422b-9c9c-b211c6a5637c/7e58c4c0-8b39-467d-b46e-6c7a5d9df1c7/R9Ettkx Replit-Helium-Checkpoint-Created: true
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.
Summary
Implements six Arc infrastructure tools documented in issue #7, plus a comprehensive audit and bug-fix pass across the bridge frontend and analytics dashboard.
Tools implemented
Tool A — USDC Transfer Indexer + REST API
A background worker inside the API server indexes all native USDC transfer events on Arc Testnet in real time via EIP-7708 logs from the native USDC emitter (
0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE).GET /api/indexer/transfers,GET /api/indexer/statsTool B — Transaction Memo Indexer
Indexes
Memoevents from Arc's on-chain memo contract (0x5294E9927c3306DcBaDb03fe70b92e01cCede505). Attempts UTF-8 decoding of memo payloads; stores decoded text alongside raw hex.GET /api/indexer/memosTool C — The Graph Subgraph
Graph Protocol subgraph (
scripts/src/graph/) indexing the same events via decentralised infrastructure — alternative / complement to the centralised indexer.Tool D — Contract Compatibility Linter
CLI linter (
scripts/src/lint-arc-contract.ts) running 9 static checks against deployed bytecode for Arc Testnet compatibility issues (PUSH0, 2-immutable revert, ERC-7562 nonReentrant, CCTP V1 selector, etc.).Tool E — CCTP Bridge Analytics (indexer + dashboard)
Indexer: same worker indexes CCTP V2
DepositForBurnandMintAndWithdrawevents with attestation status tracking (PENDING → COMPLETE).Key CCTP V2 ABI facts confirmed from on-chain decoding:
DepositForBurntopic:0x0c8c1cbdc5190613ebd485511d4e2812cfa45eecb79d845893331fedad5130a5burnTokenis the 1st indexed param on Arc (notnonceas in the Circle standard)uint32 minFinalityThresholdandbytes hookDataparamsMintAndWithdraw(notMessageReceived) is the correct event for indexing mintsminFinalityThresholdper chain: Arc=2000 (finalized), Sepolia/Base/Fuji=0 (fast testnet)Dashboard (
artifacts/arc-analytics/): React 19 + Vite + Recharts + shadcn/ui served at/arc-analytics/.//transfers/memos/bridgeTool G — APS SDK
TypeScript stubs for the Arc Privacy Sector (
lib/arc-privacy-sdk/) — typed interfaces ready for integration when APS goes live.Bug fixes and audit findings
Bridge frontend (
artifacts/arc-bridge/)depositForBurnto V2 7-param — the V1 selector silently reverts on these contractsrpc.sepolia.orgwithhttps://ethereum-sepolia-rpc.publicnode.comhttps://testnet.arcscan.appIndexer RPC reliability
rpc.testnet.arc.network) withhttps://arc-testnet.drpc.org— primary rate-limits botheth_getLogs(−32011) and basic requestsbatchMaxCount: 1on ethers.js provider — drpc.org free tier rejects JSON-RPC batches of >3 requests (error 31)isTickingguard +MAX_BLOCKS_PER_TICK = 100cap to prevent overlapping poll ticksInfrastructure
usdc_transfers,memo_events,cctp_burns,cctp_mints,indexer_statemode:"bigint"columns serialised as strings viaapp.set("json replacer", ...)/api/indexer/*; 10 req/min on heavy aggregate queriesCloses #7