Skip to content

v0.4.0#5

Open
rya-sge wants to merge 12 commits into
mainfrom
dev
Open

v0.4.0#5
rya-sge wants to merge 12 commits into
mainfrom
dev

Conversation

@rya-sge
Copy link
Copy Markdown
Collaborator

@rya-sge rya-sge commented Apr 23, 2026

  • Dependencies

    • Align integration for CMTAT v3.2.0.
    • Update CMTATBaseRuleEngine import path (1_CMTATBaseRuleEngine.sol -> 2_CMTATBaseRuleEngine.sol).
    • Update version interface usage from IERC3643Base to IERC3643Version.
    • Update OpenZeppelin dependencies to @openzeppelin/contracts and @openzeppelin/contracts-upgradeable 5.6.1.
  • Documentation

    • Clarify and document the 0.3.0 known issue and 0.4.0 resolution for getNextSnapshots() arithmetic underflow when no future snapshots remain.
    • Document strict snapshot query semantics with exact-time APIs:
      • snapshotExists(time)
      • snapshotBalanceOfExact(time, tokenHolder) (reverts if time is not scheduled)
      • snapshotTotalSupplyExact(time) (reverts if time is not scheduled)
    • Document snapshot materialization observability:
      • SnapshotMaterialized(time, blockNumber) emitted when _setCurrentSnapshot() advances.
      • poke() can be used by authorized accounts to materialize due snapshots without requiring token transfers.
    • Add a second deployment variant using OpenZeppelin Ownable2Step (SnapshotEngineOwnable2Step) and refactor shared deployment logic into SnapshotEngineBase to minimize duplication.
    • Add CMTATStandaloneSnapshot (standalone/non-proxy deployment) and refactor shared CMTAT+snapshot behavior into CMTATSnapshotBase to minimize duplication with CMTATUpgradeableSnapshot.
  • Testing

    • Add tests for exact snapshot queries (scheduled vs non-scheduled timestamps and parity with legacy queries on scheduled timestamps).
    • Add tests for snapshot materialization event emission.
    • Add tests for poke() access control and idempotent behavior.
    • Add test coverage for SnapshotUnschedule(time) emission in unscheduleSnapshotNotOptimized.
    • Add a dedicated SnapshotEngineOwnable2Step test suite and share common snapshot behavior tests across AccessControl and Ownable variants.
    • Refactor admin-authorization assertions into a shared helper to avoid duplicated expectations across test modules.

rya-sge added 12 commits April 23, 2026 14:23
…heduledMostRecentPastSnapshot + create CLAUDE and AGENTS files
…tBalanceOfExact, snapshotTotalSupplyExact) and enforce scheduled-time checks
…dvancement with access-controlled poke() and coverage tests
…Documentation, Testing) and align notes with latest OZ (5.6.1)/CMTAT(3.2.0) updates
…e2Step deployment variant, and update moved deployment contract paths plus shared cross-auth snapshot tests
… CMTAT/engine bases and refactor reusable multi-mode snapshot test suites/helpers
…r, and v3.2.0-compatible CMTAT fallback deployments
…apshotCompatible and update docs/changelog accordingly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant