【发布时间】:2021-04-02 06:08:19
【问题描述】:
const Web3 = require('web3');
const web3 = new Web3('http://foodchain-node1.etherhost.org:22001');
const CONTRACT_ADDRESS = "0xA4fafbE0ea4823e262b4916EF93CC5A6306A5DBc";
async function eventQuery(){
'use strict';
var fs = require('fs');
var data = fs.readFileSync('food3.abi', 'utf-8');
//console.log(data);
//console.log(typeof JSON.parse(data).interface)
const CONTRACT_ABI = JSON.parse(data);
const contract = new web3.eth.Contract(CONTRACT_ABI, CONTRACT_ADDRESS);
const START_BLOCK = 7700000;
const END_BLOCK = 7701000;
contract.getPastEvents("FoodSection",
{
fromBlock: START_BLOCK,
toBlock: END_BLOCK
})
.then(events => console.log(events))
.catch((err) => console.error(err));
}
eventQuery();
我创建了这段代码,每次运行它都会返回错误 “错误:实例化合约对象时必须提供合约的json接口。” 我猜它与'food3.abi'文件的json解析有关,但我不知道如何纠正它。 有人可以告诉我我的错误是什么以及如何解决它吗?
【问题讨论】: