diff --git a/docs/filters.rst b/docs/filters.rst index 278a02fdf4..b24b8d1cf4 100644 --- a/docs/filters.rst +++ b/docs/filters.rst @@ -90,8 +90,6 @@ See an advanced example of fetching log history :ref:`here None: def select_filter_method( value: Union[str, FilterParams, HexStr], if_new_block_filter: RPCEndpoint, - if_new_pending_transaction_filter: RPCEndpoint, if_new_filter: RPCEndpoint, ) -> Optional[RPCEndpoint]: if is_string(value): if value == "latest": return if_new_block_filter - elif value == "pending": - return if_new_pending_transaction_filter elif is_hex(value): raise _UseExistingFilter(value) else: raise Web3ValidationError( - "Filter argument needs to be either 'latest'," - " 'pending', or a hex-encoded filter_id. Filter argument" + "Filter argument needs to be either 'latest'" + " or a hex-encoded filter_id. Filter argument" f" is: {value}" ) elif isinstance(value, dict): @@ -403,6 +400,6 @@ def select_filter_method( else: raise Web3ValidationError( "Filter argument needs to be either the string " - "'pending' or 'latest', a filter_id, " + "'latest', a filter_id, " f"or a filter params dictionary. Filter argument is: {value}" ) diff --git a/web3/_utils/method_formatters.py b/web3/_utils/method_formatters.py index 5321c77f9f..95b87b1680 100644 --- a/web3/_utils/method_formatters.py +++ b/web3/_utils/method_formatters.py @@ -934,13 +934,6 @@ def filter_wrapper( return AsyncBlockFilter(filter_id, eth_module=cast("AsyncEth", module)) else: return BlockFilter(filter_id, eth_module=cast("Eth", module)) - elif method == RPC.eth_newPendingTransactionFilter: - if module.is_async: - return AsyncTransactionFilter( - filter_id, eth_module=cast("AsyncEth", module) - ) - else: - return TransactionFilter(filter_id, eth_module=cast("Eth", module)) elif method == RPC.eth_newFilter: if module.is_async: return AsyncLogFilter(filter_id, eth_module=cast("AsyncEth", module)) @@ -949,13 +942,11 @@ def filter_wrapper( else: raise NotImplementedError( "Filter wrapper needs to be used with either " - f"{RPC.eth_newBlockFilter}, {RPC.eth_newPendingTransactionFilter}" - f" or {RPC.eth_newFilter}" + f"{RPC.eth_newBlockFilter} or {RPC.eth_newFilter}" ) FILTER_RESULT_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = { - RPC.eth_newPendingTransactionFilter: filter_wrapper, RPC.eth_newBlockFilter: filter_wrapper, RPC.eth_newFilter: filter_wrapper, } diff --git a/web3/_utils/module_testing/eth_module.py b/web3/_utils/module_testing/eth_module.py index d9f75d654b..5651b1dbe8 100644 --- a/web3/_utils/module_testing/eth_module.py +++ b/web3/_utils/module_testing/eth_module.py @@ -2463,20 +2463,6 @@ async def test_async_eth_new_block_filter(self, async_w3: "AsyncWeb3") -> None: result = await async_w3.eth.uninstall_filter(filter.filter_id) assert result is True - @pytest.mark.asyncio - async def test_async_eth_new_pending_transaction_filter( - self, async_w3: "AsyncWeb3" - ) -> None: - filter = await async_w3.eth.filter("pending") - assert is_string(filter.filter_id) - - changes = await async_w3.eth.get_filter_changes(filter.filter_id) - assert is_list_like(changes) - assert not changes - - result = await async_w3.eth.uninstall_filter(filter.filter_id) - assert result is True - @pytest.mark.asyncio async def test_async_eth_uninstall_filter(self, async_w3: "AsyncWeb3") -> None: filter = await async_w3.eth.filter({}) @@ -4493,17 +4479,6 @@ def test_eth_new_block_filter(self, w3: "Web3") -> None: result = w3.eth.uninstall_filter(filter.filter_id) assert result is True - def test_eth_new_pending_transaction_filter(self, w3: "Web3") -> None: - filter = w3.eth.filter("pending") - assert is_string(filter.filter_id) - - changes = w3.eth.get_filter_changes(filter.filter_id) - assert is_list_like(changes) - assert not changes - - result = w3.eth.uninstall_filter(filter.filter_id) - assert result is True - def test_eth_get_logs_without_logs( self, w3: "Web3", block_with_txn_with_log: BlockData ) -> None: diff --git a/web3/_utils/rpc_abi.py b/web3/_utils/rpc_abi.py index f2e9dcbfee..bf8ede4649 100644 --- a/web3/_utils/rpc_abi.py +++ b/web3/_utils/rpc_abi.py @@ -95,7 +95,6 @@ class RPC: eth_getWork = RPCEndpoint("eth_getWork") eth_newBlockFilter = RPCEndpoint("eth_newBlockFilter") eth_newFilter = RPCEndpoint("eth_newFilter") - eth_newPendingTransactionFilter = RPCEndpoint("eth_newPendingTransactionFilter") eth_protocolVersion = RPCEndpoint("eth_protocolVersion") eth_sendRawTransaction = RPCEndpoint("eth_sendRawTransaction") eth_sendTransaction = RPCEndpoint("eth_sendTransaction") diff --git a/web3/eth/async_eth.py b/web3/eth/async_eth.py index a028816cd7..b2df04e4f6 100644 --- a/web3/eth/async_eth.py +++ b/web3/eth/async_eth.py @@ -637,15 +637,13 @@ async def sign_typed_data( async def get_uncle_count(self, block_identifier: BlockIdentifier) -> int: return await self._get_uncle_count(block_identifier) - # eth_newFilter, eth_newBlockFilter, eth_newPendingTransactionFilter + # eth_newFilter, eth_newBlockFilter filter: Method[ Callable[[Optional[Union[str, FilterParams, HexStr]]], Awaitable[AsyncFilter]] ] = Method( method_choice_depends_on_args=select_filter_method( - if_new_block_filter=RPC.eth_newBlockFilter, - if_new_pending_transaction_filter=RPC.eth_newPendingTransactionFilter, - if_new_filter=RPC.eth_newFilter, + if_new_block_filter=RPC.eth_newBlockFilter, if_new_filter=RPC.eth_newFilter ), mungers=[BaseEth.filter_munger], ) diff --git a/web3/eth/base_eth.py b/web3/eth/base_eth.py index 62c7eed46b..6ab4602681 100644 --- a/web3/eth/base_eth.py +++ b/web3/eth/base_eth.py @@ -205,12 +205,12 @@ def filter_munger( if isinstance(filter_params, dict): return [filter_params] elif is_string(filter_params): - if filter_params in {"latest", "pending"}: + if filter_params == "latest": return [filter_params] else: raise Web3ValueError( - "The filter API only accepts the values of `pending` or " - "`latest` for string based filters" + "The filter API only accepts the value of" + " `latest` for string based filters" ) elif filter_id and not filter_params: return [filter_id] diff --git a/web3/eth/eth.py b/web3/eth/eth.py index 32f4d2a7e5..d28e835672 100644 --- a/web3/eth/eth.py +++ b/web3/eth/eth.py @@ -600,15 +600,13 @@ def modify_transaction( mungers=[default_root_munger], ) - # eth_newFilter, eth_newBlockFilter, eth_newPendingTransactionFilter + # eth_newFilter, eth_newBlockFilter filter: Method[ Callable[[Optional[Union[str, FilterParams, HexStr]]], Filter] ] = Method( method_choice_depends_on_args=select_filter_method( - if_new_block_filter=RPC.eth_newBlockFilter, - if_new_pending_transaction_filter=RPC.eth_newPendingTransactionFilter, - if_new_filter=RPC.eth_newFilter, + if_new_block_filter=RPC.eth_newBlockFilter, if_new_filter=RPC.eth_newFilter ), mungers=[BaseEth.filter_munger], ) diff --git a/web3/method.py b/web3/method.py index a664f17d9c..8efc379655 100644 --- a/web3/method.py +++ b/web3/method.py @@ -217,12 +217,8 @@ def process_params( # the first parameter determines which method needs to be called self.json_rpc_method = self.method_choice_depends_on_args(value=params[0]) - pending_or_latest_filter_methods = [ - RPC.eth_newPendingTransactionFilter, - RPC.eth_newBlockFilter, - ] - if self.json_rpc_method in pending_or_latest_filter_methods: - # For pending or latest filter methods, use params to determine + if self.json_rpc_method == RPC.eth_newBlockFilter: + # For latest filter method, use params to determine # which method to call, but don't pass them through with the request params = [] diff --git a/web3/providers/eth_tester/defaults.py b/web3/providers/eth_tester/defaults.py index 77edbf73bb..722d8d9894 100644 --- a/web3/providers/eth_tester/defaults.py +++ b/web3/providers/eth_tester/defaults.py @@ -320,9 +320,6 @@ def create_new_account(eth_tester: "EthereumTester") -> HexAddress: "compileSerpent": not_implemented, "newFilter": create_log_filter, "newBlockFilter": call_eth_tester("create_block_filter"), - "newPendingTransactionFilter": call_eth_tester( - "create_pending_transaction_filter" - ), "uninstallFilter": excepts( FilterNotFound, compose( diff --git a/web3/providers/eth_tester/middleware.py b/web3/providers/eth_tester/middleware.py index 72ab204076..8f18a8f40f 100644 --- a/web3/providers/eth_tester/middleware.py +++ b/web3/providers/eth_tester/middleware.py @@ -312,7 +312,6 @@ def is_hexstr(value: Any) -> bool: ), RPCEndpoint("eth_newFilter"): integer_to_hex, RPCEndpoint("eth_newBlockFilter"): integer_to_hex, - RPCEndpoint("eth_newPendingTransactionFilter"): integer_to_hex, RPCEndpoint("eth_getLogs"): apply_formatter_if( is_array_of_dicts, apply_list_to_array_formatter(log_result_remapper), diff --git a/web3/providers/rpc/utils.py b/web3/providers/rpc/utils.py index ccb205f3a2..31283d709c 100644 --- a/web3/providers/rpc/utils.py +++ b/web3/providers/rpc/utils.py @@ -44,7 +44,6 @@ "eth_createAccessList", "eth_maxPriorityFeePerGas", "eth_newBlockFilter", - "eth_newPendingTransactionFilter", "eth_newFilter", "eth_getFilterChanges", "eth_getFilterLogs",