From 195b59b0f9ff19fcafd33fdc063964abe07bb3e3 Mon Sep 17 00:00:00 2001 From: dipanshuhappy Date: Mon, 27 Oct 2025 21:54:33 +0530 Subject: [PATCH 1/9] feat(ens-examples): Added alloy-ens to cargo workspace --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index 4fd2c68..78d2280 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -113,6 +113,7 @@ alloy = { version = "1.0.41", features = [ "kzg" ] } alloy-chains = "0.2.0" +alloy-ens = { version = "1.0.41", features = ["contract", "provider"] } # async futures-util = "0.3" From 6aa83406e4fad6d73fa88c0e66fd1465bdad7e1e Mon Sep 17 00:00:00 2001 From: dipanshuhappy Date: Mon, 27 Oct 2025 21:56:23 +0530 Subject: [PATCH 2/9] feat(ens-examples): Add adress lookup and name resolution --- examples/ens/Cargo.toml | 21 +++++++++++++++++++++ examples/ens/examples/address_lookup.rs | 21 +++++++++++++++++++++ examples/ens/examples/name_resolution.rs | 19 +++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 examples/ens/Cargo.toml create mode 100644 examples/ens/examples/address_lookup.rs create mode 100644 examples/ens/examples/name_resolution.rs diff --git a/examples/ens/Cargo.toml b/examples/ens/Cargo.toml new file mode 100644 index 0000000..09c4327 --- /dev/null +++ b/examples/ens/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "examples-ens" +publish.workspace = true +version.workspace = true +edition.workspace = true +rust-version.workspace = true +authors.workspace = true +license.workspace = true +homepage.workspace = true +repository.workspace = true + +[lints] +workspace = true + +[dev-dependencies] +alloy.workspace = true + +eyre.workspace = true +futures-util.workspace = true +tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } +alloy-ens.workspace = true diff --git a/examples/ens/examples/address_lookup.rs b/examples/ens/examples/address_lookup.rs new file mode 100644 index 0000000..d02defa --- /dev/null +++ b/examples/ens/examples/address_lookup.rs @@ -0,0 +1,21 @@ +//! Example of looking up ENS names from Ethereum addresses. +use alloy::{primitives::address, providers::ProviderBuilder}; +use alloy_ens::ProviderEnsExt; +use eyre::Result; + +#[tokio::main] +async fn main() -> Result<()> { + // Create a provider. + let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?; + let provider = ProviderBuilder::new().connect_http(rpc_url); + + // Vitalik's Ethereum address. + let vitalik_address = address!("0xd8da6bf26964af9d7eed9e03e53415d37aa96045"); + + // Perform reverse ENS lookup to get the ENS name for the address. + let ens_name = provider.lookup_address(&vitalik_address).await?; + + println!("Address {vitalik_address} resolves to: {ens_name:?}"); + + Ok(()) +} diff --git a/examples/ens/examples/name_resolution.rs b/examples/ens/examples/name_resolution.rs new file mode 100644 index 0000000..858da8e --- /dev/null +++ b/examples/ens/examples/name_resolution.rs @@ -0,0 +1,19 @@ +//! Example of resolving ENS names to Ethereum addresses. + +use alloy::providers::ProviderBuilder; +use alloy_ens::ProviderEnsExt; +use eyre::Result; + +#[tokio::main] +async fn main() -> Result<()> { + // Create a provider. + let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?; + let provider = ProviderBuilder::new().connect_http(rpc_url); + + // Resolve the ENS name "vitalik.eth" to its Ethereum address. + let address = provider.resolve_name("vitalik.eth").await?; + + println!("vitalik.eth resolves to: {address:?}"); + + Ok(()) +} From 94c3ff6d687faa407b2f80c5f47ff07455db9bef Mon Sep 17 00:00:00 2001 From: dipanshuhappy Date: Sat, 1 Nov 2025 23:12:45 +0530 Subject: [PATCH 3/9] feat(ens): Upgrade alloy to 1.0.42 and enable ens feature --- Cargo.toml | 3 ++- examples/ens/examples/name_resolution.rs | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 78d2280..7d8b9a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -95,8 +95,9 @@ significant_drop_tightening = "allow" needless_return = "allow" [workspace.dependencies] -alloy = { version = "1.0.41", features = [ +alloy = { version = "1.0.42", features = [ "eips", + "ens", "full", "json-rpc", "node-bindings", diff --git a/examples/ens/examples/name_resolution.rs b/examples/ens/examples/name_resolution.rs index 858da8e..57c43d1 100644 --- a/examples/ens/examples/name_resolution.rs +++ b/examples/ens/examples/name_resolution.rs @@ -1,7 +1,6 @@ //! Example of resolving ENS names to Ethereum addresses. use alloy::providers::ProviderBuilder; -use alloy_ens::ProviderEnsExt; use eyre::Result; #[tokio::main] From c980b03b33b5daab8ac5b55f6e2ebe81b5a4a279 Mon Sep 17 00:00:00 2001 From: dipanshuhappy Date: Sat, 1 Nov 2025 23:15:23 +0530 Subject: [PATCH 4/9] chore(ens): bumped alloy-ens in cargo --- Cargo.toml | 3 +-- examples/ens/examples/name_resolution.rs | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 7d8b9a9..070bd6d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -114,8 +114,7 @@ alloy = { version = "1.0.42", features = [ "kzg" ] } alloy-chains = "0.2.0" -alloy-ens = { version = "1.0.41", features = ["contract", "provider"] } - +alloy-ens = { version = "1.0.42", features=["provider"] } # async futures-util = "0.3" tokio = "1.45" diff --git a/examples/ens/examples/name_resolution.rs b/examples/ens/examples/name_resolution.rs index 57c43d1..1e255cb 100644 --- a/examples/ens/examples/name_resolution.rs +++ b/examples/ens/examples/name_resolution.rs @@ -1,6 +1,7 @@ //! Example of resolving ENS names to Ethereum addresses. use alloy::providers::ProviderBuilder; +use alloy_ens::ProviderEnsExt; use eyre::Result; #[tokio::main] @@ -8,7 +9,6 @@ async fn main() -> Result<()> { // Create a provider. let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?; let provider = ProviderBuilder::new().connect_http(rpc_url); - // Resolve the ENS name "vitalik.eth" to its Ethereum address. let address = provider.resolve_name("vitalik.eth").await?; From 7d5dbb7021e984841660987a9ea3ad649a9cc10f Mon Sep 17 00:00:00 2001 From: zerosnacks <95942363+zerosnacks@users.noreply.github.com> Date: Mon, 3 Nov 2025 10:19:37 +0100 Subject: [PATCH 5/9] Update examples/ens/Cargo.toml --- examples/ens/Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/ens/Cargo.toml b/examples/ens/Cargo.toml index 09c4327..bd51e6d 100644 --- a/examples/ens/Cargo.toml +++ b/examples/ens/Cargo.toml @@ -18,4 +18,3 @@ alloy.workspace = true eyre.workspace = true futures-util.workspace = true tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } -alloy-ens.workspace = true From 35c8ab1c21f482641ef92b8ce6e0dd889e93fcc5 Mon Sep 17 00:00:00 2001 From: zerosnacks <95942363+zerosnacks@users.noreply.github.com> Date: Mon, 3 Nov 2025 10:25:21 +0100 Subject: [PATCH 6/9] Reorder imports in address_lookup.rs --- examples/ens/examples/address_lookup.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/ens/examples/address_lookup.rs b/examples/ens/examples/address_lookup.rs index d02defa..4f7d8fe 100644 --- a/examples/ens/examples/address_lookup.rs +++ b/examples/ens/examples/address_lookup.rs @@ -1,6 +1,5 @@ //! Example of looking up ENS names from Ethereum addresses. -use alloy::{primitives::address, providers::ProviderBuilder}; -use alloy_ens::ProviderEnsExt; +use alloy::{ens::ProviderEnsExt, primitives::address, providers::ProviderBuilder}; use eyre::Result; #[tokio::main] From ffaefc2d8f89b3c947e862fcf6898780044e96f5 Mon Sep 17 00:00:00 2001 From: zerosnacks <95942363+zerosnacks@users.noreply.github.com> Date: Mon, 3 Nov 2025 10:25:42 +0100 Subject: [PATCH 7/9] Update name_resolution.rs --- examples/ens/examples/name_resolution.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/ens/examples/name_resolution.rs b/examples/ens/examples/name_resolution.rs index 1e255cb..c6a026a 100644 --- a/examples/ens/examples/name_resolution.rs +++ b/examples/ens/examples/name_resolution.rs @@ -1,7 +1,6 @@ //! Example of resolving ENS names to Ethereum addresses. -use alloy::providers::ProviderBuilder; -use alloy_ens::ProviderEnsExt; +use alloy::{ens::ProviderEnsExt, providers::ProviderBuilder}; use eyre::Result; #[tokio::main] From 2d7ace2cc8328e53beb38951ffc301fb466b17c0 Mon Sep 17 00:00:00 2001 From: zerosnacks <95942363+zerosnacks@users.noreply.github.com> Date: Mon, 3 Nov 2025 10:26:03 +0100 Subject: [PATCH 8/9] Implement ENS name resolution for vitalik.eth Added functionality to resolve ENS name to Ethereum address. --- examples/ens/examples/name_resolution.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/ens/examples/name_resolution.rs b/examples/ens/examples/name_resolution.rs index c6a026a..85685d7 100644 --- a/examples/ens/examples/name_resolution.rs +++ b/examples/ens/examples/name_resolution.rs @@ -8,6 +8,7 @@ async fn main() -> Result<()> { // Create a provider. let rpc_url = "https://reth-ethereum.ithaca.xyz/rpc".parse()?; let provider = ProviderBuilder::new().connect_http(rpc_url); + // Resolve the ENS name "vitalik.eth" to its Ethereum address. let address = provider.resolve_name("vitalik.eth").await?; From d26ddc3b0de9903eb573a0be86b628799019c8ae Mon Sep 17 00:00:00 2001 From: dipanshuhappy Date: Thu, 6 Nov 2025 19:09:59 +0530 Subject: [PATCH 9/9] chore: bumped alloy to latest version --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 29b5f75..7d70cd0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -95,7 +95,7 @@ significant_drop_tightening = "allow" needless_return = "allow" [workspace.dependencies] -alloy = { version = "1.0.42", features = [ +alloy = { version = "1.1.0", features = [ "eips", "ens", "full",