diff --git a/Makefile b/Makefile index 15bdce9..3fa3a45 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ deploy-avalanche :; forge script script/DeployTransparentProxyFactory.s.sol:Depl deploy-optimism :; forge script script/DeployTransparentProxyFactory.s.sol:DeployOptimism --rpc-url optimism --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv deploy-arbitrum :; forge script script/DeployTransparentProxyFactory.s.sol:DeployArbitrum --rpc-url arbitrum --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv deploy-zksync :; FOUNDRY_PROFILE=zksync forge script zksync/script/DeployTransparentProxyFactoryZkSync.s.sol:DeployZkSync --zksync --system-mode=true --rpc-url zksync --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv - +deploy-xlayer :; forge script script/DeployTransparentProxyFactory.s.sol:DeployTransparentProxyFactory --rpc-url xlayer --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify --legacy -vvvv # ---------------------------------------------- BASE SCRIPT CONFIGURATION --------------------------------------------- BASE_LEDGER = --ledger --mnemonic-indexes $(MNEMONIC_INDEX) --sender $(LEDGER_SENDER) diff --git a/foundry.toml b/foundry.toml index 92d20eb..a8771b3 100644 --- a/foundry.toml +++ b/foundry.toml @@ -61,6 +61,7 @@ zksync = "${RPC_ZKSYNC}" linea = "${RPC_LINEA}" soneium = "${RPC_SONEIUM}" bob = "${RPC_BOB}" +xlayer = "${RPC_XLAYER}" [fuzz] no_zksync_reserved_addresses = true diff --git a/src/contracts/utils/ChainHelpers.sol b/src/contracts/utils/ChainHelpers.sol index 92d5f38..6a16cf2 100644 --- a/src/contracts/utils/ChainHelpers.sol +++ b/src/contracts/utils/ChainHelpers.sol @@ -28,6 +28,7 @@ library ChainIds { uint256 internal constant SONEIUM = 1868; uint256 internal constant BOB = 60808; uint256 internal constant PLASMA = 9745; + uint256 internal constant XLAYER = 196; } library TestNetChainIds { @@ -51,6 +52,7 @@ library TestNetChainIds { uint256 internal constant SONEIUM_MINATO = 1946; uint256 internal constant BOB_SEPOLIA = 808813; uint256 internal constant PLASMA_TESTNET = 9746; + uint256 internal constant XLAYER_TESTNET = 1952; } library ChainHelpers { @@ -108,6 +110,8 @@ library ChainHelpers { newFork = vm.createSelectFork(vm.rpcUrl('bob')); } else if (chainId == ChainIds.PLASMA) { newFork = vm.createSelectFork(vm.rpcUrl('plasma')); + } else if (chainId == ChainIds.XLAYER) { + newFork = vm.createSelectFork(vm.rpcUrl('xlayer')); } else { revert UnknownChainId(); } @@ -156,6 +160,8 @@ library ChainHelpers { networkName = 'bob'; } else if (chainId == ChainIds.PLASMA) { networkName = 'plasma'; + } else if (chainId == ChainIds.XLAYER) { + networkName = 'xlayer'; } // testnets else if (chainId == TestNetChainIds.ETHEREUM_SEPOLIA) { @@ -194,6 +200,8 @@ library ChainHelpers { networkName = 'bob_sepolia'; } else if (chainId == TestNetChainIds.PLASMA_TESTNET) { networkName = 'plasma_testnet'; + } else if (chainId == TestNetChainIds.XLAYER_TESTNET) { + networkName = 'xlayer_testnet'; } else { revert('chain id is not supported'); } diff --git a/src/contracts/utils/ScriptUtils.sol b/src/contracts/utils/ScriptUtils.sol index 0f1755a..1884691 100644 --- a/src/contracts/utils/ScriptUtils.sol +++ b/src/contracts/utils/ScriptUtils.sol @@ -111,6 +111,10 @@ abstract contract PlasmaScript is WithChainIdValidation { constructor() WithChainIdValidation(ChainIds.PLASMA) {} } +abstract contract XLayerScript is WithChainIdValidation { + constructor() WithChainIdValidation(ChainIds.XLAYER) {} +} + library Create2Utils { // https://github.com/safe-global/safe-singleton-factory address public constant CREATE2_FACTORY = 0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7;