Skip to content

eth_simulateV1 fails for op-nmc #8394

Open
@mralj

Description

@mralj

Description
Calling eth_simulateV1 on op-NMC node fails.

Steps to Reproduce

curl https://url.dev \
        -X POST \
        -H "Content-Type: application/json" \
        --data '{"jsonrpc":"2.0","method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0x9"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4a817c420"}},"calls":[{"from":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","to":"0x014d023e954bAae7F21E56ed8a5d81b12902684D","maxFeePerGas":"0xf","value":"0x1"}]}],"validation":true,"traceTransfers":true},"latest"],"id":1}'

Actual behavior

Request errors with:

{"jsonrpc":"2.0","error":{"code":0,"message":"System.InvalidCastException: Unable to cast object of type 'Nethermind.Core.TxReceipt' to type 'Nethermind.Optimism.OptimismTxReceipt'.\n   at Nethermind.Optimism.OptimismReceiptMessageDecoder.GetLength(TxReceipt item, RlpBehaviors rlpBehaviors) in /src/Nethermind/Nethermind.Optimism/OptimismReceiptMessageDecoder.cs:line 200\n   at Nethermind.State.Proofs.ReceiptTrie`1.CalculateRoot(IReceiptSpec receiptSpec, TReceipt[] txReceipts, IRlpStreamDecoder`1 decoder) in /src/Nethermind/Nethermind.State/Proofs/ReceiptTrie.cs:line 62\n   at Nethermind.Consensus.Processing.BlockProcessor.ProcessBlock(Block block, IBlockTracer blockTracer, ProcessingOptions options) in /src/Nethermind/Nethermind.Consensus/Processing/BlockProcessor.cs:line 319\n   at Nethermind.Consensus.Processing.BlockProcessor.ProcessOne(Block suggestedBlock, ProcessingOptions options, IBlockTracer blockTracer) in /src/Nethermind/Nethermind.Consensus/Processing/BlockProcessor.cs:line 286\n   at Nethermind.Consensus.Processing.BlockProcessor.Process(Hash256 newBranchStateRoot, List`1 suggestedBlocks, ProcessingOptions options, IBlockTracer blockTracer) in /src/Nethermind/Nethermind.Consensus/Processing/BlockProcessor.cs:line 148\n   at Nethermind.Facade.Simulate.SimulateBridgeHelper.TrySimulate(BlockHeader parent, SimulatePayload`1 payload, SimulateBlockTracer simulateOutputTracer, IBlockTracer tracer, SimulateReadOnlyBlocksProcessingEnv env, String& error) in /src/Nethermind/Nethermind.Facade/Simulate/SimulateBridgeHelper.cs:line 76\n   at Nethermind.Facade.Simulate.SimulateBridgeHelper.TrySimulate(BlockHeader parent, SimulatePayload`1 payload, SimulateBlockTracer simulateOutputTracer, IBlockTracer tracer, String& error) in /src/Nethermind/Nethermind.Facade/Simulate/SimulateBridgeHelper.cs:line 65\n   at Nethermind.Facade.BlockchainBridge.Simulate(BlockHeader header, SimulatePayload`1 payload, CancellationToken cancellationToken) in /src/Nethermind/Nethermind.Facade/BlockchainBridge.cs:line 176","data":[]},"id":1}⏎

Expected behavior

curl https://docs-demo.base-mainnet.quiknode.pro/ \
        -X POST \
        -H "Content-Type: application/json" \
        --data '{"jsonrpc":"2.0","method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0x9"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4a817c420"}},"calls":[{"from":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","to":"0x014d023e954bAae7F21E56ed8a5d81b12902684D","maxFeePerGas":"0xf","value":"0x1"}]}],"validation":true,"traceTransfers":true},"latest"],"id":1}'

Returns

{"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x9","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045","0x000000000000000000000000014d023e954baae7f21e56ed8a5d81b12902684d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x1a84935","transactionHash":"0x60b1244032eaded5fbb0856294c22d61c3ea45f27f7857eb42eb70f1c0a5f5c6","transactionIndex":"0x0","blockHash":"0x830bcc820289f0323496b34151a50195f5288a4fa7edcaf559c1ef253ad15778","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x6ea0500","gasUsed":"0x5208","hash":"0x830bcc820289f0323496b34151a50195f5288a4fa7edcaf559c1ef253ad15778","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x4200000000000000000000000000000000000011","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1a84935","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xfcbb695622570b065d78993abb2a2714e1b67d1dc086d99e1e1cefbfff499c0e","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x272","stateRoot":"0xd51eb4900668403903bcd79ab5ca44139c7e8d460c0805ee9ffbd80f41a37742","timestamp":"0x67daef57","transactions":["0x60b1244032eaded5fbb0856294c22d61c3ea45f27f7857eb42eb70f1c0a5f5c6"],"transactionsRoot":"0x345da63fc97ee942af41863b79b59d2bf1d19f407d684741546414f5c977082f","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]}

Using NMC v1.31.4

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions