Skip to content

Optimize Multisig submitAndConfirm#743

Merged
martinvol merged 13 commits intomasterfrom
governance-approve
Feb 3, 2026
Merged

Optimize Multisig submitAndConfirm#743
martinvol merged 13 commits intomasterfrom
governance-approve

Conversation

@aaronmgdr
Copy link
Contributor

@aaronmgdr aaronmgdr commented Dec 2, 2025

Description

Reports that it took very long/timed out when approving a transaction

Other changes

adds ability to specify if submitting or confirming by passing --submit or --multisigTx NUMBER

Tested.

How to QA

try to approve something

Related issues


PR-Codex overview

This PR focuses on enhancing the multisig transaction handling in the @celo/contractkit and @celo/celocli, introducing new command flags and methods for better control over transaction submission and confirmation processes.

Detailed summary

  • Updated transaction submission logic to search only through non-executed transactions.
  • Added submitTransaction method in MultiSigWrapper for granular control over transaction submission.
  • Introduced --submit and --multisigTx flags in governance:approve command for enhanced transaction control.
  • Implemented checks in the approval process to validate prior submissions and confirmations.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@changeset-bot
Copy link

changeset-bot bot commented Dec 2, 2025

🦋 Changeset detected

Latest commit: 79a78f8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@celo/celocli Minor
@celo/contractkit Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions
Copy link
Contributor

github-actions bot commented Dec 2, 2025

size-limit report 📦

Path Size
require('@celo/actions') (cjs) 98.85 KB (0%)
import * from '@celo/actions' (esm) 23.55 KB (0%)
import { resolveAddress } from '@celo/actions' (esm) 23.49 KB (0%)
import { getGasPriceOnCelo } from '@celo/actions' (esm) 73 B (0%)
import { getAccountsContract } from '@celo/actions/contracts/accounts' (esm) 46.11 KB (0%)
import * from '@celo/actions/staking' (esm) 50.66 KB (0%)

@codecov
Copy link

codecov bot commented Dec 2, 2025

Codecov Report

❌ Patch coverage is 40.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 69.61%. Comparing base (ec19218) to head (79a78f8).
⚠️ Report is 1 commits behind head on master.

❌ Your patch status has failed because the patch coverage (40.00%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #743      +/-   ##
==========================================
- Coverage   73.14%   69.61%   -3.54%     
==========================================
  Files          17      150     +133     
  Lines        1188     7075    +5887     
  Branches      233     1148     +915     
==========================================
+ Hits          869     4925    +4056     
- Misses        314     2074    +1760     
- Partials        5       76      +71     
Components Coverage Δ
celocli ∅ <ø> (∅)
sdk 69.12% <40.00%> (∅)
wallets 73.14% <ø> (ø)
viem-sdks 94.15% <ø> (∅)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@martinvol
Copy link
Contributor

I tested this, it got to the point where it doesn't time out, but still took about a minute and did a ton of RPC requests

aaronmgdr and others added 5 commits December 12, 2025 15:13
Adds two new flags to the governance:approve command for better control over multisig transactions:
- --submit: Force submission without checking for existing confirmations
- --multisigTXId: Specify exact multisig transaction ID to confirm

Also adds submitTransaction method to MultiSigWrapper to support the new functionality.

Includes comprehensive tests for the new features.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ith multisig to only search thru non executed transactions
Adds two new flags to the governance:approve command for better control over multisig transactions:
- --submit: Force submission without checking for existing confirmations
- --multisigTXId: Specify exact multisig transaction ID to confirm

Also adds submitTransaction method to MultiSigWrapper to support the new functionality.

Includes comprehensive tests for the new features.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@aaronmgdr aaronmgdr marked this pull request as ready for review December 12, 2025 14:40
@aaronmgdr aaronmgdr requested a review from a team as a code owner December 12, 2025 14:40
@martinvol
Copy link
Contributor

Latest got it down to about 20 seconds (with me trying to close it as soon as the hardware wallet prompt).

So I'd say we're good to go!

@martinvol
Copy link
Contributor

/codex what does --submit flag do?

@pr-codex
Copy link

pr-codex bot commented Jan 7, 2026

what does --submit flag do?

@martinvol The --submit flag is used with the governance:approve command in the celocli. It forces the submission of an approval transaction to the multisig without checking for prior confirmations on-chain.

Key Points:

  • Bypasses Confirmation Check: It bypasses the check for existing submissions.
  • Use with Caution: It should be used carefully, as it can lead to duplicate submissions if there is ambiguity regarding the transaction state.
  • Dependency: This flag requires both --proposalID and --useMultiSig to be provided.

Example Usage:

celocli governance:approve --proposalID 99 --from 0x... --useMultiSig --submit

@martinvol martinvol enabled auto-merge (squash) February 2, 2026 13:33
@martinvol martinvol merged commit a695c5c into master Feb 3, 2026
34 of 52 checks passed
@martinvol martinvol deleted the governance-approve branch February 3, 2026 14:51
@github-actions github-actions bot mentioned this pull request Feb 3, 2026
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.

2 participants