Skip to content

Shared common crate: types, versioning, and utilities #3

Description

@ayshadogo

User Story:
As a developer, I want shared types, a version scheme, and utility functions centralized so that the campaign and factory contracts stay consistent and callers can verify contract compatibility.

Acceptance Criteria:

  • common crate with shared types (CampaignStatus, MilestoneStatus, AssetInfo, ErrorCode) and utilities (address validation, timestamp helpers) used by both campaign and factory
  • VERSION: u32 constant and fn version() -> u32 in each contract, bumped on any breaking change, with a semver policy documented in CHANGELOG.md
  • Document the rule for what belongs in common vs. contract-specific code, so future contributors don't have to guess
  • Unit tests for every shared utility, including boundary cases for the timestamp helpers

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions