Skip to content

Commit

Permalink
Merge branch 'main' into audit/N-08
Browse files Browse the repository at this point in the history
  • Loading branch information
ly0va authored Feb 10, 2025
2 parents 7debe65 + 78f25fd commit c2879ba
Show file tree
Hide file tree
Showing 10 changed files with 19 additions and 48 deletions.
12 changes: 11 additions & 1 deletion src/SsoAccount.sol
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ import { SignatureDecoder } from "./libraries/SignatureDecoder.sol";
import { ERC1271Handler } from "./handlers/ERC1271Handler.sol";
import { BatchCaller } from "./batch/BatchCaller.sol";

import { BootloaderAuth } from "./auth/BootloaderAuth.sol";

import { ISsoAccount } from "./interfaces/ISsoAccount.sol";
import { IModuleValidator } from "./interfaces/IModuleValidator.sol";

Expand All @@ -32,7 +34,15 @@ import { IModuleValidator } from "./interfaces/IModuleValidator.sol";
/// @notice This contract is a modular and extensible account implementation with support of
/// multi-ownership, custom modules, validation/execution hooks and different signature validation formats.
/// @dev Contract is expected to be used as Beacon proxy implementation.
contract SsoAccount is Initializable, HookManager, ERC1271Handler, TokenCallbackHandler, BatchCaller, ISsoAccount {
contract SsoAccount is
Initializable,
HookManager,
ERC1271Handler,
TokenCallbackHandler,
BatchCaller,
ISsoAccount,
BootloaderAuth
{
// Helper library for the Transaction struct
using TransactionHelper for Transaction;

Expand Down
14 changes: 0 additions & 14 deletions src/auth/Auth.sol

This file was deleted.

20 changes: 0 additions & 20 deletions src/auth/HookAuth.sol

This file was deleted.

1 change: 0 additions & 1 deletion src/handlers/ERC1271Handler.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ pragma solidity ^0.8.24;

import { IERC1271Upgradeable } from "@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.sol";
import { ECDSA } from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
import { Transaction } from "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol";
import { EIP712 } from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";

import { SignatureDecoder } from "../libraries/SignatureDecoder.sol";
Expand Down
3 changes: 1 addition & 2 deletions src/interfaces/ISsoAccount.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ pragma solidity ^0.8.24;
import { IAccount } from "@matterlabs/zksync-contracts/l2/system-contracts/interfaces/IAccount.sol";

import { IERC1271Upgradeable } from "@openzeppelin/contracts-upgradeable/interfaces/IERC1271Upgradeable.sol";
import { IERC777Recipient } from "@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol";
import { IERC721Receiver } from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
import { IERC1155Receiver } from "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol";

Expand All @@ -26,5 +25,5 @@ interface ISsoAccount is
IValidatorManager,
IAccount
{
function initialize(bytes[] calldata initialValidators, address[] calldata k1Owners) external;
function initialize(bytes[] calldata initialValidators, address[] calldata initialK1Owners) external;
}
1 change: 0 additions & 1 deletion src/libraries/Errors.sol
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ library Errors {

// Auth errors
error NOT_FROM_BOOTLOADER(address notBootloader);
error NOT_FROM_HOOK(address notHook);
error NOT_FROM_SELF(address notSelf);

// Batch caller errors
Expand Down
2 changes: 0 additions & 2 deletions src/libraries/SignatureDecoder.sol
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.24;

import { Errors } from "../libraries/Errors.sol";

library SignatureDecoder {
// Decode transaction.signature into signature, validator and hook data
function decodeSignature(
Expand Down
6 changes: 3 additions & 3 deletions src/managers/HookManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { EnumerableSet } from "@openzeppelin/contracts/utils/structs/EnumerableS
import { Transaction } from "@matterlabs/zksync-contracts/l2/system-contracts/libraries/TransactionHelper.sol";
import { ExcessivelySafeCall } from "@nomad-xyz/excessively-safe-call/src/ExcessivelySafeCall.sol";

import { Auth } from "../auth/Auth.sol";
import { SelfAuth } from "../auth/SelfAuth.sol";
import { SsoStorage } from "../libraries/SsoStorage.sol";
import { Errors } from "../libraries/Errors.sol";
import { IExecutionHook, IValidationHook } from "../interfaces/IHook.sol";
Expand All @@ -19,7 +19,7 @@ import { IModule } from "../interfaces/IModule.sol";
* @dev Hook addresses are stored in a linked list
* @author https://getclave.io
*/
abstract contract HookManager is IHookManager, Auth {
abstract contract HookManager is IHookManager, SelfAuth {
using EnumerableSet for EnumerableSet.AddressSet;
// Interface helper library
using ERC165Checker for address;
Expand Down Expand Up @@ -124,7 +124,7 @@ abstract contract HookManager is IHookManager, Auth {
emit HookRemoved(hook);
}

function _isHook(address addr) internal view override returns (bool) {
function _isHook(address addr) internal view returns (bool) {
return _validationHooks().contains(addr) || _executionHooks().contains(addr);
}

Expand Down
4 changes: 2 additions & 2 deletions src/managers/OwnerManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pragma solidity ^0.8.24;
import { EnumerableSet } from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
import { SsoStorage } from "../libraries/SsoStorage.sol";
import { Errors } from "../libraries/Errors.sol";
import { Auth } from "../auth/Auth.sol";
import { SelfAuth } from "../auth/SelfAuth.sol";
import { IOwnerManager } from "../interfaces/IOwnerManager.sol";

/**
Expand All @@ -14,7 +14,7 @@ import { IOwnerManager } from "../interfaces/IOwnerManager.sol";
* @dev Owners are stored in a linked list
* @author https://getclave.io
*/
abstract contract OwnerManager is IOwnerManager, Auth {
abstract contract OwnerManager is IOwnerManager, SelfAuth {
using EnumerableSet for EnumerableSet.AddressSet;

/// @inheritdoc IOwnerManager
Expand Down
4 changes: 2 additions & 2 deletions src/managers/ValidatorManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC16
import { EnumerableSet } from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
import { ExcessivelySafeCall } from "@nomad-xyz/excessively-safe-call/src/ExcessivelySafeCall.sol";

import { Auth } from "../auth/Auth.sol";
import { SelfAuth } from "../auth/SelfAuth.sol";
import { Errors } from "../libraries/Errors.sol";
import { SsoStorage } from "../libraries/SsoStorage.sol";
import { IValidatorManager } from "../interfaces/IValidatorManager.sol";
Expand All @@ -18,7 +18,7 @@ import { IModule } from "../interfaces/IModule.sol";
* @dev Validators are stored in an enumerable set
* @author https://getclave.io
*/
abstract contract ValidatorManager is IValidatorManager, Auth {
abstract contract ValidatorManager is IValidatorManager, SelfAuth {
using EnumerableSet for EnumerableSet.AddressSet;
// Interface helper library
using ERC165Checker for address;
Expand Down

0 comments on commit c2879ba

Please sign in to comment.