From 5b9834519d58a1626242ae6e8ebd6fe2c662f100 Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 5 Sep 2025 11:36:49 +0200 Subject: [PATCH] bless --- wallet/src/wallet.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/wallet/src/wallet.rs b/wallet/src/wallet.rs index a33f2ec..e44887d 100644 --- a/wallet/src/wallet.rs +++ b/wallet/src/wallet.rs @@ -38,21 +38,34 @@ fn verify_message( } impl Wallet { + pub fn verifying_key_to_address(private_key: &SigningKey) -> Address { + let public_key = private_key.verifying_key(); + let public_key_bytes = public_key.to_encoded_point(false); + let public_key_bytes = public_key_bytes.as_bytes(); + + let hash = Keccak256::digest(&public_key_bytes[1..]); + + let mut address: Address; + address.copy_from_slice(&hash[12..]); + address + } + pub fn address_from_pubkey(key: VerifyingKey) -> Address { let addr = key.to_encoded_point(true); } fn new() -> Self { let key = SigningKey::random(&mut OsRng); - let pub_key = key.verifying_key(); + let address = Self::verifying_key_to_address(&key); Self { nonce: 0, - + balance: 0, + address, + private_key: key } } pub fn sign(&self, transaction: Tx) -> SignedTransaction { - } }