whisky_provider/blockfrost/utils/
address_utils.rs

1use whisky_csl::csl::{Address, BaseAddress, JsError, RewardAddress};
2
3pub fn resolve_reward_address(bech32: &str) -> Result<String, JsError> {
4    let address = Address::from_bech32(bech32)?;
5
6    if let Some(base_address) = BaseAddress::from_address(&address) {
7        let stake_credential = BaseAddress::stake_cred(&base_address);
8
9        let reward_address = RewardAddress::new(address.network_id()?, &stake_credential)
10            .to_address()
11            .to_bech32(None);
12        Ok(reward_address?)
13    } else {
14        Err(JsError::from_str(
15            "An error occurred during resolveRewardAddress",
16        ))
17    }
18}