aefa8d5f59
* Change how RPCs eth_call and eth_estimateGas handle "Pending" Before this PR we would return a rather confusing error when calling `eth_call` and `eth_estimateGas` with `"Pending"`, e.g.: ``` {"jsonrpc":"2.0","error":{"code":-32000,"message":"This request is not supported because your node is running with state pruning. Run with --pruning=archive."},"id":"e237678f6648ed12ff05a74933d06d17"} ``` In reality what is going on is that users often use `"Pending"` when they really mean `"Latest"` (e.g. MyCrypto…) and when the block in question is not actually pending. This changes our behaviour for these two RPC calls to fall back to `"Latest"` when the query with `"Pending"` fails. Note that we already behave this way for many other RPCs: - eth_call (after this PR) - eth_estimateGas (after this PR) - eth_getBalance - eth_getCode - eth_getStorageAt Closes https://github.com/paritytech/parity-ethereum/issues/10096 * Fetch jsonrpc from git * No real need to wait for new jsonrpc * Add tests for calling eth_call/eth_estimateGas with "Pending" * Fix a todo, add another * Change client.latest_state to return the best header as well so we avoid potential data races and do less work * Impl review suggestions * Update rpc/src/v1/impls/eth.rs Co-Authored-By: Niklas Adolfsson <niklasadolfsson1@gmail.com> * Review grumbles * update docs |
||
---|---|---|
.. | ||
account-db | ||
account-state | ||
benches | ||
block-reward | ||
blockchain | ||
builtin | ||
call-contract | ||
client-traits | ||
db | ||
engine | ||
engines | ||
evm | ||
executive-state | ||
light | ||
machine | ||
node-filter | ||
pod | ||
private-tx | ||
res | ||
service | ||
snapshot | ||
spec | ||
src | ||
state-db | ||
sync | ||
trace | ||
trie-vm-factories | ||
types | ||
verification | ||
vm | ||
wasm | ||
Cargo.toml |