Contract-Development
無法使用 Remix 環境將 eth 發送到契約
我已按照solidity文件的步驟來執行備份功能的工作。我的程式碼如下。
pragma solidity ^0.4.0; contract Test { uint x; function () payable { } } contract Send { function sendtest() returns(bool ) { Test t = new Test(); bool res = t.send(100 ether); return res; } }
t.send() 的結果是假的,不知道有什麼問題。我是用合約實例代替合約地址嗎?
這對我來說是混音,你只需要添加應付功能。在“100 ether”標籤上,使用 wei 被認為是最佳實踐(或 msg.value)
pragma solidity ^0.4.0; contract Test { uint x; function () payable { } } contract Send { function sendtest() payable returns(bool ) { Test t = new Test(); require(msg.value>0); bool res = t.send(msg.value); return res; } }
如果我沒聽錯的話,你想向你的合約發送乙太幣,對吧?試試這個程式碼。
pragma solidity ^0.4.0; contract Test { function () payable {} } contract Send { function sendtest() payable(returns bool){ bool res = this.address.send(msg.value); return res } }
當您呼叫
sendTest
某個值時,該值將轉移到合約中。this
指合約,因此this.address
代表合約地址。該行將
this.address.send(msg.value)
msg.value 傳輸到合約,並且該行function () payable {}
允許合約接收乙太幣。