Solidity

如何使用轉賬成功從合約中提取乙太幣?

  • April 18, 2018

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
}

它不需要做任何事情,但如果需要,您可以在其中添加邏輯。

引用自:https://ethereum.stackexchange.com/questions/45640