use crate::manifest::{ContractManifest, ManifestPermission};
pub(in super::super) fn extract_contract_name(
manifest: Option<&ContractManifest>,
sanitizer: fn(&str) -> String,
) -> String {
manifest
.and_then(|m| {
let trimmed = m.name.trim();
if trimmed.is_empty() {
None
} else {
Some(trimmed)
}
})
.map(sanitizer)
.filter(|name| !name.is_empty())
.unwrap_or_else(|| "NeoContract".to_string())
}
pub(in super::super) fn format_permission_entry(permission: &ManifestPermission) -> String {
format!(
"contract={} methods={}",
permission.contract.describe(),
permission.methods.describe()
)
}