📜  以太坊-与已部署合约进行交互

📅  最后修改于: 2020-10-31 13:18:59             🧑  作者: Mango


现在,您准备与已部署的合同进行交互。返回MyEtherWallet桌面,然后单击“与合同交互”选项卡,如以下屏幕截图所示-

与合同互动

将您先前复制的合同地址粘贴到“合同地址”字段中。您还需要在上面的屏幕上粘贴合同的“ ABI / JSON接口”

要获取ABI ,请转到“混音”窗口,然后单击ABI按钮,如下面的屏幕快照所示。

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值零,并且getBalance将显示余额1000。

现在尝试汇款。它将显示一个用于输入金额的textedit控件。当您写合约时,会使用一些“ gas”,并且要求您在将交易写到区块链之前确认交易。该交易将在短时间内执行,具体取决于您在Ganache服务器上设置的挖掘时间。之后,您可以重新检查合同的价值金额字段,以验证它们是否确实被修改。

现在,您可以检查Ganache桌面以查看到目前为止已执行的事务。输出示例如下所示-

样本输出

到目前为止,您既是合同的创建者又是合同的执行者。这没有多大意义,因为您希望其他人使用您的合同。为此,我们将为Ganache区块链创建另一个客户,并从新创建的帐户2向帐户1的合同创建者汇款。