Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
034ce5d
Add test to check filtering per toAddress
dmitrylavrenov Oct 10, 2025
886da34
Add test to check tracing range of blocks
dmitrylavrenov Oct 10, 2025
5e7b764
Add heavy abi contract
dmitrylavrenov Oct 10, 2025
686ddde
Add looper abi contract
dmitrylavrenov Oct 10, 2025
1138f59
Add tests for trace_filter to check gas used in loops
dmitrylavrenov Oct 10, 2025
abed854
Rename traceFilter tests to traceFilterGeneral
dmitrylavrenov Oct 10, 2025
3bb5c86
Add tests that check max count numbder at trace_filter
dmitrylavrenov Oct 14, 2025
a8896b5
Rename directory containing abis for evm tracing tests
dmitrylavrenov Oct 14, 2025
30f75be
Add tests for trace_filter to check heavy contracts logic
dmitrylavrenov Oct 14, 2025
6126724
Separate debugTrace related tests to separate files
dmitrylavrenov Oct 15, 2025
021dfcd
Extend debugTraceTransaction tests with the one that test big responses
dmitrylavrenov Oct 16, 2025
7369149
Extend debugTraceTransaction tests with the one that prevents wasm me…
dmitrylavrenov Oct 17, 2025
4d1be3a
Extend debugTraceTransaction tests with the one that checks using opt…
dmitrylavrenov Oct 17, 2025
d135f09
Extend debugTraceTransaction tests with the one that checks Blockscou…
dmitrylavrenov Oct 17, 2025
9cefe9f
Extend Blockscout format test with V2 format check
dmitrylavrenov Oct 17, 2025
4088718
Extend debugTraceTransaction tests with the one that checks intermedi…
dmitrylavrenov Oct 17, 2025
7636fbc
Extend debugTraceTransaction tests with the one that checks out of ga…
dmitrylavrenov Oct 17, 2025
7de1ccf
Extend debugTraceTransaction tests with the one that checks precompil…
dmitrylavrenov Oct 17, 2025
7607951
Add checking Blockscout format for out of gas and precompiles
dmitrylavrenov Oct 17, 2025
28c00f5
Extend debugTraceTransaction tests with the one that checks transfer …
dmitrylavrenov Oct 17, 2025
6632988
Add debugTraceTransactionCallTracer tests
dmitrylavrenov Oct 21, 2025
e388b6c
Add debugTraceTransactionCallList tests
dmitrylavrenov Oct 22, 2025
5e59819
Improve namings and descritpion at trace_filter related tests
dmitrylavrenov Oct 22, 2025
55ee0d4
Improve namings and descriptions at debug_traceCall test
dmitrylavrenov Oct 22, 2025
427b821
Improve namings and descriptions at debug_traceTransaction related tests
dmitrylavrenov Oct 22, 2025
a798ac5
Fix blockNumber usage in checks
dmitrylavrenov Oct 22, 2025
fd2f047
Fix call naming at callee contract
dmitrylavrenov Oct 24, 2025
d6e8159
Improve checks related with RETURN opcode
dmitrylavrenov Oct 24, 2025
d496342
Move blockscout fixtures to separate dir and add README
dmitrylavrenov Oct 28, 2025
b751319
Fix blocks number calculation at traceFilterGeneral
dmitrylavrenov Oct 28, 2025
5332944
Use single transaction to check tracing block by number and hash at d…
dmitrylavrenov Oct 29, 2025
9c9d1d5
Check transaction position if it's a part of a corresponding block at…
dmitrylavrenov Oct 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions utils/e2e-tests/ts/lib/abis/evmTracing/callForwarder.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
// pragma solidity >=0.8.3;
//
// contract CallForwarder {
// function call(
// address target,
// bytes memory data
// ) public returns (bool, bytes memory) {
// return target.call(data);
// }
//
// function callRange(address first, address last) public {
// require(first < last, "invalid range");
// while (first < last) {
// first.call("");
// first = address(uint160(first) + 1);
// }
// }
//
// function delegateCall(
// address target,
// bytes memory data
// ) public returns (bool, bytes memory) {
// return target.delegatecall(data);
// }
// }

