Ethereum-interacting-with-deployed-contract
イーサリアム-デプロイされた契約との対話
これで、デプロイした契約を操作する準備が整いました。 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インターフェースの下のACCESSボタンがアクティブになります。
[アクセス]ボタンをクリックして、契約にアクセスします。
- アクセス*ボタンをクリックすると、Remixエディターのように画面に契約アドレスと機能選択ドロップダウンが表示されます。 これは、以下のスクリーンショットに示されています-
Remixデプロイメントの場合のように、契約のさまざまな機能を確認できます。 連絡先は、外部のGanacheブロックチェーンに展開されることに注意してください。 getAmount 関数を確認してください。 Amountの値はゼロになり、 getBalance には1000の残高が表示されます。
お金を送ってみてください。 金額を入力するための textedit コントロールが表示されます。 契約書を作成するとき、いくつかの「ガス」が使用され、ブロックチェーンに書き込む前にトランザクションを確認するように求められます。 Ganacheサーバーで設定したマイニングタイミングに応じて、トランザクションは短時間で実行されます。 この後、契約の value および amount フィールドを再検査して、これらが実際に変更されていることを確認できます。
Ganacheデスクトップを調べて、これまでに実行したトランザクションを表示できます。 サンプル出力を以下に示します-
これまで、あなたは契約の作成者であり、契約の執行者でもありました。 他の人があなたの契約を使用することを期待するので、これはあまり意味がありません。 このために、Ganache Blockchainの別のクライアントを作成し、新しく作成したアカウント#2からアカウント#1の契約作成者にお金を送金します。