diff --git a/.changeset/giant-glasses-count.md b/.changeset/giant-glasses-count.md new file mode 100644 index 000000000..07594f0f0 --- /dev/null +++ b/.changeset/giant-glasses-count.md @@ -0,0 +1,5 @@ +--- +"@layerzerolabs/devtools-solana": patch +--- + +introduce escape hatch for assertValidSolanaAdmin diff --git a/examples/oft-solana/layerzero.config.ts b/examples/oft-solana/layerzero.config.ts index d4b336ed8..80f80d62e 100644 --- a/examples/oft-solana/layerzero.config.ts +++ b/examples/oft-solana/layerzero.config.ts @@ -60,7 +60,10 @@ export default async function () { ]) return { - contracts: [{ contract: arbitrumContract }, { contract: solanaContract }], + contracts: [ + { contract: arbitrumContract }, + { contract: solanaContract, config: { delegate: '2XgGZG4oP29U3w5h4nTk1V2LFHL23zKDPJjs3psGzLKQ' } }, + ], connections, } } diff --git a/packages/devtools-solana/src/common/addresses.ts b/packages/devtools-solana/src/common/addresses.ts index f28eaf32e..43955268e 100644 --- a/packages/devtools-solana/src/common/addresses.ts +++ b/packages/devtools-solana/src/common/addresses.ts @@ -51,6 +51,14 @@ export async function isSquadsV4Vault(address: string): Promise { } export async function assertValidSolanaAdmin(connection: Connection, address: string): Promise { + // Skip validation if environment variable is set + if (process.env.LZ_SKIP_SOLANA_ADMIN_VALIDATION) { + console.warn( + '\n\nWarning: LZ_SKIP_SOLANA_ADMIN_VALIDATION is set. Skipping Solana admin validation. Only use this is you are using a non-Squads Multisig.\n\n' + ) + return + } + const pubkey = new PublicKey(address) try { diff --git a/turbo.json b/turbo.json index 420acc697..453e21e76 100644 --- a/turbo.json +++ b/turbo.json @@ -56,6 +56,7 @@ "LZ_ENABLE_EXPERIMENTAL_PARALLEL_EXECUTION", "LZ_ENABLE_EXPERIMENTAL_RETRY", "LZ_ENABLE_EXPERIMENTAL_SIMULATION", + "LZ_SKIP_SOLANA_ADMIN_VALIDATION", "LZ_ENABLE_SOLANA_OFT_EXAMPLE", "LZ_ENABLE_SOLANA_OAPP_EXAMPLE", "LZ_ENABLE_READ_EXAMPLE",