Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: add docs + cleanup MA and MABase with small opt #259

Merged
merged 4 commits into from
Oct 16, 2024

Conversation

fangting-alchemy
Copy link
Collaborator

  • Add NatSpecs
  • Small refactor on comments and code
  • tiny opt by rid of one error

Copy link

octane-security-app bot commented Oct 16, 2024

Summary by Octane

New Contracts

No new contracts were added in this PR.

Updated Contracts

  • ModularAccount.sol: The smart contract now supports initialization with a validation configuration module.
  • ModularAccountBase.sol: Added ERC-6900 compliance and support for deferred actions with enhanced error handling for contract creation failures.

🔗 Commit Hash: 490845c

@fangting-alchemy fangting-alchemy requested a review from a team October 16, 2024 20:15
@fangting-alchemy fangting-alchemy changed the title refactor: add docs + cleanup MA and MABase withsmall opt refactor: add docs + cleanup MA and MABase with small opt Oct 16, 2024
Copy link

github-actions bot commented Oct 16, 2024

Contract sizes:

| Contract                      | Size (B) | Margin (B) |
|-------------------------------|----------|------------|
| AccountFactory                |    4,814 |     19,762 |
| AllowlistModule               |    9,230 |     15,346 |
| ModularAccount                |   25,167 |       -591 |
| NativeTokenLimitModule        |    4,714 |     19,862 |
| PaymasterGuardModule          |    1,797 |     22,779 |
| SemiModularAccountBytecode    |   27,775 |     -3,199 |
| SemiModularAccountStorageOnly |   28,293 |     -3,717 |
| SingleSignerValidationModule  |    4,300 |     20,276 |
| TimeRangeModule               |    2,000 |     22,576 |
| WebAuthnValidationModule      |    7,854 |     16,722 |

Code coverage:

File % Lines % Statements % Branches % Funcs
src/account/AccountStorageInitializable.sol 100.00% (19/19) 100.00% (26/26) 100.00% (5/5) 100.00% (2/2)
src/account/BaseAccount.sol 100.00% (8/8) 100.00% (7/7) 100.00% (2/2) 100.00% (4/4)
src/account/ModularAccount.sol 100.00% (1/1) 100.00% (1/1) 100.00% (0/0) 100.00% (2/2)
src/account/ModularAccountBase.sol 95.70% (289/302) 93.73% (359/383) 67.80% (40/59) 100.00% (38/38)
src/account/ModularAccountView.sol 100.00% (22/22) 100.00% (25/25) 100.00% (2/2) 100.00% (2/2)
src/account/ModuleManagerInternals.sol 88.37% (114/129) 87.06% (148/170) 52.94% (9/17) 100.00% (12/12)
src/account/SemiModularAccountBase.sol 86.89% (53/61) 90.70% (78/86) 66.67% (10/15) 94.12% (16/17)
src/account/SemiModularAccountBytecode.sol 100.00% (5/5) 100.00% (6/6) 100.00% (1/1) 50.00% (1/2)
src/account/SemiModularAccountStorageOnly.sol 100.00% (4/4) 100.00% (5/5) 100.00% (0/0) 100.00% (2/2)
src/account/TokenReceiver.sol 33.33% (1/3) 33.33% (1/3) 100.00% (0/0) 33.33% (1/3)
src/factory/AccountFactory.sol 70.59% (24/34) 76.09% (35/46) 40.00% (2/5) 58.33% (7/12)
src/libraries/ERC7739ReplaySafeWrapperLib.sol 85.88% (73/85) 85.87% (79/92) 66.67% (2/3) 87.50% (7/8)
src/libraries/ExecutionLib.sol 98.39% (244/248) 97.18% (241/248) 88.00% (22/25) 100.00% (22/22)
src/libraries/KnownSelectorsLib.sol 100.00% (29/29) 100.00% (64/64) 100.00% (0/0) 100.00% (3/3)
src/libraries/LinkedListSetLib.sol 94.00% (47/50) 96.25% (77/80) 66.67% (4/6) 100.00% (8/8)
src/libraries/MemManagementLib.sol 100.00% (54/54) 100.00% (70/70) 100.00% (0/0) 100.00% (12/12)
src/libraries/SemiModularKnownSelectorsLib.sol 100.00% (5/5) 100.00% (10/10) 100.00% (0/0) 100.00% (1/1)
src/modules/BaseModule.sol 100.00% (13/13) 94.12% (16/17) 100.00% (2/2) 100.00% (3/3)
src/modules/permissions/AllowlistModule.sol 86.05% (74/86) 85.71% (96/112) 78.26% (18/23) 50.00% (9/18)
src/modules/permissions/NativeTokenLimitModule.sol 87.80% (36/41) 89.66% (52/58) 88.89% (8/9) 54.55% (6/11)
src/modules/permissions/PaymasterGuardModule.sol 90.00% (9/10) 86.67% (13/15) 100.00% (2/2) 71.43% (5/7)
src/modules/permissions/TimeRangeModule.sol 83.33% (10/12) 80.00% (16/20) 100.00% (1/1) 75.00% (6/8)
src/modules/validation/SingleSignerValidationModule.sol 92.00% (23/25) 81.08% (30/37) 62.50% (5/8) 90.00% (9/10)
src/modules/validation/WebAuthnValidationModule.sol 61.11% (11/18) 66.67% (18/27) 100.00% (3/3) 60.00% (6/10)
Total 92.41% (1168/1264) 91.60% (1473/1608) 73.40% (138/188) 84.79% (184/217)

src/account/ModularAccountBase.sol Outdated Show resolved Hide resolved
src/account/ModularAccountBase.sol Outdated Show resolved Hide resolved
src/account/ModularAccount.sol Outdated Show resolved Hide resolved
Copy link

octane-security-app bot commented Oct 16, 2024

Overview

Vulnerabilities found: 3                                                                                
Severity breakdown: 1 Medium, 2 Low

Detailed findings

src/account/ModularAccountBase.sol


🔗 Commit Hash: 490845c
🛡️ Octane Dashboard: All vulnerabilities

@@ -6,6 +6,10 @@ import {IEntryPoint} from "@eth-infinitism/account-abstraction/interfaces/IEntry

import {ModularAccountBase} from "./ModularAccountBase.sol";

/// @title Modular Account
/// @author Alchemy
/// @notice This contract allow initionalizing with a validation config (of a validation module) to be installed on
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/// @notice This contract allow initionalizing with a validation config (of a validation module) to be installed on
/// @notice This contract allow initializing with a validation config (of a validation module) to be installed on

@@ -43,6 +43,10 @@ import {ModularAccountView} from "./ModularAccountView.sol";
import {ModuleManagerInternals} from "./ModuleManagerInternals.sol";
import {TokenReceiver} from "./TokenReceiver.sol";

/// @title Modular Account Base
/// @author Alchemy
/// @notice This abstract account is a modular account that is compliant with ERC-6900 standard. It supports
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/// @notice This abstract account is a modular account that is compliant with ERC-6900 standard. It supports
/// @notice This abstract contract is a modular account that is compliant with ERC-6900 standard. It supports

@fangting-alchemy fangting-alchemy merged commit e8a42af into develop Oct 16, 2024
6 checks passed
@fangting-alchemy fangting-alchemy deleted the clean branch October 16, 2024 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants