add
This commit is contained in:
107
ccxt/static_dependencies/starknet/abi/v2/shape.py
Normal file
107
ccxt/static_dependencies/starknet/abi/v2/shape.py
Normal 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]
|
||||
Reference in New Issue
Block a user