Browser-Solidity(Remix)でEthereumを送金してみる
どうも、ぺろりんです。
今回は、オンライン上で使用するBrowser-Solidity(Remix)でEthereumを送金してみます。
やり方は、いつも通り「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」を参照しながらやってみます。
ただしすこし教科書と環境が違うので、そのへんは探り探りです。
環境に関してはこちらとこちらの記事をご覧ください。
Browser-Solidity(Remix)でのEthereum送金
送金確認コントラクトのデプロイ
まずは教科書にあるコードをそのまま使わせてもらい、コンパイルしてみます。

「function ()」の後ろに「public」がないと警告が出るので、ここで使っている教科書をお使いの方はご注意ください。
これは「Solidity環境の準備で手こずっている話」の内容を参照のこと。
ただ、実はこれでも以下の警告が出ます。。
この警告のリンクを見に行くと以下の内容が表示されるのですが、このままやっても動きそうなので、ひとまずここでは無視して進むことにします。
コンパイルしたのでデプロイしたいのですが、その前にアカウントのアドレスを確認してみましょう。
Run>Accountの横にあるアイコンをクリックしてアドレスをコピーします。
内容をメモ帳に出したのが次の画像です。

さて、デプロイしてみます。


先ほどコピーしたアカウントのアドレスとデプロイ後の情報を比べてみると、fromのところに先ほどのアドレスがあります。

Account部分に戻ってみると、先ほどは「100 ether」だった部分の値が「100」から減っていることがわかります。

まだ送金するETHの指定はしていなかったので、デプロイ時にgasを支払っている分が引かれてるってことかな……?
ためしに 1[wei] を送金してみる
次はRun>Valueに「1 wei」を指定して、右下の「RecvEther」を開いて「(fallback)」を押してみます。



この時点で「recvEther」と「sender」を押すとこんな内容になります。
「recvEther」の値の1ってのを見ると、「recvEther」にETHが送られた感があります。



また、Run>Accountのところの値もさっきより減っています。

別アカウントから 1[wei] を送金してみる
今度はRun>Accountでアカウントを変更して、別のアカウントから 1[wei] 送金してみましょう。



ちゃんとアカウントからもETHが減っています。

……ただし計算が合ってるのかがわからないw
たぶん送金で指定した 1[wei] と、「transaction cost」とか「execution cost」あたりが消費されてそうな気がするんですが、gas priceがわからなくて計算できない。。(「gas price」についてはこちらを参照)
右下の「recvEther」も見てみましょう。今度は「2」になっています。
教科書にも書いている通り、ここは[wei]単位で出るようです。



「recvEther」のところの「0:」は、下の「sender」にある「address」と紐づいているのかな……??
一応確認してみると、初めに選んでいたアカウントのETHは特に減っていませんでした。

こんな感じで、とりあえず送金はうまくできました。
まとめ
今回は、送金確認用のコントラクトをデプロイして、(たぶんそのコントラクトに向けて?)ETHを送金してみました。
アカウントを変更して送金することもやってみて、ちゃんと選んだアカウントから送金着にETHが減っているところも確認できました。
徐々にではありますが、一応なりともBrowser-Solidity(Remix)の基本的な動きが見れてきた気がします。
ではまた次回へ。
今回は、オンライン上で使用するBrowser-Solidity(Remix)でEthereumを送金してみます。
やり方は、いつも通り「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」を参照しながらやってみます。
ただしすこし教科書と環境が違うので、そのへんは探り探りです。
環境に関してはこちらとこちらの記事をご覧ください。
Browser-Solidity(Remix)でのEthereum送金
送金確認コントラクトのデプロイ
まずは教科書にあるコードをそのまま使わせてもらい、コンパイルしてみます。

「function ()」の後ろに「public」がないと警告が出るので、ここで使っている教科書をお使いの方はご注意ください。
これは「Solidity環境の準備で手こずっている話」の内容を参照のこと。
ただ、実はこれでも以下の警告が出ます。。
Static Analysis raised 1 warning(s) that requires your attention. Click here to show the warning(s).
この警告のリンクを見に行くと以下の内容が表示されるのですが、このままやっても動きそうなので、ひとまずここでは無視して進むことにします。
Fallback function of contract RecvEther requires too much gas (40541). If the fallback function requires more than 2300 gas, the contract cannot receive Ether.
コンパイルしたのでデプロイしたいのですが、その前にアカウントのアドレスを確認してみましょう。
Run>Accountの横にあるアイコンをクリックしてアドレスをコピーします。
内容をメモ帳に出したのが次の画像です。

さて、デプロイしてみます。


先ほどコピーしたアカウントのアドレスとデプロイ後の情報を比べてみると、fromのところに先ほどのアドレスがあります。

Account部分に戻ってみると、先ほどは「100 ether」だった部分の値が「100」から減っていることがわかります。

まだ送金するETHの指定はしていなかったので、デプロイ時にgasを支払っている分が引かれてるってことかな……?
ためしに 1[wei] を送金してみる
次はRun>Valueに「1 wei」を指定して、右下の「RecvEther」を開いて「(fallback)」を押してみます。



この時点で「recvEther」と「sender」を押すとこんな内容になります。
「recvEther」の値の1ってのを見ると、「recvEther」にETHが送られた感があります。



また、Run>Accountのところの値もさっきより減っています。

別アカウントから 1[wei] を送金してみる
今度はRun>Accountでアカウントを変更して、別のアカウントから 1[wei] 送金してみましょう。



ちゃんとアカウントからもETHが減っています。

……ただし計算が合ってるのかがわからないw
たぶん送金で指定した 1[wei] と、「transaction cost」とか「execution cost」あたりが消費されてそうな気がするんですが、gas priceがわからなくて計算できない。。(「gas price」についてはこちらを参照)
右下の「recvEther」も見てみましょう。今度は「2」になっています。
教科書にも書いている通り、ここは[wei]単位で出るようです。



「recvEther」のところの「0:」は、下の「sender」にある「address」と紐づいているのかな……??
一応確認してみると、初めに選んでいたアカウントのETHは特に減っていませんでした。

こんな感じで、とりあえず送金はうまくできました。
まとめ
今回は、送金確認用のコントラクトをデプロイして、(たぶんそのコントラクトに向けて?)ETHを送金してみました。
アカウントを変更して送金することもやってみて、ちゃんと選んだアカウントから送金着にETHが減っているところも確認できました。
徐々にではありますが、一応なりともBrowser-Solidity(Remix)の基本的な動きが見れてきた気がします。
ではまた次回へ。