export default {
abi: [
{
inputs: [
{
internalType: "address",
name: "target",
type: "address",
},
{
internalType: "bytes",
name: "data",
type: "bytes",
},
],
name: "call",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "first",
type: "address",
},
{
internalType: "address",
name: "last",
type: "address",
},
],
name: "callRange",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "target",
type: "address",
},
{
internalType: "bytes",
name: "data",
type: "bytes",
},
],
name: "delegateCall",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "nonpayable",
type: "function",
},
],
bytecode:
"0x6080604052348015600e575f5ffd5b5061076d8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c80630382943f146100435780631b8b921d1461005f57806356e7b7aa14610090575b5f5ffd5b61005d6004803603810190610058919061032e565b6100c1565b005b610079600480360381019061007491906104a8565b6101e0565b604051610087929190610596565b60405180910390f35b6100aa60048036038101906100a591906104a8565b610252565b6040516100b8929190610596565b60405180910390f35b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161061012f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101269061061e565b60405180910390fd5b5b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1610156101dc578173ffffffffffffffffffffffffffffffffffffffff1660405161018790610669565b5f604051808303815f865af19150503d805f81146101c0576040519150601f19603f3d011682016040523d82523d5f602084013e6101c5565b606091505b5050506001826101d591906106aa565b9150610130565b5050565b5f60608373ffffffffffffffffffffffffffffffffffffffff16836040516102089190610721565b5f604051808303815f865af19150503d805f8114610241576040519150601f19603f3d011682016040523d82523d5f602084013e610246565b606091505b50915091509250929050565b5f60608373ffffffffffffffffffffffffffffffffffffffff168360405161027a9190610721565b5f60405180830381855af49150503d805f81146102b2576040519150601f19603f3d011682016040523d82523d5f602084013e6102b7565b606091505b50915091509250929050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102fd826102d4565b9050919050565b61030d816102f3565b8114610317575f5ffd5b50565b5f8135905061032881610304565b92915050565b5f5f60408385031215610344576103436102cc565b5b5f6103518582860161031a565b92505060206103628582860161031a565b9150509250929050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103ba82610374565b810181811067ffffffffffffffff821117156103d9576103d8610384565b5b80604052505050565b5f6103eb6102c3565b90506103f782826103b1565b919050565b5f67ffffffffffffffff82111561041657610415610384565b5b61041f82610374565b9050602081019050919050565b828183375f83830152505050565b5f61044c610447846103fc565b6103e2565b90508281526020810184848401111561046857610467610370565b5b61047384828561042c565b509392505050565b5f82601f83011261048f5761048e61036c565b5b813561049f84826020860161043a565b91505092915050565b5f5f604083850312156104be576104bd6102cc565b5b5f6104cb8582860161031a565b925050602083013567ffffffffffffffff8111156104ec576104eb6102d0565b5b6104f88582860161047b565b9150509250929050565b5f8115159050919050565b61051681610502565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610553578082015181840152602081019050610538565b5f8484015250505050565b5f6105688261051c565b6105728185610526565b9350610582818560208601610536565b61058b81610374565b840191505092915050565b5f6040820190506105a95f83018561050d565b81810360208301526105bb818461055e565b90509392505050565b5f82825260208201905092915050565b7f696e76616c69642072616e6765000000000000000000000000000000000000005f82015250565b5f610608600d836105c4565b9150610613826105d4565b602082019050919050565b5f6020820190508181035f830152610635816105fc565b9050919050565b5f81905092915050565b50565b5f6106545f8361063c565b915061065f82610646565b5f82019050919050565b5f61067382610649565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6106b4826102d4565b91506106bf836102d4565b9250828201905073ffffffffffffffffffffffffffffffffffffffff8111156106eb576106ea61067d565b5b92915050565b5f6106fb8261051c565b610705818561063c565b9350610715818560208601610536565b80840191505092915050565b5f61072c82846106f1565b91508190509291505056fea264697066735822122061744ef3cd320f8504db2e240b6131dd71c7811dbb3c105ee2c3014e04b1635864736f6c634300081e0033",
} as const;
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// contract TraceCallee {
// uint256 public store;
//
// function addtwo(uint256 value) external returns (uint256 result) {
// function addSeven(uint256 value) external returns (uint256 result) {
// uint256 x = 7;
// store = value;
// return value + x;
Expand All @@ -20,7 +20,7 @@ export default {
type: "uint256",
},
],
name: "addtwo",
name: "addSeven",
outputs: [
{
internalType: "uint256",
Expand All @@ -46,5 +46,5 @@ export default {
},
],
bytecode:
"0x6080604052348015600e575f5ffd5b506101cb8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063975057e714610038578063fd63983b14610056575b5f5ffd5b610040610086565b60405161004d91906100c3565b60405180910390f35b610070600480360381019061006b919061010a565b61008b565b60405161007d91906100c3565b60405180910390f35b5f5481565b5f5f60079050825f8190555080836100a39190610162565b915050919050565b5f819050919050565b6100bd816100ab565b82525050565b5f6020820190506100d65f8301846100b4565b92915050565b5f5ffd5b6100e9816100ab565b81146100f3575f5ffd5b50565b5f81359050610104816100e0565b92915050565b5f6020828403121561011f5761011e6100dc565b5b5f61012c848285016100f6565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61016c826100ab565b9150610177836100ab565b925082820190508082111561018f5761018e610135565b5b9291505056fea264697066735822122021bf5f7d11f3386a1ddb70401a730984be0c92eb7804616e5ef6fc9ef1d6d6e864736f6c634300081e0033",
"0x6080604052348015600e575f5ffd5b506101cb8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c80631ba6484614610038578063975057e714610068575b5f5ffd5b610052600480360381019061004d91906100e2565b610086565b60405161005f919061011c565b60405180910390f35b6100706100a6565b60405161007d919061011c565b60405180910390f35b5f5f60079050825f81905550808361009e9190610162565b915050919050565b5f5481565b5f5ffd5b5f819050919050565b6100c1816100af565b81146100cb575f5ffd5b50565b5f813590506100dc816100b8565b92915050565b5f602082840312156100f7576100f66100ab565b5b5f610104848285016100ce565b91505092915050565b610116816100af565b82525050565b5f60208201905061012f5f83018461010d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61016c826100af565b9150610177836100af565b925082820190508082111561018f5761018e610135565b5b9291505056fea26469706673582212209aa1341b3eba47419a335ba344ab0e24f3ae67f3e68677260ec0784c164cd05d64736f6c634300081e0033",
} as const;
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//
// function someAction(address addr, uint256 number) public {
// callee = TraceCallee(addr);
// store = callee.addtwo(number);
// store = callee.addSeven(number);
// }
// }

