Skip to content

Add Proposal Expiry to MultisigGovernance (#436)#516

Open
mijinummi wants to merge 2 commits intoLabsCrypt:mainfrom
mijinummi:feat/proposal-expiry-multisig
Open

Add Proposal Expiry to MultisigGovernance (#436)#516
mijinummi wants to merge 2 commits intoLabsCrypt:mainfrom
mijinummi:feat/proposal-expiry-multisig

Conversation

@mijinummi
Copy link
Copy Markdown

📝 Description

Overview

This PR adds proposal expiry logic to the MultisigGovernance contract.

Key Features

  • expires_at field on proposals
  • Expiry window configurable by admin
  • Approve/finalize blocked after expiry
  • cancel_expired_proposal cleans up stale proposals
  • Uses ledger height for expiry checks

Closes #436

@ogazboiz
Copy link
Copy Markdown
Contributor

The contracts CI is failing on the rustfmt format check. This isn't a logic issue, just formatting.

Run this in the contracts directory and push:

cd contracts
cargo fmt

Then commit and push the formatting changes. The CI should pass after that.

Copy link
Copy Markdown
Contributor

@ogazboiz ogazboiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Contracts CI is failing under 30 seconds, which is almost always a cargo fmt check. Run this from the contracts/ directory and commit the result:

cd contracts
cargo fmt
git add -A
git commit -m 'style: apply cargo fmt'
git push

@ogazboiz
Copy link
Copy Markdown
Contributor

The codebase issues on main have been resolved and all CI checks are passing now. Please rebase your branch to pull in the latest changes before continuing. Thanks for your patience.

Copy link
Copy Markdown
Contributor

@ogazboiz ogazboiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code appends a second #[ink(storage)] struct and impl block to the existing file, which is a compilation error. This contract is Soroban, not ink!. Self::env().block_number() won't compile in a non-self function. String errors should be a proper error enum. Please integrate into the existing contract structure instead of appending a separate one.

@ogazboiz
Copy link
Copy Markdown
Contributor

heads up, a few important changes just landed on main that affect your PR:

  1. axios pinned to 1.13.5 - there's an active supply chain attack on axios 1.14.1 (pulls in confirmed malware). we added overrides in all package.json files to block it.

  2. CI now runs a supply chain audit before backend/frontend jobs. if your lockfile has a compromised package, CI will fail with a clear error.

  3. backend test fixes - loanEndpoints tests now use valid Stellar addresses and base64 strings. if your PR was failing backend CI but you didn't touch backend code, this should fix it after rebase.

please rebase on latest main:

git fetch upstream
git rebase upstream/main
git push --force-with-lease

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.

feat(contracts): add proposal expiry to MultisigGovernance

2 participants