def validate_transaction_signature(transaction): signature = encode_signature( v=transaction.v, r=transaction.r, s=transaction.s, ) unsigned_transaction = transaction.as_unsigned_transaction() msg = rlp.encode(unsigned_transaction) try: public_key = ecdsa_recover(msg, signature) except BadSignature as e: raise ValidationError("Bad Signature: {0}".format(str(e))) if not ecdsa_verify(msg, signature, public_key): raise ValidationError("Invalid Signature")
def test_signing_and_verifying_with_public_key(): signature = ecdsa_sign(MSG, PRIVATE_KEY) assert ecdsa_verify(MSG, signature, PUBLIC_KEY)
def ecdsa_verify(self, msg, signature, public_key): return ecdsa_verify(msg, signature, public_key)