From 78fd7525cc3aa66c38dffc70a774828dbc9fe51f Mon Sep 17 00:00:00 2001 From: kclowes Date: Wed, 28 Apr 2021 12:23:00 -0600 Subject: [PATCH] Add trace_call, deprecate traceCall --- newsfragments/1957.feature.rst | 1 + web3/_utils/module_testing/parity_module.py | 23 ++++++++++++++++++--- web3/parity.py | 3 ++- 3 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 newsfragments/1957.feature.rst diff --git a/newsfragments/1957.feature.rst b/newsfragments/1957.feature.rst new file mode 100644 index 0000000000..de1f8a9bab --- /dev/null +++ b/newsfragments/1957.feature.rst @@ -0,0 +1 @@ +Add ``parity.trace_call``, deprecate ``parity.traceCall`` diff --git a/web3/_utils/module_testing/parity_module.py b/web3/_utils/module_testing/parity_module.py index a171815c26..50eca0d0e8 100644 --- a/web3/_utils/module_testing/parity_module.py +++ b/web3/_utils/module_testing/parity_module.py @@ -95,6 +95,23 @@ def test_trace_transaction(self, web3: "Web3", parity_fixture_data: Dict[str, st trace = web3.parity.traceTransaction(HexStr(parity_fixture_data['mined_txn_hash'])) assert trace[0]['action']['from'] == add_0x_prefix(HexStr(parity_fixture_data['coinbase'])) + def test_traceCall_deprecated( + self, web3: "Web3", math_contract: "Contract", math_contract_address: ChecksumAddress + ) -> None: + coinbase = web3.eth.coinbase + txn_params = math_contract._prepare_transaction( + fn_name='add', + fn_args=(7, 11), + transaction={'from': coinbase, 'to': math_contract_address}, + ) + with pytest.warns(DeprecationWarning, + match="traceCall is deprecated in favor of trace_call"): + trace = web3.parity.traceCall(txn_params) + assert trace['stateDiff'] is None + assert trace['vmTrace'] is None + result = hex_to_integer(trace['output']) + assert result == 18 + def test_trace_call( self, web3: "Web3", math_contract: "Contract", math_contract_address: ChecksumAddress ) -> None: @@ -104,13 +121,13 @@ def test_trace_call( fn_args=(7, 11), transaction={'from': coinbase, 'to': math_contract_address}, ) - trace = web3.parity.traceCall(txn_params) + trace = web3.parity.trace_call(txn_params) assert trace['stateDiff'] is None assert trace['vmTrace'] is None result = hex_to_integer(trace['output']) assert result == 18 - def test_eth_call_with_0_result( + def test_trace_call_with_0_result( self, web3: "Web3", math_contract: "Contract", math_contract_address: ChecksumAddress ) -> None: coinbase = web3.eth.coinbase @@ -119,7 +136,7 @@ def test_eth_call_with_0_result( fn_args=(0, 0), transaction={'from': coinbase, 'to': math_contract_address}, ) - trace = web3.parity.traceCall(txn_params) + trace = web3.parity.trace_call(txn_params) assert trace['stateDiff'] is None assert trace['vmTrace'] is None result = hex_to_integer(trace['output']) diff --git a/web3/parity.py b/web3/parity.py index b82d7c367f..dab71195bc 100644 --- a/web3/parity.py +++ b/web3/parity.py @@ -195,7 +195,7 @@ def trace_call_munger( return (transaction, mode, block_identifier) - traceCall: Method[Callable[..., ParityBlockTrace]] = Method( + trace_call: Method[Callable[..., ParityBlockTrace]] = Method( RPC.trace_call, mungers=[trace_call_munger], ) @@ -234,3 +234,4 @@ def trace_transactions_munger( traceReplayBlockTransactions = DeprecatedMethod(trace_replay_block_transactions, 'traceReplayBlockTransactions', 'trace_replay_block_transactions') + traceCall = DeprecatedMethod(trace_call, 'traceCall', 'trace_call')