@@ -691,7 +691,7 @@ fn eth_get_block_by_number_should_succeed() {
691
691
size: 0xcd35_u32 . into( ) ,
692
692
state_root: "0x13552447dd62f11ad885f21a583c4fa34144efe923c7e35fb018d6710f06b2b6" . parse( ) . unwrap( ) ,
693
693
timestamp: 0x656f96f3_u32 . into( ) ,
694
- total_difficulty: Some ( 0xc70d815d562d3cfa955_u128 . into ( ) ) ,
694
+ total_difficulty: None ,
695
695
transactions: vec![ ] ,
696
696
transactions_root: None ,
697
697
uncles: vec![ ] ,
@@ -734,7 +734,7 @@ fn eth_get_block_by_number_pre_london_fork_should_succeed() {
734
734
size: 0x21c_u32 . into( ) ,
735
735
state_root: "0xd7f8974fb5ac78d9ac099b9ad5018bedc2ce0a72dad1827a1709da30580f0544" . parse( ) . unwrap( ) ,
736
736
timestamp: Nat256 :: ZERO ,
737
- total_difficulty: Some ( 0x400000000_u64 . into ( ) ) ,
737
+ total_difficulty: None ,
738
738
transactions: vec![ ] ,
739
739
transactions_root: Some ( "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" . parse( ) . unwrap( ) ) ,
740
740
uncles: vec![ ] ,
@@ -743,6 +743,27 @@ fn eth_get_block_by_number_pre_london_fork_should_succeed() {
743
743
}
744
744
}
745
745
746
+ #[ test]
747
+ fn eth_get_block_by_number_should_be_consistent_when_total_difficulty_inconsistent ( ) {
748
+ let setup = EvmRpcSetup :: new ( ) . mock_api_keys ( ) ;
749
+ let response = setup. eth_get_block_by_number (
750
+ RpcServices :: EthMainnet ( Some ( vec ! [
751
+ EthMainnetService :: Ankr ,
752
+ EthMainnetService :: PublicNode ,
753
+ ] ) ) ,
754
+ None ,
755
+ evm_rpc_types:: BlockTag :: Latest ,
756
+ )
757
+ . mock_http_once ( MockOutcallBuilder :: new ( 200 , r#"{"jsonrpc":"2.0","result":{"baseFeePerGas":"0xd7232aa34","difficulty":"0x0","extraData":"0x546974616e2028746974616e6275696c6465722e78797a29","gasLimit":"0x1c9c380","gasUsed":"0xa768c4","hash":"0xc3674be7b9d95580d7f23c03d32e946f2b453679ee6505e3a778f003c5a3cfae","logsBloom":"0x3e6b8420e1a13038902c24d6c2a9720a7ad4860cdc870cd5c0490011e43631134f608935bd83171247407da2c15d85014f9984608c03684c74aad48b20bc24022134cdca5f2e9d2dee3b502a8ccd39eff8040b1d96601c460e119c408c620b44fa14053013220847045556ea70484e67ec012c322830cf56ef75e09bd0db28a00f238adfa587c9f80d7e30d3aba2863e63a5cad78954555966b1055a4936643366a0bb0b1bac68d0e6267fc5bf8304d404b0c69041125219aa70562e6a5a6362331a414a96d0716990a10161b87dd9568046a742d4280014975e232b6001a0360970e569d54404b27807d7a44c949ac507879d9d41ec8842122da6772101bc8b","miner":"0x388c818ca8b9251b393131c08a736a67ccb19297","mixHash":"0x516a58424d4883a3614da00a9c6f18cd5cd54335a08388229a993a8ecf05042f","nonce":"0x0000000000000000","number":"0x11db01d","parentHash":"0x43325027f6adf9befb223f8ae80db057daddcd7b48e41f60cd94bfa8877181ae","receiptsRoot":"0x66934c3fd9c547036fe0e56ad01bc43c84b170be7c4030a86805ddcdab149929","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0xcd35","stateRoot":"0x13552447dd62f11ad885f21a583c4fa34144efe923c7e35fb018d6710f06b2b6","timestamp":"0x656f96f3","totalDifficulty":"0xc70d815d562d3cfa955","withdrawalsRoot":"0xecae44b2c53871003c5cc75285995764034c9b5978a904229d36c1280b141d48"},"id":0}"# ) )
758
+ . mock_http_once ( MockOutcallBuilder :: new ( 200 , r#"{"jsonrpc":"2.0","result":{"baseFeePerGas":"0xd7232aa34","difficulty":"0x0","extraData":"0x546974616e2028746974616e6275696c6465722e78797a29","gasLimit":"0x1c9c380","gasUsed":"0xa768c4","hash":"0xc3674be7b9d95580d7f23c03d32e946f2b453679ee6505e3a778f003c5a3cfae","logsBloom":"0x3e6b8420e1a13038902c24d6c2a9720a7ad4860cdc870cd5c0490011e43631134f608935bd83171247407da2c15d85014f9984608c03684c74aad48b20bc24022134cdca5f2e9d2dee3b502a8ccd39eff8040b1d96601c460e119c408c620b44fa14053013220847045556ea70484e67ec012c322830cf56ef75e09bd0db28a00f238adfa587c9f80d7e30d3aba2863e63a5cad78954555966b1055a4936643366a0bb0b1bac68d0e6267fc5bf8304d404b0c69041125219aa70562e6a5a6362331a414a96d0716990a10161b87dd9568046a742d4280014975e232b6001a0360970e569d54404b27807d7a44c949ac507879d9d41ec8842122da6772101bc8b","miner":"0x388c818ca8b9251b393131c08a736a67ccb19297","mixHash":"0x516a58424d4883a3614da00a9c6f18cd5cd54335a08388229a993a8ecf05042f","nonce":"0x0000000000000000","number":"0x11db01d","parentHash":"0x43325027f6adf9befb223f8ae80db057daddcd7b48e41f60cd94bfa8877181ae","receiptsRoot":"0x66934c3fd9c547036fe0e56ad01bc43c84b170be7c4030a86805ddcdab149929","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0xcd35","stateRoot":"0x13552447dd62f11ad885f21a583c4fa34144efe923c7e35fb018d6710f06b2b6","timestamp":"0x656f96f3","withdrawalsRoot":"0xecae44b2c53871003c5cc75285995764034c9b5978a904229d36c1280b141d48"},"id":0}"# ) )
759
+ . wait ( )
760
+ . expect_consistent ( )
761
+ . unwrap ( ) ;
762
+
763
+ assert_eq ! ( response. number, 18_722_845_u32 . into( ) ) ;
764
+ assert_eq ! ( response. total_difficulty, None ) ;
765
+ }
766
+
746
767
#[ test]
747
768
fn eth_get_transaction_receipt_should_succeed ( ) {
748
769
let test_cases = [
0 commit comments