This commit is contained in:
lz_db
2025-11-16 12:31:03 +08:00
commit 0fab423a18
1451 changed files with 743213 additions and 0 deletions

View File

@@ -0,0 +1,107 @@
from __future__ import annotations
from typing import List, Literal, Optional, TypedDict, Union
STRUCT_ENTRY = "struct"
EVENT_ENTRY = "event"
FUNCTION_ENTRY = "function"
ENUM_ENTRY = "enum"
CONSTRUCTOR_ENTRY = "constructor"
L1_HANDLER_ENTRY = "l1_handler"
IMPL_ENTRY = "impl"
INTERFACE_ENTRY = "interface"
DATA_KIND = "data"
NESTED_KIND = "nested"
class TypeDict(TypedDict):
type: str
class TypedParameterDict(TypeDict):
name: str
class StructDict(TypedDict):
type: Literal["struct"]
name: str
members: List[TypedParameterDict]
class FunctionBaseDict(TypedDict):
name: str
inputs: List[TypedParameterDict]
outputs: List[TypeDict]
state_mutability: Optional[Literal["external", "view"]]
class FunctionDict(FunctionBaseDict):
type: Literal["function"]
class ConstructorDict(TypedDict):
type: Literal["constructor"]
name: str
inputs: List[TypedParameterDict]
class L1HandlerDict(FunctionBaseDict):
type: Literal["l1_handler"]
class EventBaseDict(TypedDict):
type: Literal["event"]
name: str
class EventStructMemberDict(TypedParameterDict):
kind: Literal["data"]
class EventStructDict(EventBaseDict):
kind: Literal["struct"]
members: List[EventStructMemberDict]
class EventEnumVariantDict(TypedParameterDict):
kind: Literal["nested"]
class EventEnumDict(EventBaseDict):
kind: Literal["enum"]
variants: List[EventEnumVariantDict]
EventDict = Union[EventStructDict, EventEnumDict]
class EnumDict(TypedDict):
type: Literal["enum"]
name: str
variants: List[TypedParameterDict]
class ImplDict(TypedDict):
type: Literal["impl"]
name: str
interface_name: str
class InterfaceDict(TypedDict):
type: Literal["interface"]
name: str
items: List[FunctionDict] # for now only functions can be defined here
AbiDictEntry = Union[
StructDict,
FunctionDict,
EventDict,
EnumDict,
ConstructorDict,
L1HandlerDict,
ImplDict,
InterfaceDict,
]
AbiDictList = List[AbiDictEntry]