Solidity
如何使 ERC20 代幣在特定日期之前不可轉讓?
我想創建一個在特定日期之前不可出售或轉讓的代幣(這樣只有初始買家可以購買代幣,但在 ICO 完成之前他們不應該出售代幣),最好的方法是什麼?
例如,如果我要實現類似的東西
if(msg.sender != owner){ require(now >= endOfICO); }
在傳遞函式內部這是可以接受的,甚至是可用的嗎?
非常感謝您提供的任何幫助或建議,甚至是其他討論的連結,因為我找不到有關如何在傳輸中合併基於時間的鎖定的資訊。
是的,你可以做到。但是你必須得到交易所的批准,如果交易所喜歡你的白皮書/想法。然後交易所會列出你的代幣。在主網上部署之前。最好諮詢一些交易所並告訴同樣的事情(可以購買代幣,但他們應該在 ICO 完成之前出售代幣)。我猜大多數代幣都在做同樣的事情。但最好從交易所獲得確認。
但我建議您使用修飾符進行條件檢查。因為它會給你更多的可讀性和可重用性。
我附上了一些相同的範常式式碼片段:
modifier isICOCompleted() { require(now >= endOfICO); _; } modifier isContractOwner() { require(msg.sender == owner); _; } function transfer(address _to, uint _amount) isICOCompleted public { //Implement your logic }