Share trace classifier in tests

This commit is contained in:
Luke Van Seters 2021-12-13 19:34:47 -05:00
parent f07c497b33
commit bb23fce13c
5 changed files with 20 additions and 38 deletions

View File

@ -3,6 +3,13 @@ from typing import List
import pytest import pytest
from mev_inspect.classifiers.trace import TraceClassifier
@pytest.fixture(scope="session")
def trace_classifier() -> TraceClassifier:
return TraceClassifier()
@pytest.fixture(name="get_transaction_hashes") @pytest.fixture(name="get_transaction_hashes")
def fixture_get_transaction_hashes(): def fixture_get_transaction_hashes():

View File

@ -8,8 +8,7 @@ from mev_inspect.transfers import ETH_TOKEN_ADDRESS
from tests.utils import load_test_block from tests.utils import load_test_block
def test_single_weth_liquidation(): def test_single_weth_liquidation(trace_classifier: TraceClassifier):
transaction_hash = ( transaction_hash = (
"0xb7575eedc9d8cfe82c4a11cd1a851221f2eafb93d738301995ac7103ffe877f7" "0xb7575eedc9d8cfe82c4a11cd1a851221f2eafb93d738301995ac7103ffe877f7"
) )
@ -31,15 +30,13 @@ def test_single_weth_liquidation():
] ]
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_aave_liquidations(classified_traces) result = get_aave_liquidations(classified_traces)
_assert_equal_list_of_liquidations(result, liquidations) _assert_equal_list_of_liquidations(result, liquidations)
def test_single_liquidation(): def test_single_liquidation(trace_classifier: TraceClassifier):
transaction_hash = ( transaction_hash = (
"0xe6c0e3ef0436cb032e1ef292141f4fc4dcd47a75a2559602133114952190e76b" "0xe6c0e3ef0436cb032e1ef292141f4fc4dcd47a75a2559602133114952190e76b"
) )
@ -61,15 +58,13 @@ def test_single_liquidation():
] ]
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_aave_liquidations(classified_traces) result = get_aave_liquidations(classified_traces)
_assert_equal_list_of_liquidations(result, liquidations) _assert_equal_list_of_liquidations(result, liquidations)
def test_single_liquidation_with_atoken_payback(): def test_single_liquidation_with_atoken_payback(trace_classifier: TraceClassifier):
transaction_hash = ( transaction_hash = (
"0xde551a73e813f1a1e5c843ac2c6a0e40d71618f4040bb7d0cd7cf7b2b6cf4633" "0xde551a73e813f1a1e5c843ac2c6a0e40d71618f4040bb7d0cd7cf7b2b6cf4633"
) )
@ -91,15 +86,13 @@ def test_single_liquidation_with_atoken_payback():
] ]
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_aave_liquidations(classified_traces) result = get_aave_liquidations(classified_traces)
_assert_equal_list_of_liquidations(result, liquidations) _assert_equal_list_of_liquidations(result, liquidations)
def test_multiple_liquidations_in_block(): def test_multiple_liquidations_in_block(trace_classifier: TraceClassifier):
transaction1 = "0xedd062c3a728db4b114f2e83cac281d19a9f753e36afa8a35cdbdf1e1dd5d017" transaction1 = "0xedd062c3a728db4b114f2e83cac281d19a9f753e36afa8a35cdbdf1e1dd5d017"
transaction2 = "0x18492f250cf4735bd67a21c6cc26b7d9c59cf2fb077356dc924f36bc68a810e5" transaction2 = "0x18492f250cf4735bd67a21c6cc26b7d9c59cf2fb077356dc924f36bc68a810e5"
transaction3 = "0x191b05b28ebaf460e38e90ac6a801681b500f169041ae83a45b32803ef2ec98c" transaction3 = "0x191b05b28ebaf460e38e90ac6a801681b500f169041ae83a45b32803ef2ec98c"
@ -145,7 +138,6 @@ def test_multiple_liquidations_in_block():
) )
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_aave_liquidations(classified_traces) result = get_aave_liquidations(classified_traces)
liquidations = [liquidation1, liquidation2, liquidation3] liquidations = [liquidation1, liquidation2, liquidation3]
@ -153,8 +145,7 @@ def test_multiple_liquidations_in_block():
_assert_equal_list_of_liquidations(result, liquidations) _assert_equal_list_of_liquidations(result, liquidations)
def test_liquidations_with_eth_transfer(): def test_liquidations_with_eth_transfer(trace_classifier: TraceClassifier):
transaction_hash = ( transaction_hash = (
"0xf687fedbc4bbc25adb3ef3a35c20c38fb7d35d86d7633d5061d2e3c4f86311b7" "0xf687fedbc4bbc25adb3ef3a35c20c38fb7d35d86d7633d5061d2e3c4f86311b7"
) )
@ -187,7 +178,6 @@ def test_liquidations_with_eth_transfer():
) )
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_aave_liquidations(classified_traces) result = get_aave_liquidations(classified_traces)
liquidations = [liquidation1, liquidation2] liquidations = [liquidation1, liquidation2]

View File

@ -5,8 +5,7 @@ from mev_inspect.classifiers.trace import TraceClassifier
from tests.utils import load_test_block from tests.utils import load_test_block
def test_fillLimitOrder_swap(): def test_fillLimitOrder_swap(trace_classifier: TraceClassifier):
transaction_hash = ( transaction_hash = (
"0xa043976d736ec8dc930c0556dffd0a86a4bfc80bf98fb7995c791fb4dc488b5d" "0xa043976d736ec8dc930c0556dffd0a86a4bfc80bf98fb7995c791fb4dc488b5d"
) )
@ -29,15 +28,13 @@ def test_fillLimitOrder_swap():
) )
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_swaps(classified_traces) result = get_swaps(classified_traces)
assert result.count(swap) == 1 assert result.count(swap) == 1
def test__fillLimitOrder_swap(): def test__fillLimitOrder_swap(trace_classifier: TraceClassifier):
transaction_hash = ( transaction_hash = (
"0x9255addffa2dbeb9560c5e20e78a78c949488d2054c70b2155c39f9e28394cbf" "0x9255addffa2dbeb9560c5e20e78a78c949488d2054c70b2155c39f9e28394cbf"
) )
@ -60,15 +57,13 @@ def test__fillLimitOrder_swap():
) )
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_swaps(classified_traces) result = get_swaps(classified_traces)
assert result.count(swap) == 1 assert result.count(swap) == 1
def test_RfqLimitOrder_swap(): def test_RfqLimitOrder_swap(trace_classifier: TraceClassifier):
transaction_hash = ( transaction_hash = (
"0x1c948eb7c59ddbe6b916cf68f5df86eb44a7c9e728221fcd8ab750f137fd2a0f" "0x1c948eb7c59ddbe6b916cf68f5df86eb44a7c9e728221fcd8ab750f137fd2a0f"
) )
@ -91,15 +86,13 @@ def test_RfqLimitOrder_swap():
) )
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_swaps(classified_traces) result = get_swaps(classified_traces)
assert result.count(swap) == 1 assert result.count(swap) == 1
def test__RfqLimitOrder_swap(): def test__RfqLimitOrder_swap(trace_classifier: TraceClassifier):
transaction_hash = ( transaction_hash = (
"0x4f66832e654f8a4d773d9769571155df3722401343247376d6bb56626db29b90" "0x4f66832e654f8a4d773d9769571155df3722401343247376d6bb56626db29b90"
) )
@ -122,7 +115,6 @@ def test__RfqLimitOrder_swap():
) )
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_swaps(classified_traces) result = get_swaps(classified_traces)

View File

@ -5,10 +5,8 @@ from mev_inspect.swaps import get_swaps
from .utils import load_test_block from .utils import load_test_block
def test_arbitrage_real_block(): def test_arbitrage_real_block(trace_classifier: TraceClassifier):
block = load_test_block(12914944) block = load_test_block(12914944)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
swaps = get_swaps(classified_traces) swaps = get_swaps(classified_traces)

View File

@ -8,7 +8,7 @@ comp_markets = load_comp_markets()
cream_markets = load_cream_markets() cream_markets = load_cream_markets()
def test_c_ether_liquidations(): def test_c_ether_liquidations(trace_classifier: TraceClassifier):
block_number = 13234998 block_number = 13234998
transaction_hash = ( transaction_hash = (
"0x78f7e67391c2bacde45e5057241f8b9e21a59330bce4332eecfff8fac279d090" "0x78f7e67391c2bacde45e5057241f8b9e21a59330bce4332eecfff8fac279d090"
@ -28,7 +28,6 @@ def test_c_ether_liquidations():
) )
] ]
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_compound_liquidations(classified_traces) result = get_compound_liquidations(classified_traces)
assert result == liquidations assert result == liquidations
@ -53,7 +52,6 @@ def test_c_ether_liquidations():
] ]
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_compound_liquidations(classified_traces) result = get_compound_liquidations(classified_traces)
assert result == liquidations assert result == liquidations
@ -77,13 +75,12 @@ def test_c_ether_liquidations():
) )
] ]
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_compound_liquidations(classified_traces) result = get_compound_liquidations(classified_traces)
assert result == liquidations assert result == liquidations
def test_c_token_liquidation(): def test_c_token_liquidation(trace_classifier: TraceClassifier):
block_number = 13326607 block_number = 13326607
transaction_hash = ( transaction_hash = (
"0x012215bedd00147c58e1f59807664914b2abbfc13c260190dc9cfc490be3e343" "0x012215bedd00147c58e1f59807664914b2abbfc13c260190dc9cfc490be3e343"
@ -103,13 +100,12 @@ def test_c_token_liquidation():
) )
] ]
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_compound_liquidations(classified_traces) result = get_compound_liquidations(classified_traces)
assert result == liquidations assert result == liquidations
def test_cream_token_liquidation(): def test_cream_token_liquidation(trace_classifier: TraceClassifier):
block_number = 12674514 block_number = 12674514
transaction_hash = ( transaction_hash = (
"0x0809bdbbddcf566e5392682a9bd9d0006a92a4dc441163c791b1136f982994b1" "0x0809bdbbddcf566e5392682a9bd9d0006a92a4dc441163c791b1136f982994b1"
@ -129,7 +125,6 @@ def test_cream_token_liquidation():
) )
] ]
block = load_test_block(block_number) block = load_test_block(block_number)
trace_classifier = TraceClassifier()
classified_traces = trace_classifier.classify(block.traces) classified_traces = trace_classifier.classify(block.traces)
result = get_compound_liquidations(classified_traces) result = get_compound_liquidations(classified_traces)
assert result == liquidations assert result == liquidations