Make Classifier a union
This commit is contained in:
parent
d57a2d021d
commit
86ee26dd1a
@ -1,4 +1,4 @@
|
|||||||
from typing import Dict, List, Optional
|
from typing import Dict, List, Optional, Union
|
||||||
from typing_extensions import Literal
|
from typing_extensions import Literal
|
||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
@ -6,22 +6,21 @@ from pydantic import BaseModel
|
|||||||
from .classified_traces import Classification, Protocol
|
from .classified_traces import Classification, Protocol
|
||||||
|
|
||||||
|
|
||||||
class Classifier(BaseModel):
|
class TransferClassifier(BaseModel):
|
||||||
classification: Classification
|
|
||||||
|
|
||||||
|
|
||||||
class TransferClassifier(Classifier):
|
|
||||||
classification: Literal[Classification.transfer] = Classification.transfer
|
classification: Literal[Classification.transfer] = Classification.transfer
|
||||||
|
|
||||||
|
|
||||||
class SwapClassifier(Classifier):
|
class SwapClassifier(BaseModel):
|
||||||
classification: Literal[Classification.swap] = Classification.swap
|
classification: Literal[Classification.swap] = Classification.swap
|
||||||
|
|
||||||
|
|
||||||
class LiquidationClassifier(Classifier):
|
class LiquidationClassifier(BaseModel):
|
||||||
classification: Literal[Classification.liquidate] = Classification.liquidate
|
classification: Literal[Classification.liquidate] = Classification.liquidate
|
||||||
|
|
||||||
|
|
||||||
|
Classifier = Union[TransferClassifier, SwapClassifier, LiquidationClassifier]
|
||||||
|
|
||||||
|
|
||||||
class ClassifierSpec(BaseModel):
|
class ClassifierSpec(BaseModel):
|
||||||
abi_name: str
|
abi_name: str
|
||||||
protocol: Optional[Protocol] = None
|
protocol: Optional[Protocol] = None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user