- 以太坊教程
- 以太坊 - 主页
- 以太坊 - 简介
- 以太坊 - 智能合约
- 以太坊 - 合约编写的可靠性
- 以太坊 - 开发 MyContract
- 以太坊 - 编译合约
- 以太坊 - 部署合约
- 以太坊 - 与合约交互
- 以太坊 - Remix 的局限性
- 以太坊 - Ganache 区块链
- 以太坊 - Ganache 服务器设置
- 以太坊 - 快速演练
- 以太坊 - MyEtherWallet
- 以太坊 - 创建钱包
- 将钱包附加到 Ganache 区块链
- 以太坊 - 部署合约
- 与已部署的合约交互
- 以太坊 - 创建合约用户
- 以太坊 - 总结
- 以太坊有用资源
- 以太坊 - 快速指南
- 以太坊 - 有用的资源
- 以太坊 - 讨论
以太坊 - 与已部署的合约交互
现在,您已准备好与已部署的合约进行交互。返回 MyEtherWallet 桌面并单击“与合约交互”选项卡,如下面的屏幕截图所示 -
将之前复制的合约地址粘贴到“合约地址”字段中。您还需要将合约的“ABI / JSON Interface”粘贴到上面的屏幕上。
要获取ABI,请转到Remix窗口并单击ABI按钮,如下面的屏幕截图所示。
ABI / JSON 接口将被复制到剪贴板。将其粘贴到您最喜欢的编辑器中以检查生成的界面,如下所示 -
ABI / JSON Interface [ { "constant": false, "inputs": [ { "name": "newDeposit", "type": "uint256" } ], "name": "send", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "initialAmount", "type": "uint256" }, { "name": "initialValue", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "constant": true, "inputs": [], "name": "getAmount", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "getBalance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" } ]
将此 JSON 粘贴到MyEtherWallet界面后,您会注意到 JSON 界面下方的 ACCESS 按钮现已激活,如下所示 -
单击“访问”按钮以访问合同。
单击“访问”按钮后,合约地址和功能选择下拉列表将出现在屏幕上,就像在 Remix 编辑器中一样。这如下面的屏幕截图所示 -
您可以像 Remix 部署一样检查合约的各种功能。请注意,该联系人现在已部署在外部 Ganache 区块链上。检查getAmount函数;您将得到 Amount 值 0,并且 getBalance将显示余额 1000。
现在尝试寄一些钱。它将向您显示一个用于输入金额的文本编辑控件。当您编写合约时,会使用一些“gas”,并且会要求您在将交易写入区块链之前确认交易。交易将在短时间内执行,具体取决于您在 Ganache 服务器上设置的挖掘时间。之后,您可以重新检查合约的值和金额字段,以验证这些字段是否确实被修改。
您现在可以检查 Ganache 桌面以查看迄今为止已执行的事务。示例输出如下所示 -
到目前为止,您既是合约创建者又是合约执行者。这没有多大意义,因为您希望其他人使用您的合同。为此,我们将为 Ganache 区块链创建另一个客户端,并从新创建的 2 号账户向 1 号账户的合约创建者发送一些资金。