2025-03-31 10:42:32 +02:00
|
|
|
import ../clock
|
|
|
|
|
import ./requests
|
|
|
|
|
|
2025-04-15 16:07:22 +02:00
|
|
|
type Periodicity* = object
|
|
|
|
|
seconds*: StorageDuration
|
2025-03-31 10:42:32 +02:00
|
|
|
|
|
|
|
|
func periodOf*(periodicity: Periodicity, timestamp: StorageTimestamp): ProofPeriod =
|
|
|
|
|
ProofPeriod.init(timestamp.u40 div periodicity.seconds.u40)
|
|
|
|
|
|
|
|
|
|
func periodOf*(periodicity: Periodicity, timestamp: SecondsSince1970): ProofPeriod =
|
|
|
|
|
periodicity.periodOf(StorageTimestamp.init(timestamp))
|
|
|
|
|
|
|
|
|
|
func periodStart*(periodicity: Periodicity, period: ProofPeriod): StorageTimestamp =
|
|
|
|
|
StorageTimestamp.init(period.u40 * periodicity.seconds.u40)
|
|
|
|
|
|
|
|
|
|
func periodEnd*(periodicity: Periodicity, period: ProofPeriod): StorageTimestamp =
|
|
|
|
|
periodicity.periodStart(period + 1'u8)
|