当我使用ENS名称时,可以'我解决不了



我正在尝试编写我的第一个etherjs代码,从viatalik.eth:获得eth平衡

const balance = await provider.getBalance('vitalik.eth');

但它失败了:

Error: ENS name not configured (operation="resolveName("vitalik.eth")", code=UNSUPPORTED_OPERATION, version=providers/5.7.1)
at Logger.makeError (d:sunflowerCodeetherjsnode_modules@ethersprojectloggerlibindex.js:238:21)
at Logger.throwError (d:sunflowerCodeetherjsnode_modules@ethersprojectloggerlibindex.js:247:20)
at FallbackProvider.<anonymous> (d:sunflowerCodeetherjsnode_modules@ethersprojectproviderslibbase-provider.js:1980:36)
at step (d:sunflowerCodeetherjsnode_modules@ethersprojectproviderslibbase-provider.js:48:23)
at Object.next (d:sunflowerCodeetherjsnode_modules@ethersprojectproviderslibbase-provider.js:29:53)
at fulfilled (d:sunflowerCodeetherjsnode_modules@ethersprojectproviderslibbase-provider.js:20:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
reason: 'ENS name not configured',
code: 'UNSUPPORTED_OPERATION',
operation: 'resolveName("vitalik.eth")'
}

Ethers能够连接到多个提供商并在它们之间切换。因此getDefaultProvider()函数只检索默认的一个。

您可以指定已连接到某个网络(例如主网(的提供程序RPC URL(请参阅下面的示例(。或者,您可以连接到钱包API(例如,前端应用程序中的MetaMask(,然后您的应用程序使用当前选择的钱包网络。如果您没有指定任何提供商或钱包API,那么默认情况下,ethers会尝试连接到http://127.0.0.1:8545的本地节点。

如果本地节点不可用或未连接到主网,则无法检索主网ENS记录。

因此,解决方案是连接到主网提供商(或连接到与主网提供商相连的钱包(,然后您可以查询ENS.

const ethers = require("ethers");
const provider = new ethers.providers.JsonRpcProvider("https://mainnet.infura.io/v3/<your_api_key>");
const balance = await provider.getBalance('vitalik.eth');
console.log(balance.toString()); // outputs `1183955717666208782618` at the moment

文档:https://docs.ethers.io/v5/getting-started/#getting-已启动--正在连接

相关内容

最新更新