From caa54111fda0e4c145c044bb97ebf5aefeadb184 Mon Sep 17 00:00:00 2001 From: Uxio Fuentefria Date: Tue, 20 Dec 2022 17:28:54 +0100 Subject: [PATCH] Add E2E tests to detect Erigon issues - Related to https://github.com/ledgerwatch/erigon/issues/6375 --- .../eth/tests/mocks/mock_trace_transaction.py | 382 ++++++++++++++++++ gnosis/eth/tests/test_ethereum_client.py | 18 +- gnosis/eth/tests/utils.py | 13 +- 3 files changed, 402 insertions(+), 11 deletions(-) diff --git a/gnosis/eth/tests/mocks/mock_trace_transaction.py b/gnosis/eth/tests/mocks/mock_trace_transaction.py index 42e5d8530..3cafa67e9 100644 --- a/gnosis/eth/tests/mocks/mock_trace_transaction.py +++ b/gnosis/eth/tests/mocks/mock_trace_transaction.py @@ -72,4 +72,386 @@ "type": "call", } ], + "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0": [ + { + "action": { + "from": "0x3F478216041713A4B1EcB672515cc1b039BBE790", + "gas": 274494, + "value": 0, + "callType": "call", + "input": HexBytes( + "0x6a76120200000000000000000000000040a2accbd92bca938b02010e17a5b8929b49130d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000003c2f80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000004c48d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000046b00469788fe6e9e9681c6ebf3bf78e7fd26fc01544600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044bd86e508736166652e657468000000000000000000000000000000000000000000000000000000000000000000000000d662e05ce522b3861b70fc376f60bf50e200abfa00a0b937d5c8e32a80e3a8ed4227cd020221544ee6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c4bf6213e4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000005bacaa20000000000000000000000000000000000000000000000012dfc9a7680524000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000100142b9e197e79ca94c077397bec601d9758e6ad54bfb308c529fb1ccb649664629507b80014ff96094ee587f52aed4ea98ccdce3ed4cef1139f4cbc45abf4cf3efca2d62b9a7cace73dca2d91ef5456d3fcecc2549d7cfeb33bf495a2505190b3cc6a55a90d3f5817150ad9c8d4fb3c6157c5ab99a2bd90bde5385608e212b9f0c0eb5e6c10b114900b7f894fcd9ba6126d9495341e2b09a684d822a04ba9e3bf40757bdb25323893eeac40649684dae8d5ac9be1b5688df2c8c77ffb1df3a8920c9493e26704a190c539948597a25dd0eadc3e9d3c04eef5e8bbb84dff18696e8fd0248ce2387d7c823f3b28280a73edcfd1b00d103210f5ca8f817b8c90519736c3b51ea1b6472ba406c4456d5b01c3b59343e564aae747fdd47ff6dc8ff4629d28252544a7e92977dccd4b30fb02073f088b2ad1cf0b7f5b2205842f5a78ba2580459420e11a06505b18e5ee6f8ded5bb92ee903d2eaf5d63bbecd73e213ca0870e463abf45cb18f85a835919099f45c6c56581232b3be9c06448420b35c94f4f3628f31b808b09ced67b073ab97919ba14e9389e154be4fe2b10fcdd327302fdc9a0b8cea5373715d2fce8d9ddd244f4259aafb0a21305edfdda956dd84359d69bacd790ff82f7310dd382bf3f53e885e74f5dad9b3aeb7fe96ce926ff47f8e2791b9d07b3e620189a36bf17e30c874e66b205c79492a16cd5a9c5bb65b700a0b937d5c8e32a80e3a8ed4227cd020221544ee6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640087b83f9aef04d6a9b38aab1023696e3b35434a8ba4c1611b39074722e31473dd333d27000000000000000000000000826f446c587159897db0ae01192da1691f12007f0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000410ff58feb0cba6ef7e22c415a7936b8a81fa384ebc5d2ec3718cc5e72730ddcdd296b0b29dd3aba9c64edde30f65ea98066a2cfa3412f9877d6bf3fded867ffd01b00000000000000000000000000000000000000000000000000000000000000" + ), + "to": "0x826f446C587159897Db0aE01192dA1691f12007f", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 228534, + "output": HexBytes( + "0x0000000000000000000000000000000000000000000000000000000000000001" + ), + }, + "subtraces": 1, + "traceAddress": [], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0x826f446C587159897Db0aE01192dA1691f12007f", + "gas": 265117, + "value": 0, + "callType": "delegatecall", + "input": HexBytes( + "0x6a76120200000000000000000000000040a2accbd92bca938b02010e17a5b8929b49130d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000003c2f80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000004c48d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000046b00469788fe6e9e9681c6ebf3bf78e7fd26fc01544600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044bd86e508736166652e657468000000000000000000000000000000000000000000000000000000000000000000000000d662e05ce522b3861b70fc376f60bf50e200abfa00a0b937d5c8e32a80e3a8ed4227cd020221544ee6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c4bf6213e4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000005bacaa20000000000000000000000000000000000000000000000012dfc9a7680524000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000100142b9e197e79ca94c077397bec601d9758e6ad54bfb308c529fb1ccb649664629507b80014ff96094ee587f52aed4ea98ccdce3ed4cef1139f4cbc45abf4cf3efca2d62b9a7cace73dca2d91ef5456d3fcecc2549d7cfeb33bf495a2505190b3cc6a55a90d3f5817150ad9c8d4fb3c6157c5ab99a2bd90bde5385608e212b9f0c0eb5e6c10b114900b7f894fcd9ba6126d9495341e2b09a684d822a04ba9e3bf40757bdb25323893eeac40649684dae8d5ac9be1b5688df2c8c77ffb1df3a8920c9493e26704a190c539948597a25dd0eadc3e9d3c04eef5e8bbb84dff18696e8fd0248ce2387d7c823f3b28280a73edcfd1b00d103210f5ca8f817b8c90519736c3b51ea1b6472ba406c4456d5b01c3b59343e564aae747fdd47ff6dc8ff4629d28252544a7e92977dccd4b30fb02073f088b2ad1cf0b7f5b2205842f5a78ba2580459420e11a06505b18e5ee6f8ded5bb92ee903d2eaf5d63bbecd73e213ca0870e463abf45cb18f85a835919099f45c6c56581232b3be9c06448420b35c94f4f3628f31b808b09ced67b073ab97919ba14e9389e154be4fe2b10fcdd327302fdc9a0b8cea5373715d2fce8d9ddd244f4259aafb0a21305edfdda956dd84359d69bacd790ff82f7310dd382bf3f53e885e74f5dad9b3aeb7fe96ce926ff47f8e2791b9d07b3e620189a36bf17e30c874e66b205c79492a16cd5a9c5bb65b700a0b937d5c8e32a80e3a8ed4227cd020221544ee6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640087b83f9aef04d6a9b38aab1023696e3b35434a8ba4c1611b39074722e31473dd333d27000000000000000000000000826f446c587159897db0ae01192da1691f12007f0000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000410ff58feb0cba6ef7e22c415a7936b8a81fa384ebc5d2ec3718cc5e72730ddcdd296b0b29dd3aba9c64edde30f65ea98066a2cfa3412f9877d6bf3fded867ffd01b00000000000000000000000000000000000000000000000000000000000000" + ), + "to": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 223320, + "output": HexBytes( + "0x0000000000000000000000000000000000000000000000000000000000000001" + ), + }, + "subtraces": 1, + "traceAddress": [0], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0x826f446C587159897Db0aE01192dA1691f12007f", + "gas": 239379, + "value": 0, + "callType": "delegatecall", + "input": HexBytes( + "0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000046b00469788fe6e9e9681c6ebf3bf78e7fd26fc01544600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044bd86e508736166652e657468000000000000000000000000000000000000000000000000000000000000000000000000d662e05ce522b3861b70fc376f60bf50e200abfa00a0b937d5c8e32a80e3a8ed4227cd020221544ee6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c4bf6213e4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000005bacaa20000000000000000000000000000000000000000000000012dfc9a7680524000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000100142b9e197e79ca94c077397bec601d9758e6ad54bfb308c529fb1ccb649664629507b80014ff96094ee587f52aed4ea98ccdce3ed4cef1139f4cbc45abf4cf3efca2d62b9a7cace73dca2d91ef5456d3fcecc2549d7cfeb33bf495a2505190b3cc6a55a90d3f5817150ad9c8d4fb3c6157c5ab99a2bd90bde5385608e212b9f0c0eb5e6c10b114900b7f894fcd9ba6126d9495341e2b09a684d822a04ba9e3bf40757bdb25323893eeac40649684dae8d5ac9be1b5688df2c8c77ffb1df3a8920c9493e26704a190c539948597a25dd0eadc3e9d3c04eef5e8bbb84dff18696e8fd0248ce2387d7c823f3b28280a73edcfd1b00d103210f5ca8f817b8c90519736c3b51ea1b6472ba406c4456d5b01c3b59343e564aae747fdd47ff6dc8ff4629d28252544a7e92977dccd4b30fb02073f088b2ad1cf0b7f5b2205842f5a78ba2580459420e11a06505b18e5ee6f8ded5bb92ee903d2eaf5d63bbecd73e213ca0870e463abf45cb18f85a835919099f45c6c56581232b3be9c06448420b35c94f4f3628f31b808b09ced67b073ab97919ba14e9389e154be4fe2b10fcdd327302fdc9a0b8cea5373715d2fce8d9ddd244f4259aafb0a21305edfdda956dd84359d69bacd790ff82f7310dd382bf3f53e885e74f5dad9b3aeb7fe96ce926ff47f8e2791b9d07b3e620189a36bf17e30c874e66b205c79492a16cd5a9c5bb65b700a0b937d5c8e32a80e3a8ed4227cd020221544ee6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640087b83f9aef04d6a9b38aab1023696e3b35434a8ba4c1611b39074722e31473dd333d27000000000000000000000000826f446c587159897db0ae01192da1691f12007f0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000" + ), + "to": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": {"gasUsed": 201030, "output": HexBytes("0x")}, + "subtraces": 3, + "traceAddress": [0, 0], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0x826f446C587159897Db0aE01192dA1691f12007f", + "gas": 232202, + "value": 0, + "callType": "call", + "input": HexBytes( + "0xbd86e508736166652e657468000000000000000000000000000000000000000000000000000000000000000000000000d662e05ce522b3861b70fc376f60bf50e200abfa" + ), + "to": "0x469788fE6E9E9681C6ebF3bF78e7Fd26Fc015446", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": {"gasUsed": 24983, "output": HexBytes("0x")}, + "subtraces": 0, + "traceAddress": [0, 0, 0], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0x826f446C587159897Db0aE01192dA1691f12007f", + "gas": 204798, + "value": 0, + "callType": "call", + "input": HexBytes( + "0xbf6213e4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000005bacaa20000000000000000000000000000000000000000000000012dfc9a7680524000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000100142b9e197e79ca94c077397bec601d9758e6ad54bfb308c529fb1ccb649664629507b80014ff96094ee587f52aed4ea98ccdce3ed4cef1139f4cbc45abf4cf3efca2d62b9a7cace73dca2d91ef5456d3fcecc2549d7cfeb33bf495a2505190b3cc6a55a90d3f5817150ad9c8d4fb3c6157c5ab99a2bd90bde5385608e212b9f0c0eb5e6c10b114900b7f894fcd9ba6126d9495341e2b09a684d822a04ba9e3bf40757bdb25323893eeac40649684dae8d5ac9be1b5688df2c8c77ffb1df3a8920c9493e26704a190c539948597a25dd0eadc3e9d3c04eef5e8bbb84dff18696e8fd0248ce2387d7c823f3b28280a73edcfd1b00d103210f5ca8f817b8c90519736c3b51ea1b6472ba406c4456d5b01c3b59343e564aae747fdd47ff6dc8ff4629d28252544a7e92977dccd4b30fb02073f088b2ad1cf0b7f5b2205842f5a78ba2580459420e11a06505b18e5ee6f8ded5bb92ee903d2eaf5d63bbecd73e213ca0870e463abf45cb18f85a835919099f45c6c56581232b3be9c06448420b35c94f4f3628f31b808b09ced67b073ab97919ba14e9389e154be4fe2b10fcdd327302fdc9a0b8cea5373715d2fce8d9ddd244f4259aafb0a21305edfdda956dd84359d69bacd790ff82f7310dd382bf3f53e885e74f5dad9b3aeb7fe96ce926ff47f8e2791b9d07b3e620189a36bf17e30c874e66b205c79492a16cd5a9c5bb65b7" + ), + "to": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": {"gasUsed": 75351, "output": HexBytes("0x")}, + "subtraces": 1, + "traceAddress": [0, 0, 1], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + "gas": 188502, + "value": 0, + "callType": "staticcall", + "input": HexBytes( + "0x70a08231000000000000000000000000a0b937d5c8e32a80e3a8ed4227cd020221544ee6" + ), + "to": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 2886, + "output": HexBytes( + "0x000000000000000000000000000000000000000000295bd306348cee3284339a" + ), + }, + "subtraces": 0, + "traceAddress": [0, 0, 1, 0], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0x826f446C587159897Db0aE01192dA1691f12007f", + "gas": 130274, + "value": 0, + "callType": "call", + "input": HexBytes( + "0x0087b83f9aef04d6a9b38aab1023696e3b35434a8ba4c1611b39074722e31473dd333d27000000000000000000000000826f446c587159897db0ae01192da1691f12007f0000000000000000000000000000000000000000000000000de0b6b3a7640000" + ), + "to": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": {"gasUsed": 93862, "output": HexBytes("0x")}, + "subtraces": 7, + "traceAddress": [0, 0, 2], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + "gas": 119997, + "value": 0, + "callType": "call", + "input": HexBytes( + "0x095ea7b30000000000000000000000008cf60b289f8d31f737049b590b5e4285ff0bd1d10000000000000000000000000000000000000000000000000de0b6b3a7640000" + ), + "to": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 25285, + "output": HexBytes( + "0x0000000000000000000000000000000000000000000000000000000000000001" + ), + }, + "subtraces": 0, + "traceAddress": [0, 0, 2, 0], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + "gas": 94401, + "value": 0, + "callType": "staticcall", + "input": HexBytes( + "0x70a08231000000000000000000000000a0b937d5c8e32a80e3a8ed4227cd020221544ee6" + ), + "to": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 886, + "output": HexBytes( + "0x000000000000000000000000000000000000000000295bd306348cee3284339a" + ), + }, + "subtraces": 0, + "traceAddress": [0, 0, 2, 1], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + "gas": 92834, + "value": 0, + "callType": "staticcall", + "input": HexBytes( + "0x70a08231000000000000000000000000826f446c587159897db0ae01192da1691f12007f" + ), + "to": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 2886, + "output": HexBytes( + "0x0000000000000000000000000000000000000000000000000000000000000000" + ), + }, + "subtraces": 0, + "traceAddress": [0, 0, 2, 2], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + "gas": 85106, + "value": 0, + "callType": "call", + "input": HexBytes( + "0x468721a70000000000000000000000005afe3855358e112b5647b952709e6165e1c1eeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006423b872dd000000000000000000000000a0b937d5c8e32a80e3a8ed4227cd020221544ee6000000000000000000000000826f446c587159897db0ae01192da1691f12007f0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000" + ), + "to": "0x8CF60B289f8d31F737049B590b5E4285Ff0Bd1D1", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 41825, + "output": HexBytes( + "0x0000000000000000000000000000000000000000000000000000000000000001" + ), + }, + "subtraces": 1, + "traceAddress": [0, 0, 2, 3], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0x8CF60B289f8d31F737049B590b5E4285Ff0Bd1D1", + "gas": 79018, + "value": 0, + "callType": "delegatecall", + "input": HexBytes( + "0x468721a70000000000000000000000005afe3855358e112b5647b952709e6165e1c1eeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006423b872dd000000000000000000000000a0b937d5c8e32a80e3a8ed4227cd020221544ee6000000000000000000000000826f446c587159897db0ae01192da1691f12007f0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000" + ), + "to": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 36946, + "output": HexBytes( + "0x0000000000000000000000000000000000000000000000000000000000000001" + ), + }, + "subtraces": 1, + "traceAddress": [0, 0, 2, 3, 0], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0x8CF60B289f8d31F737049B590b5E4285Ff0Bd1D1", + "gas": 74535, + "value": 0, + "callType": "call", + "input": HexBytes( + "0x23b872dd000000000000000000000000a0b937d5c8e32a80e3a8ed4227cd020221544ee6000000000000000000000000826f446c587159897db0ae01192da1691f12007f0000000000000000000000000000000000000000000000000de0b6b3a7640000" + ), + "to": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 32341, + "output": HexBytes( + "0x0000000000000000000000000000000000000000000000000000000000000001" + ), + }, + "subtraces": 0, + "traceAddress": [0, 0, 2, 3, 0, 0], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + "gas": 43002, + "value": 0, + "callType": "call", + "input": HexBytes( + "0x095ea7b30000000000000000000000008cf60b289f8d31f737049b590b5e4285ff0bd1d10000000000000000000000000000000000000000000000000000000000000000" + ), + "to": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 3285, + "output": HexBytes( + "0x0000000000000000000000000000000000000000000000000000000000000001" + ), + }, + "subtraces": 0, + "traceAddress": [0, 0, 2, 4], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + "gas": 39062, + "value": 0, + "callType": "staticcall", + "input": HexBytes( + "0x70a08231000000000000000000000000a0b937d5c8e32a80e3a8ed4227cd020221544ee6" + ), + "to": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 886, + "output": HexBytes( + "0x000000000000000000000000000000000000000000295bd2f853d63a8b20339a" + ), + }, + "subtraces": 0, + "traceAddress": [0, 0, 2, 5], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + { + "action": { + "from": "0xA0b937D5c8E32a80E3a8ed4227CD020221544ee6", + "gas": 37498, + "value": 0, + "callType": "staticcall", + "input": HexBytes( + "0x70a08231000000000000000000000000826f446c587159897db0ae01192da1691f12007f" + ), + "to": "0x5aFE3855358E112B5647B952709E6165e1c1eEEe", + }, + "blockHash": "0xa1dd687d41a835a1e173b5f69f656eaad52570ca864dfaeece6bec72e17bc624", + "blockNumber": 15630274, + "result": { + "gasUsed": 886, + "output": HexBytes( + "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000" + ), + }, + "subtraces": 0, + "traceAddress": [0, 0, 2, 6], + "transactionHash": "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + "transactionPosition": 80, + "type": "call", + }, + ], } diff --git a/gnosis/eth/tests/test_ethereum_client.py b/gnosis/eth/tests/test_ethereum_client.py index cd3412079..1388a1d0f 100644 --- a/gnosis/eth/tests/test_ethereum_client.py +++ b/gnosis/eth/tests/test_ethereum_client.py @@ -1378,16 +1378,24 @@ def test_trace_blocks(self): ) def test_trace_transaction(self): - tx_hash = "0x0b04589bdc11585fb98f270b1bfeff0fb3bbb3c56d35b104f62d8115d6f7c57f" # Safe 1.3.0 deployment - self.assertEqual( - self.ethereum_client.parity.trace_transaction(tx_hash), - trace_transaction_mocks[tx_hash], - ) + for tx_hash in [ + # Safe 1.3.0 deployment + "0x0b04589bdc11585fb98f270b1bfeff0fb3bbb3c56d35b104f62d8115d6f7c57f", + # Erigon v2.31.0 traceAddress issue https://github.com/ledgerwatch/erigon/issues/6375 + "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", + ]: + with self.subTest(tx_hash=tx_hash): + self.assertEqual( + self.ethereum_client.parity.trace_transaction(tx_hash), + trace_transaction_mocks[tx_hash], + ) def test_trace_transactions(self): tx_hashes = [ "0x0b04589bdc11585fb98f270b1bfeff0fb3bbb3c56d35b104f62d8115d6f7c57f", # Safe 1.3.0 deployment "0xf325b4e52d0649593e8c82f35bd389c13c13b21b61bc17de295979a21e5cfdc0", # Safe 1.1.0 setup + # Erigon v2.31.0 traceAddress issue https://github.com/ledgerwatch/erigon/issues/6375 + "0xc27273dc6e631d275baa527e1b07cd9097887317c26034bf8ea7bbe38c9353f0", ] self.assertEqual( self.ethereum_client.parity.trace_transactions(tx_hashes), diff --git a/gnosis/eth/tests/utils.py b/gnosis/eth/tests/utils.py index e08d42751..6cb0547e3 100644 --- a/gnosis/eth/tests/utils.py +++ b/gnosis/eth/tests/utils.py @@ -21,7 +21,7 @@ def just_test_if_mainnet_node() -> str: ) else: try: - if not requests.post( + response = requests.post( mainnet_node_url, timeout=5, json={ @@ -30,12 +30,13 @@ def just_test_if_mainnet_node() -> str: "params": [], "id": 1, }, - ).ok: - pytest.skip("Cannot connect to mainnet node", allow_module_level=True) - except IOError: - pytest.skip( - "Problem connecting to the mainnet node", allow_module_level=True ) + if not response.ok: + pytest.fail( + f"Problem connecting to mainnet node {response.status_code} - {response.content}" + ) + except IOError: + pytest.fail("Problem connecting to the mainnet node") just_test_if_mainnet_node.checked = True return mainnet_node_url