ENS的使用
在开始与ENS交互之前,首先要引用ENS注册表,引用ENS注册表的方式取决于你使用了哪个ENS库。
下面的代码是基于Javascript的API(ethereum-ens、web3.js、ethjs-ens和ethers.js)的使用示例,这些代码适合运行在一个引入了ethereum
对象的DApp浏览器中,比如安装了metamask的Chrome。
ethereum-ens
var ENS = require('ethereum-ens');
var accounts = ethereum.enable();
var ens = new ENS(ethereum);
1
2
3
4
2
3
4
web3.js
var Web3 = require("web3")
var accounts = ethereum.enable();
var web3 = new Web3(ethereum);
var ens = web3.eth.ens;
1
2
3
4
5
2
3
4
5
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' });
1
2
3
4
5
2
3
4
5
ethers.js
var ethers = require('ethers');
var provider = new ethers.providers.Web3Provider(ethereum);
// ENS functionality is provided directly on the core provider object.
1
2
3
2
3
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)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
web3.py
from ens.auto import ns
1
web3j
EnsResolver ens = new EnsResolver(web3j, 300 /* sync threshold, seconds */);
1
一些web3库(ethers.js、web3j和web3.py )已经内置了对域名解析的支持。在这些库中,只要可以使用地址的地方,都可以直接使用ENS域名,也就是说,除非你想手动解析域名或是进行其他特殊的ENS操作,否则你根本不需要直接与它们的ENS API交互。
如果你的平台没有可用的库,你可以使用这里的接口定义直接实例化ENS注册表合约。在ENS部署情况页面中可以找到各个网络的ENS注册表地址。