From 3bdd2c3eda9f9ddabefa7f9f2d0c465f610fa30a Mon Sep 17 00:00:00 2001 From: nazreen <10964594+nazreen@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:32:07 -0800 Subject: [PATCH 1/4] simple config should support skipping from eids --- .../metadata-tools/src/config-metadata.ts | 227 +++++++++++------- .../test/config-metadata.test.ts | 81 +++++++ 2 files changed, 215 insertions(+), 93 deletions(-) diff --git a/packages/metadata-tools/src/config-metadata.ts b/packages/metadata-tools/src/config-metadata.ts index 658aad7b3d..6ad2550694 100644 --- a/packages/metadata-tools/src/config-metadata.ts +++ b/packages/metadata-tools/src/config-metadata.ts @@ -172,7 +172,8 @@ const getLibraryAddress = (deployment: any, metadataKey: string) => export async function translatePathwayToConfig( pathway: TwoWayConfig, - metadata: IMetadata + metadata: IMetadata, + skipFromEids: Set = new Set() ): Promise[]> { const configs: OmniEdgeHardhat[] = [] @@ -183,6 +184,15 @@ export async function translatePathwayToConfig( const [enforcedOptionsAToB, enforcedOptionsBToA] = pathway[4] const customExecutor = pathway[5] + // Determine which directions to generate based on skipFromEids + const generateAToB = !skipFromEids.has(AContract.eid) + const generateBToA = !skipFromEids.has(BContract.eid) + + // If both directions are skipped, nothing to do + if (!generateAToB && !generateBToA) { + return configs + } + const optionalDVNs = optionalDVNConfig[0] const optionalDVNThreshold = optionalDVNConfig[1] || 0 @@ -190,21 +200,32 @@ export async function translatePathwayToConfig( throw new Error(`Optional DVN threshold is greater than the number of optional DVNs.`) } - const ALZDeployment = getEndpointIdDeployment(AContract.eid, metadata) - const BLZDeployment = getEndpointIdDeployment(BContract.eid, metadata) - - const AExecutor = resolveExecutorForDeployment(customExecutor, ALZDeployment, metadata, AContract.eid) - - const ARequiredDVNs = DVNsToAddresses(requiredDVNs, ALZDeployment.chainKey, metadata) - const BRequiredDVNs = DVNsToAddresses(requiredDVNs, BLZDeployment.chainKey, metadata) const requiredDVNCount = requiredDVNs.length > 0 ? requiredDVNs.length : NIL_DVN_COUNT + // Only look up deployment/DVNs/executor for chains we're generating configs for + const ALZDeployment = generateAToB ? getEndpointIdDeployment(AContract.eid, metadata) : undefined + const BLZDeployment = generateBToA ? getEndpointIdDeployment(BContract.eid, metadata) : undefined + + // A chain lookups (only needed for A→B config) + let ARequiredDVNs: string[] = [] let AOptionalDVNs: string[] = [] - let BOptionalDVNs: string[] = [] + let AExecutor: string | undefined + if (generateAToB && ALZDeployment) { + AExecutor = resolveExecutorForDeployment(customExecutor, ALZDeployment, metadata, AContract.eid) + ARequiredDVNs = DVNsToAddresses(requiredDVNs, ALZDeployment.chainKey, metadata) + if (optionalDVNs) { + AOptionalDVNs = DVNsToAddresses(optionalDVNs, ALZDeployment.chainKey, metadata) + } + } - if (optionalDVNs) { - AOptionalDVNs = DVNsToAddresses(optionalDVNs, ALZDeployment.chainKey, metadata) - BOptionalDVNs = DVNsToAddresses(optionalDVNs, BLZDeployment.chainKey, metadata) + // B chain lookups (only needed for B→A config) + let BRequiredDVNs: string[] = [] + let BOptionalDVNs: string[] = [] + if (generateBToA && BLZDeployment) { + BRequiredDVNs = DVNsToAddresses(requiredDVNs, BLZDeployment.chainKey, metadata) + if (optionalDVNs) { + BOptionalDVNs = DVNsToAddresses(optionalDVNs, BLZDeployment.chainKey, metadata) + } } const AToBConfirmations: BlockConfirmationsType = ['bigint', 'number'].includes(typeof AToBConfirmationsDefinition) @@ -216,106 +237,119 @@ export async function translatePathwayToConfig( ? BToAConfirmationsDefinition : BToAConfirmationsDefinition?.[0] - const blockSendAToB = isBlocked(AToBConfirmationsDefinition, true) - const blockReceiveAToB = isBlocked(AToBConfirmationsDefinition, false) - const blockSendBToA = isBlocked(BToAConfirmationsDefinition, true) - const blockReceiveBToA = isBlocked(BToAConfirmationsDefinition, false) - - const sendLibraryAToBMetadataKey = resolveLibraryMetadataKey(true, blockSendAToB, ALZDeployment) - const receiveLibraryAToBMetadataKey = resolveLibraryMetadataKey(false, blockReceiveAToB, BLZDeployment) - const sendLibraryBToAMetadataKey = resolveLibraryMetadataKey(true, blockSendBToA, BLZDeployment) - const receiveLibraryBToAMetadataKey = resolveLibraryMetadataKey(false, blockReceiveBToA, ALZDeployment) - - assertHasKey(ALZDeployment, sendLibraryAToBMetadataKey, AContract.eid) - assertHasKey(BLZDeployment, receiveLibraryAToBMetadataKey, BContract.eid) - assertHasKey(BLZDeployment, sendLibraryBToAMetadataKey, BContract.eid) - assertHasKey(ALZDeployment, receiveLibraryBToAMetadataKey, AContract.eid) - - const sendLibraryAToB = getLibraryAddress(ALZDeployment, sendLibraryAToBMetadataKey) - const receiveLibraryAToB = getLibraryAddress(BLZDeployment, receiveLibraryAToBMetadataKey) - const sendLibraryBToA = getLibraryAddress(BLZDeployment, sendLibraryBToAMetadataKey) - const receiveLibraryBToA = getLibraryAddress(ALZDeployment, receiveLibraryBToAMetadataKey) - - const AToBConfig: OmniEdgeHardhat = { - from: AContract, - to: BContract, - config: { - sendLibrary: sendLibraryAToB, - receiveLibraryConfig: { - receiveLibrary: receiveLibraryBToA, - gracePeriod: BigInt(0), - }, - sendConfig: { - executorConfig: { - maxMessageSize: 10000, - executor: AExecutor, + // Generate A→B config if not skipped + if (generateAToB && ALZDeployment && AExecutor) { + const blockSendAToB = isBlocked(AToBConfirmationsDefinition, true) + const blockReceiveBToA = isBlocked(BToAConfirmationsDefinition, false) + + const sendLibraryAToBMetadataKey = resolveLibraryMetadataKey(true, blockSendAToB, ALZDeployment) + const receiveLibraryBToAMetadataKey = resolveLibraryMetadataKey(false, blockReceiveBToA, ALZDeployment) + + assertHasKey(ALZDeployment, sendLibraryAToBMetadataKey, AContract.eid) + assertHasKey(ALZDeployment, receiveLibraryBToAMetadataKey, AContract.eid) + + const sendLibraryAToB = getLibraryAddress(ALZDeployment, sendLibraryAToBMetadataKey) + const receiveLibraryBToA = getLibraryAddress(ALZDeployment, receiveLibraryBToAMetadataKey) + + const AToBConfig: OmniEdgeHardhat = { + from: AContract, + to: BContract, + config: { + sendLibrary: sendLibraryAToB, + receiveLibraryConfig: { + receiveLibrary: receiveLibraryBToA, + gracePeriod: BigInt(0), + }, + sendConfig: { + executorConfig: { + maxMessageSize: 10000, + executor: AExecutor, + }, + ulnConfig: { + confirmations: BigInt(AToBConfirmations), + requiredDVNs: ARequiredDVNs, + requiredDVNCount, + optionalDVNs: AOptionalDVNs, + optionalDVNThreshold, + }, }, + enforcedOptions: enforcedOptionsAToB, + }, + } + + if (BToAConfirmations) { + AToBConfig.config.receiveConfig = { ulnConfig: { - confirmations: BigInt(AToBConfirmations), + confirmations: BigInt(BToAConfirmations), requiredDVNs: ARequiredDVNs, requiredDVNCount, optionalDVNs: AOptionalDVNs, optionalDVNThreshold, }, - }, - enforcedOptions: enforcedOptionsAToB, - }, + } + } + + configs.push(AToBConfig) } - const BToAConfig: OmniEdgeHardhat = { - from: BContract, - to: AContract, - config: { - sendLibrary: sendLibraryBToA, - receiveLibraryConfig: { - receiveLibrary: receiveLibraryAToB, - gracePeriod: BigInt(0), + // Generate B→A config if not skipped + if (generateBToA && BLZDeployment) { + const blockReceiveAToB = isBlocked(AToBConfirmationsDefinition, false) + const blockSendBToA = isBlocked(BToAConfirmationsDefinition, true) + + const receiveLibraryAToBMetadataKey = resolveLibraryMetadataKey(false, blockReceiveAToB, BLZDeployment) + const sendLibraryBToAMetadataKey = resolveLibraryMetadataKey(true, blockSendBToA, BLZDeployment) + + assertHasKey(BLZDeployment, receiveLibraryAToBMetadataKey, BContract.eid) + assertHasKey(BLZDeployment, sendLibraryBToAMetadataKey, BContract.eid) + + const receiveLibraryAToB = getLibraryAddress(BLZDeployment, receiveLibraryAToBMetadataKey) + const sendLibraryBToA = getLibraryAddress(BLZDeployment, sendLibraryBToAMetadataKey) + + const BToAConfig: OmniEdgeHardhat = { + from: BContract, + to: AContract, + config: { + sendLibrary: sendLibraryBToA, + receiveLibraryConfig: { + receiveLibrary: receiveLibraryAToB, + gracePeriod: BigInt(0), + }, + receiveConfig: { + ulnConfig: { + confirmations: BigInt(AToBConfirmations), + requiredDVNs: BRequiredDVNs, + requiredDVNCount, + optionalDVNs: BOptionalDVNs, + optionalDVNThreshold, + }, + }, }, - receiveConfig: { + } + + if (BToAConfirmations) { + const BExecutor = resolveExecutorForDeployment(customExecutor, BLZDeployment, metadata, BContract.eid) + + BToAConfig.config.enforcedOptions = enforcedOptionsBToA + + BToAConfig.config.sendConfig = { + executorConfig: { + maxMessageSize: 10000, + executor: BExecutor, + }, ulnConfig: { - confirmations: BigInt(AToBConfirmations), + confirmations: BigInt(BToAConfirmations), requiredDVNs: BRequiredDVNs, requiredDVNCount, optionalDVNs: BOptionalDVNs, optionalDVNThreshold, }, - }, - }, - } - - if (BToAConfirmations) { - const BExecutor = resolveExecutorForDeployment(customExecutor, BLZDeployment, metadata, BContract.eid) - - AToBConfig.config.receiveConfig = { - ulnConfig: { - confirmations: BigInt(BToAConfirmations), - requiredDVNs: ARequiredDVNs, - requiredDVNCount, - optionalDVNs: AOptionalDVNs, - optionalDVNThreshold, - }, + } } - BToAConfig.config.enforcedOptions = enforcedOptionsBToA - - BToAConfig.config.sendConfig = { - executorConfig: { - maxMessageSize: 10000, - executor: BExecutor, - }, - ulnConfig: { - confirmations: BigInt(BToAConfirmations), - requiredDVNs: BRequiredDVNs, - requiredDVNCount, - optionalDVNs: BOptionalDVNs, - optionalDVNThreshold, - }, - } + configs.push(BToAConfig) } - configs.push(AToBConfig) - configs.push(BToAConfig) - return configs } @@ -329,14 +363,21 @@ export async function generateConnectionsConfig( pathways: TwoWayConfig[], params?: { fetchMetadata?: () => Promise + /** + * Skip generating connection configs that originate FROM these endpoint IDs. + * This allows filtering out directions before DVN/executor lookups occur, + * which is useful when some chains don't have DVNs in the metadata. + */ + skipFromEids?: number[] } ) { const fetchMetadata = params?.fetchMetadata || defaultFetchMetadata + const skipFromEids = new Set(params?.skipFromEids ?? []) const metadata = await fetchMetadata() const connections: OmniEdgeHardhat[] = [] for (const pathway of pathways) { - connections.push(...(await translatePathwayToConfig(pathway, metadata))) + connections.push(...(await translatePathwayToConfig(pathway, metadata, skipFromEids))) } return connections diff --git a/packages/metadata-tools/test/config-metadata.test.ts b/packages/metadata-tools/test/config-metadata.test.ts index 86f4a61f10..1d1f53d626 100644 --- a/packages/metadata-tools/test/config-metadata.test.ts +++ b/packages/metadata-tools/test/config-metadata.test.ts @@ -609,6 +609,87 @@ describe('config-metadata', () => { expect(config[0]?.config?.sendLibrary).toBeDefined() expect(config[1]?.config?.sendLibrary).toBeDefined() }) + + it('should skip generating configs from specified EIDs using skipFromEids', async () => { + const avalancheContract = { + eid: 40106, + contractName: 'MyOFT', + } + + const solanaContract = { + eid: 40168, + address: 'HBTWw2VKNLuDBjg9e5dArxo5axJRX8csCEBcCo3CFdAy', + } + + const pathways: TwoWayConfig[] = [ + [avalancheContract, solanaContract, [['LayerZero Labs'], []], [1, 1], [undefined, undefined]], + ] + + // Skip configs originating from Solana (40168) + const config = await generateConnectionsConfig(pathways, { + skipFromEids: [40168], + }) + + // Should only generate 1 config (Avalanche -> Solana), not the reverse + expect(config).toHaveLength(1) + expect(config[0]?.from).toEqual(avalancheContract) + expect(config[0]?.to).toEqual(solanaContract) + }) + + it('should skip generating configs from multiple specified EIDs', async () => { + const avalancheContract = { + eid: 40106, + contractName: 'MyOFT', + } + + const solanaContract = { + eid: 40168, + address: 'HBTWw2VKNLuDBjg9e5dArxo5axJRX8csCEBcCo3CFdAy', + } + + const pathways: TwoWayConfig[] = [ + [avalancheContract, solanaContract, [['LayerZero Labs'], []], [1, 1], [undefined, undefined]], + ] + + // Skip configs originating from both chains + const config = await generateConnectionsConfig(pathways, { + skipFromEids: [40106, 40168], + }) + + // Should generate no configs + expect(config).toHaveLength(0) + }) + + it('should not lookup DVNs for skipped chains', async () => { + const avalancheContract = { + eid: 40106, + contractName: 'MyOFT', + } + + // Use a chain that doesn't have DVNs in metadata + const dummyContract = { + eid: 49999, + contractName: 'MyOFT', + } + + const mockFetchMetadata = async () => metadata + + const pathways: TwoWayConfig[] = [ + [avalancheContract, dummyContract, [['LayerZero Labs'], []], [1, 1], [undefined, undefined]], + ] + + // Without skipFromEids, this would throw because dummy chain has no DVNs/executor + // With skipFromEids skipping the dummy chain, it should succeed + const config = await generateConnectionsConfig(pathways, { + fetchMetadata: mockFetchMetadata, + skipFromEids: [49999], + }) + + // Should only generate Avalanche -> Dummy config + expect(config).toHaveLength(1) + expect(config[0]?.from).toEqual(avalancheContract) + expect(config[0]?.to).toEqual(dummyContract) + }) }) describe('translatePathwayToConfig', () => { From 1ee3606295eb3060388302484ecbd5137feee434 Mon Sep 17 00:00:00 2001 From: nazreen <10964594+nazreen@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:37:19 -0800 Subject: [PATCH 2/4] changeset --- .changeset/thirty-turtles-sort.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/thirty-turtles-sort.md diff --git a/.changeset/thirty-turtles-sort.md b/.changeset/thirty-turtles-sort.md new file mode 100644 index 0000000000..5ed0334842 --- /dev/null +++ b/.changeset/thirty-turtles-sort.md @@ -0,0 +1,5 @@ +--- +"@layerzerolabs/metadata-tools": patch +--- + +metadata-tools: support skipping of eids From a628d383acdc853433c8b2352f429656b3ba3426 Mon Sep 17 00:00:00 2001 From: nazreen <10964594+nazreen@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:46:44 -0800 Subject: [PATCH 3/4] lockfiles --- examples/oapp-solana/pnpm-lock.yaml | 24 ++++++++++++------------ examples/oft-solana/pnpm-lock.yaml | 28 ++++++++++++++-------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/examples/oapp-solana/pnpm-lock.yaml b/examples/oapp-solana/pnpm-lock.yaml index fcb2755323..a81036d352 100644 --- a/examples/oapp-solana/pnpm-lock.yaml +++ b/examples/oapp-solana/pnpm-lock.yaml @@ -39,8 +39,8 @@ devDependencies: specifier: ^4.0.4 version: 4.0.4(@ethersproject/abi@5.8.0)(@ethersproject/abstract-signer@5.8.0)(@ethersproject/contracts@5.8.0)(@ethersproject/providers@5.8.0)(@layerzerolabs/devtools-evm@3.0.2)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@nomiclabs/hardhat-ethers@2.2.3)(ethers@5.8.0)(fp-ts@2.16.11)(hardhat-deploy@0.12.4)(hardhat@2.27.0) '@layerzerolabs/devtools-solana': - specifier: ~3.0.5 - version: 3.0.5(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@solana/web3.js@1.95.8)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) + specifier: ~3.0.6 + version: 3.0.6(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@solana/web3.js@1.95.8)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) '@layerzerolabs/eslint-config-next': specifier: ~2.3.39 version: 2.3.44(typescript@5.9.3) @@ -79,7 +79,7 @@ devDependencies: version: 3.0.2(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(zod@3.25.76) '@layerzerolabs/protocol-devtools-solana': specifier: ^8.0.5 - version: 8.0.5(@layerzerolabs/devtools-solana@3.0.5)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76) + version: 8.0.5(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76) '@layerzerolabs/solhint-config': specifier: ^3.0.12 version: 3.0.145(typescript@5.9.3) @@ -103,7 +103,7 @@ devDependencies: version: 9.0.1(@ethersproject/abi@5.8.0)(@ethersproject/bytes@5.7.0)(@ethersproject/contracts@5.8.0)(@ethersproject/hash@5.8.0)(@layerzerolabs/devtools-evm-hardhat@4.0.4)(@layerzerolabs/devtools-evm@3.0.2)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/protocol-devtools-evm@5.0.2)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools-evm@7.0.1)(@layerzerolabs/ua-devtools@5.0.2)(ethers@5.8.0)(hardhat-deploy@0.12.4)(hardhat@2.27.0) '@layerzerolabs/ua-devtools-solana': specifier: ~8.0.5 - version: 8.0.5(@layerzerolabs/devtools-solana@3.0.5)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/oft-v2-solana-sdk@3.0.145)(@layerzerolabs/protocol-devtools-solana@8.0.5)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76) + version: 8.0.5(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/oft-v2-solana-sdk@3.0.145)(@layerzerolabs/protocol-devtools-solana@8.0.5)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76) '@metaplex-foundation/mpl-toolbox': specifier: ^0.9.4 version: 0.9.4(@metaplex-foundation/umi@0.9.2) @@ -1539,8 +1539,8 @@ packages: - utf-8-validate dev: true - /@layerzerolabs/devtools-solana@3.0.5(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@solana/web3.js@1.95.8)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76): - resolution: {integrity: sha512-O+6F668yAL7pD8y+Z9F6XSW2oTBpOnrn/kqpU9XSEA7dkvv6MxvJI9GZkZbM2nJ7Tu0xRHa5R2u7bFbXVL0VRw==} + /@layerzerolabs/devtools-solana@3.0.6(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@solana/web3.js@1.95.8)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76): + resolution: {integrity: sha512-QOcEIkof5BfAsRM3HiBlqieELA7rbQg5K+wDQJp6uk0OBkJtxWMBNDBYh58fwVMxILjKT1gKf49ElZYI7Sty8A==} peerDependencies: '@layerzerolabs/devtools': ~2.0.4 '@layerzerolabs/io-devtools': ~0.3.2 @@ -1984,7 +1984,7 @@ packages: '@ethersproject/bytes': 5.8.0 '@layerzerolabs/lz-foundation': 3.0.145(got@11.8.6)(typescript@5.9.3) '@layerzerolabs/lz-solana-sdk-v2': 3.0.145(fastestsmallesttextencoderdecoder@1.0.22)(got@11.8.6)(typescript@5.9.3) - '@layerzerolabs/lz-v2-utilities': 3.0.145 + '@layerzerolabs/lz-v2-utilities': 3.0.150 '@metaplex-foundation/beet': 0.7.2 '@metaplex-foundation/beet-solana': 0.4.1 '@metaplex-foundation/umi': 0.9.2 @@ -2077,7 +2077,7 @@ packages: zod: 3.25.76 dev: true - /@layerzerolabs/protocol-devtools-solana@8.0.5(@layerzerolabs/devtools-solana@3.0.5)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76): + /@layerzerolabs/protocol-devtools-solana@8.0.5(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76): resolution: {integrity: sha512-MyQ4YFwEqHio8mnyiNsMtYAOrDZApo6TjRhRNdsSk9oiZadLgCkyK/fYnUCVyErwv8La9M9ftTtOX6wTEZgpqw==} peerDependencies: '@layerzerolabs/devtools': ~2.0.4 @@ -2093,7 +2093,7 @@ packages: zod: ^3.22.4 dependencies: '@layerzerolabs/devtools': 2.0.4(@ethersproject/bytes@5.7.0)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(zod@3.25.76) - '@layerzerolabs/devtools-solana': 3.0.5(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@solana/web3.js@1.95.8)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) + '@layerzerolabs/devtools-solana': 3.0.6(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@solana/web3.js@1.95.8)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) '@layerzerolabs/io-devtools': 0.3.2(ink-gradient@2.0.0)(ink-table@3.1.0)(ink@3.2.0)(react@17.0.2)(yoga-layout-prebuilt@1.10.0)(zod@3.25.76) '@layerzerolabs/lz-definitions': 3.0.145 '@layerzerolabs/lz-solana-sdk-v2': 3.0.145(fastestsmallesttextencoderdecoder@1.0.22)(got@11.8.6)(typescript@5.9.3) @@ -2384,7 +2384,7 @@ packages: zod: 3.25.76 dev: true - /@layerzerolabs/ua-devtools-solana@8.0.5(@layerzerolabs/devtools-solana@3.0.5)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/oft-v2-solana-sdk@3.0.145)(@layerzerolabs/protocol-devtools-solana@8.0.5)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76): + /@layerzerolabs/ua-devtools-solana@8.0.5(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/oft-v2-solana-sdk@3.0.145)(@layerzerolabs/protocol-devtools-solana@8.0.5)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76): resolution: {integrity: sha512-i+5o2imx0l7aNqSS9Gi7PZ+GOlREvWH4zd1ckd2JyTpTkHGuS/gJxEfMqEWYl+ZZX4b1VEJboa1hevHLKSYYbA==} peerDependencies: '@layerzerolabs/devtools': ~2.0.4 @@ -2402,14 +2402,14 @@ packages: zod: ^3.22.4 dependencies: '@layerzerolabs/devtools': 2.0.4(@ethersproject/bytes@5.7.0)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(zod@3.25.76) - '@layerzerolabs/devtools-solana': 3.0.5(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@solana/web3.js@1.95.8)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) + '@layerzerolabs/devtools-solana': 3.0.6(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@solana/web3.js@1.95.8)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) '@layerzerolabs/io-devtools': 0.3.2(ink-gradient@2.0.0)(ink-table@3.1.0)(ink@3.2.0)(react@17.0.2)(yoga-layout-prebuilt@1.10.0)(zod@3.25.76) '@layerzerolabs/lz-definitions': 3.0.145 '@layerzerolabs/lz-solana-sdk-v2': 3.0.145(fastestsmallesttextencoderdecoder@1.0.22)(got@11.8.6)(typescript@5.9.3) '@layerzerolabs/lz-v2-utilities': 3.0.145 '@layerzerolabs/oft-v2-solana-sdk': 3.0.145(fastestsmallesttextencoderdecoder@1.0.22)(got@11.8.6)(typescript@5.9.3) '@layerzerolabs/protocol-devtools': 3.0.2(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(zod@3.25.76) - '@layerzerolabs/protocol-devtools-solana': 8.0.5(@layerzerolabs/devtools-solana@3.0.5)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76) + '@layerzerolabs/protocol-devtools-solana': 8.0.5(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-solana-sdk-v2@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/protocol-devtools@3.0.2)(@layerzerolabs/ua-devtools@5.0.2)(@solana/web3.js@1.95.8)(fp-ts@2.16.11)(zod@3.25.76) '@layerzerolabs/ua-devtools': 5.0.2(@layerzerolabs/devtools@2.0.4)(@layerzerolabs/io-devtools@0.3.2)(@layerzerolabs/lz-definitions@3.0.145)(@layerzerolabs/lz-v2-utilities@3.0.145)(@layerzerolabs/protocol-devtools@3.0.2)(zod@3.25.76) '@solana/web3.js': 1.95.8 fp-ts: 2.16.11 diff --git a/examples/oft-solana/pnpm-lock.yaml b/examples/oft-solana/pnpm-lock.yaml index a6f807a317..80d74cc830 100644 --- a/examples/oft-solana/pnpm-lock.yaml +++ b/examples/oft-solana/pnpm-lock.yaml @@ -38,8 +38,8 @@ devDependencies: specifier: ^4.0.0 version: 4.0.1(@ethersproject/abi@5.8.0)(@ethersproject/abstract-signer@5.8.0)(@ethersproject/contracts@5.8.0)(@ethersproject/providers@5.8.0)(@layerzerolabs/devtools-evm@3.0.0)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@nomiclabs/hardhat-ethers@2.2.3)(ethers@5.8.0)(fp-ts@2.16.11)(hardhat-deploy@0.12.4)(hardhat@2.26.4) '@layerzerolabs/devtools-solana': - specifier: ~3.0.4 - version: 3.0.4(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@solana/web3.js@1.98.4)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) + specifier: ~3.0.6 + version: 3.0.6(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@solana/web3.js@1.98.4)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) '@layerzerolabs/eslint-config-next': specifier: ~2.3.39 version: 2.3.44(typescript@5.9.3) @@ -87,7 +87,7 @@ devDependencies: version: 5.0.1(@ethersproject/abstract-provider@5.8.0)(@ethersproject/abstract-signer@5.8.0)(@ethersproject/bignumber@5.8.0)(@ethersproject/constants@5.8.0)(@ethersproject/contracts@5.8.0)(@ethersproject/providers@5.8.0)(@layerzerolabs/devtools-evm@3.0.0)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/protocol-devtools@3.0.1)(zod@3.25.76) '@layerzerolabs/protocol-devtools-solana': specifier: ^8.0.3 - version: 8.0.3(@layerzerolabs/devtools-solana@3.0.4)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76) + version: 8.0.3(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76) '@layerzerolabs/solhint-config': specifier: ^3.0.12 version: 3.0.142(typescript@5.9.3) @@ -114,7 +114,7 @@ devDependencies: version: 9.0.0(@ethersproject/abi@5.8.0)(@ethersproject/bytes@5.8.0)(@ethersproject/contracts@5.8.0)(@ethersproject/hash@5.8.0)(@layerzerolabs/devtools-evm-hardhat@4.0.1)(@layerzerolabs/devtools-evm@3.0.0)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/protocol-devtools-evm@5.0.1)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools-evm@7.0.0)(@layerzerolabs/ua-devtools@5.0.1)(ethers@5.8.0)(hardhat-deploy@0.12.4)(hardhat@2.26.4) '@layerzerolabs/ua-devtools-solana': specifier: ~8.0.2 - version: 8.0.2(@layerzerolabs/devtools-solana@3.0.4)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/oft-v2-solana-sdk@3.0.142)(@layerzerolabs/protocol-devtools-solana@8.0.3)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76) + version: 8.0.2(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/oft-v2-solana-sdk@3.0.142)(@layerzerolabs/protocol-devtools-solana@8.0.3)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76) '@metaplex-foundation/mpl-token-metadata': specifier: ^3.2.1 version: 3.4.0(@metaplex-foundation/umi@0.9.2) @@ -2055,12 +2055,12 @@ packages: - utf-8-validate dev: true - /@layerzerolabs/devtools-solana@3.0.4(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@solana/web3.js@1.98.4)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76): - resolution: {integrity: sha512-RWZsWgG8u0gf6zon/rm5BE2WreSpHL/Li9EkJpxPIrgEs3bDQXB088NTMUBvhlmWGs4M1gCMiA49tUD2tR9V8Q==} + /@layerzerolabs/devtools-solana@3.0.6(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@solana/web3.js@1.98.4)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76): + resolution: {integrity: sha512-QOcEIkof5BfAsRM3HiBlqieELA7rbQg5K+wDQJp6uk0OBkJtxWMBNDBYh58fwVMxILjKT1gKf49ElZYI7Sty8A==} peerDependencies: - '@layerzerolabs/devtools': ~2.0.3 - '@layerzerolabs/io-devtools': ~0.3.0 - '@layerzerolabs/lz-definitions': ^3.0.75 + '@layerzerolabs/devtools': ~2.0.4 + '@layerzerolabs/io-devtools': ~0.3.2 + '@layerzerolabs/lz-definitions': ^3.0.148 '@solana/web3.js': ^1.98.0 bn.js: ^5.2.0 fp-ts: ^2.16.2 @@ -2526,7 +2526,7 @@ packages: zod: 3.25.76 dev: true - /@layerzerolabs/protocol-devtools-solana@8.0.3(@layerzerolabs/devtools-solana@3.0.4)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76): + /@layerzerolabs/protocol-devtools-solana@8.0.3(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76): resolution: {integrity: sha512-zeor10qzjlVgmGDmlbb/s2JMo8pPGHmRcsnDgorunGwAop3BfZkSZI8RbpedXSNVPTfDAdC0VXykpHsXHyrCKg==} peerDependencies: '@layerzerolabs/devtools': ~2.0.0 @@ -2542,7 +2542,7 @@ packages: zod: ^3.22.4 dependencies: '@layerzerolabs/devtools': 2.0.3(@ethersproject/bytes@5.8.0)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(zod@3.25.76) - '@layerzerolabs/devtools-solana': 3.0.4(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@solana/web3.js@1.98.4)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) + '@layerzerolabs/devtools-solana': 3.0.6(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@solana/web3.js@1.98.4)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) '@layerzerolabs/io-devtools': 0.3.1(ink-gradient@2.0.0)(ink-table@3.1.0)(ink@3.2.0)(react@17.0.2)(yoga-layout-prebuilt@1.10.0)(zod@3.25.76) '@layerzerolabs/lz-definitions': 3.0.142 '@layerzerolabs/lz-solana-sdk-v2': 3.0.142(fastestsmallesttextencoderdecoder@1.0.22)(got@11.8.6)(typescript@5.9.3) @@ -2758,7 +2758,7 @@ packages: zod: 3.25.76 dev: true - /@layerzerolabs/ua-devtools-solana@8.0.2(@layerzerolabs/devtools-solana@3.0.4)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/oft-v2-solana-sdk@3.0.142)(@layerzerolabs/protocol-devtools-solana@8.0.3)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76): + /@layerzerolabs/ua-devtools-solana@8.0.2(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/oft-v2-solana-sdk@3.0.142)(@layerzerolabs/protocol-devtools-solana@8.0.3)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76): resolution: {integrity: sha512-S1uiwLKJZQ87h9V51w1gTDgnMXtq45zHxO5xJ7XUIM7B+NoOX2arZB3cWerwocjAwloKHYBUxmWp8/vhJODkeg==} peerDependencies: '@layerzerolabs/devtools': ~2.0.0 @@ -2776,14 +2776,14 @@ packages: zod: ^3.22.4 dependencies: '@layerzerolabs/devtools': 2.0.3(@ethersproject/bytes@5.8.0)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(zod@3.25.76) - '@layerzerolabs/devtools-solana': 3.0.4(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@solana/web3.js@1.98.4)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) + '@layerzerolabs/devtools-solana': 3.0.6(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@solana/web3.js@1.98.4)(bn.js@5.2.2)(fastestsmallesttextencoderdecoder@1.0.22)(fp-ts@2.16.11)(typescript@5.9.3)(zod@3.25.76) '@layerzerolabs/io-devtools': 0.3.1(ink-gradient@2.0.0)(ink-table@3.1.0)(ink@3.2.0)(react@17.0.2)(yoga-layout-prebuilt@1.10.0)(zod@3.25.76) '@layerzerolabs/lz-definitions': 3.0.142 '@layerzerolabs/lz-solana-sdk-v2': 3.0.142(fastestsmallesttextencoderdecoder@1.0.22)(got@11.8.6)(typescript@5.9.3) '@layerzerolabs/lz-v2-utilities': 3.0.142 '@layerzerolabs/oft-v2-solana-sdk': 3.0.142(fastestsmallesttextencoderdecoder@1.0.22)(got@11.8.6)(typescript@5.9.3) '@layerzerolabs/protocol-devtools': 3.0.1(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(zod@3.25.76) - '@layerzerolabs/protocol-devtools-solana': 8.0.3(@layerzerolabs/devtools-solana@3.0.4)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76) + '@layerzerolabs/protocol-devtools-solana': 8.0.3(@layerzerolabs/devtools-solana@3.0.6)(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-solana-sdk-v2@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/protocol-devtools@3.0.1)(@layerzerolabs/ua-devtools@5.0.1)(@solana/web3.js@1.98.4)(fp-ts@2.16.11)(zod@3.25.76) '@layerzerolabs/ua-devtools': 5.0.1(@layerzerolabs/devtools@2.0.3)(@layerzerolabs/io-devtools@0.3.1)(@layerzerolabs/lz-definitions@3.0.142)(@layerzerolabs/lz-v2-utilities@3.0.142)(@layerzerolabs/protocol-devtools@3.0.1)(zod@3.25.76) '@safe-global/api-kit': 1.3.1 '@safe-global/protocol-kit': 1.3.0(ethers@5.8.0) From 4ce0bffda7cc98a77f4ab161606d5aecff058d33 Mon Sep 17 00:00:00 2001 From: nazreen <10964594+nazreen@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:52:44 -0800 Subject: [PATCH 4/4] add starknet support for normalizepeer --- packages/devtools/src/common/bytes.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/devtools/src/common/bytes.ts b/packages/devtools/src/common/bytes.ts index 97f80d742f..d890dd6c36 100644 --- a/packages/devtools/src/common/bytes.ts +++ b/packages/devtools/src/common/bytes.ts @@ -101,6 +101,7 @@ export const normalizePeer = (address: OmniAddress | null | undefined, eid: Endp case ChainType.APTOS: case ChainType.EVM: + case ChainType.STARKNET: return toBytes32(fromHex(address)) case ChainType.TON: @@ -130,6 +131,7 @@ export const denormalizePeer = (bytes: Uint8Array | null | undefined, eid: Endpo return bs58.encode(toBytes32(bytes)) case ChainType.APTOS: + case ChainType.STARKNET: return toHex(toBytes32(bytes)) case ChainType.EVM: