Skip to content

Add propose to onesig and multisig hardhat task#546

Open
clauBv23 wants to merge 2 commits intomainfrom
feat/propose-tx-task
Open

Add propose to onesig and multisig hardhat task#546
clauBv23 wants to merge 2 commits intomainfrom
feat/propose-tx-task

Conversation

@clauBv23
Copy link
Copy Markdown
Contributor

@clauBv23 clauBv23 commented May 8, 2026

In this PR

  • add task to read from json file and use Sing and seng task to propose to both oneisg and safe multisig
  • fix error when proposing to multisig, caused by devtools-env using safe api key version ~4.0.0

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 8, 2026

⚠️ No Changeset found

Latest commit: 491f9a1

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​layerzerolabs/​devtools-evm@​3.0.2 ⏵ 3.0.079 +31008790 -1100
Updated@​layerzerolabs/​protocol-devtools-evm@​5.0.3 ⏵ 5.0.180 +11008491 +8100

View full report

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a new Hardhat task for proposing arbitrary OmniTransactions from a JSON file via either OneSig or Safe multisig, and adjusts devtools dependencies (including a pnpm patch) to address multisig proposal issues.

Changes:

  • Add stg:propose:transactions task that loads transactions from a JSON file and routes them through SUBTASK_LZ_SIGN_AND_SEND with either a Safe or OneSig signer factory.
  • Patch @layerzerolabs/protocol-devtools-evm@5.0.1 to batch EndpointV2.setConfig() transactions.
  • Update dependency versions/lockfile and register the new pnpm patched dependency.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
pnpm-lock.yaml Updates resolved dependency graph; adds patched dependency entry and version adjustments.
patches/@layerzerolabs__protocol-devtools-evm@5.0.1.patch Patches EndpointV2.setConfig() to split config updates into chunks.
packages/stg-evm-v2/package.json Pins devtools EVM/protocol devtools EVM versions consistent with the multisig fix approach.
packages/stg-evm-v2/devtools/tasks/proposeTransactions.ts New task: reads transactions.json (or provided path) and proposes via Safe/OneSig.
packages/stg-evm-v2/devtools/tasks/index.ts Registers the new propose-transactions task module.
packages/stg-evm-v2/devtools/tasks/constants.ts Adds TASK_STG_PROPOSE_TRANSACTIONS constant.
packages/stg-devtools-evm-hardhat-v2/package.json Aligns devtools dependency versions with the pinned/patch-compatible set.
package.json Registers the pnpm patched dependency for @layerzerolabs/protocol-devtools-evm@5.0.1.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +38 to +44
return parsed.map((entry: RawOmniTransaction, i: number) => {
const label = `transactions[${i}]`

if (typeof entry.point?.eid !== 'number') {
throw new Error(`${label}: point.eid must be a number`)
}
if (typeof entry.point?.address !== 'string' || !entry.point.address) {
Comment on lines +44 to +46
if (typeof entry.point?.address !== 'string' || !entry.point.address) {
throw new Error(`${label}: point.address must be a non-empty string`)
}
Comment on lines +47 to +49
if (typeof entry.data !== 'string') {
throw new Error(`${label}: data must be a hex string`)
}
Comment on lines +56 to +58
if (entry.value !== undefined) {
tx.value = BigInt(entry.value)
}
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