Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions env/arbitrum-sepolia.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@
"gateway": "0xe1cE95479C84e9809269227C7F8524aE051Ae77a",
"gasService": "0xbE406F0189A0B4cf3A05C286473D23791Dd44Cc6",
"deploy": true
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {
Expand Down
12 changes: 9 additions & 3 deletions env/arbitrum.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@
"gateway": "0xe432150cce91c13a887f7D836923d5597adD8E31",
"gasService": "0x2d5d7d31F671F86C782533cc367F14109a082712",
"deploy": true
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {
Expand All @@ -46,10 +52,10 @@
"contractUpdater": "0x8dD5a3d4e9ec54388dAd23B8a1f3B2159B2f2D85",
"routerEscrow": "0xB86B6AE94E6d05AAc086665534A73fee557EE9F6",
"globalEscrow": "0x43d51be0B6dE2199A2396bA604114d24383F91E9",
"asyncRequestManager": "0xF06f89a1b6C601235729A689595571B7455dD433",
"asyncRequestManager": "0xf06f89A1b6C601235729A689595571B7455Dd433",
"syncManager": "0x0D82d9fa76CFCd6F4cc59F053b2458665C6CE773",
"asyncVaultFactory": "0xED9D489BB79c7cB58C522f36fC6944eaA95ce385",
"syncDepositVaultFactory": "0x21bf2544b5a0B03C8566a16592Ba1B3b192b50Bc",
"asyncVaultFactory": "0xb47E57b4D477FF80c42dB8B02CB5cb1a74b5D20a",
"syncDepositVaultFactory": "0x00E3c7EE9Bbc98B9Cb4Cc2c06fb211c1Bb199Ee5",
"vaultRouter": "0xdbCcee499563D4AC2D3788DeD3acb14FB92B175D",
"freezeOnlyHook": "0xBb7ABFB0E62dfb36e02CeeCDA59ADFD71f50c88e",
"fullRestrictionsHook": "0xa2C98F0F76Da0C97039688CA6280d082942d0b48",
Expand Down
12 changes: 9 additions & 3 deletions env/avalanche.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@
"gateway": "0x5029C0EFf6C34351a0CEc334542cDb22c7928f78",
"gasService": "0x2d5d7d31F671F86C782533cc367F14109a082712",
"deploy": true
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {
Expand All @@ -46,10 +52,10 @@
"contractUpdater": "0x8dD5a3d4e9ec54388dAd23B8a1f3B2159B2f2D85",
"routerEscrow": "0xB86B6AE94E6d05AAc086665534A73fee557EE9F6",
"globalEscrow": "0x43d51be0B6dE2199A2396bA604114d24383F91E9",
"asyncRequestManager": "0xF06f89a1b6C601235729A689595571B7455dD433",
"asyncRequestManager": "0xf06f89A1b6C601235729A689595571B7455Dd433",
"syncManager": "0x0D82d9fa76CFCd6F4cc59F053b2458665C6CE773",
"asyncVaultFactory": "0xED9D489BB79c7cB58C522f36fC6944eaA95ce385",
"syncDepositVaultFactory": "0x21bf2544b5a0B03C8566a16592Ba1B3b192b50Bc",
"asyncVaultFactory": "0xb47E57b4D477FF80c42dB8B02CB5cb1a74b5D20a",
"syncDepositVaultFactory": "0x00E3c7EE9Bbc98B9Cb4Cc2c06fb211c1Bb199Ee5",
"vaultRouter": "0xdbCcee499563D4AC2D3788DeD3acb14FB92B175D",
"freezeOnlyHook": "0xBb7ABFB0E62dfb36e02CeeCDA59ADFD71f50c88e",
"fullRestrictionsHook": "0xa2C98F0F76Da0C97039688CA6280d082942d0b48",
Expand Down
6 changes: 6 additions & 0 deletions env/base-sepolia.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@
"gateway": "0xe432150cce91c13a887f7D836923d5597adD8E31",
"gasService": "0xbE406F0189A0B4cf3A05C286473D23791Dd44Cc6",
"deploy": true
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {
Expand Down
12 changes: 9 additions & 3 deletions env/base.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@
"gateway": "0xe432150cce91c13a887f7D836923d5597adD8E31",
"gasService": "0x2d5d7d31F671F86C782533cc367F14109a082712",
"deploy": true
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {
Expand All @@ -46,10 +52,10 @@
"contractUpdater": "0x8dD5a3d4e9ec54388dAd23B8a1f3B2159B2f2D85",
"routerEscrow": "0xB86B6AE94E6d05AAc086665534A73fee557EE9F6",
"globalEscrow": "0x43d51be0B6dE2199A2396bA604114d24383F91E9",
"asyncRequestManager": "0xF06f89a1b6C601235729A689595571B7455dD433",
"asyncRequestManager": "0xf06f89A1b6C601235729A689595571B7455Dd433",
"syncManager": "0x0D82d9fa76CFCd6F4cc59F053b2458665C6CE773",
"asyncVaultFactory": "0xED9D489BB79c7cB58C522f36fC6944eaA95ce385",
"syncDepositVaultFactory": "0x21bf2544b5a0B03C8566a16592Ba1B3b192b50Bc",
"asyncVaultFactory": "0xb47E57b4D477FF80c42dB8B02CB5cb1a74b5D20a",
"syncDepositVaultFactory": "0x00E3c7EE9Bbc98B9Cb4Cc2c06fb211c1Bb199Ee5",
"vaultRouter": "0xdbCcee499563D4AC2D3788DeD3acb14FB92B175D",
"freezeOnlyHook": "0xBb7ABFB0E62dfb36e02CeeCDA59ADFD71f50c88e",
"fullRestrictionsHook": "0xa2C98F0F76Da0C97039688CA6280d082942d0b48",
Expand Down
12 changes: 9 additions & 3 deletions env/bnb-smart-chain.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@
"gateway": "0x304acf330bbE08d1e512eefaa92F6a57871fD895",
"gasService": "0x2d5d7d31F671F86C782533cc367F14109a082712",
"deploy": true
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {
Expand All @@ -46,10 +52,10 @@
"contractUpdater": "0x8dD5a3d4e9ec54388dAd23B8a1f3B2159B2f2D85",
"routerEscrow": "0xB86B6AE94E6d05AAc086665534A73fee557EE9F6",
"globalEscrow": "0x43d51be0B6dE2199A2396bA604114d24383F91E9",
"asyncRequestManager": "0xF06f89a1b6C601235729A689595571B7455dD433",
"asyncRequestManager": "0xf06f89A1b6C601235729A689595571B7455Dd433",
"syncManager": "0x0D82d9fa76CFCd6F4cc59F053b2458665C6CE773",
"asyncVaultFactory": "0xED9D489BB79c7cB58C522f36fC6944eaA95ce385",
"syncDepositVaultFactory": "0x21bf2544b5a0B03C8566a16592Ba1B3b192b50Bc",
"asyncVaultFactory": "0xb47E57b4D477FF80c42dB8B02CB5cb1a74b5D20a",
"syncDepositVaultFactory": "0x00E3c7EE9Bbc98B9Cb4Cc2c06fb211c1Bb199Ee5",
"vaultRouter": "0xdbCcee499563D4AC2D3788DeD3acb14FB92B175D",
"freezeOnlyHook": "0xBb7ABFB0E62dfb36e02CeeCDA59ADFD71f50c88e",
"fullRestrictionsHook": "0xa2C98F0F76Da0C97039688CA6280d082942d0b48",
Expand Down
12 changes: 9 additions & 3 deletions env/ethereum.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@
"gateway": "0x4F4495243837681061C4743b74B3eEdf548D56A5",
"gasService": "0x2d5d7d31F671F86C782533cc367F14109a082712",
"deploy": true
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {
Expand All @@ -46,10 +52,10 @@
"contractUpdater": "0x8dD5a3d4e9ec54388dAd23B8a1f3B2159B2f2D85",
"routerEscrow": "0xB86B6AE94E6d05AAc086665534A73fee557EE9F6",
"globalEscrow": "0x43d51be0B6dE2199A2396bA604114d24383F91E9",
"asyncRequestManager": "0xF06f89a1b6C601235729A689595571B7455dD433",
"asyncRequestManager": "0xf06f89A1b6C601235729A689595571B7455Dd433",
"syncManager": "0x0D82d9fa76CFCd6F4cc59F053b2458665C6CE773",
"asyncVaultFactory": "0xED9D489BB79c7cB58C522f36fC6944eaA95ce385",
"syncDepositVaultFactory": "0x21bf2544b5a0B03C8566a16592Ba1B3b192b50Bc",
"asyncVaultFactory": "0xb47E57b4D477FF80c42dB8B02CB5cb1a74b5D20a",
"syncDepositVaultFactory": "0x00E3c7EE9Bbc98B9Cb4Cc2c06fb211c1Bb199Ee5",
"vaultRouter": "0xdbCcee499563D4AC2D3788DeD3acb14FB92B175D",
"freezeOnlyHook": "0xBb7ABFB0E62dfb36e02CeeCDA59ADFD71f50c88e",
"fullRestrictionsHook": "0xa2C98F0F76Da0C97039688CA6280d082942d0b48",
Expand Down
6 changes: 6 additions & 0 deletions env/example.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@
"gateway": "0x...",
"gasService": "0x...",
"deploy": false
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {},
Expand Down
12 changes: 9 additions & 3 deletions env/plume.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@
"gateway": null,
"gasService": null,
"deploy": false
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {
Expand All @@ -43,10 +49,10 @@
"contractUpdater": "0x8dD5a3d4e9ec54388dAd23B8a1f3B2159B2f2D85",
"routerEscrow": "0xB86B6AE94E6d05AAc086665534A73fee557EE9F6",
"globalEscrow": "0x43d51be0B6dE2199A2396bA604114d24383F91E9",
"asyncRequestManager": "0xF06f89a1b6C601235729A689595571B7455dD433",
"asyncRequestManager": "0xf06f89A1b6C601235729A689595571B7455Dd433",
"syncManager": "0x0D82d9fa76CFCd6F4cc59F053b2458665C6CE773",
"asyncVaultFactory": "0xED9D489BB79c7cB58C522f36fC6944eaA95ce385",
"syncDepositVaultFactory": "0x21bf2544b5a0B03C8566a16592Ba1B3b192b50Bc",
"asyncVaultFactory": "0xb47E57b4D477FF80c42dB8B02CB5cb1a74b5D20a",
"syncDepositVaultFactory": "0x00E3c7EE9Bbc98B9Cb4Cc2c06fb211c1Bb199Ee5",
"vaultRouter": "0xdbCcee499563D4AC2D3788DeD3acb14FB92B175D",
"freezeOnlyHook": "0xBb7ABFB0E62dfb36e02CeeCDA59ADFD71f50c88e",
"fullRestrictionsHook": "0xa2C98F0F76Da0C97039688CA6280d082942d0b48",
Expand Down
6 changes: 6 additions & 0 deletions env/sepolia.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@
"gateway": "0xe432150cce91c13a887f7D836923d5597adD8E31",
"gasService": "0xbE406F0189A0B4cf3A05C286473D23791Dd44Cc6",
"deploy": true
},
"layerzero": {
"deploy": false,
"endpoint": "",
"delegate": "",
"layerZeroEid": ""
}
},
"contracts": {
Expand Down
36 changes: 34 additions & 2 deletions script/AdaptersDeployer.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {CommonDeployer, CommonInput, CommonReport, CommonActionBatcher} from "./

import {AxelarAdapter} from "../src/common/adapters/AxelarAdapter.sol";
import {WormholeAdapter} from "../src/common/adapters/WormholeAdapter.sol";
import {LayerZeroAdapter} from "../src/common/adapters/LayerZeroAdapter.sol";

import "forge-std/Script.sol";

Expand All @@ -19,15 +20,23 @@ struct AxelarInput {
address gasService;
}

struct LayerZeroInput {
bool shouldDeploy;
address endpoint;
address delegate;
}

struct AdaptersInput {
WormholeInput wormhole;
AxelarInput axelar;
LayerZeroInput layerzero;
}

struct AdaptersReport {
CommonReport common;
WormholeAdapter wormholeAdapter;
AxelarAdapter axelarAdapter;
LayerZeroAdapter layerZeroAdapter;
}

contract AdaptersActionBatcher is CommonActionBatcher {
Expand All @@ -40,17 +49,24 @@ contract AdaptersActionBatcher is CommonActionBatcher {
report.axelarAdapter.rely(address(report.common.root));
report.axelarAdapter.rely(address(report.common.guardian));
}
if (address(report.layerZeroAdapter) != address(0)) {
report.layerZeroAdapter.rely(address(report.common.root));
report.layerZeroAdapter.rely(address(report.common.guardian));
report.layerZeroAdapter.rely(address(report.common.adminSafe));
}
}

function revokeAdapters(AdaptersReport memory report) public onlyDeployer {
if (address(report.wormholeAdapter) != address(0)) report.wormholeAdapter.deny(address(this));
if (address(report.axelarAdapter) != address(0)) report.axelarAdapter.deny(address(this));
if (address(report.layerZeroAdapter) != address(0)) report.layerZeroAdapter.deny(address(this));
}
}

contract AdaptersDeployer is CommonDeployer {
WormholeAdapter wormholeAdapter;
AxelarAdapter axelarAdapter;
LayerZeroAdapter layerZeroAdapter;

function deployAdapters(CommonInput memory input, AdaptersInput memory adaptersInput, AdaptersActionBatcher batcher)
public
Expand Down Expand Up @@ -90,10 +106,25 @@ contract AdaptersDeployer is CommonDeployer {
);
}

if (adaptersInput.layerzero.shouldDeploy) {
layerZeroAdapter = LayerZeroAdapter(
create3(
generateSalt("layerZeroAdapter"),
abi.encodePacked(
type(LayerZeroAdapter).creationCode,
abi.encode(
multiAdapter, adaptersInput.layerzero.endpoint, adaptersInput.layerzero.delegate, batcher
)
)
)
);
}

batcher.engageAdapters(_adaptersReport());

if (adaptersInput.wormhole.shouldDeploy) register("wormholeAdapter", address(wormholeAdapter));
if (adaptersInput.axelar.shouldDeploy) register("axelarAdapter", address(axelarAdapter));
if (adaptersInput.layerzero.shouldDeploy) register("layerZeroAdapter", address(layerZeroAdapter));
}

function _postDeployAdapters(AdaptersActionBatcher batcher) internal {
Expand All @@ -107,13 +138,14 @@ contract AdaptersDeployer is CommonDeployer {
}

function _adaptersReport() internal view returns (AdaptersReport memory) {
return AdaptersReport(_commonReport(), wormholeAdapter, axelarAdapter);
return AdaptersReport(_commonReport(), wormholeAdapter, axelarAdapter, layerZeroAdapter);
}

function noAdaptersInput() public pure returns (AdaptersInput memory) {
return AdaptersInput({
wormhole: WormholeInput({shouldDeploy: false, relayer: address(0)}),
axelar: AxelarInput({shouldDeploy: false, gateway: address(0), gasService: address(0)})
axelar: AxelarInput({shouldDeploy: false, gateway: address(0), gasService: address(0)}),
layerzero: LayerZeroInput({shouldDeploy: false, endpoint: address(0), delegate: address(0)})
});
}
}
12 changes: 9 additions & 3 deletions script/FullDeployer.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {ExtendedSpokeDeployer, ExtendedSpokeActionBatcher} from "./ExtendedSpoke
import {
WormholeInput,
AxelarInput,
LayerZeroInput,
AdaptersInput,
AdaptersDeployer,
AdaptersActionBatcher
Expand Down Expand Up @@ -92,10 +93,10 @@ contract FullDeployer is HubDeployer, ExtendedSpokeDeployer, AdaptersDeployer {
require(address(contractUpdater) == 0x8dD5a3d4e9ec54388dAd23B8a1f3B2159B2f2D85);
require(address(routerEscrow) == 0xB86B6AE94E6d05AAc086665534A73fee557EE9F6);
require(address(globalEscrow) == 0x43d51be0B6dE2199A2396bA604114d24383F91E9);
require(address(asyncRequestManager) == 0x58d57896EBbF000c293327ADf33689D0a7Fd3d9A);
require(address(asyncRequestManager) == 0xf06f89A1b6C601235729A689595571B7455Dd433);
require(address(syncManager) == 0x0D82d9fa76CFCd6F4cc59F053b2458665C6CE773);
require(address(asyncVaultFactory) == 0xE01Ce2e604CCe985A06FA4F4bCD17f1F08417BF3);
require(address(syncDepositVaultFactory) == 0x3568184784E8ACCaacF51A7F710a3DE0144E4f29);
require(address(asyncVaultFactory) == 0xb47E57b4D477FF80c42dB8B02CB5cb1a74b5D20a);
require(address(syncDepositVaultFactory) == 0x00E3c7EE9Bbc98B9Cb4Cc2c06fb211c1Bb199Ee5);
require(address(vaultRouter) == 0xdbCcee499563D4AC2D3788DeD3acb14FB92B175D);
require(address(freezeOnlyHook) == 0xBb7ABFB0E62dfb36e02CeeCDA59ADFD71f50c88e);
require(address(fullRestrictionsHook) == 0xa2C98F0F76Da0C97039688CA6280d082942d0b48);
Expand Down Expand Up @@ -154,6 +155,11 @@ contract FullDeployer is HubDeployer, ExtendedSpokeDeployer, AdaptersDeployer {
shouldDeploy: _parseJsonBoolOrDefault(config, "$.adapters.axelar.deploy"),
gateway: _parseJsonAddressOrDefault(config, "$.adapters.axelar.gateway"),
gasService: _parseJsonAddressOrDefault(config, "$.adapters.axelar.gasService")
}),
layerzero: LayerZeroInput({
shouldDeploy: _parseJsonBoolOrDefault(config, "$.adapters.layerzero.deploy"),
endpoint: _parseJsonAddressOrDefault(config, "$.adapters.layerzero.endpoint"),
delegate: _parseJsonAddressOrDefault(config, "$.adapters.layerzero.delegate")
})
});

Expand Down
Loading
Loading