@@ -72,26 +72,10 @@ class GethExceptionMapper(ExceptionMapper):
7272 TransactionException .INITCODE_SIZE_EXCEEDED : "max initcode size exceeded" ,
7373 TransactionException .NONCE_MISMATCH_TOO_LOW : "nonce too low" ,
7474 TransactionException .NONCE_MISMATCH_TOO_HIGH : "nonce too high" ,
75- BlockException .INVALID_DEPOSIT_EVENT_LAYOUT : "unable to parse deposit data" ,
7675 BlockException .INCORRECT_BLOB_GAS_USED : "blob gas used mismatch" ,
7776 BlockException .INCORRECT_EXCESS_BLOB_GAS : "invalid excessBlobGas" ,
7877 BlockException .INVALID_VERSIONED_HASHES : "invalid number of versionedHashes" ,
7978 BlockException .INVALID_REQUESTS : "invalid requests hash" ,
80- BlockException .INVALID_DEPOSIT_EVENT_LAYOUT : "invalid requests hash" ,
81- # Geth does not validate the sizes or offsets of the deposit
82- # contract logs. As a workaround we have set
83- # INVALID_DEPOSIT_EVENT_LAYOUT equal to INVALID_REQUESTS.
84- #
85- # Although this is out of spec, it is understood that this
86- # will not cause an issue so long as the mainnet/testnet
87- # deposit contracts don't change.
88- #
89- # The offsets are checked second and the sizes are checked
90- # third within the `is_valid_deposit_event_data` function:
91- # https://eips.ethereum.org/EIPS/eip-6110#block-validity
92- #
93- # EELS definition for `is_valid_deposit_event_data`:
94- # https://github.com/ethereum/execution-specs/blob/5ddb904fa7ba27daeff423e78466744c51e8cb6a/src/ethereum/forks/prague/requests.py#L51
9579 BlockException .SYSTEM_CONTRACT_CALL_FAILED : "system call failed to execute:" ,
9680 BlockException .INVALID_BLOCK_HASH : "blockhash mismatch" ,
9781 BlockException .RLP_BLOCK_LIMIT_EXCEEDED : "block RLP-encoded size exceeds maximum" ,
@@ -107,6 +91,23 @@ class GethExceptionMapper(ExceptionMapper):
10791 r"blob gas used \d+ exceeds maximum allowance \d+"
10892 ),
10993 BlockException .INVALID_GAS_USED_ABOVE_LIMIT : r"invalid gasUsed: have \d+, gasLimit \d+" ,
94+ BlockException .INVALID_DEPOSIT_EVENT_LAYOUT : (
95+ r"invalid requests hash|failed to parse deposit logs"
96+ ),
97+ # Geth does not validate the sizes or offsets of the deposit
98+ # contract logs. As a workaround we have set
99+ # INVALID_DEPOSIT_EVENT_LAYOUT equal to INVALID_REQUESTS.
100+ #
101+ # Although this is out of spec, it is understood that this
102+ # will not cause an issue so long as the mainnet/testnet
103+ # deposit contracts don't change.
104+ #
105+ # The offsets are checked second and the sizes are checked
106+ # third within the `is_valid_deposit_event_data` function:
107+ # https://eips.ethereum.org/EIPS/eip-6110#block-validity
108+ #
109+ # EELS definition for `is_valid_deposit_event_data`:
110+ # https://github.com/ethereum/execution-specs/blob/5ddb904fa7ba27daeff423e78466744c51e8cb6a/src/ethereum/forks/prague/requests.py#L51
110111 }
111112
112113
0 commit comments