wormhole/ethereum/contracts/Shutdown.sol

32 lines
1.0 KiB
Solidity

// contracts/Shutdown.sol
// SPDX-License-Identifier: Apache 2
pragma solidity ^0.8.0;
pragma experimental ABIEncoderV2;
import "./Governance.sol";
import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol";
/**
* @title Shutdown
* @notice This contract implements a stripped-down version of the Wormhole core
* messaging protocol that is a drop-in replacement for Wormhole's
* implementation contract, effectively disabling all non-governance
* functionality.
* In particular, outgoing messages are disabled, but the contract
* remains upgradeable through governance.
*/
contract Shutdown is Governance {
function initialize() public {
address implementation = ERC1967Upgrade._getImplementation();
setInitialized(implementation);
// this function needs to be exposed for an upgrade to pass
// NOTE: leave this function empty! It specifically does not have an
// 'initializer' modifier, to allow this contract to be upgraded to
// multiple times.
}
}