From 678577a3890f751c25503ed6f1a11a3d21e6e635 Mon Sep 17 00:00:00 2001 From: Zach Howard Date: Tue, 12 Dec 2023 13:04:52 -0500 Subject: [PATCH] proxyd: adds test case, docs for allowing pre-eip155 txns --- proxyd/proxyd/config.go | 1 + proxyd/proxyd/integration_tests/testdata/sender_rate_limit.toml | 2 +- proxyd/proxyd/integration_tests/testdata/testdata.txt | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/proxyd/proxyd/config.go b/proxyd/proxyd/config.go index 0e86b0b..bb7fe22 100644 --- a/proxyd/proxyd/config.go +++ b/proxyd/proxyd/config.go @@ -135,6 +135,7 @@ type BatchConfig struct { // SenderRateLimitConfig configures the sender-based rate limiter // for eth_sendRawTransaction requests. +// To enable pre-eip155 transactions, add '0' to allowed_chain_ids. type SenderRateLimitConfig struct { Enabled bool Interval TOMLDuration diff --git a/proxyd/proxyd/integration_tests/testdata/sender_rate_limit.toml b/proxyd/proxyd/integration_tests/testdata/sender_rate_limit.toml index 024858a..c99959d 100644 --- a/proxyd/proxyd/integration_tests/testdata/sender_rate_limit.toml +++ b/proxyd/proxyd/integration_tests/testdata/sender_rate_limit.toml @@ -18,7 +18,7 @@ eth_chainId = "main" eth_sendRawTransaction = "main" [sender_rate_limit] +allowed_chain_ids = [0, 420] # adding 0 allows pre-EIP-155 transactions enabled = true interval = "1s" limit = 1 -allowed_chain_ids = [420] diff --git a/proxyd/proxyd/integration_tests/testdata/testdata.txt b/proxyd/proxyd/integration_tests/testdata/testdata.txt index 7e31927..14c9124 100644 --- a/proxyd/proxyd/integration_tests/testdata/testdata.txt +++ b/proxyd/proxyd/integration_tests/testdata/testdata.txt @@ -10,4 +10,5 @@ valid transaction data - simple send|{"jsonrpc":"2.0","method":"eth_sendRawTrans valid transaction data - contract call|{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x02f8b28201a406849502f931849502f931830147f9948f3ddd0fbf3e78ca1d6cd17379ed88e261249b5280b84447e7ef2400000000000000000000000089c8b1b2774201bac50f627403eac1b732459cf70000000000000000000000000000000000000000000000056bc75e2d63100000c080a0473c95566026c312c9664cd61145d2f3e759d49209fe96011ac012884ec5b017a0763b58f6fa6096e6ba28ee08bfac58f58fb3b8bcef5af98578bdeaddf40bde42"],"id":1}|{"id": 123, "jsonrpc": "2.0", "result": "dummy"} valid chain id - simple send|{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x02f8748201a415843b9aca31843b9aca3182520894f80267194936da1e98db10bce06f3147d580a62e880de0b6b3a764000080c001a0b50ee053102360ff5fedf0933b912b7e140c90fe57fa07a0cebe70dbd72339dda072974cb7bfe5c3dc54dde110e2b049408ccab8a879949c3b4d42a3a7555a618b"],"id":1}|{"id": 123, "jsonrpc": "2.0", "result": "dummy"} invalid chain id - simple send|{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x02f87683ab41308217af84773594008504a817c80082520894be53e587975603a13d0923d0aa6d37c5233dd750865af3107a400080c001a04ae265f17e882b922d39f0f0cb058a6378df1dc89da8b8165ab6bc53851b426aa0682079486be2aa23bc7514477473362cc7d63afa12c99f7d8fb15e68d69d9a48"],"id":1}|{"jsonrpc":"2.0","error":{"code":-32000,"message":"invalid sender"},"id":1} +no chain id (pre eip-155) - simple send|{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0xf865808609184e72a00082271094000000000000000000000000000000000000000001001ba0d937ddb66e7788f917864b8e6974cac376b091154db1c25ff8429a6e61016e74a054ced39349e7658b7efceccfabc461e02418eb510124377949cfae8ccf1831af"],"id":1}|{"id": 123, "jsonrpc": "2.0", "result": "dummy"} batch with mixed results|[{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x02f87683ab41308217af84773594008504a817c80082520894be53e587975603a13d0923d0aa6d37c5233dd750865af3107a400080c001a04ae265f17e882b922d39f0f0cb058a6378df1dc89da8b8165ab6bc53851b426aa0682079486be2aa23bc7514477473362cc7d63afa12c99f7d8fb15e68d69d9a48"],"id":1},{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x02f8748201a415843b9aca31843b9aca3182520894f80267194936da1e98db10bce06f3147d580a62e880de0b6b3a764000080c001a0b50ee053102360ff5fedf0933b912b7e140c90fe57fa07a0cebe70dbd72339dda072974cb7bfe5c3dc54dde110e2b049408ccab8a879949c3b4d42a3a7555a618b"],"id":1},{"bad":"json"},{"jsonrpc":"2.0","method":"eth_fooTheBar","params":[],"id":123}]|[{"jsonrpc":"2.0","error":{"code":-32000,"message":"invalid sender"},"id":1},{"id": 123, "jsonrpc": "2.0", "result": "dummy"},{"jsonrpc":"2.0","error":{"code":-32600,"message":"invalid JSON-RPC version"},"id":null},{"jsonrpc":"2.0","error":{"code":-32001,"message":"rpc method is not whitelisted"},"id":123}]