ENS 在 2023 年 4 月进行了大量更新,本站 “教程” 和 “文档” 中的相关内容已经过时。 如需了解最新的使用说明或技术文档,请到 ENS 官方提供的 支持文档 进行查阅。

ENS 的使用

在开始与 ENS 交互之前,首先要引用 ENS 注册表,引用 ENS 注册表的方式取决于你使用了哪个 ENS 库。

下面的代码是基于 Javascript 的 API(ensjs、web3.js、ethjs-ens和ethers.js)的使用示例,这些代码适合运行在一个引入了 ethereum 对象的 DApp 浏览器中,比如安装了 metamask 的 Chrome。

采用 ensjs 时:

import ENS, { getEnsAddress } from '@ensdomains/ensjs'

const ens = new ENS({ provider, ensAddress: getEnsAddress('1') })

采用 web3.js 时:

var Web3 = require("web3")

var accounts = ethereum.enable();
var web3 = new Web3(ethereum);
var ens = web3.eth.ens;

采用 ethjs-ens 时:

const ENS = require('ethjs-ens');
// Currently requires both provider and
// either a network or registryAddress param
var accounts = ethereum.enable();
const ens = new ENS({ ethereum, network: '1' });

采用 ethers.js 时:

var ethers = require('ethers');
var provider = new ethers.providers.Web3Provider(ethereum);
// ENS functionality is provided directly on the core provider object.

采用 go-ens 时:

import (
ens "github.com/wealdtech/go-ens/v2"
ethereum "github.com/ethereum/go-ethereum"
)

// Can dial up a connection through either IPC or HTTP/HTTPS
client, err := ethereum.Dial("/home/ethereum/.ethereum/geth.ipc")
registry, err := ens.Registry(client)

采用 web3.py 时:

from ens.auto import ns

采用 web3j 时:

EnsResolver ens = new EnsResolver(web3j, 300 /* sync threshold, seconds */);

一些 web3 库(例如 ethers.js 、web3j 和 web3.py)已经内置了对名称解析的支持。在这些库中,只要可以使用地址的地方,都可以直接使用 ENS 名称,也就是说,除非你想手动解析名称或是进行其他特殊的 ENS 操作,否则你根本不需要直接与它们的 ENS API 交互。

如果你的平台没有可用的库,你可以使用 这里 的接口定义直接实例化 ENS 注册表合约。在 ENS 部署情况 页面中可以找到各个网络的 ENS 注册表地址。

转载本站内容请注明出处和链接。咨询 ENS 问题或加入 ENS 中文社区请联系 我们