Skip to content

Add migration fixtures for legacy storage keys and unknown future keys #1747

Description

@Jagadeeshftw

Area: Upgrade compatibility · Estimated effort: 8–12 h

Problem

contracts/grainlify-core/MIGRATION.md and storage-layout tests cover known migrations, but compatibility with legacy and forward-added keys is not explicit.

Design decision required

Decide whether unknown keys are ignored, preserved, or rejected and how migrations signal unsupported versions.

Requirements

  • Seed old layouts
  • run each migration
  • add an unknown key
  • assert values, TTL, and version markers after migration.

Acceptance criteria

  • Legacy fixtures migrate deterministically, unknown keys follow the documented policy, and no unrelated storage is deleted.

Out of scope

  • Unrelated refactors, dependency upgrades, or behavior changes outside the stated scope.
  • Closing, deleting, or weakening existing tests to make the change pass.

Verification

cargo test --manifest-path contracts/bounty_escrow/Cargo.toml -p grainlify-core migration -- --nocapture

PR requirements

  • Explain the before/after behavior and include the evidence requested above.
  • Add regression tests for the changed behavior and report relevant build, test, lint, and artifact results.
  • Keep the PR focused and reference this issue.
  • Please open the PR within 48 hours of assignment so the work remains active; ask a question in the issue if the scope needs clarification.

Good luck, and please join the contributor Telegram group if you want to discuss the work: https://t.me/+u5qmu35nZ7I0OTU1

Metadata

Metadata

Labels

Stellar WaveIssues in the Stellar wave program

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions