Skip to content

Conversation

@nazreen
Copy link
Contributor

@nazreen nazreen commented Dec 11, 2025

Problem

When the owner/delegate of a Solana OFT is a Squads Vault, but wire is ran without the --multisig-key param, the error is unhelpful:

Error: Signature verification failed.
Missing signature for public key [9x3vKSwioT85mPwWFrdR4ZXQoWV2KRyw6EWbWDYeBWCc].

Endpoint: SOLANA_V2_TESTNET
OmniAddress: 5jBe5bLSsm1wXu6YD5KTDyDehFmgUrE4Crw9LyedkWTe
OmniContract: -
Function Name: -
Function Arguments: -

Description: Setting enforced options to [
  {
    "eid": 40231,
    "option": {
      "msgType": 1,
      "options": "0x00030100110100000000000000000000000000013882"
    }
  }
]

Data: 02000306c5e6e695fea2780025efd3d9211876ab08ca14af52d8bc3fac40034da287901484f7bda19500a4638aa2ba9a44b29aa3c2d2d8436f96c0fdd59b9af241d39275278334c658beece92cedb77f418d363fb44ac2611eb8964370f8f0da2d01f11e0000000000000000000000000000000000000000000000000000000000000000463d2bec7817509d907084101bf40ad464c4e16fc0f0b3edecb0e344cf8093b5eff74af6924cd55b014ff481b2c6e37638ebd7c0dc5d9880fd51060e71640e38772db01aaa737988ec5378d2276fa2da28a2375c75cbea9accd2cd81d305bea5010504010204032d4fbba8398b8c5d2f279d0000021600000000030100110100000000000000000000000000013882020000000003

Value: -
Gas Limit: -

error: ⤫ Failed to configure the OApp

Changes

Added check of the active keypair or provided multisig against the Solana OFT's admin/delegate

examples/oft-solana $ npx hardhat lz:oapp:wire --oapp-config layerzero.config.ts     
bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)
info:    Using Solana keypair from SOLANA_PRIVATE_KEY => EKXXXF8kzh4Bnq1HBHVwZgA5egJJWLDYqXmJTQtbbd5D
(Use `node --trace-warnings ...` to show where the warning was created)
info:    Read-only mode: Using ephemeral keypair.
warn:    Signing authority (EKXXXF8kzh4Bnq1HBHVwZgA5egJJWLDYqXmJTQtbbd5D) is not the admin (9x3vKSwioT85mPwWFrdR4ZXQoWV2KRyw6EWbWDYeBWCc). Use the correct keypair or supply the correct value for    --multisig-key if the admin is a Squads Vault.
warn:    Signing authority (EKXXXF8kzh4Bnq1HBHVwZgA5egJJWLDYqXmJTQtbbd5D) is not the delegate (9x3vKSwioT85mPwWFrdR4ZXQoWV2KRyw6EWbWDYeBWCc). Use the correct keypair or supply the correct value for --multisig-key if the delegate is a Squads Vault.

The check will also warn if the wrong multisig key is provided (which will derive to the wrong vault PDA).

Testing

Deploy a Solana OFT
Update the delegate and admin to a Squads vault
Then, change anything in LZ config and run the wire command without the --multisig-key param

@github-actions
Copy link
Contributor

🚨 E2E Tests Failed

The E2E tests failed during CI. These tests validate real blockchain interactions and may fail due to:

This is non-blocking and does not prevent merging. Check the action logs above for detailed failure information.

@github-actions
Copy link
Contributor

🚨 E2E Tests Failed

The E2E tests failed during CI. These tests validate real blockchain interactions and may fail due to:

This is non-blocking and does not prevent merging. Check the action logs above for detailed failure information.

@socket-security
Copy link

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

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​@​sqds/​multisig@​2.1.4971009785100

View full report

@nazreen nazreen marked this pull request as ready for review December 12, 2025 17:42
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