From c0aed4dab2ea37511197227f39b0171c599242ab Mon Sep 17 00:00:00 2001 From: Dmitry Date: Mon, 7 Aug 2023 20:47:51 +0200 Subject: [PATCH 1/5] Updating existing supported chains after Base deployment - Updated external addresses for Mainnet and Testnet - Updated mappings for existing supported chains --- .../00_resolve_base_wormhole_gateway.ts | 28 +++++++++++++ ...e_with_base_in_wormhole_gateway_mapping.ts | 39 ++++++++++++++++++ .../arbitrumGoerli/BaseWormholeGateway.json | 3 ++ .../arbitrumOne/BaseWormholeGateway.json | 3 ++ .../00_resolve_base_wormhole_gateway.ts | 28 +++++++++++++ ...e_with_base_in_wormhole_gateway_mapping.ts | 39 ++++++++++++++++++ .../optimism/BaseWormholeGateway.json | 3 ++ .../optimismGoerli/BaseWormholeGateway.json | 3 ++ .../00_resolve_base_wormhole_gateway.ts | 28 +++++++++++++ ...e_with_base_in_wormhole_gateway_mapping.ts | 41 +++++++++++++++++++ .../external/mumbai/BaseWormholeGateway.json | 3 ++ .../external/polygon/BaseWormholeGateway.json | 3 ++ 12 files changed, 221 insertions(+) create mode 100644 cross-chain/arbitrum/deploy_l2/00_resolve_base_wormhole_gateway.ts create mode 100644 cross-chain/arbitrum/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts create mode 100644 cross-chain/arbitrum/external/arbitrumGoerli/BaseWormholeGateway.json create mode 100644 cross-chain/arbitrum/external/arbitrumOne/BaseWormholeGateway.json create mode 100644 cross-chain/optimism/deploy_l2/00_resolve_base_wormhole_gateway.ts create mode 100644 cross-chain/optimism/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts create mode 100644 cross-chain/optimism/external/optimism/BaseWormholeGateway.json create mode 100644 cross-chain/optimism/external/optimismGoerli/BaseWormholeGateway.json create mode 100644 cross-chain/polygon/deploy_sidechain/00_resolve_base_wormhole_gateway.ts create mode 100644 cross-chain/polygon/deploy_sidechain/15_update_with_base_in_wormhole_gateway_mapping.ts create mode 100644 cross-chain/polygon/external/mumbai/BaseWormholeGateway.json create mode 100644 cross-chain/polygon/external/polygon/BaseWormholeGateway.json diff --git a/cross-chain/arbitrum/deploy_l2/00_resolve_base_wormhole_gateway.ts b/cross-chain/arbitrum/deploy_l2/00_resolve_base_wormhole_gateway.ts new file mode 100644 index 000000000..598d1c494 --- /dev/null +++ b/cross-chain/arbitrum/deploy_l2/00_resolve_base_wormhole_gateway.ts @@ -0,0 +1,28 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { helpers, deployments } = hre + const { log } = deployments + + const BaseWormholeGateway = await deployments.getOrNull( + "BaseWormholeGateway" + ) + + if ( + BaseWormholeGateway && + helpers.address.isValid(BaseWormholeGateway.address) + ) { + log( + `using existing BaseWormholeGateway at ${BaseWormholeGateway.address}` + ) + } else if (hre.network.name === "hardhat") { + log("using fake BaseWormholeGateway for hardhat network") + } else { + throw new Error("deployed BaseWormholeGateway contract not found") + } +} + +export default func + +func.tags = ["BaseWormholeGateway"] diff --git a/cross-chain/arbitrum/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts b/cross-chain/arbitrum/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts new file mode 100644 index 000000000..fbdfa25d2 --- /dev/null +++ b/cross-chain/arbitrum/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts @@ -0,0 +1,39 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { deployments, getNamedAccounts, ethers } = hre + const { execute, log } = deployments + const { deployer } = await getNamedAccounts() + + // Fake BaseWormholeGateway for local development purposes only. + const fakeBaseWormholeGateway = + "0x1af5DC16568EFF2d480a43A77E6C409e497FcFb9" + + // See https://docs.wormhole.com/wormhole/blockchain-environments/evm#base + // This ID is valid for both Base Testnet and Mainnet + const baseWormholeChainID = 30 + + const baseWormholeGateway = await deployments.getOrNull( + "BaseWormholeGateway" + ) + + let baseWormholeGatewayAddress = baseWormholeGateway?.address + if (!baseWormholeGatewayAddress && hre.network.name === "hardhat") { + baseWormholeGatewayAddress = fakeBaseWormholeGateway + log(`fake BaseWormholeGateway address ${baseWormholeGatewayAddress}`) + } + + await execute( + "ArbitrumWormholeGateway", + { from: deployer, log: true, waitConfirmations: 1 }, + "updateGatewayAddress", + baseWormholeChainID, + ethers.utils.hexZeroPad(baseWormholeGatewayAddress, 32) + ) +} + +export default func + +func.tags = ["SetBaseGatewayAddress"] +func.dependencies = ["BaseWormholeGateway"] diff --git a/cross-chain/arbitrum/external/arbitrumGoerli/BaseWormholeGateway.json b/cross-chain/arbitrum/external/arbitrumGoerli/BaseWormholeGateway.json new file mode 100644 index 000000000..74c39592d --- /dev/null +++ b/cross-chain/arbitrum/external/arbitrumGoerli/BaseWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0xe3e0511EEbD87F08FbaE4486419cb5dFB06e1343" +} diff --git a/cross-chain/arbitrum/external/arbitrumOne/BaseWormholeGateway.json b/cross-chain/arbitrum/external/arbitrumOne/BaseWormholeGateway.json new file mode 100644 index 000000000..6571efe8d --- /dev/null +++ b/cross-chain/arbitrum/external/arbitrumOne/BaseWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0x09959798B95d00a3183d20FaC298E4594E599eab" +} diff --git a/cross-chain/optimism/deploy_l2/00_resolve_base_wormhole_gateway.ts b/cross-chain/optimism/deploy_l2/00_resolve_base_wormhole_gateway.ts new file mode 100644 index 000000000..598d1c494 --- /dev/null +++ b/cross-chain/optimism/deploy_l2/00_resolve_base_wormhole_gateway.ts @@ -0,0 +1,28 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { helpers, deployments } = hre + const { log } = deployments + + const BaseWormholeGateway = await deployments.getOrNull( + "BaseWormholeGateway" + ) + + if ( + BaseWormholeGateway && + helpers.address.isValid(BaseWormholeGateway.address) + ) { + log( + `using existing BaseWormholeGateway at ${BaseWormholeGateway.address}` + ) + } else if (hre.network.name === "hardhat") { + log("using fake BaseWormholeGateway for hardhat network") + } else { + throw new Error("deployed BaseWormholeGateway contract not found") + } +} + +export default func + +func.tags = ["BaseWormholeGateway"] diff --git a/cross-chain/optimism/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts b/cross-chain/optimism/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts new file mode 100644 index 000000000..854060ea4 --- /dev/null +++ b/cross-chain/optimism/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts @@ -0,0 +1,39 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { deployments, getNamedAccounts, ethers } = hre + const { execute, log } = deployments + const { deployer } = await getNamedAccounts() + + // Fake BaseWormholeGateway for local development purposes only. + const fakeBaseWormholeGateway = + "0x1af5DC16568EFF2d480a43A77E6C409e497FcFb9" + + // See https://docs.wormhole.com/wormhole/blockchain-environments/evm#base + // This ID is valid for both Base Testnet and Mainnet + const baseWormholeChainID = 30 + + const baseWormholeGateway = await deployments.getOrNull( + "BaseWormholeGateway" + ) + + let baseWormholeGatewayAddress = baseWormholeGateway?.address + if (!baseWormholeGatewayAddress && hre.network.name === "hardhat") { + baseWormholeGatewayAddress = fakeBaseWormholeGateway + log(`fake BaseWormholeGateway address ${baseWormholeGatewayAddress}`) + } + + await execute( + "OptimismWormholeGateway", + { from: deployer, log: true, waitConfirmations: 1 }, + "updateGatewayAddress", + baseWormholeChainID, + ethers.utils.hexZeroPad(baseWormholeGatewayAddress, 32) + ) +} + +export default func + +func.tags = ["SetBaseGatewayAddress"] +func.dependencies = ["BaseWormholeGateway"] diff --git a/cross-chain/optimism/external/optimism/BaseWormholeGateway.json b/cross-chain/optimism/external/optimism/BaseWormholeGateway.json new file mode 100644 index 000000000..6571efe8d --- /dev/null +++ b/cross-chain/optimism/external/optimism/BaseWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0x09959798B95d00a3183d20FaC298E4594E599eab" +} diff --git a/cross-chain/optimism/external/optimismGoerli/BaseWormholeGateway.json b/cross-chain/optimism/external/optimismGoerli/BaseWormholeGateway.json new file mode 100644 index 000000000..74c39592d --- /dev/null +++ b/cross-chain/optimism/external/optimismGoerli/BaseWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0xe3e0511EEbD87F08FbaE4486419cb5dFB06e1343" +} diff --git a/cross-chain/polygon/deploy_sidechain/00_resolve_base_wormhole_gateway.ts b/cross-chain/polygon/deploy_sidechain/00_resolve_base_wormhole_gateway.ts new file mode 100644 index 000000000..598d1c494 --- /dev/null +++ b/cross-chain/polygon/deploy_sidechain/00_resolve_base_wormhole_gateway.ts @@ -0,0 +1,28 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { helpers, deployments } = hre + const { log } = deployments + + const BaseWormholeGateway = await deployments.getOrNull( + "BaseWormholeGateway" + ) + + if ( + BaseWormholeGateway && + helpers.address.isValid(BaseWormholeGateway.address) + ) { + log( + `using existing BaseWormholeGateway at ${BaseWormholeGateway.address}` + ) + } else if (hre.network.name === "hardhat") { + log("using fake BaseWormholeGateway for hardhat network") + } else { + throw new Error("deployed BaseWormholeGateway contract not found") + } +} + +export default func + +func.tags = ["BaseWormholeGateway"] diff --git a/cross-chain/polygon/deploy_sidechain/15_update_with_base_in_wormhole_gateway_mapping.ts b/cross-chain/polygon/deploy_sidechain/15_update_with_base_in_wormhole_gateway_mapping.ts new file mode 100644 index 000000000..d5f4d771d --- /dev/null +++ b/cross-chain/polygon/deploy_sidechain/15_update_with_base_in_wormhole_gateway_mapping.ts @@ -0,0 +1,41 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { deployments, getNamedAccounts, ethers } = hre + const { execute, log } = deployments + const { deployer } = await getNamedAccounts() + + // Fake BaseWormholeGateway for local development purposes only. + const fakeBaseWormholeGateway = + "0x2af5DC16568EFF2d480a43A77E6C409e497FcFb9" + + // See https://docs.wormhole.com/wormhole/blockchain-environments/evm#base + // This ID is valid for both Base Goerli and Mainnet + const baseWormholeChainID = 30 + + const baseWormholeGateway = await deployments.getOrNull( + "BaseWormholeGateway" + ) + + let baseWormholeGatewayAddress = baseWormholeGateway?.address + if (!baseWormholeGatewayAddress && hre.network.name === "hardhat") { + baseWormholeGatewayAddress = fakeBaseWormholeGateway + log( + `fake BaseWormholeGateway address ${baseWormholeGatewayAddress}` + ) + } + + await execute( + "PolygonWormholeGateway", + { from: deployer, log: true, waitConfirmations: 1 }, + "updateGatewayAddress", + baseWormholeChainID, + ethers.utils.hexZeroPad(baseWormholeGatewayAddress, 32) + ) +} + +export default func + +func.tags = ["SetBaseGatewayAddress"] +func.dependencies = ["BaseWormholeGateway"] diff --git a/cross-chain/polygon/external/mumbai/BaseWormholeGateway.json b/cross-chain/polygon/external/mumbai/BaseWormholeGateway.json new file mode 100644 index 000000000..74c39592d --- /dev/null +++ b/cross-chain/polygon/external/mumbai/BaseWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0xe3e0511EEbD87F08FbaE4486419cb5dFB06e1343" +} diff --git a/cross-chain/polygon/external/polygon/BaseWormholeGateway.json b/cross-chain/polygon/external/polygon/BaseWormholeGateway.json new file mode 100644 index 000000000..6571efe8d --- /dev/null +++ b/cross-chain/polygon/external/polygon/BaseWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0x09959798B95d00a3183d20FaC298E4594E599eab" +} From 0822d07e5245340f34f959ddd0561c41c4b2d0e1 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Mon, 7 Aug 2023 20:54:57 +0200 Subject: [PATCH 2/5] Linting only --- .../deploy_l2/00_resolve_base_wormhole_gateway.ts | 8 ++------ ...15_update_with_base_in_wormhole_gateway_mapping.ts | 7 ++----- .../deploy_l2/00_resolve_base_wormhole_gateway.ts | 8 ++------ ...15_update_with_base_in_wormhole_gateway_mapping.ts | 7 ++----- .../00_resolve_base_wormhole_gateway.ts | 8 ++------ ...15_update_with_base_in_wormhole_gateway_mapping.ts | 11 +++-------- 6 files changed, 13 insertions(+), 36 deletions(-) diff --git a/cross-chain/arbitrum/deploy_l2/00_resolve_base_wormhole_gateway.ts b/cross-chain/arbitrum/deploy_l2/00_resolve_base_wormhole_gateway.ts index 598d1c494..b615c4850 100644 --- a/cross-chain/arbitrum/deploy_l2/00_resolve_base_wormhole_gateway.ts +++ b/cross-chain/arbitrum/deploy_l2/00_resolve_base_wormhole_gateway.ts @@ -5,17 +5,13 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { const { helpers, deployments } = hre const { log } = deployments - const BaseWormholeGateway = await deployments.getOrNull( - "BaseWormholeGateway" - ) + const BaseWormholeGateway = await deployments.getOrNull("BaseWormholeGateway") if ( BaseWormholeGateway && helpers.address.isValid(BaseWormholeGateway.address) ) { - log( - `using existing BaseWormholeGateway at ${BaseWormholeGateway.address}` - ) + log(`using existing BaseWormholeGateway at ${BaseWormholeGateway.address}`) } else if (hre.network.name === "hardhat") { log("using fake BaseWormholeGateway for hardhat network") } else { diff --git a/cross-chain/arbitrum/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts b/cross-chain/arbitrum/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts index fbdfa25d2..bed5ff5ad 100644 --- a/cross-chain/arbitrum/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts +++ b/cross-chain/arbitrum/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts @@ -7,16 +7,13 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { const { deployer } = await getNamedAccounts() // Fake BaseWormholeGateway for local development purposes only. - const fakeBaseWormholeGateway = - "0x1af5DC16568EFF2d480a43A77E6C409e497FcFb9" + const fakeBaseWormholeGateway = "0x1af5DC16568EFF2d480a43A77E6C409e497FcFb9" // See https://docs.wormhole.com/wormhole/blockchain-environments/evm#base // This ID is valid for both Base Testnet and Mainnet const baseWormholeChainID = 30 - const baseWormholeGateway = await deployments.getOrNull( - "BaseWormholeGateway" - ) + const baseWormholeGateway = await deployments.getOrNull("BaseWormholeGateway") let baseWormholeGatewayAddress = baseWormholeGateway?.address if (!baseWormholeGatewayAddress && hre.network.name === "hardhat") { diff --git a/cross-chain/optimism/deploy_l2/00_resolve_base_wormhole_gateway.ts b/cross-chain/optimism/deploy_l2/00_resolve_base_wormhole_gateway.ts index 598d1c494..b615c4850 100644 --- a/cross-chain/optimism/deploy_l2/00_resolve_base_wormhole_gateway.ts +++ b/cross-chain/optimism/deploy_l2/00_resolve_base_wormhole_gateway.ts @@ -5,17 +5,13 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { const { helpers, deployments } = hre const { log } = deployments - const BaseWormholeGateway = await deployments.getOrNull( - "BaseWormholeGateway" - ) + const BaseWormholeGateway = await deployments.getOrNull("BaseWormholeGateway") if ( BaseWormholeGateway && helpers.address.isValid(BaseWormholeGateway.address) ) { - log( - `using existing BaseWormholeGateway at ${BaseWormholeGateway.address}` - ) + log(`using existing BaseWormholeGateway at ${BaseWormholeGateway.address}`) } else if (hre.network.name === "hardhat") { log("using fake BaseWormholeGateway for hardhat network") } else { diff --git a/cross-chain/optimism/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts b/cross-chain/optimism/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts index 854060ea4..8c69bec2a 100644 --- a/cross-chain/optimism/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts +++ b/cross-chain/optimism/deploy_l2/15_update_with_base_in_wormhole_gateway_mapping.ts @@ -7,16 +7,13 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { const { deployer } = await getNamedAccounts() // Fake BaseWormholeGateway for local development purposes only. - const fakeBaseWormholeGateway = - "0x1af5DC16568EFF2d480a43A77E6C409e497FcFb9" + const fakeBaseWormholeGateway = "0x1af5DC16568EFF2d480a43A77E6C409e497FcFb9" // See https://docs.wormhole.com/wormhole/blockchain-environments/evm#base // This ID is valid for both Base Testnet and Mainnet const baseWormholeChainID = 30 - const baseWormholeGateway = await deployments.getOrNull( - "BaseWormholeGateway" - ) + const baseWormholeGateway = await deployments.getOrNull("BaseWormholeGateway") let baseWormholeGatewayAddress = baseWormholeGateway?.address if (!baseWormholeGatewayAddress && hre.network.name === "hardhat") { diff --git a/cross-chain/polygon/deploy_sidechain/00_resolve_base_wormhole_gateway.ts b/cross-chain/polygon/deploy_sidechain/00_resolve_base_wormhole_gateway.ts index 598d1c494..b615c4850 100644 --- a/cross-chain/polygon/deploy_sidechain/00_resolve_base_wormhole_gateway.ts +++ b/cross-chain/polygon/deploy_sidechain/00_resolve_base_wormhole_gateway.ts @@ -5,17 +5,13 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { const { helpers, deployments } = hre const { log } = deployments - const BaseWormholeGateway = await deployments.getOrNull( - "BaseWormholeGateway" - ) + const BaseWormholeGateway = await deployments.getOrNull("BaseWormholeGateway") if ( BaseWormholeGateway && helpers.address.isValid(BaseWormholeGateway.address) ) { - log( - `using existing BaseWormholeGateway at ${BaseWormholeGateway.address}` - ) + log(`using existing BaseWormholeGateway at ${BaseWormholeGateway.address}`) } else if (hre.network.name === "hardhat") { log("using fake BaseWormholeGateway for hardhat network") } else { diff --git a/cross-chain/polygon/deploy_sidechain/15_update_with_base_in_wormhole_gateway_mapping.ts b/cross-chain/polygon/deploy_sidechain/15_update_with_base_in_wormhole_gateway_mapping.ts index d5f4d771d..c0db4cbff 100644 --- a/cross-chain/polygon/deploy_sidechain/15_update_with_base_in_wormhole_gateway_mapping.ts +++ b/cross-chain/polygon/deploy_sidechain/15_update_with_base_in_wormhole_gateway_mapping.ts @@ -7,23 +7,18 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { const { deployer } = await getNamedAccounts() // Fake BaseWormholeGateway for local development purposes only. - const fakeBaseWormholeGateway = - "0x2af5DC16568EFF2d480a43A77E6C409e497FcFb9" + const fakeBaseWormholeGateway = "0x2af5DC16568EFF2d480a43A77E6C409e497FcFb9" // See https://docs.wormhole.com/wormhole/blockchain-environments/evm#base // This ID is valid for both Base Goerli and Mainnet const baseWormholeChainID = 30 - const baseWormholeGateway = await deployments.getOrNull( - "BaseWormholeGateway" - ) + const baseWormholeGateway = await deployments.getOrNull("BaseWormholeGateway") let baseWormholeGatewayAddress = baseWormholeGateway?.address if (!baseWormholeGatewayAddress && hre.network.name === "hardhat") { baseWormholeGatewayAddress = fakeBaseWormholeGateway - log( - `fake BaseWormholeGateway address ${baseWormholeGatewayAddress}` - ) + log(`fake BaseWormholeGateway address ${baseWormholeGatewayAddress}`) } await execute( From f4aae4cdce747167554164bb422ed168bb768813 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Wed, 9 Aug 2023 23:09:34 +0200 Subject: [PATCH 3/5] Adding Solana gateway address for supported x-chains --- .../00_resolve_solana_wormhole_gateway.ts | 28 +++++++++++++ ...with_solana_in_wormhole_gateway_mapping.ts | 39 +++++++++++++++++++ .../arbitrumGoerli/SolanaWormholeGateway.json | 3 ++ .../arbitrumOne/SolanaWormholeGateway.json | 3 ++ .../00_resolve_solana_wormhole_gateway.ts | 28 +++++++++++++ ...with_solana_in_wormhole_gateway_mapping.ts | 39 +++++++++++++++++++ .../external/base/SolanaWormholeGateway.json | 3 ++ .../baseGoerli/SolanaWormholeGateway.json | 3 ++ .../00_resolve_solana_wormhole_gateway.ts | 28 +++++++++++++ ...with_solana_in_wormhole_gateway_mapping.ts | 39 +++++++++++++++++++ .../optimism/SolanaWormholeGateway.json | 3 ++ .../optimismGoerli/SolanaWormholeGateway.json | 3 ++ .../00_resolve_solana_wormhole_gateway.ts | 28 +++++++++++++ ...with_solana_in_wormhole_gateway_mapping.ts | 39 +++++++++++++++++++ .../mumbai/SolanaWormholeGateway.json | 3 ++ .../polygon/SolanaWormholeGateway.json | 3 ++ 16 files changed, 292 insertions(+) create mode 100644 cross-chain/arbitrum/deploy_l2/00_resolve_solana_wormhole_gateway.ts create mode 100644 cross-chain/arbitrum/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts create mode 100644 cross-chain/arbitrum/external/arbitrumGoerli/SolanaWormholeGateway.json create mode 100644 cross-chain/arbitrum/external/arbitrumOne/SolanaWormholeGateway.json create mode 100644 cross-chain/base/deploy_l2/00_resolve_solana_wormhole_gateway.ts create mode 100644 cross-chain/base/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts create mode 100644 cross-chain/base/external/base/SolanaWormholeGateway.json create mode 100644 cross-chain/base/external/baseGoerli/SolanaWormholeGateway.json create mode 100644 cross-chain/optimism/deploy_l2/00_resolve_solana_wormhole_gateway.ts create mode 100644 cross-chain/optimism/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts create mode 100644 cross-chain/optimism/external/optimism/SolanaWormholeGateway.json create mode 100644 cross-chain/optimism/external/optimismGoerli/SolanaWormholeGateway.json create mode 100644 cross-chain/polygon/deploy_sidechain/00_resolve_solana_wormhole_gateway.ts create mode 100644 cross-chain/polygon/deploy_sidechain/16_update_with_solana_in_wormhole_gateway_mapping.ts create mode 100644 cross-chain/polygon/external/mumbai/SolanaWormholeGateway.json create mode 100644 cross-chain/polygon/external/polygon/SolanaWormholeGateway.json diff --git a/cross-chain/arbitrum/deploy_l2/00_resolve_solana_wormhole_gateway.ts b/cross-chain/arbitrum/deploy_l2/00_resolve_solana_wormhole_gateway.ts new file mode 100644 index 000000000..3e6d35e5d --- /dev/null +++ b/cross-chain/arbitrum/deploy_l2/00_resolve_solana_wormhole_gateway.ts @@ -0,0 +1,28 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { helpers, deployments } = hre + const { log } = deployments + + const SolanaWormholeGateway = await deployments.getOrNull( + "SolanaWormholeGateway" + ) + + if ( + SolanaWormholeGateway && + helpers.address.isValid(SolanaWormholeGateway.address) + ) { + log( + `using existing SolanaWormholeGateway at ${SolanaWormholeGateway.address}` + ) + } else if (hre.network.name === "hardhat") { + log("using fake SolanaWormholeGateway for hardhat network") + } else { + throw new Error("deployed SolanaWormholeGateway contract not found") + } +} + +export default func + +func.tags = ["SolanaWormholeGateway"] diff --git a/cross-chain/arbitrum/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts b/cross-chain/arbitrum/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts new file mode 100644 index 000000000..c8d15ccab --- /dev/null +++ b/cross-chain/arbitrum/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts @@ -0,0 +1,39 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { deployments, getNamedAccounts } = hre + const { execute, log } = deployments + const { deployer } = await getNamedAccounts() + + // Fake SolanaWormholeGateway for local development purposes only. + const fakeSolanaWormholeGateway = + "0x11a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" + + // See https://docs.wormhole.com/wormhole/blockchain-environments/solana + // This ID is valid for both Solana Devnet and Mainnet + const solanaWormholeChainID = 1 + + const solanaWormholeGateway = await deployments.getOrNull( + "SolanaWormholeGateway" + ) + + let solanaWormholeGatewayAddress = solanaWormholeGateway?.address + if (!solanaWormholeGatewayAddress && hre.network.name === "hardhat") { + solanaWormholeGatewayAddress = fakeSolanaWormholeGateway + log(`fake SolanaWormholeGateway address ${solanaWormholeGatewayAddress}`) + } + + await execute( + "ArbitrumWormholeGateway", + { from: deployer, log: true, waitConfirmations: 1 }, + "updateGatewayAddress", + solanaWormholeChainID, + solanaWormholeGatewayAddress + ) +} + +export default func + +func.tags = ["SetSolanaGatewayAddress"] +func.dependencies = ["ArbitrumWormholeGateway"] diff --git a/cross-chain/arbitrum/external/arbitrumGoerli/SolanaWormholeGateway.json b/cross-chain/arbitrum/external/arbitrumGoerli/SolanaWormholeGateway.json new file mode 100644 index 000000000..dee25fa3e --- /dev/null +++ b/cross-chain/arbitrum/external/arbitrumGoerli/SolanaWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0x69a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" +} diff --git a/cross-chain/arbitrum/external/arbitrumOne/SolanaWormholeGateway.json b/cross-chain/arbitrum/external/arbitrumOne/SolanaWormholeGateway.json new file mode 100644 index 000000000..95e933073 --- /dev/null +++ b/cross-chain/arbitrum/external/arbitrumOne/SolanaWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "tbd" +} diff --git a/cross-chain/base/deploy_l2/00_resolve_solana_wormhole_gateway.ts b/cross-chain/base/deploy_l2/00_resolve_solana_wormhole_gateway.ts new file mode 100644 index 000000000..3e6d35e5d --- /dev/null +++ b/cross-chain/base/deploy_l2/00_resolve_solana_wormhole_gateway.ts @@ -0,0 +1,28 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { helpers, deployments } = hre + const { log } = deployments + + const SolanaWormholeGateway = await deployments.getOrNull( + "SolanaWormholeGateway" + ) + + if ( + SolanaWormholeGateway && + helpers.address.isValid(SolanaWormholeGateway.address) + ) { + log( + `using existing SolanaWormholeGateway at ${SolanaWormholeGateway.address}` + ) + } else if (hre.network.name === "hardhat") { + log("using fake SolanaWormholeGateway for hardhat network") + } else { + throw new Error("deployed SolanaWormholeGateway contract not found") + } +} + +export default func + +func.tags = ["SolanaWormholeGateway"] diff --git a/cross-chain/base/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts b/cross-chain/base/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts new file mode 100644 index 000000000..338b1b070 --- /dev/null +++ b/cross-chain/base/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts @@ -0,0 +1,39 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { deployments, getNamedAccounts } = hre + const { execute, log } = deployments + const { deployer } = await getNamedAccounts() + + // Fake SolanaWormholeGateway for local development purposes only. + const fakeSolanaWormholeGateway = + "0x11a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" + + // See https://docs.wormhole.com/wormhole/blockchain-environments/solana + // This ID is valid for both Solana Devnet and Mainnet + const solanaWormholeChainID = 1 + + const solanaWormholeGateway = await deployments.getOrNull( + "SolanaWormholeGateway" + ) + + let solanaWormholeGatewayAddress = solanaWormholeGateway?.address + if (!solanaWormholeGatewayAddress && hre.network.name === "hardhat") { + solanaWormholeGatewayAddress = fakeSolanaWormholeGateway + log(`fake SolanaWormholeGateway address ${solanaWormholeGatewayAddress}`) + } + + await execute( + "BaseWormholeGateway", + { from: deployer, log: true, waitConfirmations: 1 }, + "updateGatewayAddress", + solanaWormholeChainID, + solanaWormholeGatewayAddress + ) +} + +export default func + +func.tags = ["SetSolanaGatewayAddress"] +func.dependencies = ["BaseWormholeGateway"] diff --git a/cross-chain/base/external/base/SolanaWormholeGateway.json b/cross-chain/base/external/base/SolanaWormholeGateway.json new file mode 100644 index 000000000..95e933073 --- /dev/null +++ b/cross-chain/base/external/base/SolanaWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "tbd" +} diff --git a/cross-chain/base/external/baseGoerli/SolanaWormholeGateway.json b/cross-chain/base/external/baseGoerli/SolanaWormholeGateway.json new file mode 100644 index 000000000..dee25fa3e --- /dev/null +++ b/cross-chain/base/external/baseGoerli/SolanaWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0x69a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" +} diff --git a/cross-chain/optimism/deploy_l2/00_resolve_solana_wormhole_gateway.ts b/cross-chain/optimism/deploy_l2/00_resolve_solana_wormhole_gateway.ts new file mode 100644 index 000000000..3e6d35e5d --- /dev/null +++ b/cross-chain/optimism/deploy_l2/00_resolve_solana_wormhole_gateway.ts @@ -0,0 +1,28 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { helpers, deployments } = hre + const { log } = deployments + + const SolanaWormholeGateway = await deployments.getOrNull( + "SolanaWormholeGateway" + ) + + if ( + SolanaWormholeGateway && + helpers.address.isValid(SolanaWormholeGateway.address) + ) { + log( + `using existing SolanaWormholeGateway at ${SolanaWormholeGateway.address}` + ) + } else if (hre.network.name === "hardhat") { + log("using fake SolanaWormholeGateway for hardhat network") + } else { + throw new Error("deployed SolanaWormholeGateway contract not found") + } +} + +export default func + +func.tags = ["SolanaWormholeGateway"] diff --git a/cross-chain/optimism/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts b/cross-chain/optimism/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts new file mode 100644 index 000000000..487c70c0e --- /dev/null +++ b/cross-chain/optimism/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts @@ -0,0 +1,39 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { deployments, getNamedAccounts } = hre + const { execute, log } = deployments + const { deployer } = await getNamedAccounts() + + // Fake SolanaWormholeGateway for local development purposes only. + const fakeSolanaWormholeGateway = + "0x11a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" + + // See https://docs.wormhole.com/wormhole/blockchain-environments/solana + // This ID is valid for both Solana Devnet and Mainnet + const solanaWormholeChainID = 1 + + const solanaWormholeGateway = await deployments.getOrNull( + "SolanaWormholeGateway" + ) + + let solanaWormholeGatewayAddress = solanaWormholeGateway?.address + if (!solanaWormholeGatewayAddress && hre.network.name === "hardhat") { + solanaWormholeGatewayAddress = fakeSolanaWormholeGateway + log(`fake SolanaWormholeGateway address ${solanaWormholeGatewayAddress}`) + } + + await execute( + "OptimismWormholeGateway", + { from: deployer, log: true, waitConfirmations: 1 }, + "updateGatewayAddress", + solanaWormholeChainID, + solanaWormholeGatewayAddress + ) +} + +export default func + +func.tags = ["SetSolanaGatewayAddress"] +func.dependencies = ["OptimismWormholeGateway"] diff --git a/cross-chain/optimism/external/optimism/SolanaWormholeGateway.json b/cross-chain/optimism/external/optimism/SolanaWormholeGateway.json new file mode 100644 index 000000000..95e933073 --- /dev/null +++ b/cross-chain/optimism/external/optimism/SolanaWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "tbd" +} diff --git a/cross-chain/optimism/external/optimismGoerli/SolanaWormholeGateway.json b/cross-chain/optimism/external/optimismGoerli/SolanaWormholeGateway.json new file mode 100644 index 000000000..dee25fa3e --- /dev/null +++ b/cross-chain/optimism/external/optimismGoerli/SolanaWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0x69a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" +} diff --git a/cross-chain/polygon/deploy_sidechain/00_resolve_solana_wormhole_gateway.ts b/cross-chain/polygon/deploy_sidechain/00_resolve_solana_wormhole_gateway.ts new file mode 100644 index 000000000..3e6d35e5d --- /dev/null +++ b/cross-chain/polygon/deploy_sidechain/00_resolve_solana_wormhole_gateway.ts @@ -0,0 +1,28 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { helpers, deployments } = hre + const { log } = deployments + + const SolanaWormholeGateway = await deployments.getOrNull( + "SolanaWormholeGateway" + ) + + if ( + SolanaWormholeGateway && + helpers.address.isValid(SolanaWormholeGateway.address) + ) { + log( + `using existing SolanaWormholeGateway at ${SolanaWormholeGateway.address}` + ) + } else if (hre.network.name === "hardhat") { + log("using fake SolanaWormholeGateway for hardhat network") + } else { + throw new Error("deployed SolanaWormholeGateway contract not found") + } +} + +export default func + +func.tags = ["SolanaWormholeGateway"] diff --git a/cross-chain/polygon/deploy_sidechain/16_update_with_solana_in_wormhole_gateway_mapping.ts b/cross-chain/polygon/deploy_sidechain/16_update_with_solana_in_wormhole_gateway_mapping.ts new file mode 100644 index 000000000..ab950da84 --- /dev/null +++ b/cross-chain/polygon/deploy_sidechain/16_update_with_solana_in_wormhole_gateway_mapping.ts @@ -0,0 +1,39 @@ +import type { HardhatRuntimeEnvironment } from "hardhat/types" +import type { DeployFunction } from "hardhat-deploy/types" + +const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { + const { deployments, getNamedAccounts } = hre + const { execute, log } = deployments + const { deployer } = await getNamedAccounts() + + // Fake SolanaWormholeGateway for local development purposes only. + const fakeSolanaWormholeGateway = + "0x11a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" + + // See https://docs.wormhole.com/wormhole/blockchain-environments/solana + // This ID is valid for both Solana Devnet and Mainnet + const solanaWormholeChainID = 1 + + const solanaWormholeGateway = await deployments.getOrNull( + "SolanaWormholeGateway" + ) + + let solanaWormholeGatewayAddress = solanaWormholeGateway?.address + if (!solanaWormholeGatewayAddress && hre.network.name === "hardhat") { + solanaWormholeGatewayAddress = fakeSolanaWormholeGateway + log(`fake SolanaWormholeGateway address ${solanaWormholeGatewayAddress}`) + } + + await execute( + "PolygonWormholeGateway", + { from: deployer, log: true, waitConfirmations: 1 }, + "updateGatewayAddress", + solanaWormholeChainID, + solanaWormholeGatewayAddress + ) +} + +export default func + +func.tags = ["SetSolanaGatewayAddress"] +func.dependencies = ["PolygonWormholeGateway"] diff --git a/cross-chain/polygon/external/mumbai/SolanaWormholeGateway.json b/cross-chain/polygon/external/mumbai/SolanaWormholeGateway.json new file mode 100644 index 000000000..dee25fa3e --- /dev/null +++ b/cross-chain/polygon/external/mumbai/SolanaWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "0x69a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" +} diff --git a/cross-chain/polygon/external/polygon/SolanaWormholeGateway.json b/cross-chain/polygon/external/polygon/SolanaWormholeGateway.json new file mode 100644 index 000000000..95e933073 --- /dev/null +++ b/cross-chain/polygon/external/polygon/SolanaWormholeGateway.json @@ -0,0 +1,3 @@ +{ + "address": "tbd" +} From a736dadc7e18c7ff61ba8421b04f32a4f3fd5671 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Mon, 14 Aug 2023 15:54:35 +0200 Subject: [PATCH 4/5] Updating with Solana mainnet address --- .../arbitrum/external/arbitrumOne/SolanaWormholeGateway.json | 2 +- cross-chain/base/external/base/SolanaWormholeGateway.json | 2 +- .../optimism/external/optimism/SolanaWormholeGateway.json | 2 +- cross-chain/polygon/external/polygon/SolanaWormholeGateway.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cross-chain/arbitrum/external/arbitrumOne/SolanaWormholeGateway.json b/cross-chain/arbitrum/external/arbitrumOne/SolanaWormholeGateway.json index 95e933073..dee25fa3e 100644 --- a/cross-chain/arbitrum/external/arbitrumOne/SolanaWormholeGateway.json +++ b/cross-chain/arbitrum/external/arbitrumOne/SolanaWormholeGateway.json @@ -1,3 +1,3 @@ { - "address": "tbd" + "address": "0x69a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" } diff --git a/cross-chain/base/external/base/SolanaWormholeGateway.json b/cross-chain/base/external/base/SolanaWormholeGateway.json index 95e933073..dee25fa3e 100644 --- a/cross-chain/base/external/base/SolanaWormholeGateway.json +++ b/cross-chain/base/external/base/SolanaWormholeGateway.json @@ -1,3 +1,3 @@ { - "address": "tbd" + "address": "0x69a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" } diff --git a/cross-chain/optimism/external/optimism/SolanaWormholeGateway.json b/cross-chain/optimism/external/optimism/SolanaWormholeGateway.json index 95e933073..dee25fa3e 100644 --- a/cross-chain/optimism/external/optimism/SolanaWormholeGateway.json +++ b/cross-chain/optimism/external/optimism/SolanaWormholeGateway.json @@ -1,3 +1,3 @@ { - "address": "tbd" + "address": "0x69a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" } diff --git a/cross-chain/polygon/external/polygon/SolanaWormholeGateway.json b/cross-chain/polygon/external/polygon/SolanaWormholeGateway.json index 95e933073..dee25fa3e 100644 --- a/cross-chain/polygon/external/polygon/SolanaWormholeGateway.json +++ b/cross-chain/polygon/external/polygon/SolanaWormholeGateway.json @@ -1,3 +1,3 @@ { - "address": "tbd" + "address": "0x69a22dc2e01ecd2ae40864822d4406ff8aed4e2b8932385dabe818422ff67e1b" } From d9a4e7c2e459501926111e699d321131f84f953b Mon Sep 17 00:00:00 2001 From: Dmitry Date: Mon, 14 Aug 2023 16:24:16 +0200 Subject: [PATCH 5/5] Adding SolanaWormholeGateway tag dependency for EVMs --- .../16_update_with_solana_in_wormhole_gateway_mapping.ts | 2 +- .../16_update_with_solana_in_wormhole_gateway_mapping.ts | 2 +- .../16_update_with_solana_in_wormhole_gateway_mapping.ts | 2 +- .../16_update_with_solana_in_wormhole_gateway_mapping.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cross-chain/arbitrum/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts b/cross-chain/arbitrum/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts index c8d15ccab..0f026846b 100644 --- a/cross-chain/arbitrum/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts +++ b/cross-chain/arbitrum/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts @@ -36,4 +36,4 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { export default func func.tags = ["SetSolanaGatewayAddress"] -func.dependencies = ["ArbitrumWormholeGateway"] +func.dependencies = ["ArbitrumWormholeGateway", "SolanaWormholeGateway"] diff --git a/cross-chain/base/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts b/cross-chain/base/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts index 338b1b070..8a2e06762 100644 --- a/cross-chain/base/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts +++ b/cross-chain/base/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts @@ -36,4 +36,4 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { export default func func.tags = ["SetSolanaGatewayAddress"] -func.dependencies = ["BaseWormholeGateway"] +func.dependencies = ["BaseWormholeGateway", "SolanaWormholeGateway"] diff --git a/cross-chain/optimism/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts b/cross-chain/optimism/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts index 487c70c0e..2d5c85dca 100644 --- a/cross-chain/optimism/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts +++ b/cross-chain/optimism/deploy_l2/16_update_with_solana_in_wormhole_gateway_mapping.ts @@ -36,4 +36,4 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { export default func func.tags = ["SetSolanaGatewayAddress"] -func.dependencies = ["OptimismWormholeGateway"] +func.dependencies = ["OptimismWormholeGateway", "SolanaWormholeGateway"] diff --git a/cross-chain/polygon/deploy_sidechain/16_update_with_solana_in_wormhole_gateway_mapping.ts b/cross-chain/polygon/deploy_sidechain/16_update_with_solana_in_wormhole_gateway_mapping.ts index ab950da84..1814f79c4 100644 --- a/cross-chain/polygon/deploy_sidechain/16_update_with_solana_in_wormhole_gateway_mapping.ts +++ b/cross-chain/polygon/deploy_sidechain/16_update_with_solana_in_wormhole_gateway_mapping.ts @@ -36,4 +36,4 @@ const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) { export default func func.tags = ["SetSolanaGatewayAddress"] -func.dependencies = ["PolygonWormholeGateway"] +func.dependencies = ["PolygonWormholeGateway", "SolanaWormholeGateway"]