spark_sdk/wallet/utils/
proof_of_possession.rs

1pub(crate) fn proof_of_possession_message_hash_for_deposit_address(
2    user_pubkey: &[u8],
3    operator_pubkey: &[u8],
4    deposit_address: &[u8],
5) -> [u8; 32] {
6    let mut msg =
7        Vec::with_capacity(user_pubkey.len() + operator_pubkey.len() + deposit_address.len());
8    msg.extend_from_slice(user_pubkey);
9    msg.extend_from_slice(operator_pubkey);
10    msg.extend_from_slice(deposit_address);
11
12    let hash = sha256::digest(&msg);
13    let hash_slice = hex::decode(hash).unwrap();
14
15    hash_slice.try_into().unwrap()
16}