@@ -6,6 +6,8 @@ import {Utils} from "../Utils/Utils.sol";
66import {ProxyAdmin} from "@openzeppelin/contracts-v4/proxy/transparent/ProxyAdmin.sol " ;
77import {TransparentUpgradeableProxy} from "@openzeppelin/contracts-v4/proxy/transparent/TransparentUpgradeableProxy.sol " ;
88import {ValidatorTimelock} from "contracts/state-transition/ValidatorTimelock.sol " ;
9+ import {Diamond} from "contracts/state-transition/libraries/Diamond.sol " ;
10+ import {IAdmin} from "contracts/state-transition/chain-interfaces/IAdmin.sol " ;
911import {IExecutor} from "contracts/state-transition/chain-interfaces/IExecutor.sol " ;
1012import {IGetters} from "contracts/state-transition/chain-interfaces/IGetters.sol " ;
1113import {DummyChainTypeManagerForValidatorTimelock} from "contracts/dev-contracts/test/DummyChainTypeManagerForValidatorTimelock.sol " ;
@@ -265,6 +267,24 @@ contract ValidatorTimelockTest is Test {
265267 validator.proveBatchesSharedBridge (zkSync, proveBatchFrom, proveBatchTo, proveData);
266268 }
267269
270+ function test_upgradeChainFromVersion_PropagatesToDiamondProxy () public {
271+ uint256 oldProtocolVersion = 1 ;
272+ Diamond.DiamondCutData memory diamondCut = Diamond.DiamondCutData ({
273+ facetCuts: new Diamond.FacetCut [](0 ),
274+ initAddress: address (0 ),
275+ initCalldata: bytes ("" )
276+ });
277+
278+ vm.mockCall (
279+ zkSync,
280+ abi.encodeCall (IAdmin.upgradeChainFromVersion, (zkSync, oldProtocolVersion, diamondCut)),
281+ ""
282+ );
283+
284+ vm.prank (alice);
285+ validator.upgradeChainFromVersion (zkSync, oldProtocolVersion, diamondCut);
286+ }
287+
268288 function test_executeBatchesSharedBridge () public {
269289 uint64 timestamp = 123456 ;
270290 uint64 batchNumber = 123 ;
0 commit comments