开发者问题收集

const 和 json 的一些问题

2020-11-22
37

deployedTo 似乎无法识别,虽然没有错误。只是系统无法识别。deployedTo 应该 = 我的智能合约的部署地址。我厌倦了字符串化、解析,似乎无法弄清楚发生了什么。如果我用“00dsdsdsds22s323...”替换 deployTo,即直接使用地址字符串,一切正常。

import web3 from './web3';
import InsurancePoolFactory from  './build/InsurancePoolFactory.json';
require('dotenv').config();
const { deployedTo } = process.env;

const instance = new web3.eth.Contract(
  JSON.parse(InsurancePoolFactory.interface),
  deployedTo // the issue lies here
);

export default instance;

提前感谢所有提供帮助的人。

1个回答

首先要做的是测试 deployedTo 是否真正从环境中读取,如下所示:

import web3 from './web3';
import InsurancePoolFactory from  './build/InsurancePoolFactory.json';
require('dotenv').config();
const { deployedTo } = process.env;

console.log(deployedTo); // NEW

const instance = new web3.eth.Contract(
  JSON.parse(InsurancePoolFactory.interface),
  deployedTo // the issue lies here
);

export default instance;

如果不是“00dsdsdsds22s323...”,而是 undefined ,则说明问题出在何处。

如果确实未定义,请检查 .env 文件,有时人们会在那里犯一些愚蠢的拼写错误。

IvanD
2020-11-22