Will this work?
import base64
import hashlib
import ecdsa
def verify_message(address, signature, message):
try:
# Decode the signature
sig = base64.b64decode(signature)
# Obtain the public key from the address
pubkey = ecdsa.VerifyingKey.from_address(address)
# Hash the message
message_hash = hashlib.sha256(hashlib.sha256(message.encode()).digest()).digest()
# Verify the signature
pubkey.verify(sig, message_hash, hashlib.sha256)
return True
except ecdsa.keys.BadSignatureError:
return False
address = "bc1qsnpc4mdyxgvgqcy2a4d24cfcwsaymknxdm6nkv"
signature = "J2b2FQx5A4COCNO3UWbX21152qpPhXPn7zEe5ze/LWBtI0GJSy010rVWDDsXaRCGewUryrB7lyWOrLnbSe0J6iI="
message = "Today is 2 February, 2023 and this is SeeBiscuit of BTT staking this address here as mine."
result = verify_message(address, signature, message)
if result:
print("The message is verified")
else:
print("The message is not verified")