Skip to content

[Tutorial] Time and Deadlines in Compact: Block Time, Counters & the Uint<16> Problem #306

@Olanetsoft

Description

@Olanetsoft

Type of Content

Tutorial

Summary

Explain the four block-time query functions (blockTimeLt, blockTimeGte, etc.), the Counter.increment() Uint<16> ceiling (max 65,535 per increment), and workarounds for storing timestamps: hours-since-epoch, multiple increments, or splitting into deadline_hi + deadline_lo fields.

Target Audience

Developers

Deliverables

  1. Written tutorial (2,500-3,500 words) covering:

    • Four block-time query functions: blockTimeLt, blockTimeGte, etc.
    • Counter.increment() Uint<16> ceiling (max 65,535)
    • Workarounds for storing timestamps
    • Hours-since-epoch pattern
    • Multiple increments pattern
    • Splitting into deadline_hi + deadline_lo fields
  2. Working code examples for each workaround

Requirements:

Relevant Links

Submission Process

This is an Eclipse bounty. Bounties are not first-come, first-served. Anyone can submit. The best valid submission wins.

  1. Work on your submission independently.
  2. Share your published link in this issue thread.
  3. When ready, comment "Ready for review" explicitly.
  4. One review cycle: feedback, revision, approve or reject.

Publishing: Dev.to is the default platform for blog posts and tutorials. Some contributions may also go directly into the Midnight docs. Other platforms (Medium, Hashnode, personal blog) work too.

Promotion: Share on X/LinkedIn with #MidnightforDevs and tag @midnightntwrk.

Policies

AI-Generated Content: Submissions are checked for AI content. Substantially AI-generated work will be disqualified.

Code Must Compile: Any Compact code must compile. Non-compiling code means immediate disqualification.

Terms: By submitting, you agree to the Bounty Program Terms. Payouts in NIGHT tokens after KYC via SumSub.

Tier 2 (Medium) - $500-$700 (paid in NIGHT tokens)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions