前言
以太坊域名服务(ENS)是以太坊网络上的去中心化域名解析系统,它将以太坊地址和易记名称相连。ENS 非常适合在以太坊应用中使用,它使得使用以太坊网络的用户可以用类似“example.eth”这样的名字来表示他们的地址,而不是使用字符串一样的以太坊地址。
此时,一个开发者如何在其以太坊应用中使用 ENS?npm 包 @ethereum-waffle/ens 可以帮助开发者在其以太坊应用中使用 ENS,并为其提供一套易于使用的 API。
本文将介绍如何使用 npm 包 @ethereum-waffle/ens,并为读者提供详细的指导意义和示例代码。
步骤
安装 @ethereum-waffle/ens
在终端中输入以下命令:
npm install @ethereum-waffle/ens
引入和初始化
在应用的 JavaScript 文件中引入以太坊 Web3.js 和 @ethereum-waffle/ens:
const Web3 = require('web3'); const { ENS } = require('@ethereum-waffle/ens');
然后,使用以下代码初始化 ENS:
const provider = new Web3.providers.HttpProvider("https://mainnet.infura.io/v3/YOUR_PROJECT_ID"); const web3 = new Web3(provider); const ens = new ENS({ provider, ensAddress: '0x314159265dd8dbb310642f98f50c066173c1259b' });
需要将上面的 YOUR_PROJECT_ID
改成您的 Infura 项目 ID。
使用 ENS
现在,您已经可以使用 ENS 来解析以太坊地址。以下是您可能要使用的一些功能:
resolveName()
在下面的示例中,我们将解析以太坊地址 “example.eth”:
const address = await ens.resolveName('example.eth'); console.log(address);
上面的代码将返回名为 example.eth 的地址。
getName()
反过来,如果您已经知道一个地址,并且想找到与之相关的 ENS 名称,您可以使用以下代码:
const name = await ens.getName(address); console.log(name);
owner()
如果您想要查找创建一个 ENS 域名的地址,您可以使用以下代码:
const owner = await ens.owner('example.eth'); console.log(owner);
setAddress()
在下面的示例中,我们将设置以太坊地址 “example.eth”:
await ens.setAddress('example.eth', MY_ADDRESS);
现在,名为 example.eth 的地址映射到 MY_ADDRESS
。
setPublicResolver()
在下面的示例中,我们将设置名为 “example.eth” 的 ENS 域名的公共解析器:
await ens.setPublicResolver('example.eth');
完整示例
完整的示例代码如下(将 <YOUR_INFURA_PROJECT_ID>
替换为您的 Infura 项目 ID):
-- -------------------- ---- ------- ----- ---- - ---------------- ----- - --- - - -------------------------------- ----- -------- - --- ------------------------------------------------------------------------------------- ----- ---- - --- --------------- ----- --- - --- ----- --------- ----------- -------------------------------------------- --- -- ---- ----- -------- ------------- - ----- ------- - ----- ------------------------------- --------------------- - -- ---- ----- -------- --------- - ----- ---- - ----- ------------------------ ------------------ - -- ----- ----- -------- ---------- - ----- ----- - ----- ------------------------- ------------------- - -- ---- ----- -------- ------------ - ----- ----------------------------- ------------ - -- ------- ----- -------- ------------------- - ----- ------------------------------------- -
结论
在本文中,我们介绍了如何使用 npm 包 @ethereum-waffle/ens,以便于您的以太坊应用中方便地使用 ENS。 我们向您展示了如何使用不同的 ENS 功能,包括解决名称、获取名称、获取所有者、设置地址和设置公共解析器。
我们希望,通过阅读本文,您获得了深入了解 ENS 的知识,并且对如何在自己的应用中使用 ENS 有了更多的理解。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f5207f08250f93ef89003d1