Building a permissionless standing-order contract on Arc mainnet (USDC-as-gas is what makes an exact gas refund possible),
I logged every place the chain or the public RPC behaved differently from what I expected from the docs. Repro commands and
block numbers are in the linked log; the short list:
eth_getLogs span cap is 10,000 blocks inclusive. toBlock − fromBlock = 9,999 answers; 10,001 → -32012 requested range too large. Worth a sentence on the RPC-endpoints page — at ~2 blocks/s that is ~85 minutes of chain per
call, which changes how a log-driven front end has to be written.
- The public endpoint is load-balanced across backends with different heads. A
toBlock one backend just reported as
head can get -32014 requested data not available from another. Clients need to tolerate this rather than treat it as an
error; docs could say so.
- Explorer
/api sits behind a Cloudflare managed challenge, so forge verify-contract --verifier blockscout cannot
submit from a script. HTML pages render fine logged-out. Is there a supported path for source verification?
tx.gasprice == effectiveGasPrice on every run at the 20 Gwei floor. My refund arithmetic depends on this identity.
Is it a commitment of the stable-fee design, or an artefact of today's sequencer? (Documenting either answer would help
anyone metering gas on-chain.)
- Docs call early-mainnet RPC "permissioned" — but
rpc.mainnet.arc.io answers anonymously with CORS for a foreign
origin (OPTIONS 204, POST 200, access-control-allow-origin echoing the origin). If anonymous access is intended,
the page could say so; if it is temporary, that matters to anyone shipping a backend-less app.
- Foundry ergonomics:
forge create … --constructor-args N must come last (it swallows following flags and then dials
localhost:8545).
Everything above reproduces with cast against block numbers in the log:
https://github.com/edycutjong/legwork/blob/main/docs/FRICTION-LOG.md
Building a permissionless standing-order contract on Arc mainnet (USDC-as-gas is what makes an exact gas refund possible),
I logged every place the chain or the public RPC behaved differently from what I expected from the docs. Repro commands and
block numbers are in the linked log; the short list:
eth_getLogsspan cap is 10,000 blocks inclusive.toBlock − fromBlock = 9,999answers; 10,001 →-32012 requested range too large. Worth a sentence on the RPC-endpoints page — at ~2 blocks/s that is ~85 minutes of chain percall, which changes how a log-driven front end has to be written.
toBlockone backend just reported ashead can get
-32014 requested data not availablefrom another. Clients need to tolerate this rather than treat it as anerror; docs could say so.
/apisits behind a Cloudflare managed challenge, soforge verify-contract --verifier blockscoutcannotsubmit from a script. HTML pages render fine logged-out. Is there a supported path for source verification?
tx.gasprice == effectiveGasPriceon every run at the 20 Gwei floor. My refund arithmetic depends on this identity.Is it a commitment of the stable-fee design, or an artefact of today's sequencer? (Documenting either answer would help
anyone metering gas on-chain.)
rpc.mainnet.arc.ioanswers anonymously with CORS for a foreignorigin (
OPTIONS204,POST200,access-control-allow-originechoing the origin). If anonymous access is intended,the page could say so; if it is temporary, that matters to anyone shipping a backend-less app.
forge create … --constructor-args Nmust come last (it swallows following flags and then dialslocalhost:8545).Everything above reproduces with
castagainst block numbers in the log:https://github.com/edycutjong/legwork/blob/main/docs/FRICTION-LOG.md