Solidity
如何使用轉賬成功從合約中提取乙太幣?
Solidity 新手…
我正在研究如何通過在函式中設置參數來從智能合約中**提取乙太幣。**根據函式收到的值,一定數量的乙太幣被發送到合約錢包地址。我的目標是使用 address.transfer(amount in wei) 在這裡討論…
http://solidity.readthedocs.io/en/v0.4.21/units-and-global-variables.html?highlight=.transfer
問題是我無法從合約地址執行乙太幣轉移。我將 Remix 與本地區塊鏈結合使用,並且我已確認我的所有帳戶都已解鎖,因此我應該能夠從該合約發送乙太幣。
以下是我正在研究的來源……
這個想法是,如果提供 1 - 3 的值,那麼 24、12 或 6 個乙太幣將被發送到變數 remMem 中保存的地址。我設置 x = y 以驗證該函式是否接收到該值。
pragma solidity ^0.4.18; contract ETHTEST { uint256 public y; address public remMem = 0x4152B21f407Ba23c6118c1641821EC4250DBf3B1; function transferETH(uint256 x) public payable returns(uint256){ // y = x; // return; if (x == 1){ y = x; remMem.transfer(24000000000000000000); return; } if (x == 2){ y = x; remMem.transfer(12000000000000000000); return; } if (x == 3){ y = x; remMem.transfer(6000000000000000000); return; } if (x >=4 || x < 0){ //works revert(); return; } } }
我將如何成功編碼 Ether 的轉移?有用的指導將不勝感激。
您需要添加支付功能以接受 Ether
function () public payable { // this function enables the contract to receive funds }
它不需要做任何事情,但如果需要,您可以在其中添加邏輯。