43537


プライベートネット上で開発しています  
独自トークンではなく、ethereumの残高を取得したいのですが、以下のコードでは残高が0となってしまいます  
gethで`eth.getBalance(eth.accounts[0])`を実行すると取得出来ることは確認出来ています

どう修正するべきでしょうか

[code]

    pragma solidity ^0.4.23;
    
    contract Balance {
        function balanceOf() public returns(uint256) {
            address(this).balance;
        }
    }
    
[/code]


CC BY-SA 3.0
2018-04-24T08:16:13.560
43519
2019-05-26T05:49:40.013
2019-05-26T05:49:40.013
3060
27721
question
ethereum solidity
スマートコントラクト でethereum自体を取得したい


thisはコントラクト自体を指します。

なので、以下のように意味合いが変わってきます。  
・address(this).balanceはコントラクトの残高を参照する  
・eth.getBalance(eth.accounts[0])はデフォルトアカウントの残高を参照する

ユーザーのアカウントの残高を参照したい場合は、引数に参照したいアカウントのアドレスを指定してそのアドレスから参照するか、  
msg.senderからトランザクション送信者のアドレスを参照するかを行えば良いと思います。


CC BY-SA 3.0
2018-04-25T00:35:56.043
43537
2018-04-25T01:21:27.163
2018-04-25T01:21:27.163
22827
22827
43519
answer