通过应用访问在Ropsten网络上部署的智能合约

时间:2019-01-24 21:29:53

标签: deployment ethereum smartcontracts truffle

我写了一些智能合约,并将它们部署在本地。我已经编写了一个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的“网络”条目?

我如何正确访问合同而不必亲自重新部署?

1 个答案:

答案 0 :(得分:0)

您只需要使用您的同事部署的合同地址App.contracts.Coin.at(contract_address).then((instance) => { your logic }创建一个合同实例