質問: プライベートネット上で開発しています 独自トークンではなく、ethereumの残高を取得したいのですが、以下のコードでは残高が0となってしまいます gethで`eth.getBalance(eth.accounts[0])`を実行すると取得出来ることは確認出来ています どう修正するべきでしょうか ``` pragma solidity ^0.4.23; contract Balance { function balanceOf() public returns(uint256) { address(this).balance; } } ```
回答: thisはコントラクト自体を指します。 なので、以下のように意味合いが変わってきます。 ・address(this).balanceはコントラクトの残高を参照する ・eth.getBalance(eth.accounts[0])はデフォルトアカウントの残高を参照する ユーザーのアカウントの残高を参照したい場合は、引数に参照したいアカウントのアドレスを指定してそのアドレスから参照するか、 msg.senderからトランザクション送信者のアドレスを参照するかを行えば良いと思います。