Simplify type conversions function in python client

This commit is contained in:
Alexandre Paillier
2024-05-06 10:34:51 +02:00
parent 736303e5de
commit c68b4186ed
2 changed files with 11 additions and 23 deletions

View File

@@ -62,17 +62,11 @@ class CommandBuilder:
header.append(len(cdata))
return header + cdata
def _string_to_bytes(self, string: str) -> bytes:
data = bytearray()
for char in string:
data.append(ord(char))
return data
def eip712_send_struct_def_struct_name(self, name: str) -> bytes:
return self._serialize(InsType.EIP712_SEND_STRUCT_DEF,
P1Type.COMPLETE_SEND,
P2Type.STRUCT_NAME,
self._string_to_bytes(name))
name.encode())
def eip712_send_struct_def_struct_field(self,
field_type: EIP712FieldType,
@@ -88,7 +82,7 @@ class CommandBuilder:
data.append(typedesc)
if field_type == EIP712FieldType.CUSTOM:
data.append(len(type_name))
data += self._string_to_bytes(type_name)
data += type_name.encode()
if type_size is not None:
data.append(type_size)
if len(array_levels) > 0:
@@ -98,7 +92,7 @@ class CommandBuilder:
if level is not None:
data.append(level)
data.append(len(key_name))
data += self._string_to_bytes(key_name)
data += key_name.encode()
return self._serialize(InsType.EIP712_SEND_STRUCT_DEF,
P1Type.COMPLETE_SEND,
P2Type.STRUCT_FIELD,
@@ -108,7 +102,7 @@ class CommandBuilder:
return self._serialize(InsType.EIP712_SEND_STRUCT_IMPL,
P1Type.COMPLETE_SEND,
P2Type.STRUCT_NAME,
self._string_to_bytes(name))
name.encode())
def eip712_send_struct_impl_array(self, size: int) -> bytes:
data = bytearray()
@@ -162,7 +156,7 @@ class CommandBuilder:
def _eip712_filtering_send_name(self, name: str, sig: bytes) -> bytes:
data = bytearray()
data.append(len(name))
data += self._string_to_bytes(name)
data += name.encode()
data.append(len(sig))
data += sig
return data
@@ -170,7 +164,7 @@ class CommandBuilder:
def eip712_filtering_message_info(self, name: str, filters_count: int, sig: bytes) -> bytes:
data = bytearray()
data.append(len(name))
data += self._string_to_bytes(name)
data += name.encode()
data.append(filters_count)
data.append(len(sig))
data += sig
@@ -188,7 +182,7 @@ class CommandBuilder:
def set_external_plugin(self, plugin_name: str, contract_address: bytes, selector: bytes, sig: bytes) -> bytes:
data = bytearray()
data.append(len(plugin_name))
data += self._string_to_bytes(plugin_name)
data += plugin_name.encode()
data += contract_address
data += selector
data += sig

View File

@@ -165,10 +165,7 @@ def encode_bool(value: str, typesize: int) -> bytes:
def encode_string(value: str, typesize: int) -> bytes:
data = bytearray()
for char in value:
data.append(ord(char))
return data
return value.encode()
def encode_bytes_fix(value: str, typesize: int) -> bytes:
@@ -264,8 +261,7 @@ def send_filtering_message_info(display_name: str, filters_count: int):
to_sign += sig_ctx["caddr"]
to_sign += sig_ctx["schema_hash"]
to_sign.append(filters_count)
for char in display_name:
to_sign.append(ord(char))
to_sign += display_name.encode()
sig = keychain.sign_data(keychain.Key.CAL, to_sign)
with app_client.eip712_filtering_message_info(display_name, filters_count, sig):
@@ -284,10 +280,8 @@ def send_filtering_show_field(display_name):
to_sign += sig_ctx["chainid"]
to_sign += sig_ctx["caddr"]
to_sign += sig_ctx["schema_hash"]
for char in path_str:
to_sign.append(ord(char))
for char in display_name:
to_sign.append(ord(char))
to_sign += path_str.encode()
to_sign += display_name.encode()
sig = keychain.sign_data(keychain.Key.CAL, to_sign)
with app_client.eip712_filtering_show_field(display_name, sig):
pass