Timestamp

一段時間後如何檢查契約狀態?

  • September 8, 2019

我正在寫一份契約,我需要檢查是否在 5 分鐘內沒有購買新的代幣,那麼銷售應該結束。我的意思是,假設使用者 A 購買了 100 個代幣,現在我想看看在接下來的 5 分鐘內是否沒有人購買代幣,那麼銷售將被關閉。

我期待氣體高效和自動的方式。

有人可以幫忙嗎?

也許是這樣的?

uint256 lastSaleTimestamp;

function isOpen() public view {
   // The sale is open if there haven't been any purchases or if the last
   // purchase was more than 5 minutes ago.
   return lastSaleTimestamp == 0 || now <= lastSaleTimestamp + 5 minutes;
}

function buy(...) external {
  require(isOpen(), "Sale is already closed.");
  lastSaleTimestamp = now;
  ...

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