whisky_provider/blockfrost/utils/
address_utils.rs1use 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}