Ethers.js 给出“没有为 ENS 名称配置解析器或地址”

Dra*_*g29 7 yaml amazon-elastic-beanstalk ethereum smartcontracts ethers.js

我有以下代码:

const ethereumProvider = ethers.getDefaultProvider(ETHEREUM_RPC);

const contract = new ethers.Contract(
  CONTRACT_ADDRESS,
  abi,
  ethereumProvider,
);
Run Code Online (Sandbox Code Playgroud)

ethers包给我以下错误

错误:未为 ENS 名称配置解析器或地址(参数 =“名称”,值 =“734574864865375122901309634679882622222228500042”,代码 = INVALID_ARGUMENT,版本 =contracts/5.5.0)

我不知道这个数字是从哪里来的。我从来没有在任何地方以此作为论据。

此外,仅当部署在 AWS Beanstalk 上时才会出现此错误。

小智 9

我认为这个错误通常与作为参数传递的合约地址有关。

对我来说,我收到错误是因为我传递的是空字符串而不是合约地址。


Dra*_*g29 5

实际上,“奇怪的数字”是智能合约地址的十进制版本(应该是十六进制)。

十六进制到十进制的转换发生在我传递环境变量的 YAML 文件中,因为该值是数字而不是字符串。

option_settings:
  aws:elasticbeanstalk:application:environment:
    CONTRACT_ADDRESS=0x80ab79e5c36351Fb5DBe2b35E97f724EcA47AE4A
Run Code Online (Sandbox Code Playgroud)

所以我只需要用双引号将该值引起来:

option_settings:
  aws:elasticbeanstalk:application:environment:
    CONTRACT_ADDRESS="0x80ab79e5c36351Fb5DBe2b35E97f724EcA47AE4A"
Run Code Online (Sandbox Code Playgroud)