Contract-Invocation

如何從智能合約中提取乙太幣?

  • December 30, 2018

我正在編寫一個接收乙太幣的智能合約。

如何將乙太幣從合約轉移到我的個人錢包

我可以像使用普通錢包一樣從合約中發送乙太幣嗎?我會告訴使用者向合約發送 0.01 ETH,但我不知道從智能合約中提取 ETH。你能幫我編輯程式碼嗎

抱歉,我不知道在網站上插入程式碼:

https://pastebin.com/wCCVaHN7

您不能直接將乙太幣從合約轉移到 EOA。合約與 EOA(外部擁有的賬戶)的不同之處在於 EOA 由私鑰管理,而合約由其程式碼管理。

所以如果你在合約中獲得乙太幣,你需要一種從合約中提取乙太幣的方法。

程式碼可能類似於:

function payout () public onlyOwner returns(bool res) {
   owner.transfer(address(this).balance);
   return true;
}

您的程式碼中已經有了這個函式。這應該有效:

   function withdraw() onlyOwner public {
   address myAddress = this;
   uint256 etherBalance = myAddress.balance;
   owner.transfer(etherBalance);
}

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