eth_sendTransaction and eth_sendRawTransaction returned the generic
-32000 code for submission failures, so callers had to string-match the
message to distinguish e.g. a nonce error from an underpriced replacement.
Map submission/pool errors to the standardized JSON-RPC error-code catalog
shared across EVM clients in ethereum/execution-apis (src/error-groups:
ExecutionErrors 1-199, GasErrors 800-999, TxPoolErrors 1000-1199), while
preserving the original error message. Errors without a catalog code are
returned unchanged, keeping the existing -32000 default.