原文在这里[1]
在这个教程中,我们将探索如何使用web3.js ENS(以太坊名称服务)包。以太坊名称服务(ENS)是建立在以太坊区块链上的去中心化域名系统。它作为一个分布式的、安全的、人类可读的命名系统,旨在将以太坊地址、智能合约和各种其他服务映射到容易理解的名称。
安装 web3.js
首先,需要在我们的项目中使用npm
安装v4版web3.js:
$ 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:4545');
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