Skip to content

Commit

Permalink
Refactor domain and message typehashes
Browse files Browse the repository at this point in the history
  • Loading branch information
Uxio0 committed Oct 27, 2022
1 parent 975e787 commit 15bc6ab
Showing 1 changed file with 14 additions and 8 deletions.
22 changes: 14 additions & 8 deletions gnosis/safe/safe.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,12 @@ class Safe:
GUARD_STORAGE_SLOT = (
0x4A204F620C8C5CCDCA3FD54D003BADD85BA500436A431F0CBDA4F558C93C34C8
)
DOMAIN_TYPEHASH = bytes.fromhex(
"47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a79469218"
)
SAFE_MESSAGE_TYPEHASH = bytes.fromhex(
"60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca"
)

def __init__(self, address: ChecksumAddress, ethereum_client: EthereumClient):
"""
Expand Down Expand Up @@ -509,13 +515,14 @@ def contract(self) -> Contract:

@cached_property
def domain_separator(self):
domain_typehash = bytes.fromhex(
"47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a79469218"
)
return Web3.keccak(
encode_abi(
["bytes32", "uint256", "address"],
[domain_typehash, self.ethereum_client.get_chain_id(), self.address],
[
self.DOMAIN_TYPEHASH,
self.ethereum_client.get_chain_id(),
self.address,
],
)
)

Expand Down Expand Up @@ -849,11 +856,10 @@ def get_message_hash(self, message: Union[str, Hash32]) -> Hash32:
message = message.encode()
message_hash = fast_keccak(message)

safe_message_typehash = bytes.fromhex(
"60b3cbf8b4a223d68d641b3b6ddf9a298e7f33710cf3d3a9d1146b5a6150fbca"
)
safe_message_hash = Web3.keccak(
encode_abi(["bytes32", "bytes32"], [safe_message_typehash, message_hash])
encode_abi(
["bytes32", "bytes32"], [self.SAFE_MESSAGE_TYPEHASH, message_hash]
)
)
return Web3.keccak(
encode_abi_packed(
Expand Down

0 comments on commit 15bc6ab

Please sign in to comment.