从 App 访问部署在 Ropsten 网络上的智能合约

Access a smart contract that is deployed on the Ropsten network from an App

我写了几个智能合约,并部署在本地。我写了一个 js 文件,app.js,它使用了这些智能合约和 'does stuff',它在本地使用 Ganache 和 Metamask 运行得非常好。

接下来,我的同事将这些合约部署到 Ropsten 网络。

然后我假设我只需要在 Metamask 中切换网络,重新启动我的应用程序,然后 app.js 文件就会与我在 Ropsten 上部署的合约一起工作。不幸的是,这种情况并非如此。

错误:合同尚未部署到检测到的网络(network/artifact 不匹配)是浏览器控制台显示的内容。

我正在以这种方式访问​​合同:

$.getJSON('SomeCoin.json', function (data) {
            var CoinArtifact = data;
            App.contracts.Coin = TruffleContract(CoinArtifact);
            App.contracts.Coin.setProvider(App.web3Provider);
        });

这段代码有什么问题吗?

或者是我没有自己部署合同的问题,因为我的 Coin.json 文件不包含 Ropsten 的 'networks' 条目?

如何正确访问合同而不必自己重新部署它们?

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