gpt4 book ai didi

ethereum - Remix Ethereum 合约去哪儿了?

转载 作者:行者123 更新时间:2023-12-04 01:38:44 29 4
gpt4 key购买 nike

当我点击 remix.ethereum.org 下的创建时,我不明白智能合约的实际去向。例如,如果我选择 Injected Web3,这应该会将合约发布到 ropsten 测试网上,对吧?但是我怎样才能访问契约(Contract)呢?当我使用 metamask 时,它会在我使用 web3.js 时向我注入(inject)正确的提供者,但是如果我不想使用注入(inject)的 web3,而是手动选择 web3.js 中的提供者地址,我现在如何找到这个契约(Contract)?我可以通过这种方式访问​​智能合约吗?

编辑:我不知道我的问题应该有什么问题。我真的找不到关于如何连接到智能合约的信息,例如在没有注入(inject) 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"));
}
}

但是如果您没有注入(inject) web3,那么您可以使用本地主机。但是我无法连接到智能合约,因为它不知道我实际上在哪个网络上发布了智能合约,对吧?

最佳答案

Remix 有 3 种不同的环境选项,可用于部署/测试 Solidity 合约:JavaScript VM、Injected Web3 和 Web3 Provider。可以在“运行”选项卡下的“环境”下拉菜单下更改此选项。 (看起来您已经掌握了这一部分……只是为了完整性而记录)。

  1. JavaScript VM:这是 Remix 自己的内部沙箱。它不连接到主网、测试网或任何专用网络。它是一个内存区 block 链,可用于简单测试和快速挖掘。
  2. Injected Web3:这是用于浏览器插件 (MetaMask) 的选项。在这里,您告诉 Remix 将区 block 链集成的所有控制权交给 MetaMask 插件。此时,MetaMask 控制您连接到哪个网络。在插件中,可以通过Infura的节点网络连接MainNet、Ropsten、Rinkeby等。在这种情况下,您不是在本地运行节点。 MetaMask 还有一个本地主机选项,您可以在其中运行自己的本地节点,MetaMask 会将所有交易发送给它(此本地网络可以是使用任何节点客户端的私有(private)网络,或者您可以使用测试区 block 链,如 TestRPC)。
  3. Web3 提供程序:这允许您在 Remix 中输入 URL 以连接到区 block 链。这里最常见的设置是运行本地节点并通过它的 IP/端口连接到它。这与使用 MetaMask 的 localhost 选项几乎相同,但您只是将插件从中间人中删除了。就像选项 #2 一样,您连接的网络取决于您如何配置本地节点(它可以是主节点、测试节点、专用节点等)。

因此,“您的智能合约的去向”取决于您设置的配置。选择 Injected Web3 并不自动意味着您的合约正在部署到 Ropsten。这取决于您在 MetaMask 插件中选择的网络。

通过 Remix 使用 MetaMask 时,您需要使用插件选择合适的账户并确认/拒绝交易。选择帐户有点困惑,因为 Remix 不会选择导入到 MetaMask 中的所有帐户。帐户下拉列表将只有当前在 MetaMask 中选择的帐户。此外,如果您更改 MetaMask 中的帐户,则必须重新加载 Remix 才能在下拉列表中选择该帐户。它不会自动检测帐户何时在 MetaMask 中更改。

正确选择帐户后(假设您使用的是持有以太币的帐户),您现在可以部署您的合约。点击 Create in Remix,然后再次切换到插件。在那里,您应该看到等待批准的待处理交易。选择交易,然后点击提交。

交易列表:

enter image description here

批准/拒绝屏幕:

enter image description here

提交后,交易将需要几秒钟才能被挖掘。 MetaMask 将在完成时显示。而已!要与合约交互,您可以通过类似于上述部署步骤的 Remix 启动您的交易。

关于ethereum - Remix Ethereum 合约去哪儿了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48368149/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com