|
36 | 36 | InvokeV3, |
37 | 37 | TypeAccountTransaction, |
38 | 38 | ) |
39 | | -from starknet_py.net.models.typed_data import TypedData |
| 39 | +from starknet_py.net.models.typed_data import TypedData as TypedDataDict |
40 | 40 | from starknet_py.net.signer import BaseSigner |
41 | 41 | from starknet_py.net.signer.stark_curve_signer import KeyPair, StarkCurveSigner |
42 | 42 | from starknet_py.serialization.data_serializers.array_serializer import ArraySerializer |
|
49 | 49 | ) |
50 | 50 | from starknet_py.utils.iterable import ensure_iterable |
51 | 51 | from starknet_py.utils.sync import add_sync_methods |
52 | | -from starknet_py.utils.typed_data import TypedData as TypedDataDataclass |
| 52 | +from starknet_py.utils.typed_data import TypedData |
53 | 53 |
|
54 | 54 |
|
55 | 55 | @add_sync_methods |
@@ -584,13 +584,18 @@ async def execute_v3( |
584 | 584 | ) |
585 | 585 | return await self._client.send_transaction(execute_transaction) |
586 | 586 |
|
587 | | - def sign_message(self, typed_data: TypedData) -> List[int]: |
588 | | - typed_data_dataclass = TypedDataDataclass.from_dict(typed_data) |
| 587 | + def sign_message(self, typed_data: Union[TypedData, TypedDataDict]) -> List[int]: |
| 588 | + if isinstance(typed_data, TypedData): |
| 589 | + return self.signer.sign_message(typed_data, self.address) |
| 590 | + typed_data_dataclass = TypedData.from_dict(typed_data) |
589 | 591 | return self.signer.sign_message(typed_data_dataclass, self.address) |
590 | 592 |
|
591 | | - def verify_message(self, typed_data: TypedData, signature: List[int]) -> bool: |
592 | | - typed_data_dataclass = TypedDataDataclass.from_dict(typed_data) |
593 | | - message_hash = typed_data_dataclass.message_hash(account_address=self.address) |
| 593 | + def verify_message( |
| 594 | + self, typed_data: Union[TypedData, TypedDataDict], signature: List[int] |
| 595 | + ) -> bool: |
| 596 | + if not isinstance(typed_data, TypedData): |
| 597 | + typed_data = TypedData.from_dict(typed_data) |
| 598 | + message_hash = typed_data.message_hash(account_address=self.address) |
594 | 599 | return verify_message_signature(message_hash, signature, self.signer.public_key) |
595 | 600 |
|
596 | 601 | @staticmethod |
|
0 commit comments