1
0
helpix/test.py
2024-12-02 13:56:28 -03:00

50 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python3
from dotenv import load_dotenv
from os import getenv
from eth_account import Account
from eth_account.messages import encode_defunct
from sha3 import keccak_256
from eth_abi.packed import encode_packed
from eth_utils import to_bytes
load_dotenv()
def signer_check(message, signature):
message_hash = encode_defunct(message)
signer_address = Account.recover_message(message_hash, signature=signature)
return signer_address
signature = 1
def sign_message(message, private_key):
account = Account.from_key(private_key)
message_hash = encode_defunct(message)
signature = account.sign_message(message_hash)
return signature.signature.hex()
def generate_hash(pix_target, amount, pix_timestamp):
# Concatenate the bytes
concatenated_bytes = encode_packed(
['bytes32', 'uint80', 'uint256'],
[to_bytes(text=pix_target), amount, pix_timestamp])
# Return the keccak256 hash
return keccak_256(concatenated_bytes).digest()
# Example usage
pix_target = '1234'
amount = 10
pix_timestamp = 162
message = generate_hash(pix_target, amount, pix_timestamp)
print("Message:", message.hex())
signature = sign_message(message, getenv('PRIVATE_KEY'))
print("Signature:", signature)
signer = signer_check(message, signature)
print("Signer: ", signer)
account = Account.from_key(getenv('PRIVATE_KEY'))
print("Account:", account.address)