예제 #1
0
 def recover(self, msghash, vrs=None, signature=None):
     hash_bytes = HexBytes(msghash)
     if vrs is not None:
         v, r, s = map(hexstr_if_str(to_int), vrs)
         v_standard = to_standard_v(v)
         signature_obj = self._keys.Signature(vrs=(v_standard, r, s))
     elif signature is not None:
         signature_bytes = HexBytes(signature)
         signature_bytes_standard = to_standard_signature_bytes(signature_bytes)
         signature_obj = self._keys.Signature(signature_bytes=signature_bytes_standard)
     else:
         raise TypeError("You must supply the vrs tuple or the signature bytes")
     pubkey = signature_obj.recover_public_key_from_msg_hash(hash_bytes)
     return pubkey.to_checksum_address()
예제 #2
0
파일: account.py 프로젝트: syngraph/web3.py
 def recover(self, msghash, vrs=None, signature=None):
     hash_bytes = HexBytes(msghash)
     if vrs is not None:
         v, r, s = map(hexstr_if_str(to_int), vrs)
         v_standard = to_standard_v(v)
         signature_obj = self._keys.Signature(vrs=(v_standard, r, s))
     elif signature is not None:
         signature_bytes = HexBytes(signature)
         signature_bytes_standard = to_standard_signature_bytes(signature_bytes)
         signature_obj = self._keys.Signature(signature_bytes=signature_bytes_standard)
     else:
         raise TypeError("You must supply the vrs tuple or the signature bytes")
     pubkey = signature_obj.recover_public_key_from_msg_hash(hash_bytes)
     return pubkey.to_checksum_address()