Expand Down Expand Up @@ -45,5 +45,5 @@ export default {
},
],
bytecode:
"0x6080604052348015600e575f5ffd5b506102c68061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063398f722314610038578063975057e714610054575b5f5ffd5b610052600480360381019061004d91906101eb565b610072565b005b61005c610154565b6040516100699190610238565b60405180910390f35b815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fd63983b826040518263ffffffff1660e01b815260040161010a9190610238565b6020604051808303815f875af1158015610126573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014a9190610265565b6001819055505050565b60015481565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101878261015e565b9050919050565b6101978161017d565b81146101a1575f5ffd5b50565b5f813590506101b28161018e565b92915050565b5f819050919050565b6101ca816101b8565b81146101d4575f5ffd5b50565b5f813590506101e5816101c1565b92915050565b5f5f604083850312156102015761020061015a565b5b5f61020e858286016101a4565b925050602061021f858286016101d7565b9150509250929050565b610232816101b8565b82525050565b5f60208201905061024b5f830184610229565b92915050565b5f8151905061025f816101c1565b92915050565b5f6020828403121561027a5761027961015a565b5b5f61028784828501610251565b9150509291505056fea264697066735822122019f0f10cf26630f53914cf389a6d6eab4acc8bea5cd28adaa7572a62ba7030eb64736f6c634300081e0033",
"0x6080604052348015600e575f5ffd5b506102c68061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c8063398f722314610038578063975057e714610054575b5f5ffd5b610052600480360381019061004d91906101eb565b610072565b005b61005c610154565b6040516100699190610238565b60405180910390f35b815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ba64846826040518263ffffffff1660e01b815260040161010a9190610238565b6020604051808303815f875af1158015610126573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061014a9190610265565b6001819055505050565b60015481565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101878261015e565b9050919050565b6101978161017d565b81146101a1575f5ffd5b50565b5f813590506101b28161018e565b92915050565b5f819050919050565b6101ca816101b8565b81146101d4575f5ffd5b50565b5f813590506101e5816101c1565b92915050565b5f5f604083850312156102015761020061015a565b5b5f61020e858286016101a4565b925050602061021f858286016101d7565b9150509250929050565b610232816101b8565b82525050565b5f60208201905061024b5f830184610229565b92915050565b5f8151905061025f816101c1565b92915050565b5f6020828403121561027a5761027961015a565b5b5f61028784828501610251565b9150509291505056fea264697066735822122063e98df9ee71802baca2f482bdaadad21254526b1716f2dea23f395c7d9c055e64736f6c634300081e0033",
} as const;
Loading