Solidity
如何編寫眾籌合約以將所有未售出的代幣發送到特定地址?
從我對智能合約的理解來看,似乎沒有辦法設置特定的功能或動作在一定時間後自行觸發,是這樣嗎?
分配未售出的代幣以設置一個這樣做的函式,然後在 ICO 結束日期結束時手動呼叫該函式的唯一方法是嗎?
我找不到這種事情的任何實現,但它肯定是 ICO 中的常用方法嗎?OpenZeppelins “FinalizeAgent” 合約沒有任何幫助,因為它沒有解釋它是如何被觸發的。
謝謝你。
你有沒有想過使用
$$ mintable $$令牌(https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/token/ERC20/MintableToken.sol)?這樣就沒有未售出的代幣不必擔心燒毀😉 但是,如果你做不到。
那麼是的,你是正確的,智能合約不能觸發自己做某事,因為這需要某種循環。你能想像如果所有智能合約都在循環等待基於時間的事件發生,EVM 會有多糟糕?沒有布埃諾。不僅如此,智能合約無法支付 gas 費用(IIRC 正在開發中或者是 EIP)
直接回答:
function burnTokens() public onlyOwner onlyCrowdsaleOver { address(0).transfer(remainingTokens); }