seedelf_display/
version_control.rs1use reqwest::Client;
2use semver::Version;
3use serde_json::Value;
4
5pub async fn get_latest_version() -> Result<String, Box<dyn std::error::Error>> {
6 let url = "https://api.github.com/repos/logical-mechanism/Seedelf-Wallet/releases/latest";
7
8 let client = Client::new();
9 let response = client
10 .get(url)
11 .header("User-Agent", "seedelf") .send()
13 .await?
14 .error_for_status()?; let json: Value = response.json().await?;
17
18 let tag = json
19 .get("tag_name")
20 .and_then(|v| v.as_str())
21 .ok_or("tag_name not found")?;
22
23 Ok(tag.to_string())
24}
25
26pub fn compare_versions(local: &str, latest: &str) -> bool {
28 match (Version::parse(local), Version::parse(latest)) {
29 (Ok(local_version), Ok(latest_version)) => local_version >= latest_version,
30 _ => false, }
32}