github.com/ethereum-optimism/optimism@v1.7.2/packages/contracts-bedrock/test/kontrol/proofs/L1CrossDomainMessenger.k.sol (about) 1 // SPDX-License-Identifier: MIT 2 pragma solidity ^0.8.13; 3 4 import { DeploymentSummary } from "./utils/DeploymentSummary.sol"; 5 import { KontrolUtils } from "./utils/KontrolUtils.sol"; 6 import { 7 IL1CrossDomainMessenger as L1CrossDomainMessenger, 8 ISuperchainConfig as SuperchainConfig 9 } from "./interfaces/KontrolInterfaces.sol"; 10 11 contract L1CrossDomainMessengerKontrol is DeploymentSummary, KontrolUtils { 12 L1CrossDomainMessenger l1CrossDomainMessenger; 13 SuperchainConfig superchainConfig; 14 15 /// @dev Inlined setUp function for faster Kontrol performance 16 /// Tracking issue: https://github.com/runtimeverification/kontrol/issues/282 17 function setUpInlined() public { 18 l1CrossDomainMessenger = L1CrossDomainMessenger(l1CrossDomainMessengerProxyAddress); 19 superchainConfig = SuperchainConfig(superchainConfigProxyAddress); 20 } 21 22 function prove_relayMessage_paused( 23 uint256 _nonce, 24 address _sender, 25 address _target, 26 uint256 _value, 27 uint256 _gas, 28 bytes calldata _message 29 ) 30 external 31 { 32 setUpInlined(); 33 34 // Pause System 35 vm.prank(superchainConfig.guardian()); 36 superchainConfig.pause("identifier"); 37 38 vm.expectRevert("CrossDomainMessenger: paused"); 39 l1CrossDomainMessenger.relayMessage(_nonce, _sender, _target, _value, _gas, _message); 40 } 41 }