amaru_kernel/cardano/
address.rs1pub use pallas_addresses::Address;
16
17use crate::{AsShelley, HasOwnership, StakeCredential};
18
19pub fn is_locked_by_script(address: &Address) -> bool {
20 matches!(address.as_shelley().map(|addr| addr.owner()), Some(StakeCredential::ScriptHash(_)))
21}
22
23#[cfg(any(test, feature = "test-utils"))]
24pub use tests::*;
25
26#[cfg(any(test, feature = "test-utils"))]
27mod tests {
28 use proptest::prelude::*;
29
30 use crate::{Address, Network, ShelleyAddress, ShelleyDelegationPart, ShelleyPaymentPart, any_hash28};
31
32 pub fn any_shelley_address() -> impl Strategy<Value = Address> {
33 (any::<bool>(), any_hash28(), any_hash28()).prop_map(|(is_mainnet, payment_hash, delegation_hash)| {
34 let network = if is_mainnet { Network::Mainnet } else { Network::Testnet };
35
36 let payment = ShelleyPaymentPart::Key(payment_hash);
37 let delegation = ShelleyDelegationPart::Key(delegation_hash);
38
39 Address::Shelley(ShelleyAddress::new(network, payment, delegation))
40 })
41 }
42}