Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
web3-eth-ens
Advanced tools
The web3-eth-ens package is a part of the Web3.js library that provides functionality for interacting with the Ethereum Name Service (ENS). ENS is a distributed, open, and extensible naming system based on the Ethereum blockchain. It allows users to resolve human-readable names like 'myname.eth' into machine-readable identifiers such as Ethereum addresses, content hashes, and metadata.
Resolving ENS Names to Ethereum Addresses
This feature allows you to resolve a human-readable ENS name to an Ethereum address. The code sample demonstrates how to use the web3-eth-ens package to resolve 'myname.eth' to its corresponding Ethereum address.
const Web3 = require('web3');
const ENS = require('web3-eth-ens');
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
const ens = new ENS(web3);
async function resolveENSName(name) {
try {
const address = await ens.getAddress(name);
console.log(`Address for ${name}: ${address}`);
} catch (error) {
console.error(`Error resolving ENS name: ${error}`);
}
}
resolveENSName('myname.eth');
Reverse Resolution (Address to ENS Name)
This feature allows you to perform a reverse resolution, converting an Ethereum address back to its associated ENS name. The code sample demonstrates how to use the web3-eth-ens package to reverse resolve an Ethereum address to its ENS name.
const Web3 = require('web3');
const ENS = require('web3-eth-ens');
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
const ens = new ENS(web3);
async function reverseResolveAddress(address) {
try {
const name = await ens.getName(address);
console.log(`ENS name for ${address}: ${name}`);
} catch (error) {
console.error(`Error reverse resolving address: ${error}`);
}
}
reverseResolveAddress('0x1234567890abcdef1234567890abcdef12345678');
Setting ENS Records
This feature allows you to set ENS records, such as associating an ENS name with an Ethereum address. The code sample demonstrates how to use the web3-eth-ens package to set the address for 'myname.eth' to a specified Ethereum address.
const Web3 = require('web3');
const ENS = require('web3-eth-ens');
const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
const ens = new ENS(web3);
async function setENSRecord(name, address) {
try {
const accounts = await web3.eth.getAccounts();
await ens.setAddress(name, address, { from: accounts[0] });
console.log(`Set address for ${name} to ${address}`);
} catch (error) {
console.error(`Error setting ENS record: ${error}`);
}
}
setENSRecord('myname.eth', '0x1234567890abcdef1234567890abcdef12345678');
The eth-ens-namehash package provides utilities for working with ENS names, including namehashing and normalization. It is more focused on the technical aspects of ENS name processing, whereas web3-eth-ens provides higher-level functionality for interacting with the ENS system.
The ethers package is a complete Ethereum library and includes support for ENS. It provides functionalities for resolving ENS names, reverse resolution, and interacting with ENS records. Compared to web3-eth-ens, ethers is a more comprehensive library that covers a broader range of Ethereum-related functionalities.
This is a sub-package of web3.js.
This is the contract package to be used in the web3-eth
package.
Please read the documentation for more.
npm install web3-eth-ens
const eth = new Web3Eth(web3.currentProvider);
const ens = new EthEns(eth);
ens.getAddress('ethereum.eth').then(function(result) {
console.log(result);
});
All the TypeScript typings are placed in the types
folder.
FAQs
This package has ENS functions for interacting with Ethereum Name Service.
The npm package web3-eth-ens receives a total of 0 weekly downloads. As such, web3-eth-ens popularity was classified as not popular.
We found that web3-eth-ens demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.