Contract-Invocation
使用 eth 初始化後使用 this.balance 呼叫時,Ropsten 合約不發送任何內容
這是我的程式碼:
contract Oust { address kingdom = 0x344d65e66a9c4f8d7911bf7433b509d6daac9bc0; function Oust() public payable { } function take() public { kingdom.call.value(this.balance); }
我在 Ropsten 上用 1.5 eth 初始化它,但是當呼叫“take”時,交易是用 0 值進行的}
而不是 1.5:
https://ropsten.etherscan.io/address/0x31ee35d188c3f7ced8c4af85de55392e3946a705
這條線實際上並沒有做任何事情:
kingdom.call.value(this.balance);
它應該是:
kingdom.call.value(this.balance)();
或者更好:
kingdom.transfer(address(this).balance);
this.balance
不贊成使用address(this).balance
,並且transfer
優於 ,call
因為revert
如果傳輸失敗。