To add an other issue about the CloudFlare Web3 service, it replies with an unexpected error ‘Parse Error’ message when interacting with some contracts.
The issue can be seen using the following Web3 call :
Contract “BalanceScanner” at 0x571C62a1c863aEAD01c1d34D8cB3Ee2c6f938800.
eth_call of the method tokensBalance(address,address[])
= e5da1b68
Using the FTX account wallet 0x2faf487a4414fe77e2327f0bf4ae2a264a776ad2,
and the USDT token 0xdac17f958d2ee523a2206206994597c13d831ec7.
eth_call → tokensBalance(0x2faf487a4414fe77e2327f0bf4ae2a264a776ad2, [0xdac17f958d2ee523a2206206994597c13d831ec7])
Which translates after ABI/HexSerial encoding to :
0xe5da1b680000000000000000000000002faf487a4414fe77e2327f0bf4ae2a264a776ad200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
for data.
Full request and response
Request
https://cloudflare-eth.com/
Headers :
Content-length: 392
Host: cloudflare-eth.com
User-agent: Mozilla/5.0
Content-type: application/json
Data :
{"jsonrpc":"2.0","id":0,"method":"eth_call","params":[{"to":"0x571c62a1c863aead01c1d34d8cb3ee2c6f938800","data":"0xe5da1b680000000000000000000000002faf487a4414fe77e2327f0bf4ae2a264a776ad200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7"},"latest"]}
Response
raw headers
Content-Type: application/json
Content-Length: 73
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: POST, OPTIONS
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Vary: Accept-Encoding
Server: cloudflare
CF-RAY: 6d3281a45dbc32c2-CDG
Data
{"jsonrpc":"2.0","error":{"code":-32700,"message":"Parse Error"},"id":-1}
Our software trace at higher level :
Exception: Error in JSON-RPC response: {'code': -32700, 'message': 'Parse Error'}
Using an alternative RPC service :
Response
{"jsonrpc":"2.0","id":0,"result":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000d65e40b9db26"}\n
Which can be translated back after JSON-RPC and EVM/ABI decoding :
[235700301191974] = 235,700,301.191974 USDT token units.
Do you maintain high quality about this free service, as it were a paid one? Or you just provide this service as a promotional marketing free but technically unreliable service?