Solidity

如何使 ERC20 代幣在特定日期之前不可轉讓?

  • February 27, 2018

我想創建一個在特定日期之前不可出售或轉讓的代幣(這樣只有初始買家可以購買代幣,但在 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
}

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