-
Notifications
You must be signed in to change notification settings - Fork 6
feat: Custom Mutisig Pallet #352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
One thin - apparently we auto clean expired proposals on propose. This risks timing out when too many proposals are expired locking up the entire pallet. So I would put a reasonable limit, like at most clean up 5 expired proposals on each propose call, then we never have this issue. Edit: I see it's capped by 200. Aren't proposals automatically deleted on Cancel and execute? If so, then cancelled and executed states are never stored, also we only need max active, the other value is then not needed. Which would then cap the removal process at 99, which I guess is fine, although if you manage to fill it up to 100, no new proposals are possible, and therefore nothing gets cleaned up either. |
Review of PR #352: Custom Multisig PalletTarget Branch: SummaryThis PR implements the Custom Multisig Pallet as per the specification. The implementation generally aligns well with the requirements, covering the core lifecycle, economic security models (burned fees, locked deposits), and storage limits. However, there is a Critical Issue regarding threshold-1 multisigs and a few observations for configuration and testing. Critical Findings1. Missing Auto-Execution for Threshold-1 ProposalsThe specification states in the
The docstring for
Issue: The implementation in Impact:
Recommendation: // ... inside propose ...
Proposals::<T>::insert(&multisig_address, proposal_id, proposal.clone());
// ... update counters ...
// Check for auto-execution
if multisig_data.threshold == 1 {
Self::do_execute(multisig_address, proposal_id, proposal)?;
}
Self::deposit_event(Event::ProposalCreated { ... });
Ok(())Observations & Suggestions1. Fee ConfigurationIn
Observation: The Proposal Fee is 10x higher than the Multisig Creation Fee. Typically, creating a permanent entity (Multisig) is more expensive than using it. While the spec mentions 2. Test Coverage
3. Spec Compliance Checklist
ConclusionThe PR is high quality but must not be merged until the Threshold-1 execution bug is fixed, as it renders 1-of-1 multisigs unusable. |
|
@n13 , Threshold=1 case fixed, MaxActiveProposals - removed |
n13
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GTG
Spec: https://github.com/Quantus-Network/chain/wiki/Quantus-Multisig-Pallet-Specification
Actual spec: https://github.com/Quantus-Network/chain/wiki/Multisig-Pallet-%E2%80%90-Requirements-Specification