Skip to content

[Contracts] Multisig governance proposal state lives in instance storage and can be archived, stranding in-flight transfers #10

@grantfox-oss

Description

@grantfox-oss

Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0

Why this matters

multisig_governance/src/lib.rs stores the entire PendingTransfer (with a 7-day PROPOSAL_TTL_SECONDS timelock window plus a min 24h delay) under instance storage (KEY_PENDING) and never bumps instance TTL anywhere in the contract. Unlike the other contracts, there is no bump_instance_ttl helper, so a long-lived proposal awaiting its timelock can have its instance storage archived, making finalize_admin_transfer and approvals fail and the contract effectively unusable.

Acceptance criteria

  • Add instance-storage TTL extension on proposal creation, approval, and reads consistent with the other contracts
  • Choose TTL bump values that comfortably exceed the maximum proposal lifetime (delay + PROPOSAL_TTL_SECONDS)
  • Add a test that advances ledgers across the timelock window and confirms the proposal is still finalizable
  • Document the storage-class and TTL choice for governance state

Files to touch

  • multisig_governance/src/lib.rs

Out of scope

  • Migrating governance state to persistent storage layout changes
  • Adding multiple concurrent proposals

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official CampaignbugSomething isn't workingenhancementNew feature or requesthardAdvanced / high-difficulty issue

Type

No type
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