Merge pull request #158 from flashbots/add-isort
Add isort pack to pre-commit
This commit is contained in:
commit
c23b9a1651
@ -2,8 +2,15 @@ repos:
|
|||||||
- repo: https://github.com/ambv/black
|
- repo: https://github.com/ambv/black
|
||||||
rev: 20.8b1
|
rev: 20.8b1
|
||||||
hooks:
|
hooks:
|
||||||
- id: black
|
- id: black
|
||||||
language_version: python3.9
|
language_version: python3.9
|
||||||
|
- repo: local
|
||||||
|
hooks:
|
||||||
|
- id: isort
|
||||||
|
name: isort
|
||||||
|
entry: poetry run isort .
|
||||||
|
language: system
|
||||||
|
types: [python]
|
||||||
- repo: local
|
- repo: local
|
||||||
hooks:
|
hooks:
|
||||||
- id: pylint
|
- id: pylint
|
||||||
|
@ -433,7 +433,7 @@ int-import-graph=
|
|||||||
known-standard-library=
|
known-standard-library=
|
||||||
|
|
||||||
# Force import order to recognize a module as part of a third party library.
|
# Force import order to recognize a module as part of a third party library.
|
||||||
known-third-party=enchant
|
known-third-party=alembic
|
||||||
|
|
||||||
# Couples of modules and preferred modules, separated by a comma.
|
# Couples of modules and preferred modules, separated by a comma.
|
||||||
preferred-modules=
|
preferred-modules=
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
from logging.config import fileConfig
|
from logging.config import fileConfig
|
||||||
|
|
||||||
from sqlalchemy import engine_from_config
|
|
||||||
from sqlalchemy import pool
|
|
||||||
|
|
||||||
from alembic import context
|
from alembic import context
|
||||||
|
from sqlalchemy import engine_from_config, pool
|
||||||
|
|
||||||
from mev_inspect.db import get_inspect_database_uri
|
from mev_inspect.db import get_inspect_database_uri
|
||||||
|
|
||||||
|
|
||||||
# this is the Alembic Config object, which provides
|
# this is the Alembic Config object, which provides
|
||||||
# access to the values within the .ini file in use.
|
# access to the values within the .ini file in use.
|
||||||
config = context.config
|
config = context.config
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-11-26 15:31:21.111693
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,8 +6,10 @@ Create Date: 2021-07-23 20:08:42.016711
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision = "0660432b9840"
|
revision = "0660432b9840"
|
||||||
down_revision = None
|
down_revision = None
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-11-26 18:25:13.402822
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-08-30 17:42:25.548130
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-10-04 19:52:40.017084
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,8 +6,10 @@ Create Date: 2021-08-05 21:06:33.340456
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
revision = "2116e2f36a19"
|
revision = "2116e2f36a19"
|
||||||
down_revision = "c5da44eb072c"
|
down_revision = "c5da44eb072c"
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-11-17 18:29:13.065944
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-11-26 20:35:58.954138
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-11-19 13:25:11.252774
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-11-26 20:27:28.936516
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-08-06 15:58:04.556762
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-08-17 03:46:21.498821
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-08-06 17:06:55.364516
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-08-05 21:46:35.209199
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-09-13 21:32:27.181344
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-12-01 23:32:40.574108
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-09-29 14:00:06.857103
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-09-17 12:44:45.245137
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-11-18 04:30:06.802857
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ Create Date: 2021-08-30 22:10:04.186251
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from typing import Iterator, Tuple
|
from typing import Iterator, Tuple
|
||||||
|
|
||||||
|
|
||||||
|
1
cli.py
1
cli.py
@ -10,6 +10,7 @@ from mev_inspect.db import get_inspect_session, get_trace_session
|
|||||||
from mev_inspect.inspector import MEVInspector
|
from mev_inspect.inspector import MEVInspector
|
||||||
from mev_inspect.prices import fetch_all_supported_prices
|
from mev_inspect.prices import fetch_all_supported_prices
|
||||||
|
|
||||||
|
|
||||||
RPC_URL_ENV = "RPC_URL"
|
RPC_URL_ENV = "RPC_URL"
|
||||||
|
|
||||||
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
|
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
|
||||||
|
@ -1,21 +1,17 @@
|
|||||||
from typing import List, Tuple, Optional
|
from typing import List, Optional, Tuple
|
||||||
|
|
||||||
from mev_inspect.traces import (
|
from mev_inspect.schemas.liquidations import Liquidation
|
||||||
get_child_traces,
|
|
||||||
is_child_of_any_address,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.traces import (
|
from mev_inspect.schemas.traces import (
|
||||||
ClassifiedTrace,
|
|
||||||
CallTrace,
|
CallTrace,
|
||||||
DecodedCallTrace,
|
|
||||||
Classification,
|
Classification,
|
||||||
|
ClassifiedTrace,
|
||||||
|
DecodedCallTrace,
|
||||||
Protocol,
|
Protocol,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
from mev_inspect.transfers import get_transfer
|
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
from mev_inspect.schemas.liquidations import Liquidation
|
from mev_inspect.traces import get_child_traces, is_child_of_any_address
|
||||||
|
from mev_inspect.transfers import get_transfer
|
||||||
|
|
||||||
|
|
||||||
AAVE_CONTRACT_ADDRESSES: List[str] = [
|
AAVE_CONTRACT_ADDRESSES: List[str] = [
|
||||||
# AAVE Proxy
|
# AAVE Proxy
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from sqlalchemy import orm
|
from sqlalchemy import orm
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
from typing import Optional, List, Sequence
|
from typing import List, Optional, Sequence
|
||||||
|
|
||||||
from mev_inspect.schemas.swaps import Swap
|
from mev_inspect.schemas.swaps import Swap
|
||||||
from mev_inspect.schemas.transfers import Transfer, ETH_TOKEN_ADDRESS
|
from mev_inspect.schemas.traces import ClassifiedTrace, DecodedCallTrace
|
||||||
|
from mev_inspect.schemas.transfers import ETH_TOKEN_ADDRESS, Transfer
|
||||||
from mev_inspect.schemas.traces import DecodedCallTrace, ClassifiedTrace
|
|
||||||
|
|
||||||
|
|
||||||
def create_swap_from_pool_transfers(
|
def create_swap_from_pool_transfers(
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
from typing import Dict, Optional, Tuple, Type
|
from typing import Dict, Optional, Tuple, Type
|
||||||
|
|
||||||
|
from mev_inspect.schemas.classifiers import Classifier, ClassifierSpec
|
||||||
from mev_inspect.schemas.traces import DecodedCallTrace, Protocol
|
from mev_inspect.schemas.traces import DecodedCallTrace, Protocol
|
||||||
from mev_inspect.schemas.classifiers import ClassifierSpec, Classifier
|
|
||||||
|
|
||||||
from .aave import AAVE_CLASSIFIER_SPECS
|
from .aave import AAVE_CLASSIFIER_SPECS
|
||||||
|
from .balancer import BALANCER_CLASSIFIER_SPECS
|
||||||
|
from .bancor import BANCOR_CLASSIFIER_SPECS
|
||||||
|
from .compound import COMPOUND_CLASSIFIER_SPECS
|
||||||
|
from .cryptopunks import CRYPTOPUNKS_CLASSIFIER_SPECS
|
||||||
from .curve import CURVE_CLASSIFIER_SPECS
|
from .curve import CURVE_CLASSIFIER_SPECS
|
||||||
from .erc20 import ERC20_CLASSIFIER_SPECS
|
from .erc20 import ERC20_CLASSIFIER_SPECS
|
||||||
from .uniswap import UNISWAP_CLASSIFIER_SPECS
|
from .uniswap import UNISWAP_CLASSIFIER_SPECS
|
||||||
from .weth import WETH_CLASSIFIER_SPECS, WETH_ADDRESS
|
from .weth import WETH_ADDRESS, WETH_CLASSIFIER_SPECS
|
||||||
from .zero_ex import ZEROX_CLASSIFIER_SPECS
|
from .zero_ex import ZEROX_CLASSIFIER_SPECS
|
||||||
from .balancer import BALANCER_CLASSIFIER_SPECS
|
|
||||||
from .compound import COMPOUND_CLASSIFIER_SPECS
|
|
||||||
from .cryptopunks import CRYPTOPUNKS_CLASSIFIER_SPECS
|
|
||||||
from .bancor import BANCOR_CLASSIFIER_SPECS
|
|
||||||
|
|
||||||
ALL_CLASSIFIER_SPECS = (
|
ALL_CLASSIFIER_SPECS = (
|
||||||
ERC20_CLASSIFIER_SPECS
|
ERC20_CLASSIFIER_SPECS
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
from mev_inspect.schemas.classifiers import (
|
from mev_inspect.schemas.classifiers import (
|
||||||
ClassifierSpec,
|
ClassifierSpec,
|
||||||
DecodedCallTrace,
|
DecodedCallTrace,
|
||||||
TransferClassifier,
|
|
||||||
LiquidationClassifier,
|
LiquidationClassifier,
|
||||||
|
TransferClassifier,
|
||||||
)
|
)
|
||||||
from mev_inspect.schemas.traces import Protocol
|
from mev_inspect.schemas.traces import Protocol
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
|
@ -1,15 +1,11 @@
|
|||||||
from typing import Optional, List
|
from typing import List, Optional
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
|
||||||
from mev_inspect.schemas.swaps import Swap
|
|
||||||
from mev_inspect.schemas.traces import (
|
|
||||||
DecodedCallTrace,
|
|
||||||
Protocol,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.classifiers import (
|
|
||||||
ClassifierSpec,
|
|
||||||
SwapClassifier,
|
|
||||||
)
|
|
||||||
from mev_inspect.classifiers.helpers import create_swap_from_pool_transfers
|
from mev_inspect.classifiers.helpers import create_swap_from_pool_transfers
|
||||||
|
from mev_inspect.schemas.classifiers import ClassifierSpec, SwapClassifier
|
||||||
|
from mev_inspect.schemas.swaps import Swap
|
||||||
|
from mev_inspect.schemas.traces import DecodedCallTrace, Protocol
|
||||||
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
|
|
||||||
|
|
||||||
BALANCER_V1_POOL_ABI_NAME = "BPool"
|
BALANCER_V1_POOL_ABI_NAME = "BPool"
|
||||||
|
|
||||||
|
@ -1,17 +1,11 @@
|
|||||||
from typing import Optional, List
|
from typing import List, Optional
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
|
||||||
|
from mev_inspect.classifiers.helpers import create_swap_from_recipient_transfers
|
||||||
|
from mev_inspect.schemas.classifiers import ClassifierSpec, SwapClassifier
|
||||||
from mev_inspect.schemas.swaps import Swap
|
from mev_inspect.schemas.swaps import Swap
|
||||||
from mev_inspect.schemas.traces import (
|
from mev_inspect.schemas.traces import DecodedCallTrace, Protocol
|
||||||
DecodedCallTrace,
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
Protocol,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.classifiers import (
|
|
||||||
ClassifierSpec,
|
|
||||||
SwapClassifier,
|
|
||||||
)
|
|
||||||
from mev_inspect.classifiers.helpers import (
|
|
||||||
create_swap_from_recipient_transfers,
|
|
||||||
)
|
|
||||||
|
|
||||||
BANCOR_NETWORK_ABI_NAME = "BancorNetwork"
|
BANCOR_NETWORK_ABI_NAME = "BancorNetwork"
|
||||||
BANCOR_NETWORK_CONTRACT_ADDRESS = "0x2F9EC37d6CcFFf1caB21733BdaDEdE11c823cCB0"
|
BANCOR_NETWORK_CONTRACT_ADDRESS = "0x2F9EC37d6CcFFf1caB21733BdaDEdE11c823cCB0"
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
from mev_inspect.schemas.traces import (
|
|
||||||
Protocol,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.classifiers import (
|
from mev_inspect.schemas.classifiers import (
|
||||||
ClassifierSpec,
|
ClassifierSpec,
|
||||||
LiquidationClassifier,
|
LiquidationClassifier,
|
||||||
SeizeClassifier,
|
SeizeClassifier,
|
||||||
)
|
)
|
||||||
|
from mev_inspect.schemas.traces import Protocol
|
||||||
|
|
||||||
|
|
||||||
COMPOUND_V2_CETH_SPEC = ClassifierSpec(
|
COMPOUND_V2_CETH_SPEC = ClassifierSpec(
|
||||||
abi_name="CEther",
|
abi_name="CEther",
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
from mev_inspect.schemas.traces import Protocol, Classification
|
from mev_inspect.schemas.classifiers import Classifier, ClassifierSpec
|
||||||
|
from mev_inspect.schemas.traces import Classification, Protocol
|
||||||
from mev_inspect.schemas.classifiers import (
|
|
||||||
ClassifierSpec,
|
|
||||||
Classifier,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class PunkBidAcceptanceClassifier(Classifier):
|
class PunkBidAcceptanceClassifier(Classifier):
|
||||||
|
@ -1,16 +1,10 @@
|
|||||||
from typing import Optional, List
|
from typing import List, Optional
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
|
||||||
from mev_inspect.schemas.swaps import Swap
|
|
||||||
from mev_inspect.schemas.traces import (
|
|
||||||
Protocol,
|
|
||||||
DecodedCallTrace,
|
|
||||||
)
|
|
||||||
|
|
||||||
from mev_inspect.schemas.classifiers import (
|
|
||||||
ClassifierSpec,
|
|
||||||
SwapClassifier,
|
|
||||||
)
|
|
||||||
from mev_inspect.classifiers.helpers import create_swap_from_pool_transfers
|
from mev_inspect.classifiers.helpers import create_swap_from_pool_transfers
|
||||||
|
from mev_inspect.schemas.classifiers import ClassifierSpec, SwapClassifier
|
||||||
|
from mev_inspect.schemas.swaps import Swap
|
||||||
|
from mev_inspect.schemas.traces import DecodedCallTrace, Protocol
|
||||||
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
|
|
||||||
|
|
||||||
class CurveSwapClassifier(SwapClassifier):
|
class CurveSwapClassifier(SwapClassifier):
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
|
from mev_inspect.schemas.classifiers import ClassifierSpec, TransferClassifier
|
||||||
from mev_inspect.schemas.traces import DecodedCallTrace
|
from mev_inspect.schemas.traces import DecodedCallTrace
|
||||||
from mev_inspect.schemas.classifiers import (
|
|
||||||
ClassifierSpec,
|
|
||||||
TransferClassifier,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,15 +1,10 @@
|
|||||||
from typing import Optional, List
|
from typing import List, Optional
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
|
||||||
from mev_inspect.schemas.swaps import Swap
|
|
||||||
from mev_inspect.schemas.traces import (
|
|
||||||
DecodedCallTrace,
|
|
||||||
Protocol,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.classifiers import (
|
|
||||||
ClassifierSpec,
|
|
||||||
SwapClassifier,
|
|
||||||
)
|
|
||||||
from mev_inspect.classifiers.helpers import create_swap_from_pool_transfers
|
from mev_inspect.classifiers.helpers import create_swap_from_pool_transfers
|
||||||
|
from mev_inspect.schemas.classifiers import ClassifierSpec, SwapClassifier
|
||||||
|
from mev_inspect.schemas.swaps import Swap
|
||||||
|
from mev_inspect.schemas.traces import DecodedCallTrace, Protocol
|
||||||
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
|
|
||||||
|
|
||||||
UNISWAP_V2_PAIR_ABI_NAME = "UniswapV2Pair"
|
UNISWAP_V2_PAIR_ABI_NAME = "UniswapV2Pair"
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
from mev_inspect.schemas.traces import (
|
|
||||||
Protocol,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.classifiers import (
|
from mev_inspect.schemas.classifiers import (
|
||||||
ClassifierSpec,
|
ClassifierSpec,
|
||||||
DecodedCallTrace,
|
DecodedCallTrace,
|
||||||
TransferClassifier,
|
TransferClassifier,
|
||||||
)
|
)
|
||||||
|
from mev_inspect.schemas.traces import Protocol
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,14 +1,10 @@
|
|||||||
from typing import Optional, List, Tuple
|
from typing import List, Optional, Tuple
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
|
||||||
|
from mev_inspect.schemas.classifiers import ClassifierSpec, SwapClassifier
|
||||||
from mev_inspect.schemas.swaps import Swap
|
from mev_inspect.schemas.swaps import Swap
|
||||||
from mev_inspect.schemas.traces import (
|
from mev_inspect.schemas.traces import DecodedCallTrace, Protocol
|
||||||
DecodedCallTrace,
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
Protocol,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.classifiers import (
|
|
||||||
ClassifierSpec,
|
|
||||||
SwapClassifier,
|
|
||||||
)
|
|
||||||
|
|
||||||
ANY_TAKER_ADDRESS = "0x0000000000000000000000000000000000000000"
|
ANY_TAKER_ADDRESS = "0x0000000000000000000000000000000000000000"
|
||||||
|
|
||||||
|
@ -4,12 +4,13 @@ from mev_inspect.abi import get_abi
|
|||||||
from mev_inspect.decode import ABIDecoder
|
from mev_inspect.decode import ABIDecoder
|
||||||
from mev_inspect.schemas.blocks import CallAction, CallResult
|
from mev_inspect.schemas.blocks import CallAction, CallResult
|
||||||
from mev_inspect.schemas.traces import (
|
from mev_inspect.schemas.traces import (
|
||||||
|
CallTrace,
|
||||||
Classification,
|
Classification,
|
||||||
ClassifiedTrace,
|
ClassifiedTrace,
|
||||||
CallTrace,
|
|
||||||
DecodedCallTrace,
|
DecodedCallTrace,
|
||||||
|
Trace,
|
||||||
|
TraceType,
|
||||||
)
|
)
|
||||||
from mev_inspect.schemas.traces import Trace, TraceType
|
|
||||||
|
|
||||||
from .specs import ALL_CLASSIFIER_SPECS
|
from .specs import ALL_CLASSIFIER_SPECS
|
||||||
|
|
||||||
|
@ -1,17 +1,18 @@
|
|||||||
import aiohttp
|
import aiohttp
|
||||||
|
|
||||||
from mev_inspect.classifiers.specs.weth import WETH_ADDRESS
|
from mev_inspect.classifiers.specs.weth import WETH_ADDRESS
|
||||||
from mev_inspect.schemas.transfers import ETH_TOKEN_ADDRESS
|
|
||||||
from mev_inspect.schemas.coinbase import CoinbasePrices, CoinbasePricesResponse
|
from mev_inspect.schemas.coinbase import CoinbasePrices, CoinbasePricesResponse
|
||||||
from mev_inspect.schemas.prices import (
|
from mev_inspect.schemas.prices import (
|
||||||
WBTC_TOKEN_ADDRESS,
|
|
||||||
LINK_TOKEN_ADDRESS,
|
|
||||||
YEARN_TOKEN_ADDRESS,
|
|
||||||
AAVE_TOKEN_ADDRESS,
|
AAVE_TOKEN_ADDRESS,
|
||||||
|
LINK_TOKEN_ADDRESS,
|
||||||
|
REN_TOKEN_ADDRESS,
|
||||||
UNI_TOKEN_ADDRESS,
|
UNI_TOKEN_ADDRESS,
|
||||||
USDC_TOKEN_ADDRESS_ADDRESS,
|
USDC_TOKEN_ADDRESS_ADDRESS,
|
||||||
REN_TOKEN_ADDRESS,
|
WBTC_TOKEN_ADDRESS,
|
||||||
|
YEARN_TOKEN_ADDRESS,
|
||||||
)
|
)
|
||||||
|
from mev_inspect.schemas.transfers import ETH_TOKEN_ADDRESS
|
||||||
|
|
||||||
|
|
||||||
COINBASE_API_BASE = "https://www.coinbase.com/api/v2"
|
COINBASE_API_BASE = "https://www.coinbase.com/api/v2"
|
||||||
COINBASE_TOKEN_NAME_BY_ADDRESS = {
|
COINBASE_TOKEN_NAME_BY_ADDRESS = {
|
||||||
|
@ -1,13 +1,9 @@
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from mev_inspect.traces import get_child_traces
|
|
||||||
from mev_inspect.schemas.traces import (
|
|
||||||
ClassifiedTrace,
|
|
||||||
Classification,
|
|
||||||
Protocol,
|
|
||||||
)
|
|
||||||
|
|
||||||
from mev_inspect.schemas.liquidations import Liquidation
|
from mev_inspect.schemas.liquidations import Liquidation
|
||||||
|
from mev_inspect.schemas.traces import Classification, ClassifiedTrace, Protocol
|
||||||
|
from mev_inspect.traces import get_child_traces
|
||||||
|
|
||||||
|
|
||||||
V2_COMPTROLLER_ADDRESS = "0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B"
|
V2_COMPTROLLER_ADDRESS = "0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B"
|
||||||
V2_C_ETHER = "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5"
|
V2_C_ETHER = "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5"
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import signal
|
import signal
|
||||||
|
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.models.liquidations import LiquidationModel
|
from mev_inspect.models.liquidations import LiquidationModel
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.models.miner_payments import MinerPaymentModel
|
from mev_inspect.models.miner_payments import MinerPaymentModel
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.models.punks import (
|
from mev_inspect.models.punks import (
|
||||||
PunkSnipeModel,
|
|
||||||
PunkBidModel,
|
|
||||||
PunkBidAcceptanceModel,
|
PunkBidAcceptanceModel,
|
||||||
|
PunkBidModel,
|
||||||
|
PunkSnipeModel,
|
||||||
)
|
)
|
||||||
from mev_inspect.schemas.punk_snipe import PunkSnipe
|
|
||||||
from mev_inspect.schemas.punk_bid import PunkBid
|
|
||||||
from mev_inspect.schemas.punk_accept_bid import PunkBidAcceptance
|
from mev_inspect.schemas.punk_accept_bid import PunkBidAcceptance
|
||||||
|
from mev_inspect.schemas.punk_bid import PunkBid
|
||||||
|
from mev_inspect.schemas.punk_snipe import PunkSnipe
|
||||||
|
|
||||||
|
|
||||||
def delete_punk_bid_acceptances_for_block(
|
def delete_punk_bid_acceptances_for_block(
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.models.swaps import SwapModel
|
from mev_inspect.models.swaps import SwapModel
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.models.traces import ClassifiedTraceModel
|
from mev_inspect.models.traces import ClassifiedTraceModel
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.models.transfers import TransferModel
|
from mev_inspect.models.transfers import TransferModel
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from sqlalchemy import create_engine, orm
|
from sqlalchemy import create_engine, orm
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from sqlalchemy import orm
|
from sqlalchemy import orm
|
||||||
@ -7,44 +8,35 @@ from web3 import Web3
|
|||||||
from mev_inspect.arbitrages import get_arbitrages
|
from mev_inspect.arbitrages import get_arbitrages
|
||||||
from mev_inspect.block import create_from_block_number
|
from mev_inspect.block import create_from_block_number
|
||||||
from mev_inspect.classifiers.trace import TraceClassifier
|
from mev_inspect.classifiers.trace import TraceClassifier
|
||||||
from mev_inspect.crud.arbitrages import (
|
from mev_inspect.crud.arbitrages import delete_arbitrages_for_block, write_arbitrages
|
||||||
delete_arbitrages_for_block,
|
from mev_inspect.crud.blocks import delete_block, write_block
|
||||||
write_arbitrages,
|
from mev_inspect.crud.liquidations import (
|
||||||
)
|
delete_liquidations_for_block,
|
||||||
|
write_liquidations,
|
||||||
from mev_inspect.crud.punks import (
|
|
||||||
delete_punk_snipes_for_block,
|
|
||||||
write_punk_snipes,
|
|
||||||
delete_punk_bids_for_block,
|
|
||||||
write_punk_bids,
|
|
||||||
delete_punk_bid_acceptances_for_block,
|
|
||||||
write_punk_bid_acceptances,
|
|
||||||
)
|
|
||||||
|
|
||||||
from mev_inspect.crud.blocks import (
|
|
||||||
delete_block,
|
|
||||||
write_block,
|
|
||||||
)
|
|
||||||
from mev_inspect.crud.traces import (
|
|
||||||
delete_classified_traces_for_block,
|
|
||||||
write_classified_traces,
|
|
||||||
)
|
)
|
||||||
from mev_inspect.crud.miner_payments import (
|
from mev_inspect.crud.miner_payments import (
|
||||||
delete_miner_payments_for_block,
|
delete_miner_payments_for_block,
|
||||||
write_miner_payments,
|
write_miner_payments,
|
||||||
)
|
)
|
||||||
|
from mev_inspect.crud.punks import (
|
||||||
from mev_inspect.crud.swaps import delete_swaps_for_block, write_swaps
|
delete_punk_bid_acceptances_for_block,
|
||||||
from mev_inspect.crud.transfers import delete_transfers_for_block, write_transfers
|
delete_punk_bids_for_block,
|
||||||
from mev_inspect.crud.liquidations import (
|
delete_punk_snipes_for_block,
|
||||||
delete_liquidations_for_block,
|
write_punk_bid_acceptances,
|
||||||
write_liquidations,
|
write_punk_bids,
|
||||||
|
write_punk_snipes,
|
||||||
)
|
)
|
||||||
|
from mev_inspect.crud.swaps import delete_swaps_for_block, write_swaps
|
||||||
|
from mev_inspect.crud.traces import (
|
||||||
|
delete_classified_traces_for_block,
|
||||||
|
write_classified_traces,
|
||||||
|
)
|
||||||
|
from mev_inspect.crud.transfers import delete_transfers_for_block, write_transfers
|
||||||
|
from mev_inspect.liquidations import get_liquidations
|
||||||
from mev_inspect.miner_payments import get_miner_payments
|
from mev_inspect.miner_payments import get_miner_payments
|
||||||
from mev_inspect.punks import get_punk_bid_acceptances, get_punk_bids, get_punk_snipes
|
from mev_inspect.punks import get_punk_bid_acceptances, get_punk_bids, get_punk_snipes
|
||||||
from mev_inspect.swaps import get_swaps
|
from mev_inspect.swaps import get_swaps
|
||||||
from mev_inspect.transfers import get_transfers
|
from mev_inspect.transfers import get_transfers
|
||||||
from mev_inspect.liquidations import get_liquidations
|
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
from asyncio import CancelledError
|
from asyncio import CancelledError
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
@ -13,6 +14,7 @@ from mev_inspect.classifiers.trace import TraceClassifier
|
|||||||
from mev_inspect.inspect_block import inspect_block
|
from mev_inspect.inspect_block import inspect_block
|
||||||
from mev_inspect.provider import get_base_provider
|
from mev_inspect.provider import get_base_provider
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,11 +2,8 @@ from typing import List
|
|||||||
|
|
||||||
from mev_inspect.aave_liquidations import get_aave_liquidations
|
from mev_inspect.aave_liquidations import get_aave_liquidations
|
||||||
from mev_inspect.compound_liquidations import get_compound_liquidations
|
from mev_inspect.compound_liquidations import get_compound_liquidations
|
||||||
from mev_inspect.schemas.traces import (
|
|
||||||
ClassifiedTrace,
|
|
||||||
Classification,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.liquidations import Liquidation
|
from mev_inspect.schemas.liquidations import Liquidation
|
||||||
|
from mev_inspect.schemas.traces import Classification, ClassifiedTrace
|
||||||
|
|
||||||
|
|
||||||
def has_liquidations(classified_traces: List[ClassifiedTrace]) -> bool:
|
def has_liquidations(classified_traces: List[ClassifiedTrace]) -> bool:
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.schemas.traces import ClassifiedTrace
|
|
||||||
from mev_inspect.schemas.miner_payments import MinerPayment
|
from mev_inspect.schemas.miner_payments import MinerPayment
|
||||||
from mev_inspect.schemas.receipts import Receipt
|
from mev_inspect.schemas.receipts import Receipt
|
||||||
|
from mev_inspect.schemas.traces import ClassifiedTrace
|
||||||
from mev_inspect.traces import get_traces_by_transaction_hash
|
from mev_inspect.traces import get_traces_by_transaction_hash
|
||||||
from mev_inspect.transfers import (
|
from mev_inspect.transfers import filter_transfers, get_eth_transfers
|
||||||
filter_transfers,
|
|
||||||
get_eth_transfers,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def get_miner_payments(
|
def get_miner_payments(
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
|
|
||||||
|
|
||||||
Base = declarative_base()
|
Base = declarative_base()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from sqlalchemy import Column, Numeric, String, ARRAY, Integer
|
from sqlalchemy import ARRAY, Column, Integer, Numeric, String
|
||||||
|
|
||||||
from .base import Base
|
from .base import Base
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from sqlalchemy import Column, Numeric, String, TIMESTAMP
|
from sqlalchemy import TIMESTAMP, Column, Numeric, String
|
||||||
|
|
||||||
from .base import Base
|
from .base import Base
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from sqlalchemy import Column, Numeric, String, ARRAY, Integer
|
from sqlalchemy import ARRAY, Column, Integer, Numeric, String
|
||||||
|
|
||||||
from .base import Base
|
from .base import Base
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from sqlalchemy import Column, Numeric, String, ARRAY, Integer
|
from sqlalchemy import ARRAY, Column, Integer, Numeric, String
|
||||||
|
|
||||||
from .base import Base
|
from .base import Base
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from sqlalchemy import Column, Numeric, String, ARRAY, Integer
|
from sqlalchemy import ARRAY, Column, Integer, Numeric, String
|
||||||
|
|
||||||
from .base import Base
|
from .base import Base
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from sqlalchemy import Column, JSON, Numeric, String, ARRAY, Integer
|
from sqlalchemy import ARRAY, JSON, Column, Integer, Numeric, String
|
||||||
|
|
||||||
from .base import Base
|
from .base import Base
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from sqlalchemy import Column, Numeric, String, ARRAY, Integer
|
from sqlalchemy import ARRAY, Column, Integer, Numeric, String
|
||||||
|
|
||||||
from .base import Base
|
from .base import Base
|
||||||
|
|
||||||
|
@ -3,14 +3,14 @@ from typing import List
|
|||||||
from mev_inspect.classifiers.specs.weth import WETH_ADDRESS
|
from mev_inspect.classifiers.specs.weth import WETH_ADDRESS
|
||||||
from mev_inspect.coinbase import fetch_coinbase_prices
|
from mev_inspect.coinbase import fetch_coinbase_prices
|
||||||
from mev_inspect.schemas.prices import (
|
from mev_inspect.schemas.prices import (
|
||||||
Price,
|
|
||||||
WBTC_TOKEN_ADDRESS,
|
|
||||||
LINK_TOKEN_ADDRESS,
|
|
||||||
YEARN_TOKEN_ADDRESS,
|
|
||||||
AAVE_TOKEN_ADDRESS,
|
AAVE_TOKEN_ADDRESS,
|
||||||
|
LINK_TOKEN_ADDRESS,
|
||||||
|
REN_TOKEN_ADDRESS,
|
||||||
UNI_TOKEN_ADDRESS,
|
UNI_TOKEN_ADDRESS,
|
||||||
USDC_TOKEN_ADDRESS_ADDRESS,
|
USDC_TOKEN_ADDRESS_ADDRESS,
|
||||||
REN_TOKEN_ADDRESS,
|
WBTC_TOKEN_ADDRESS,
|
||||||
|
YEARN_TOKEN_ADDRESS,
|
||||||
|
Price,
|
||||||
)
|
)
|
||||||
from mev_inspect.schemas.transfers import ETH_TOKEN_ADDRESS
|
from mev_inspect.schemas.transfers import ETH_TOKEN_ADDRESS
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
from web3 import Web3, AsyncHTTPProvider
|
from web3 import AsyncHTTPProvider, Web3
|
||||||
|
|
||||||
from mev_inspect.retry import http_retry_with_backoff_request_middleware
|
from mev_inspect.retry import http_retry_with_backoff_request_middleware
|
||||||
|
|
||||||
|
@ -1,12 +1,9 @@
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
from mev_inspect.schemas.traces import (
|
|
||||||
ClassifiedTrace,
|
|
||||||
Classification,
|
|
||||||
DecodedCallTrace,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.punk_bid import PunkBid
|
|
||||||
from mev_inspect.schemas.punk_accept_bid import PunkBidAcceptance
|
from mev_inspect.schemas.punk_accept_bid import PunkBidAcceptance
|
||||||
|
from mev_inspect.schemas.punk_bid import PunkBid
|
||||||
from mev_inspect.schemas.punk_snipe import PunkSnipe
|
from mev_inspect.schemas.punk_snipe import PunkSnipe
|
||||||
|
from mev_inspect.schemas.traces import Classification, ClassifiedTrace, DecodedCallTrace
|
||||||
from mev_inspect.traces import get_traces_by_transaction_hash
|
from mev_inspect.traces import get_traces_by_transaction_hash
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,33 +1,20 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
import random
|
import random
|
||||||
from typing import (
|
|
||||||
Any,
|
|
||||||
Callable,
|
|
||||||
Collection,
|
|
||||||
Type,
|
|
||||||
Coroutine,
|
|
||||||
)
|
|
||||||
from asyncio.exceptions import TimeoutError
|
from asyncio.exceptions import TimeoutError
|
||||||
|
from typing import Any, Callable, Collection, Coroutine, Type
|
||||||
|
|
||||||
from aiohttp.client_exceptions import (
|
from aiohttp.client_exceptions import (
|
||||||
ClientOSError,
|
ClientOSError,
|
||||||
|
ClientResponseError,
|
||||||
ServerDisconnectedError,
|
ServerDisconnectedError,
|
||||||
ServerTimeoutError,
|
ServerTimeoutError,
|
||||||
ClientResponseError,
|
|
||||||
)
|
|
||||||
from requests.exceptions import (
|
|
||||||
ConnectionError,
|
|
||||||
HTTPError,
|
|
||||||
Timeout,
|
|
||||||
TooManyRedirects,
|
|
||||||
)
|
)
|
||||||
|
from requests.exceptions import ConnectionError, HTTPError, Timeout, TooManyRedirects
|
||||||
from web3 import Web3
|
from web3 import Web3
|
||||||
from web3.middleware.exception_retry_request import check_if_retry_on_failure
|
from web3.middleware.exception_retry_request import check_if_retry_on_failure
|
||||||
from web3.types import (
|
from web3.types import RPCEndpoint, RPCResponse
|
||||||
RPCEndpoint,
|
|
||||||
RPCResponse,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
request_exceptions = (ConnectionError, HTTPError, Timeout, TooManyRedirects)
|
request_exceptions = (ConnectionError, HTTPError, Timeout, TooManyRedirects)
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import List, Optional, Union
|
from typing import List, Optional, Union
|
||||||
from typing_extensions import Literal
|
|
||||||
|
|
||||||
import eth_utils.abi
|
import eth_utils.abi
|
||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
from typing_extensions import Literal
|
||||||
from web3 import Web3
|
from web3 import Web3
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,9 +3,9 @@ from typing import Dict, List, Optional, Type
|
|||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
from .swaps import Swap
|
||||||
from .traces import Classification, DecodedCallTrace, Protocol
|
from .traces import Classification, DecodedCallTrace, Protocol
|
||||||
from .transfers import Transfer
|
from .transfers import Transfer
|
||||||
from .swaps import Swap
|
|
||||||
|
|
||||||
|
|
||||||
class Classifier(ABC):
|
class Classifier(ABC):
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from mev_inspect.schemas.traces import Protocol
|
from mev_inspect.schemas.traces import Protocol
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ from datetime import datetime
|
|||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
WBTC_TOKEN_ADDRESS = "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"
|
WBTC_TOKEN_ADDRESS = "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599"
|
||||||
LINK_TOKEN_ADDRESS = "0x514910771af9ca656af840dff83e8264ecf986ca"
|
LINK_TOKEN_ADDRESS = "0x514910771af9ca656af840dff83e8264ecf986ca"
|
||||||
YEARN_TOKEN_ADDRESS = "0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e"
|
YEARN_TOKEN_ADDRESS = "0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e"
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import signal
|
import signal
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,13 +1,9 @@
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from mev_inspect.classifiers.specs import get_classifier
|
from mev_inspect.classifiers.specs import get_classifier
|
||||||
from mev_inspect.schemas.traces import (
|
|
||||||
ClassifiedTrace,
|
|
||||||
Classification,
|
|
||||||
DecodedCallTrace,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.classifiers import SwapClassifier
|
from mev_inspect.schemas.classifiers import SwapClassifier
|
||||||
from mev_inspect.schemas.swaps import Swap
|
from mev_inspect.schemas.swaps import Swap
|
||||||
|
from mev_inspect.schemas.traces import Classification, ClassifiedTrace, DecodedCallTrace
|
||||||
from mev_inspect.schemas.transfers import Transfer
|
from mev_inspect.schemas.transfers import Transfer
|
||||||
from mev_inspect.traces import get_traces_by_transaction_hash
|
from mev_inspect.traces import get_traces_by_transaction_hash
|
||||||
from mev_inspect.transfers import (
|
from mev_inspect.transfers import (
|
||||||
|
@ -3,6 +3,7 @@ from typing import List, Optional
|
|||||||
from mev_inspect.schemas.blocks import Block
|
from mev_inspect.schemas.blocks import Block
|
||||||
from mev_inspect.schemas.traces import Trace, TraceType
|
from mev_inspect.schemas.traces import Trace, TraceType
|
||||||
|
|
||||||
|
|
||||||
weth_address = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
|
weth_address = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
|
||||||
|
|
||||||
cache_directory = "./cache"
|
cache_directory = "./cache"
|
||||||
|
@ -2,12 +2,9 @@ from typing import Dict, List, Optional, Sequence
|
|||||||
|
|
||||||
from mev_inspect.classifiers.specs import get_classifier
|
from mev_inspect.classifiers.specs import get_classifier
|
||||||
from mev_inspect.schemas.classifiers import TransferClassifier
|
from mev_inspect.schemas.classifiers import TransferClassifier
|
||||||
from mev_inspect.schemas.traces import (
|
from mev_inspect.schemas.traces import ClassifiedTrace, DecodedCallTrace
|
||||||
ClassifiedTrace,
|
|
||||||
DecodedCallTrace,
|
|
||||||
)
|
|
||||||
from mev_inspect.schemas.transfers import ETH_TOKEN_ADDRESS, Transfer
|
from mev_inspect.schemas.transfers import ETH_TOKEN_ADDRESS, Transfer
|
||||||
from mev_inspect.traces import is_child_trace_address, get_child_traces
|
from mev_inspect.traces import get_child_traces, is_child_trace_address
|
||||||
|
|
||||||
|
|
||||||
def get_transfers(traces: List[ClassifiedTrace]) -> List[Transfer]:
|
def get_transfers(traces: List[ClassifiedTrace]) -> List[Transfer]:
|
||||||
|
@ -68,7 +68,9 @@ include_trailing_comma = true
|
|||||||
lines_after_imports = 2
|
lines_after_imports = 2
|
||||||
lines_between_types = 1
|
lines_between_types = 1
|
||||||
use_parentheses = true
|
use_parentheses = true
|
||||||
src_paths = ["poetry", "tests"]
|
src_paths = ["mev_inspect", "tests"]
|
||||||
skip_glob = ["*/setup.py"]
|
skip_glob = ["*/setup.py"]
|
||||||
filter_files = true
|
filter_files = true
|
||||||
known_first_party = "poetry"
|
known_first_party = "mev_inspect"
|
||||||
|
known_third_party = "alembic"
|
||||||
|
py_version=39
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.aave_liquidations import get_aave_liquidations
|
from mev_inspect.aave_liquidations import get_aave_liquidations
|
||||||
|
from mev_inspect.classifiers.trace import TraceClassifier
|
||||||
from mev_inspect.schemas.liquidations import Liquidation
|
from mev_inspect.schemas.liquidations import Liquidation
|
||||||
from mev_inspect.schemas.traces import Protocol
|
from mev_inspect.schemas.traces import Protocol
|
||||||
from mev_inspect.classifiers.trace import TraceClassifier
|
|
||||||
from mev_inspect.transfers import ETH_TOKEN_ADDRESS
|
from mev_inspect.transfers import ETH_TOKEN_ADDRESS
|
||||||
from tests.utils import load_test_block
|
from tests.utils import load_test_block
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from mev_inspect.schemas.swaps import Swap
|
|
||||||
from mev_inspect.swaps import get_swaps
|
|
||||||
from mev_inspect.schemas.traces import Protocol
|
|
||||||
from mev_inspect.classifiers.trace import TraceClassifier
|
from mev_inspect.classifiers.trace import TraceClassifier
|
||||||
|
from mev_inspect.schemas.swaps import Swap
|
||||||
|
from mev_inspect.schemas.traces import Protocol
|
||||||
|
from mev_inspect.swaps import get_swaps
|
||||||
from tests.utils import load_test_block
|
from tests.utils import load_test_block
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.arbitrages import get_arbitrages, _get_all_routes
|
from mev_inspect.arbitrages import _get_all_routes, get_arbitrages
|
||||||
from mev_inspect.schemas.swaps import Swap
|
|
||||||
from mev_inspect.classifiers.specs.uniswap import (
|
from mev_inspect.classifiers.specs.uniswap import (
|
||||||
UNISWAP_V2_PAIR_ABI_NAME,
|
UNISWAP_V2_PAIR_ABI_NAME,
|
||||||
UNISWAP_V3_POOL_ABI_NAME,
|
UNISWAP_V3_POOL_ABI_NAME,
|
||||||
)
|
)
|
||||||
|
from mev_inspect.schemas.swaps import Swap
|
||||||
|
|
||||||
|
|
||||||
def test_two_pool_arbitrage(get_transaction_hashes, get_addresses):
|
def test_two_pool_arbitrage(get_transaction_hashes, get_addresses):
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
|
from mev_inspect.classifiers.trace import TraceClassifier
|
||||||
from mev_inspect.compound_liquidations import get_compound_liquidations
|
from mev_inspect.compound_liquidations import get_compound_liquidations
|
||||||
from mev_inspect.schemas.liquidations import Liquidation
|
from mev_inspect.schemas.liquidations import Liquidation
|
||||||
from mev_inspect.schemas.traces import Protocol
|
from mev_inspect.schemas.traces import Protocol
|
||||||
from mev_inspect.classifiers.trace import TraceClassifier
|
from tests.utils import load_comp_markets, load_cream_markets, load_test_block
|
||||||
from tests.utils import load_test_block, load_comp_markets, load_cream_markets
|
|
||||||
|
|
||||||
comp_markets = load_comp_markets()
|
comp_markets = load_comp_markets()
|
||||||
cream_markets = load_cream_markets()
|
cream_markets = load_cream_markets()
|
||||||
|
@ -1,20 +1,16 @@
|
|||||||
from mev_inspect.swaps import get_swaps
|
|
||||||
from mev_inspect.classifiers.specs.balancer import BALANCER_V1_POOL_ABI_NAME
|
from mev_inspect.classifiers.specs.balancer import BALANCER_V1_POOL_ABI_NAME
|
||||||
from mev_inspect.classifiers.specs.uniswap import (
|
|
||||||
UNISWAP_V2_PAIR_ABI_NAME,
|
|
||||||
UNISWAP_V3_POOL_ABI_NAME,
|
|
||||||
)
|
|
||||||
from mev_inspect.classifiers.specs.bancor import (
|
from mev_inspect.classifiers.specs.bancor import (
|
||||||
BANCOR_NETWORK_ABI_NAME,
|
BANCOR_NETWORK_ABI_NAME,
|
||||||
BANCOR_NETWORK_CONTRACT_ADDRESS,
|
BANCOR_NETWORK_CONTRACT_ADDRESS,
|
||||||
)
|
)
|
||||||
from mev_inspect.schemas.traces import Protocol
|
from mev_inspect.classifiers.specs.uniswap import (
|
||||||
|
UNISWAP_V2_PAIR_ABI_NAME,
|
||||||
from .helpers import (
|
UNISWAP_V3_POOL_ABI_NAME,
|
||||||
make_unknown_trace,
|
|
||||||
make_transfer_trace,
|
|
||||||
make_swap_trace,
|
|
||||||
)
|
)
|
||||||
|
from mev_inspect.schemas.traces import Protocol
|
||||||
|
from mev_inspect.swaps import get_swaps
|
||||||
|
|
||||||
|
from .helpers import make_swap_trace, make_transfer_trace, make_unknown_trace
|
||||||
|
|
||||||
|
|
||||||
def test_swaps(
|
def test_swaps(
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from mev_inspect.schemas.traces import ClassifiedTrace
|
from mev_inspect.schemas.traces import ClassifiedTrace
|
||||||
from mev_inspect.traces import is_child_trace_address, get_child_traces
|
from mev_inspect.traces import get_child_traces, is_child_trace_address
|
||||||
|
|
||||||
from .helpers import make_many_unknown_traces
|
from .helpers import make_many_unknown_traces
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
|
|
||||||
from mev_inspect.schemas.blocks import Block
|
from mev_inspect.schemas.blocks import Block
|
||||||
|
Loading…
x
Reference in New Issue
Block a user