use super::types::{DomainLookup, EnsDomain, ResolvedDomain, ReverseResolution};
use crate::client::Client;
use crate::error::Result;
pub struct ResolveApi<'a> {
client: &'a Client,
}
impl<'a> ResolveApi<'a> {
#[must_use]
pub fn new(client: &'a Client) -> Self {
Self { client }
}
pub async fn resolve_domain(&self, domain: &str) -> Result<ResolvedDomain> {
let path = format!("/resolve/{domain}");
self.client.get(&path).await
}
pub async fn reverse_resolve(&self, address: &str) -> Result<ReverseResolution> {
let path = format!("/resolve/{address}/reverse");
self.client.get(&path).await
}
pub async fn get_address_domains(&self, address: &str) -> Result<DomainLookup> {
let path = format!("/resolve/{address}/domain");
self.client.get(&path).await
}
pub async fn get_ens_domain(&self, domain: &str) -> Result<EnsDomain> {
let path = format!("/resolve/ens/{domain}");
self.client.get(&path).await
}
}