This commit is contained in:
parent
8f09c19292
commit
0ffe623d89
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +1,2 @@
|
||||||
|
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
*.egg-info/
|
||||||
|
|
|
@ -67,7 +67,7 @@ class TypeSpec:
|
||||||
discriminant):
|
discriminant):
|
||||||
type_spec = type_spec_read_from(reader)
|
type_spec = type_spec_read_from(reader)
|
||||||
return type_spec
|
return type_spec
|
||||||
assert False, "Unknown discriminant: 0x{:02x}".format(discriminant)
|
assert False, "Unknown TypeSpec discriminant: 0x{:02x}".format(discriminant)
|
||||||
|
|
||||||
|
|
||||||
@enforce_typing.enforce_types
|
@enforce_typing.enforce_types
|
||||||
|
@ -232,6 +232,20 @@ class MapTypeSpec(TypeSpec):
|
||||||
type_key: TypeSpec
|
type_key: TypeSpec
|
||||||
type_value: TypeSpec
|
type_value: TypeSpec
|
||||||
|
|
||||||
|
@enforce_typing.enforce_types
|
||||||
|
@dataclasses.dataclass(frozen=True, slots=True)
|
||||||
|
class AvlTreeTypeSpec(MapTypeSpec):
|
||||||
|
'''
|
||||||
|
Type spec for AVL-tree. Avl trees does not store data inline.
|
||||||
|
'''
|
||||||
|
DISCRIMINANT = 0x19
|
||||||
|
|
||||||
|
@enforce_typing.enforce_types
|
||||||
|
@dataclasses.dataclass(frozen=True, slots=True)
|
||||||
|
class InlineMapTypeSpec(MapTypeSpec):
|
||||||
|
'''
|
||||||
|
Type spec for a dynamically-sized map from some type to another type.
|
||||||
|
'''
|
||||||
DISCRIMINANT = 0x0f
|
DISCRIMINANT = 0x0f
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -376,7 +390,7 @@ TYPE_SPEC_SUBTYPE_READ_FROM_BY_DISCRIMINANT = {
|
||||||
v.value: simple_type_spec_read_from(v) for v in SimpleType
|
v.value: simple_type_spec_read_from(v) for v in SimpleType
|
||||||
} | {
|
} | {
|
||||||
t.DISCRIMINANT: t.read_from for t in
|
t.DISCRIMINANT: t.read_from for t in
|
||||||
[VecTypeSpec, MapTypeSpec, SetTypeSpec, ArrayTypeSpec, OptionTypeSpec]
|
[VecTypeSpec, InlineMapTypeSpec, AvlTreeTypeSpec, SetTypeSpec, ArrayTypeSpec, OptionTypeSpec]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -417,6 +431,7 @@ class FnKind(Enum):
|
||||||
ZK_USER_VAR_OPENED = 0x15
|
ZK_USER_VAR_OPENED = 0x15
|
||||||
ZK_ATTESTATION_COMPLETE = 0x16
|
ZK_ATTESTATION_COMPLETE = 0x16
|
||||||
ZK_SECRET_INPUT_WITH_EXPLICIT_TYPE = 0x17
|
ZK_SECRET_INPUT_WITH_EXPLICIT_TYPE = 0x17
|
||||||
|
ZK_EVM_EXTERNAL_EVENT = 0x18
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def read_from(reader: BinaryReader):
|
def read_from(reader: BinaryReader):
|
||||||
|
@ -427,7 +442,7 @@ class FnKind(Enum):
|
||||||
if found := [kind for kind in FnKind if kind.value == discriminant]:
|
if found := [kind for kind in FnKind if kind.value == discriminant]:
|
||||||
assert len(found) == 1
|
assert len(found) == 1
|
||||||
return found[0]
|
return found[0]
|
||||||
assert False, "Unknown discriminant: 0x{:02x}".format(discriminant)
|
assert False, "Unknown FnKind discriminant: 0x{:02x}".format(discriminant)
|
||||||
|
|
||||||
|
|
||||||
@enforce_typing.enforce_types
|
@enforce_typing.enforce_types
|
||||||
|
@ -675,6 +690,7 @@ class FileAbi:
|
||||||
version_client = Version.read_from(reader)
|
version_client = Version.read_from(reader)
|
||||||
|
|
||||||
assert version_client >= Version(5, 0, 0), version_client
|
assert version_client >= Version(5, 0, 0), version_client
|
||||||
|
assert version_client <= Version(5, 4, 0), version_client
|
||||||
|
|
||||||
contract = ContractAbi.read_from(reader)
|
contract = ContractAbi.read_from(reader)
|
||||||
return FileAbi(version_binder, version_client, contract)
|
return FileAbi(version_binder, version_client, contract)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user