Ether Units

Có một số đơn vị giúp thể hiện các mệnh giá của Ether ở trong Solidity: wei, gweiether. Nếu sử dụng một số thông thường mà không có đơn vị thì mặc định số đó sẽ có đơn vị là wei.

Ví dụ:

assert(1 wei == 1);
assert(1 gwei == 1e9);
assert(1 ether == 1e18);

Về bản chất, đơn vị gweiether chỉ đơn giản là các lũy thừa của 10.

Time Units

Trong Solidity có một số đơn vị thời gian chẳng hạn như secondsminuteshoursdaysweeks và years. Tất cả các đơn vị này có thể quy đổi thành giây và có thể được lưu bằng kiểu dữ liệu uint.

Ví dụ minh họa sử dụng đơn vị thời gian:

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
 
contract Time {
	uint registrationDeadline = block.timestamp + 1 weeks;
	
	function registerVoter(address voter) public view {
		require(block.timestamp <= registrationDeadline, “registration deadline has passed.”);
	        
		// Register the Voter....
	}
}

Giá trị của block.timestamp chính là thời điểm lúc deploy/thực thi contract.