JSON-RPC `eth_call` is not handle its block parameter properly.
Problem Description
description:
JSON RPC eth_call API always returns the latest block result even I specified the block parameter.
Screenshots:
This is Multicall::getCurrentBlockTimestamp() result of Findora mainnet, the result timestamp is close to current timestamp (2022-05-23T06:51:54.000Z)

This is the same eth_call but specifies block to the next block after Multicall contract is deployed. The expected result is close to 62181de8 (2022-02-25), but it returns current timestamp (2022-05-23).

Compare to other network, it response the timestamp at the block height or "header not found"
Environmental information
Code version:
findora-web3-engine/1.55.0-amd64-linux
Steps to reproduce
curl --request POST \
--url https://prod-mainnet.prod.findora.org:8545/ \
--header 'Content-Type: application/json' \
--data '{
"jsonrpc": "2.0",
"method": "eth_call",
"params": [
{
"to": "0x69dCF8266fb48537737A32a9850137B291Ee62ad",
"data": "0x0f28c97d"
},
"0x1bbc79"
],
"id": 5566
}
'
2 points:
- eth_call on history state requires an archive node (now we supports queries to old state for balanceAt, storageAt, transactionCount). eth_call to old state(needs to point to an old state) is not implemented(needs research, design) now. Compared to other network, it's better to return "header not found" if not supported?
- Are you trying to test something out? Do you have any work around in your mind?
JIRA task created: https://findora.atlassian.net/browse/FO-996