Solidity

Start 和 endblock 函式 Reverted Transactions

  • August 26, 2017

我正在嘗試創建一個功能,該功能允許使用者僅在特定塊號之間購買代幣,從而恢復所有其他嘗試在這些塊號之後或之前購買的交易,基本上是一個打開和關閉購買的計時器,我遇到了問題功能不起作用,而不是讓我在區塊之間購買,合約不會讓我在任何時候購買交易總是失敗,(被還原)乙太永遠不會被轉移,甚至永遠不會離開我的錢包。在 Ropsten 測試網上進行測試。

乙太坊中的時間戳是一個秒時間戳,即自紀元(01/01/1970)以來經過的秒數。您指定的時間戳,即

uint public startBlock = 1516220;
uint public endBlock = 1516240;

給 startBlock 賦值為 1970 年 1 月 18 日 13:10:20 +0000 and endBlock as1970 年 1 月 18 日 13:10:40 +0000`。(在編寫 ans 時,時間戳為 1503356016 秒)。所以這是一個提供價值的問題。

您可以指定 startBlock 值作為now ()返回目前塊的時間戳。

也在這一行

uint tokens = safeDiv(safeMul(msg.value * 1.01 ether, getPrice()), 1000000000000000000 ether);

Msg.value 僅給出以 ether 為單位的值,即value entered*10^18. 所以不需要寫 msg.value* 1.01 ether(也是為什麼 1.01 ether)。

startBlock=block.timestamp 

這將給出開始塊的目前時間戳。對於端塊,做

endBlock= startBlock + noOfSec

眾籌開始後執行的noOfSec總秒數是多少

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