我正在运行一个专用网络,并希望使用truffle-contract与合同进行交互。不幸的是,它给了我这个错误:
Error: Contract has not been deployed to detected network (network/artifact mismatch)我正在使用truffle-contract@3.0.7,下面是我如何设置代码的方法:
const Web3 = require('web3-quorum');
const truffleContract = require('truffle-contract');
const web3 = new Web3(new Web3.providers.HttpProvider('http://127.0.0.1:22000'));
const ContractJSON = require('./build/contracts/Contract.json');
var MyContract = truffleContract({
abi: ContractJSON.abi,
unlinked_binary: ContractJSON.bin,
address: ContractJSON.address
});
MyContract.setProvider(web3.currentProvider);
MyContract.deployed().then(function(instance) {
return instance.myMethod(
web3.utils.toHex('31ad646cf39d485d8df7'),
Number(100),
Number(12345));
}).then(function(result) {
console.log(result);
}).catch(err => { console.log(err); });我还尝试了MyContract.setNetwork(10);,通过这种方式,10匹配net.version输出(geth控制台)或genesis.json中的chainId。不幸的是没有运气。
发布于 2019-01-22 07:16:04
将整个工件文件传递给truffleContract使其工作(类似于
...
const ContractJSON = require('./build/contracts/Contract.json');
var MyContract = truffleContract(ContractJSON)
...https://ethereum.stackexchange.com/questions/65865
复制相似问题