diff --git a/evm/contracts/clients/LoopbackClient.sol b/evm/contracts/clients/LoopbackClient.sol index 57d4c6d7b2..7b7d9507c1 100644 --- a/evm/contracts/clients/LoopbackClient.sol +++ b/evm/contracts/clients/LoopbackClient.sol @@ -222,13 +222,7 @@ contract LoopbackClient is uint32 clientId, bytes calldata clientMessageBytes, address - ) - external - override - onlyIBC - whenNotPaused - returns (ConsensusStateUpdate memory) - { + ) external override whenNotPaused returns (ConsensusStateUpdate memory) { Header calldata header; assembly { header := clientMessageBytes.offset @@ -261,7 +255,7 @@ contract LoopbackClient is uint32 clientId, bytes calldata clientMessageBytes, address - ) external override onlyIBC whenNotPaused { + ) external override { revert LoopbackClientLib.ErrUnsupported(); } diff --git a/evm/evm.nix b/evm/evm.nix index 5ba6b892d5..c41eac449c 100644 --- a/evm/evm.nix +++ b/evm/evm.nix @@ -1471,6 +1471,7 @@ _: { eudrop = "EUDrop"; quick-withdrawal = "QuickWithdrawal"; z-asset = "ZAsset"; + loopback-client = "LoopbackClient"; } ) )) diff --git a/evm/scripts/Deploy.s.sol b/evm/scripts/Deploy.s.sol index e501b505e7..9528033432 100644 --- a/evm/scripts/Deploy.s.sol +++ b/evm/scripts/Deploy.s.sol @@ -2711,3 +2711,22 @@ contract SafeUpgradeZAsset is BaseUpgrade { upgradeCall = new bytes(0); } } + +contract SafeUpgradeLoopbackClient is BaseUpgrade { + constructor() BaseUpgrade(true, false) {} + + function upgradeParameters() + internal + override + returns ( + address targetContract, + address newImplementation, + bytes memory upgradeCall + ) + { + targetContract = getDeployed(LIGHT_CLIENT_SALT.LOOPBACK); + address handler = getDeployed(IBC_SALT.BASED); + newImplementation = address(new LoopbackClient(handler)); + upgradeCall = new bytes(0); + } +}