Skip to content
This repository was archived by the owner on Jun 1, 2026. It is now read-only.

Commit 7b12cd8

Browse files
committed
add validate_address for cardano
1 parent b947e9d commit 7b12cd8

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

‎crates/gem_cardano/src/lib.rs‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,8 @@ pub use rpc::client::CardanoClient;
1919

2020
#[cfg(feature = "signer")]
2121
pub mod signer;
22+
23+
#[cfg(any(feature = "rpc", feature = "signer"))]
24+
pub fn validate_address(address: &str) -> bool {
25+
address::ShelleyAddress::parse(address).is_ok()
26+
}

‎gemstone/src/address.rs‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ pub fn validate_address(address: &str, chain: Chain) -> bool {
4343
ChainType::Algorand => gem_algorand::validate_address(address),
4444
ChainType::Xrp => gem_xrp::validate_address(address),
4545
ChainType::Polkadot => gem_polkadot::validate_address(address),
46-
ChainType::Bitcoin | ChainType::Cardano => false,
46+
ChainType::Bitcoin => false,
47+
ChainType::Cardano => gem_cardano::validate_address(address),
4748
}
4849
}
4950

@@ -69,6 +70,14 @@ mod tests {
6970
assert!(!validate_address("rnBFvgZphmN39GWzUJeUitaP22Fr9be75J", Chain::Xrp));
7071
assert!(validate_address("15e6w4u9nH4Tb9HdJco2Zua4y5DpHb1hHXBKBGkUrLMTpuXo", Chain::Polkadot));
7172
assert!(!validate_address("15e6w4u9nH4Tb9HdJco2Zua4y5DpHb1hHXBKBGkUrLMTpuXj", Chain::Polkadot));
73+
assert!(validate_address(
74+
"addr1q8043m5heeaydnvtmmkyuhe6qv5havvhsf0d26q3jygsspxlyfpyk6yqkw0yhtyvtr0flekj84u64az82cufmqn65zdsylzk23",
75+
Chain::Cardano
76+
));
77+
assert!(!validate_address(
78+
"addr_test1qr4p6f6mm0q9kfyyd9u30umk9cc6gk0nxu25k5rsc4fp7ls7k0qqxslcwwj4gvn4yfmdyrfgwjt3ztuz4zpy4242u0m95r0n",
79+
Chain::Cardano
80+
));
7281
}
7382

7483
#[test]

0 commit comments

Comments
 (0)