use crate::{
client::Result,
types::block::{
address::{Address, Ed25519Address},
output::{
unlock_condition::AddressUnlockCondition, BasicOutputBuilder, NativeTokens, Output, Rent, RentStructure,
},
},
};
pub fn minimum_storage_deposit_basic_output(
config: &RentStructure,
native_tokens: &Option<NativeTokens>,
token_supply: u64,
) -> Result<u64> {
let mut basic_output_builder = BasicOutputBuilder::new_with_amount(Output::AMOUNT_MIN);
if let Some(native_tokens) = native_tokens {
basic_output_builder = basic_output_builder.with_native_tokens(native_tokens.clone());
}
let basic_output = basic_output_builder
.add_unlock_condition(AddressUnlockCondition::new(Address::from(Ed25519Address::from(
[0; Ed25519Address::LENGTH],
))))
.finish_output(token_supply)?;
Ok(basic_output.rent_cost(config))
}