Han*_*oft 3 ethereum web3js remix
当我在 remix.ethereum.org 下单击创建时,我不明白智能合约实际上去了哪里。例如,如果我选择 Injected Web3,这应该将合约发布到 ropsten 测试网,对吗?但是我怎样才能访问合同呢?当我使用 metamask 时,它会在我使用 web3.js 时为我注入正确的提供程序,但是如果我不想使用注入的 web3,而是在 web3.js 中手动选择提供程序地址,我现在如何找到此合同?我可以通过这种方式访问智能合约吗?
编辑:我不知道我的问题应该有什么问题。我真的没有发现如何在没有注入 web3 的情况下在 ropsten 测试网络中连接到智能合约。通常你在 web3.js 中这样做:
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
} else {
// set the provider you want from Web3.providers
web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您没有注入的 web3,那么您可以使用 localhost。但是我无法连接到智能合约,因为它不知道我实际上在哪个网络中发布了智能合约,对吗?
Remix 有 3 种不同的环境选项可用于部署/测试 Solidity 合约:JavaScript VM、Injected Web3 和 Web3 Provider。可以在“运行”选项卡下的“环境”下拉菜单下更改此选项。(看起来你已经有了这部分……只是为了完整性而记录)。
因此,“您的智能合约的去向”取决于您设置的配置。选择 Injected Web3 并不意味着你的合约会被部署到 Ropsten。这取决于您在 MetaMask 插件中选择的网络。
当通过 Remix 使用 MetaMask 时,您需要使用插件来选择合适的账户并确认/拒绝交易。选择帐户有点令人困惑,因为 Remix 不会选择导入到 MetaMask 的所有帐户。帐户下拉列表将仅包含当前在 MetaMask 中选择的帐户。此外,如果您在 MetaMask 中更改帐户,则必须重新加载 Remix 才能在下拉列表中选择该帐户。它不会自动检测 MetaMask 中的帐户何时更改。
一旦正确选择了帐户(并假设您使用的是持有以太币的帐户),您现在可以部署您的合约。点击在 Remix 中创建,然后再次切换到插件。在那里,您应该看到等待批准的待处理交易。选择交易,然后点击提交。
交易清单:
批准/拒绝屏幕:
提交后,需要几秒钟的时间来挖掘交易。MetaMask 将在完成时显示。就是这样!要与合约进行交互,您可以通过类似于上述部署步骤的 Remix 启动您的交易。
| 归档时间: |
|
| 查看次数: |
1344 次 |
| 最近记录: |