我写了一些智能合约,并将它们部署在本地。我已经编写了一个js文件app.js,该文件使用了这些智能合约和“东西”,并且在Ganache和Metamask上在本地都能很好地工作。
接下来,我的同事将这些合同部署到Ropsten网络中。
然后我以为我只需要在Metamask中切换网络,重新启动我的应用程序,然后app.js文件就可以处理我在Ropsten上部署的合同。不幸的是,这种情况并非如此。
错误:浏览器的控制台显示合同未部署到检测到的网络(网络/工件不匹配)。
我通过这种方式访问合同:
$.getJSON('SomeCoin.json', function (data) {
var CoinArtifact = data;
App.contracts.Coin = TruffleContract(CoinArtifact);
App.contracts.Coin.setProvider(App.web3Provider);
});
此代码有什么问题吗?
还是我自己没有部署合同的问题,因为我的Coin.json文件没有包含Ropsten的“网络”条目?
我如何正确访问合同而不必亲自重新部署?
答案 0 :(得分:0)
您只需要使用您的同事部署的合同地址App.contracts.Coin.at(contract_address).then((instance) => { your logic }
创建一个合同实例