Ethereum 简明教程
Ethereum - Interacting with Deployed Contract
现在,您已准备好与已部署的合约交互。回到 MyEtherWallet 桌面,然后单击“与合约交互”标签,如下图所示 −
将您先前复制的合约地址粘贴到 “Contract Address” 字段中。您还需要将 “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 按钮现在处于激活状态,如下图所示 −
单击 Access 按钮以访问该合约。
单击 Access 按钮后,合约地址和功能选择下拉列表将出现在屏幕上,如 Remix 编辑器中所示。这在下面的截图中显示。
您可以检查合约的各种功能,就像在 Remix 部署中的情况一样。请注意,该联系方式现已部署在外部 Ganache 区块链上。检查 getAmount 函数;您将获得数量值为零,并且 getBalance 将显示余额为 1000。
现在尝试汇款。它会为您显示一个 textedit 控件,用于输入金额。编写合约时,会使用一些“gas”,并且在将其写入块链之前,系统将要求您确认该交易。该交易将在短时间内执行,具体取决于您在 Ganache 服务器上设置的挖矿时间。此后,您可以重新检查该合约的 value 和 amount 字段,以验证这些字段确实已修改。
您现在可以检查 Ganache 桌面以查看到目前为止您执行过的交易。一个示例输出如下所示 −
到目前为止,您既是合约创建者,又是合约执行者。这没有多大意义,因为您希望其他人使用您的合约。为此,我们会为我们的 Ganache 区块链创建一个新的客户端,并从新创建的帐户 2 向帐户 1 的合约创建者汇款。