Skip to content

Commit

Permalink
audit: erc165 compliancy (#209)
Browse files Browse the repository at this point in the history
  • Loading branch information
pscott authored Jun 16, 2023
1 parent b7ff1ef commit 9bdf448
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/execution-strategies/TimelockExecutionStrategy.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { MetaTransaction, Proposal, ProposalStatus } from "../types.sol";
import { Enum } from "@gnosis.pm/safe-contracts/contracts/common/Enum.sol";
import { IERC1155Receiver } from "@openzeppelin/contracts/interfaces/IERC1155Receiver.sol";
import { IERC721Receiver } from "@openzeppelin/contracts/interfaces/IERC721Receiver.sol";
import { IERC165 } from "@openzeppelin/contracts/interfaces/IERC165.sol";

/// @title Timelock Execution Strategy
/// @notice Used to execute proposal transactions according to a timelock delay.
Expand Down Expand Up @@ -216,6 +217,9 @@ contract TimelockExecutionStrategy is SimpleQuorumExecutionStrategy, IERC1155Rec

/// @notice IERC165 interface support
function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
return interfaceId == type(IERC721Receiver).interfaceId || interfaceId == type(IERC1155Receiver).interfaceId;
return
interfaceId == type(IERC721Receiver).interfaceId ||
interfaceId == type(IERC1155Receiver).interfaceId ||
interfaceId == type(IERC165).interfaceId;
}
}
2 changes: 2 additions & 0 deletions test/TimelockExecutionStrategy.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { TestERC1155 } from "./mocks/TestERC1155.sol";
import { TestERC721 } from "./mocks/TestERC721.sol";
import { IERC1155Receiver } from "@openzeppelin/contracts/interfaces/IERC1155Receiver.sol";
import { IERC721Receiver } from "@openzeppelin/contracts/interfaces/IERC721Receiver.sol";
import { IERC165 } from "@openzeppelin/contracts/interfaces/IERC165.sol";

abstract contract TimelockExecutionStrategyTest is SpaceTest {
error InvalidSpace();
Expand Down Expand Up @@ -476,6 +477,7 @@ abstract contract TimelockExecutionStrategyTest is SpaceTest {
function testCheckViewFunctions() public {
assertTrue(timelockExecutionStrategy.supportsInterface(type(IERC721Receiver).interfaceId));
assertTrue(timelockExecutionStrategy.supportsInterface(type(IERC1155Receiver).interfaceId));
assertTrue(timelockExecutionStrategy.supportsInterface(type(IERC165).interfaceId));
assertEq(timelockExecutionStrategy.getStrategyType(), "SimpleQuorumTimelock");
}

Expand Down

0 comments on commit 9bdf448

Please sign in to comment.