- 以太坊教程
- 以太坊 - 首页
- 以太坊 - 简介
- 以太坊 - 智能合约
- 以太坊 - 用于合约编写的Solidity
- 以太坊 - 开发MyContract
- 以太坊 - 编译合约
- 以太坊 - 部署合约
- 以太坊 - 与合约交互
- 以太坊 - Remix 的限制
- 以太坊 - 用于区块链的Ganache
- 以太坊 - Ganache 服务器设置
- 以太坊 - 快速浏览
- 以太坊 - MyEtherWallet
- 以太坊 - 创建钱包
- 将钱包连接到Ganache区块链
- 以太坊 - 部署合约
- 与已部署合约交互
- 以太坊 - 创建合约用户
- 以太坊 - 总结
- 以太坊有用资源
- 以太坊 - 快速指南
- 以太坊 - 有用资源
- 以太坊 - 讨论
以太坊 - 与已部署合约交互
现在,您已准备好与已部署的合约进行交互。返回到 MyEtherWallet 桌面并点击“与合约交互”选项卡,如下面的屏幕截图所示:
将您之前复制的合约地址粘贴到“合约地址”字段中。您还需要将合约的“ABI/JSON 接口”粘贴到以上屏幕上。
要获取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 接口下方的“访问”按钮现在已激活,如下所示:
点击“访问”按钮以访问合约。
点击“访问”按钮后,合约地址和函数选择下拉列表将显示在屏幕上,就像在 Remix 编辑器中一样。这在下面的屏幕截图中显示:
您可以像在 Remix 部署中一样检查合约的各种函数。请注意,该合约现在已部署到外部 Ganache 区块链上。检查getAmount函数;您将获得值为零的 Amount 值,而getBalance将显示 1000 的余额。
现在尝试发送一些钱。它将为您提供一个文本编辑控件以输入金额。当您编写合约时,会使用一些“gas”,并且系统会要求您在将其写入区块链之前确认交易。交易将在短时间内执行,具体取决于您在 Ganache 服务器上设置的挖矿时间。之后,您可以重新检查合约的值和金额字段以验证它们是否确实已修改。
您现在可以检查 Ganache 桌面以查看您迄今为止执行的交易。示例输出如下所示:
到目前为止,您既是合约创建者又是合约执行者。这没有多大意义,因为您希望其他人使用您的合约。为此,我们将为我们的 Ganache 区块链创建另一个客户端,并将一些资金从新创建的帐户 # 2 发送到帐户 # 1 的合约创建者。
广告