Add pausable ism (#2675)
parent
389029dafb
commit
ff2a495389
@ -0,0 +1,34 @@ |
|||||||
|
// SPDX-License-Identifier: MIT OR Apache-2.0 |
||||||
|
pragma solidity >=0.8.0; |
||||||
|
|
||||||
|
// ============ External Imports ============ |
||||||
|
import {Pausable} from "@openzeppelin/contracts/security/Pausable.sol"; |
||||||
|
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; |
||||||
|
|
||||||
|
// ============ Internal Imports ============ |
||||||
|
import {IInterchainSecurityModule} from "../interfaces/IInterchainSecurityModule.sol"; |
||||||
|
|
||||||
|
contract PausableIsm is IInterchainSecurityModule, Ownable, Pausable { |
||||||
|
uint8 public constant override moduleType = uint8(Types.NULL); |
||||||
|
|
||||||
|
/** |
||||||
|
* @inheritdoc IInterchainSecurityModule |
||||||
|
* @dev Reverts when paused, otherwise returns `true`. |
||||||
|
*/ |
||||||
|
function verify(bytes calldata, bytes calldata) |
||||||
|
external |
||||||
|
view |
||||||
|
whenNotPaused |
||||||
|
returns (bool) |
||||||
|
{ |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
function pause() external onlyOwner { |
||||||
|
_pause(); |
||||||
|
} |
||||||
|
|
||||||
|
function unpause() external onlyOwner { |
||||||
|
_unpause(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
// SPDX-License-Identifier: MIT or Apache-2.0 |
||||||
|
pragma solidity ^0.8.13; |
||||||
|
|
||||||
|
import {Test} from "forge-std/Test.sol"; |
||||||
|
|
||||||
|
import {PausableIsm} from "../../contracts/isms/PausableIsm.sol"; |
||||||
|
|
||||||
|
contract PausableIsmTest is Test { |
||||||
|
PausableIsm ism; |
||||||
|
|
||||||
|
function setUp() public { |
||||||
|
ism = new PausableIsm(); |
||||||
|
} |
||||||
|
|
||||||
|
function test_verify() public { |
||||||
|
assertTrue(ism.verify("", "")); |
||||||
|
ism.pause(); |
||||||
|
vm.expectRevert(bytes("Pausable: paused")); |
||||||
|
ism.verify("", ""); |
||||||
|
} |
||||||
|
|
||||||
|
function test_pause() public { |
||||||
|
ism.pause(); |
||||||
|
assertTrue(ism.paused()); |
||||||
|
} |
||||||
|
|
||||||
|
function test_unpause() public { |
||||||
|
ism.pause(); |
||||||
|
ism.unpause(); |
||||||
|
assertFalse(ism.paused()); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue