use crate::storage::ZERO_BYTES;
use soroban_sdk::{xdr::ToXdr, Address, Bytes, Env};
pub fn is_zero_address(env: &Env, address: Bytes) -> bool {
let zero_bytes = Bytes::from_array(env, &ZERO_BYTES);
zero_bytes == address
}
pub fn validate_address_bytes(env: &Env, signer: Address, public_key: Bytes) -> bool {
let pub_from_address = signer.to_xdr(env);
let pub_from_address_buffer = pub_from_address.to_buffer::<1024>();
let pub_from_address_slice = pub_from_address_buffer.as_slice();
if pub_from_address_slice.len() < 32 {
return false;
}
let start = pub_from_address_slice.len() - 32;
let raw_bytes_from_xdr = &pub_from_address_slice[start..pub_from_address_slice.len()];
let raw_bytes_from_address = Bytes::from_slice(env, raw_bytes_from_xdr);
raw_bytes_from_address == public_key
}