mev-inspect-py/mev_inspect/schemas/classifier_specs.py

18 lines
534 B
Python

from typing import Callable, Dict, List, Optional
from pydantic import BaseModel
from .classified_traces import Classification, DecodedCallTrace, Protocol
from .transfers import ERC20Transfer
TransferClassifier = Callable[[DecodedCallTrace], Optional[ERC20Transfer]]
class ClassifierSpec(BaseModel):
abi_name: str
protocol: Optional[Protocol] = None
valid_contract_addresses: Optional[List[str]] = None
classifications: Dict[str, Classification] = {}
transfer_classifiers: Dict[str, TransferClassifier] = {}