748cc65b9f
53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
|
|||
from web3 import Web3
|
|||
|
|||
from .expected_constants import (
|
|||
EXPECTED_CALLTRACERS,
|
|||
EXPECTED_CONTRACT_CREATE_TRACER,
|
|||
EXPECTED_STRUCT_TRACER,
|
|||
)
|
|||
from .utils import (
|
|||
ADDRS,
|
|||
CONTRACTS,
|
|||
KEYS,
|
|||
deploy_contract,
|
|||
send_transaction,
|
|||
w3_wait_for_new_blocks,
|
|||
)
|
|||
|
|||
|
|||
def test_tracers(ethermint_rpc_ws):
|
|||
w3: Web3 = ethermint_rpc_ws.w3
|
|||
eth_rpc = w3.provider
|
|||
gas_price = w3.eth.gas_price
|
|||
tx = {"to": ADDRS["community"], "value": 100, "gasPrice": gas_price}
|
|||
tx_hash = send_transaction(w3, tx, KEYS["validator"])["transactionHash"].hex()
|
|||
|
|||
tx_res = eth_rpc.make_request("debug_traceTransaction", [tx_hash])
|
|||
assert tx_res["result"] == EXPECTED_STRUCT_TRACER, ""
|
|||
|
|||
tx_res = eth_rpc.make_request(
|
|||
"debug_traceTransaction", [tx_hash, {"tracer": "callTracer"}]
|
|||
)
|
|||
assert tx_res["result"] == EXPECTED_CALLTRACERS, ""
|
|||
|
|||
tx_res = eth_rpc.make_request(
|
|||
"debug_traceTransaction",
|
|||
[tx_hash, {"tracer": "callTracer", "tracerConfig": "{'onlyTopCall':True}"}],
|
|||
)
|
|||
assert tx_res["result"] == EXPECTED_CALLTRACERS, ""
|
|||
|
|||
_, tx = deploy_contract(
|
|||
w3,
|
|||
CONTRACTS["TestERC20A"],
|
|||
)
|
|||
tx_hash = tx["transactionHash"].hex()
|
|||
|
|||
w3_wait_for_new_blocks(w3, 1)
|
|||
|
|||
tx_res = eth_rpc.make_request(
|
|||
"debug_traceTransaction", [tx_hash, {"tracer": "callTracer"}]
|
|||
)
|
|||
tx_res["result"]["to"] = EXPECTED_CONTRACT_CREATE_TRACER["to"]
|
|||
assert tx_res["result"] == EXPECTED_CONTRACT_CREATE_TRACER, ""
|