poseidon_client/
utilities.rs

1use crate::{Base58Value, PoseidonError, PoseidonResult};
2
3pub struct Utilities;
4
5impl Utilities {
6    pub fn base58_to_u32_array(value: Base58Value) -> PoseidonResult<[u8; 32]> {
7        let decoded_value = match bs58::decode(&value).into_vec() {
8            Ok(decoded) => decoded,
9            Err(_) => return Err(PoseidonError::InvalidBase58ForPublicKey),
10        };
11
12        let converted_value: [u8; 32] = match decoded_value.try_into() {
13            Ok(public) => public,
14            Err(_) => return Err(PoseidonError::ErrorConvertingToU832),
15        };
16
17        Ok(converted_value)
18    }
19
20    pub fn base58_to_binary(value: Base58Value) -> PoseidonResult<Vec<u8>> {
21        match bs58::decode(&value).into_vec() {
22            Ok(decoded) => Ok(decoded),
23            Err(_) => return Err(PoseidonError::InvalidBase58ForPublicKey),
24        }
25    }
26}