web3.js ENS 包

原文在这里[1]

在这个教程中,我们将探索如何使用web3.js ENS(以太坊名称服务)包。以太坊名称服务(ENS)是建立在以太坊区块链上的去中心化域名系统。它作为一个分布式的、安全的、人类可读的命名系统,旨在将以太坊地址、智能合约和各种其他服务映射到容易理解的名称。

安装 web3.js

首先,需要在我们的项目中使用npm安装v4版web3.js:

代码语言:javascript
复制
$ npm i web3

配置 web3 和 ENS

现在,我们在TypeScript文件中配置web3.js和ENS:

代码语言:javascript
复制
import Web3 from 'web3';

// Assuming you have a provider, replace 'http://localhost:8545' with your Web3 provider
const web3 = new Web3('http://localhost:8545');

// You can use ENS with web3 object:
const ens = await web3.eth.ens.getAddress('alice.eth');

安装web3.js ENS

要直接使用ENS包,首先需要安装ENS包并导入:

代码语言:javascript
复制
$ npm install web3-eth-ens
代码语言:javascript
复制
import { ENS } from 'web3-eth-ens';

const ens = new ENS(undefined,'https://127.0.0.1');

console.log(await ens.getAddress('vitalik.eth'));

ENS 示例

getAddress

getAddress函数检索与给定ENS名称关联的以太坊地址。它通过查询提供的ENS名称的ENS解析器来解析地址,并返回解析的以太坊地址。

代码语言:javascript
复制
const address = await web3.eth.ens.getAddress('ethereum.eth');
console.log(address);

getContenthash

getContenthash函数检索与提供的ENS名称关联的内容哈希。它与ENS解析器通信以获取内容哈希值,并返回解析的内容哈希。

代码语言:javascript
复制
const hash = await web3.eth.ens.getContenthash('ethereum.eth');
console.log(hash);

getOwner

getOwner函数获取指定ENS名称的所有者。它查询ENS注册表以获取ENS名称的所有者,并返回所有者的以太坊地址。

代码语言:javascript
复制
const owner = await web3.eth.ens.getOwner('ethereum.eth');
console.log(owner);

getPubKey

getPubKey函数使用ENS解析器获取与提供的ENS名称关联的公钥x和y。

代码语言:javascript
复制
const key = await web3.eth.ens.getPubkey('xyz.eth');
console.log(key);

getResplver

getResolver函数检索给定ENS名称的解析器。

代码语言:javascript
复制
const resolver = await web3.eth.ens.getResolver('xyz.eth');
console.log(resolver.options.address);

getTTL

getTTL函数检索与指定ENS名称关联的生存时间(TTL)值。

代码语言:javascript
复制
const result = await web3.eth.ens.recordExists('ethereum.eth');
console.log(result);

recordExists

recordExists函数检查是否存在给定ENS名称的记录。

代码语言:javascript
复制
const result = await web3.eth.ens.recordExists('ethereum.eth');
console.log(result);

结论

在这个教程中,我们介绍了如何使用web3.js ENS包与以太坊名称服务进行交互。现在,您应该能够使用web3.js版本4执行各种ENS相关的操作。欲了解更多详情,请访问web3.js ENS文档[2]部分。

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)[3]进行许可,使用时请注明出处。
Author: mengbin[4]
blog: mengbin[5]
Github: mengbin92[6]
cnblogs: 恋水无意[7]
腾讯云开发者社区:孟斯特[8]

References

[1] 这里: https://docs.web3js.org/guides/ens/
[2] 文档: https://docs.web3js.org/libdocs/ENS
[3] 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh
[4] mengbin: mengbin1992@outlook.com
[5] mengbin: https://mengbin.top
[6] mengbin92: https://mengbin92.github.io/
[7] 恋水无意: https://www.cnblogs.com/lianshuiwuyi/
[8] 孟斯特: https://cloud.tencent.com/developer/user/6649301