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

[WIP] Refactor and Start implementing methods #17

Merged
merged 125 commits into from
Feb 29, 2024

Conversation

filmakarov
Copy link
Collaborator

@filmakarov filmakarov commented Feb 21, 2024

Refactor:

  • validateUserOp => SmartAccount.sol
  • Deprecate Validator.sol (part of SA) so no confusion with ERC7579 Validator Module
  • Execution => AccountExecution so no confusion with ERC7579 Executor Module
  • add IAccountInterface
  • Add AccountId as per 7579 spec

* 👷 Add Slither analysis workflow

* ♻️ Update Slither workflow to include Foundry installation***

* Add permissions and update Slither configuration

* Update Slither workflow to ensure tool availability

* Update Slither workflow

* Add Slither workflow to run static analysis

* 💚 add yarn.lock

* ✨ Update Slither workflow to include Node.js setup and SARIF report generation

* Remove SARIF file upload step in slither.yml

* Update Slither configuration in workflow

* 🚧 Update Slither workflow to include Foundry installation and contract building

* Remove target directory for analysis in slither.yml workflow

* 🚑 Update Slither workflow to include SARIF file upload

* Add token to SARIF file upload

* Add comment.js and update slither.yml workflow

* Update node version in slither.yml

* Update Slither workflow to fail on medium severity issues

* Add target directory for Slither analysis

* Update slither.yml with filter paths for mock contracts

* Update slither-args in slither.yml

* Fix slither-args path in GitHub workflow

* Update slither configuration to exclude node_modules directory

* Update slither-args in slither.yml workflow

* Update Slither version to 0.10.0

* Update slither.yml to fail on no severity issues

* Add check for pull request event in comment.js
* Update GitHub Actions workflow to trigger on pull requests

* Update Slither workflow permissions and arguments

* Refactor CI workflow and remove redundant coverage and slither workflows

* Update Node.js and Foundry versions

* Add Foundry to PATH

* Update CI workflow to install lcov and make other improvements

* Add cache for Foundry Toolchain

* Update CI workflow configuration

* Refactor GitHub Actions workflow***

* Update CI workflow to cache node_modules and Foundry toolchain

* Update CI workflow and add linting, unit tests, coverage, and static analysis

* Update cache keys and add Foundry toolchain

* Add Foundry cache key generation and ensure Foundry directory exists

* Update CI workflow and cache actions***

* Update CI workflow and dependencies

* Update CI workflow to install Foundry and generate coverage report

* Add lcov installation step and update Codecov upload for Foundry and Hardhat coverage reports

* Refactor CI workflow and add Slither analysis

* Update CI Workflow to include linting, unit tests, coverage, and slither analysis
}

/// @inheritdoc IAccountConfig
function supportsModule(uint256 moduleTypeId) external view returns (bool) {
Copy link
Contributor

Choose a reason for hiding this comment

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

I suggested to rename this and it's going to be replaced to supportsExecutionMode in the ERC

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

it's different methods. execution mode is execution mode (call, delegatecall, tryBatch etc)
module type is other = validator, executor etc

Copy link
Contributor

Choose a reason for hiding this comment

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

yeah sorry I mean supportsAccountMode - it's being renamed


contract AccountExecution is IAccountExecution {
/// @inheritdoc IAccountExecution
function execute(bytes32 mode, bytes calldata executionCalldata) external payable {
Copy link
Contributor

Choose a reason for hiding this comment

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

you should make this virtual

Copy link
Contributor

Choose a reason for hiding this comment

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

imo these could be explicitly marked abstract contracts if we are using this pattern

@@ -1,7 +1,7 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;

import { IStorage } from "../interfaces/IStorage.sol";
import { IStorage } from "../interfaces/base/IStorage.sol";
Copy link
Contributor

Choose a reason for hiding this comment

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

can we rename base folder to 'core'

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

we can, how is it better? :)

Copy link
Contributor

Choose a reason for hiding this comment

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

feels more consistent with infinitism kernel etc but not a big deal

Copy link
Contributor

Choose a reason for hiding this comment

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

leaving this open for now (keeping 'base' only)

return account;
}
account = Create2.deploy(0, salt, bytecode);
IModuleManager(account).installModule(index, module, data);
Copy link
Contributor

Choose a reason for hiding this comment

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

how is index useful here?
is it the same as previous - deploying multiple accounts with same owner/modulesetupdata

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

nope. I believe Adam just passed something here to match the interface

installModule(uint256 moduleType, address module, bytes calldata initData)

Copy link
Contributor

Choose a reason for hiding this comment

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

hmm will anyway revamp this

interface IAccountFactory {
event AccountCreated(address account, address owner);

function createAccount(address module, uint256 index, bytes calldata data) external returns (address account);
Copy link
Contributor

Choose a reason for hiding this comment

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

will come back to this in different PR for revamping account factory

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

sure. it's just a draft

import { MessageHashUtils } from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol";

contract MockValidator is IValidator {
mapping(address => address) public owners;
Copy link
Contributor

Choose a reason for hiding this comment

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

smartAccountOwners?

Copy link
Contributor

Choose a reason for hiding this comment

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

done

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

contract Counter {
Copy link
Contributor

Choose a reason for hiding this comment

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

Counter is added twice

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

WE should remove it compeltely

Copy link
Contributor

Choose a reason for hiding this comment

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

@Aboudjem do you know reason for this src/ folder and just one contract duplicated here

Copy link
Contributor

Choose a reason for hiding this comment

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

you can delete this file along with the script/ folder

Validation,
Execution,
Fallback,
Hooks
Copy link
Contributor

Choose a reason for hiding this comment

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

"Hook" ?

Copy link
Contributor

Choose a reason for hiding this comment

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

leaving it open

ethers.zeroPadBytes(moduleAddress.toString(), 24),
);

const packedUserOp = buildPackedUserOp({
Copy link
Contributor

Choose a reason for hiding this comment

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

will be getting this utils from infinitism

accounts: Signer[];
addresses: string[];
}
export interface UserOperation {
Copy link
Contributor

Choose a reason for hiding this comment

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

should be

 {
      sender, // address
      nonce, // uint256
      factory, // address
      factoryData, // bytes
      callData, // bytes
      callGasLimit, // uint256
      verificationGasLimit, // uint256
      preVerificationGas, // uint256
      maxFeePerGas, // uint256
      maxPriorityFeePerGas, // uint256
      paymaster, // address
      paymasterVerificationGasLimit, // uint256
      paymasterPostOpGasLimit, // uint256
      paymasterData, // bytes
      signature // bytes
    },

Copy link
Contributor

@livingrockrises livingrockrises left a comment

Choose a reason for hiding this comment

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

review i

@livingrockrises
Copy link
Contributor

can open discussions on comments here

@livingrockrises
Copy link
Contributor

I would recommend pragma solidity ^0.8.24 instead of fixed pragma solidity 0.8.24

Copy link

🤖 Slither Analysis Report 🔎

Slither report

Slither report

THIS CHECKLIST IS NOT COMPLETE. Use --show-ignored-findings to show all the results.
Summary
🔴 - arbitrary-send-eth (2 results) (High)
🔴 - name-reused (1 results) (High)
🟡 - unchecked-lowlevel (2 results) (Medium)
🔵 - missing-zero-check (2 results) (Low)
ℹ️ - assembly (2 results) (Informational)
ℹ️ - low-level-calls (2 results) (Informational)
ℹ️ - redundant-statements (13 results) (Informational)
ℹ️ - too-many-digits (2 results) (Informational)

arbitrary-send-eth

🔴 Impact: High
🟡 Confidence: Medium

base/AccountExecution.sol#L19-L32

base/AccountExecution.sol#L11-L16

name-reused

🔴 Impact: High
🔴 Confidence: High

interfaces/base/IHookManager.sol#L8-L11

unchecked-lowlevel

🟡 Impact: Medium
🟡 Confidence: Medium

base/AccountExecution.sol#L19-L32

base/AccountExecution.sol#L11-L16

missing-zero-check

🔵 Impact: Low
🟡 Confidence: Medium

base/AccountExecution.sol#L29

base/AccountExecution.sol#L13

assembly

ℹ️ Impact: Informational
🔴 Confidence: High

  • ID-7
    SmartAccount.validateUserOp(PackedUserOperation,bytes32,uint256) uses assembly
    • INLINE ASM

SmartAccount.sol#L18-L40

base/Storage.sol#L18-L22

low-level-calls

ℹ️ Impact: Informational
🔴 Confidence: High

base/AccountExecution.sol#L11-L16

base/AccountExecution.sol#L19-L32

redundant-statements

ℹ️ Impact: Informational
🔴 Confidence: High

base/ModuleManager.sol#L41

base/ModuleManager.sol#L64

base/AccountExecution.sol#L36

base/AccountConfig.sol#L17

lib/ModuleTypeLib.sol#L31

base/ModuleManager.sol#L21

base/AccountExecution.sol#L28

base/ModuleManager.sol#L63

base/AccountConfig.sol#L11

base/ModuleManager.sol#L22

base/ModuleManager.sol#L42

base/AccountExecution.sol#L12

base/AccountExecution.sol#L37

too-many-digits

ℹ️ Impact: Informational
🟡 Confidence: Medium

factory/AccountFactory.sol#L29-L41

factory/AccountFactory.sol#L10-L20

This comment was automatically generated by the GitHub Actions workflow.

@livingrockrises livingrockrises merged commit 3787306 into dev Feb 29, 2024
9 checks passed
@livingrockrises livingrockrises deleted the feat/sa-refactor-start-implement-methods branch February 29, 2024 14:06
Aboudjem added a commit that referenced this pull request Mar 8, 2024
* 🎨 init repo

* 👷 update ci

* 🎨 update badges

* Feat/add husky (#4)

* Add husky for Git hooks

* 🚧 add branch naming check

* ✅Add Git hooks for branch name validation

* 💚 Update pre-push script to remove unnecessary line

* Add branch name validation checks for dev and main branches

* 🚧 Update branch naming check workflow

* 👷 Add PR Automation Workflow (#6)

* Release/0.1.0 (#9)

* 🔖 Update package.json version to 0.1.0

* 💚 Fix versioning check in automation workflow

* ⚡️ Fix CI/CD workflows and update changelog

* 💚 Sync release branch to dev and create automated PR

* Update versioning check in automation workflow

* 💚 Update automation_workflow.yml to check for changes in package.json and CHANGELOG.md

* Refactor workflow to check for updated files

* Refactor code to improve performance and readability

* Add LICENSE file to GitHub Actions workflow

* 💚 Update automation workflow to check for changed files

* Update automation_workflow.yml to check for changes in package.json and CHANGELOG.md files

* Add checks for package.json, CHANGELOG.md, and LICENSE files

* Refactor verification logic in automation workflow

* Update automation_workflow.yml to verify changes in CHANGELOG.md file

* 💚 Add automation workflow for creating PRs to dev and main branches

* Update GitHub Actions versions

* 💚 Update automation_workflow.yml to use dynamic branch names

* Update GitHub token in automation_workflow.yml

* Refactor automation workflow to remove unnecessary steps

* Feat/erc 7579 interfaces (#12)

* 🙈 Add cache_forge to .gitignore

* Add .husky to .gitignore

* 🎨 Update tab width to 4 spaces in .prettierrc

* 🚧 Disable no-inline-assembly rule in .solhint.json

* ⚡️ Add account-abstraction dependency and update husky hooks

* 🔥 Remove Git hooks for branch name validation

* 🔧 Update tsconfig.json to disable strict mode

* 🎨 Update Solidity version and remappings, delete unused contracts and tests

* 🙈 Add .vscode/settings.json to .gitignore

* 🔥 Delete unused contracts and tests

* ✨ Add utility functions for conversion and formatting

* ✨ Add buildUserOp function to utils.ts

* ✨ Add git hook to check branch names

* ✨ Add SmartAccount contract

* ✨ Add AccountConfig contract implementation

* ✨ Add Execution contract for account execution

* ✨ Add ModuleConfig contract for managing modules

* ✨ Add Storage contract for isolated storage access

* ✨ Add Validator contract for user operation validation

* ⚡️ Add ERC-7579 interfaces for smart account configuration, execution, module, and module configuration

* ✨ Add IStorage interface for ERC20 account storage

* 🚀 Add deployment of SmartAccount contract

* 🚧 Update import statement and variable name in Deploy script

* ⚡️ Add Entrypoint 0.7.0

* ⚡️ Add Imports.sol for consolidated imports

* ✅ Add SmartAccount test file

* 👷 Remove unnecessary branch from PR Automation Workflow

* ✏️ Update storage location for SmartAccount in contracts

* Feat/slither (#14)

* 👷 Add Slither analysis workflow

* ♻️ Update Slither workflow to include Foundry installation***

* Add permissions and update Slither configuration

* Update Slither workflow to ensure tool availability

* Update Slither workflow

* Add Slither workflow to run static analysis

* 💚 add yarn.lock

* ✨ Update Slither workflow to include Node.js setup and SARIF report generation

* Remove SARIF file upload step in slither.yml

* Update Slither configuration in workflow

* 🚧 Update Slither workflow to include Foundry installation and contract building

* Remove target directory for analysis in slither.yml workflow

* 🚑 Update Slither workflow to include SARIF file upload

* Add token to SARIF file upload

* Add comment.js and update slither.yml workflow

* Update node version in slither.yml

* Update Slither workflow to fail on medium severity issues

* Add target directory for Slither analysis

* Update slither.yml with filter paths for mock contracts

* Update slither-args in slither.yml

* Fix slither-args path in GitHub workflow

* Update slither configuration to exclude node_modules directory

* Update slither-args in slither.yml workflow

* Update Slither version to 0.10.0

* Update slither.yml to fail on no severity issues

* Add check for pull request event in comment.js

* Update GitHub Actions workflow to trigger on pull requests (#15)

* Update GitHub Actions workflow to trigger on pull requests

* Update Slither workflow permissions and arguments

* Refactor CI workflow and remove redundant coverage and slither workflows

* Update Node.js and Foundry versions

* Add Foundry to PATH

* Update CI workflow to install lcov and make other improvements

* Add cache for Foundry Toolchain

* Update CI workflow configuration

* Refactor GitHub Actions workflow***

* Update CI workflow to cache node_modules and Foundry toolchain

* Update CI workflow and add linting, unit tests, coverage, and static analysis

* Update cache keys and add Foundry toolchain

* Add Foundry cache key generation and ensure Foundry directory exists

* Update CI workflow and cache actions***

* Update CI workflow and dependencies

* Update CI workflow to install Foundry and generate coverage report

* Add lcov installation step and update Codecov upload for Foundry and Hardhat coverage reports

* Refactor CI workflow and add Slither analysis

* Update CI Workflow to include linting, unit tests, coverage, and slither analysis

* Refactor CI workflow and update Slither analysis

* [WIP] Refactor and Start implementing methods (#17)

* 🙈 Add cache_forge to .gitignore

* Add .husky to .gitignore

* 🎨 Update tab width to 4 spaces in .prettierrc

* 🚧 Disable no-inline-assembly rule in .solhint.json

* ⚡️ Add account-abstraction dependency and update husky hooks

* 🔥 Remove Git hooks for branch name validation

* 🔧 Update tsconfig.json to disable strict mode

* 🎨 Update Solidity version and remappings, delete unused contracts and tests

* 🙈 Add .vscode/settings.json to .gitignore

* 🔥 Delete unused contracts and tests

* ✨ Add utility functions for conversion and formatting

* ✨ Add buildUserOp function to utils.ts

* ✨ Add git hook to check branch names

* ✨ Add SmartAccount contract

* ✨ Add AccountConfig contract implementation

* ✨ Add Execution contract for account execution

* ✨ Add ModuleConfig contract for managing modules

* ✨ Add Storage contract for isolated storage access

* ✨ Add Validator contract for user operation validation

* ⚡️ Add ERC-7579 interfaces for smart account configuration, execution, module, and module configuration

* ✨ Add IStorage interface for ERC20 account storage

* 🚀 Add deployment of SmartAccount contract

* 🚧 Update import statement and variable name in Deploy script

* ⚡️ Add Entrypoint 0.7.0

* ⚡️ Add Imports.sol for consolidated imports

* ✅ Add SmartAccount test file

* 👷 Remove unnecessary branch from PR Automation Workflow

* ✏️ Update storage location for SmartAccount in contracts

* Feat/slither (#14)

* 👷 Add Slither analysis workflow

* ♻️ Update Slither workflow to include Foundry installation***

* Add permissions and update Slither configuration

* Update Slither workflow to ensure tool availability

* Update Slither workflow

* Add Slither workflow to run static analysis

* 💚 add yarn.lock

* ✨ Update Slither workflow to include Node.js setup and SARIF report generation

* Remove SARIF file upload step in slither.yml

* Update Slither configuration in workflow

* 🚧 Update Slither workflow to include Foundry installation and contract building

* Remove target directory for analysis in slither.yml workflow

* 🚑 Update Slither workflow to include SARIF file upload

* Add token to SARIF file upload

* Add comment.js and update slither.yml workflow

* Update node version in slither.yml

* Update Slither workflow to fail on medium severity issues

* Add target directory for Slither analysis

* Update slither.yml with filter paths for mock contracts

* Update slither-args in slither.yml

* Fix slither-args path in GitHub workflow

* Update slither configuration to exclude node_modules directory

* Update slither-args in slither.yml workflow

* Update Slither version to 0.10.0

* Update slither.yml to fail on no severity issues

* Add check for pull request event in comment.js

* Update GitHub Actions workflow to trigger on pull requests (#15)

* Update GitHub Actions workflow to trigger on pull requests

* Update Slither workflow permissions and arguments

* Refactor CI workflow and remove redundant coverage and slither workflows

* Update Node.js and Foundry versions

* Add Foundry to PATH

* Update CI workflow to install lcov and make other improvements

* Add cache for Foundry Toolchain

* Update CI workflow configuration

* Refactor GitHub Actions workflow***

* Update CI workflow to cache node_modules and Foundry toolchain

* Update CI workflow and add linting, unit tests, coverage, and static analysis

* Update cache keys and add Foundry toolchain

* Add Foundry cache key generation and ensure Foundry directory exists

* Update CI workflow and cache actions***

* Update CI workflow and dependencies

* Update CI workflow to install Foundry and generate coverage report

* Add lcov installation step and update Codecov upload for Foundry and Hardhat coverage reports

* Refactor CI workflow and add Slither analysis

* Update CI Workflow to include linting, unit tests, coverage, and slither analysis

* lint comment.js module

* prettier on branch name check and add comments

* Refactor CI workflow and update Slither analysis

* Refactor comment.js and ci.yml to improve Slither analysis report generation

* Add Module contract implementation

* Fix returnData initialization bug in Execution.sol and import IModule in Module.sol

* Refactor getEmoji function to use text instead of impact level

* Update TYPE_ID constant to uint256

* Refactor comment.js to add URL shortening and emoji processing

* Update constant declaration in Module.sol

* Refactor comment.js to improve readability and add emojis

* Refactor comment.js to improve URL shortening and emoji handling

* refactor, change acc id

* 🎨 further refactor. add module types

* ⚙️ validateUserOp implementation

* ✅ add execute via EP test

* Add remappings and solady module

* 📦 Add new dependencies and update existing ones

* 🔨 Update package.json with new check-branch-name script

* Add 'deployments' to .gitignore

* Add hardhat-deploy package

* Refactor comment.js

* Refactor buildUserOp function and add new utility functions

* Add UserOperation and PackedUserOperation interfaces

* 📦 Update dependencies in yarn.lock

* Update husky hooks in package.json

* 🔥 Remove unused contract files

* 🐛 revert remappings in remappings.txt due to issue with hh

* Remove duplicated account-abstraction dep

* Update import paths for PackedUserOperation

* Remove unused contracts and imports

* ♻️ Update AccountConfig implementation ID

* 🙈 Add .solcover.js configuration file

* 🙈 add solcover

* 🔥 remove utils

* 🔥 remove account.test.ts

* 🎨 improve code with interface

* ✨ add encoding utils function

* ✨ add helpers for operation

* 🔥 remove unused module

* 🚀 utils for deployment

* ✨ add Counter test contract

* ✅ add mockvalidator for test purpose

* 🎨 simplify Execution funcs for quick test

* ✨ add onInstall hook on moduleManager

* 🔥 remove empty useless contract

* 🚀 add basic AccountFactory

* 🎨 add interface for AccountFactory

* ✅ add deployment tests

* ✅ add configuration tests

* ✅ add module management tests

* ✅ add acc execution tests

* 🚨 lint fix

* chore: forge init

* forge install: forge-std

v1.7.6

* chore: forge init

* Delete CounterTest contract and related tests

* Remove submodule lib/forge-std

* 🔧 Update remappings in remappings.txt

* 📦 Add ds-test dependency

* 📦 Add ds-test dependency

* ✨ Add computeAccountAddress function to AccountFactory

* Add test function to ignore coverage of ModuleTypeLib.sol

* Add test function to MockValidator to ignore coverage

* Remove forge-std subproject

* Update import path for Script.sol

* ✨ Add Structs.sol with ModuleType enum

* 🚚 Update import statement in Storage.sol

* 🚚 Update module interface in AccountFactory

* Remove deprecated interfaces

* Add IStorage interface definition

* Update imports in Imports.sol

* ✨ Add Helpers.sol with utility functions

* Refactor code to improve performance and readability

* Refactor BicoTestBase and import Helpers and console2.sol

* Add Forge-std Test import and refactor newWallet function

* 🚨 Lint fix

* Delete unnecessary files

* 🔥 Remove unused function isInitialized()

* ⚡️ Refactor comment posting logic to delete existing Slither comments

* lint fix (Remove empty line in IModule.sol)

* 🐛 fix missing var on comment.js

* Add uniqueSlitherHeader to markdownComment

* Remove test workflow

* refactor

* proposed naming convention changes

* rename to supportsExecutionMode

* lint refactor

* refactor as per discussion / PR

* fix linter with unused import

* 🎨 lint

---------

Co-authored-by: aboudjem <[email protected]>
Co-authored-by: Filipp Makarov <[email protected]>
Co-authored-by: livingrockrises <[email protected]>

* Update version to 0.2.0 in CHANGELOG.md and package.json

---------

Co-authored-by: filmakarov <[email protected]>
Co-authored-by: Filipp Makarov <[email protected]>
Co-authored-by: livingrockrises <[email protected]>
Aboudjem added a commit that referenced this pull request Jun 4, 2024
* Release/0.1.0 (#10)

* 🎨 init repo

* 👷 update ci

* 🎨 update badges

* Feat/add husky (#4)

* Add husky for Git hooks

* 🚧 add branch naming check

* ✅Add Git hooks for branch name validation

* 💚 Update pre-push script to remove unnecessary line

* Add branch name validation checks for dev and main branches

* 🚧 Update branch naming check workflow

* 👷 Add PR Automation Workflow (#6)

* 🔖 Update package.json version to 0.1.0

* 💚 Fix versioning check in automation workflow

* ⚡️ Fix CI/CD workflows and update changelog

* 💚 Sync release branch to dev and create automated PR

* Update versioning check in automation workflow

* 💚 Update automation_workflow.yml to check for changes in package.json and CHANGELOG.md

* Refactor workflow to check for updated files

* Refactor code to improve performance and readability

* Add LICENSE file to GitHub Actions workflow

* 💚 Update automation workflow to check for changed files

* Update automation_workflow.yml to check for changes in package.json and CHANGELOG.md files

* Add checks for package.json, CHANGELOG.md, and LICENSE files

* Refactor verification logic in automation workflow

* Update automation_workflow.yml to verify changes in CHANGELOG.md file

* 💚 Add automation workflow for creating PRs to dev and main branches

* Update GitHub Actions versions

* 💚 Update automation_workflow.yml to use dynamic branch names

* Update GitHub token in automation_workflow.yml

* Refactor automation workflow to remove unnecessary steps

* Release/0.2.0 (#22)

* 🎨 init repo

* 👷 update ci

* 🎨 update badges

* Feat/add husky (#4)

* Add husky for Git hooks

* 🚧 add branch naming check

* ✅Add Git hooks for branch name validation

* 💚 Update pre-push script to remove unnecessary line

* Add branch name validation checks for dev and main branches

* 🚧 Update branch naming check workflow

* 👷 Add PR Automation Workflow (#6)

* Release/0.1.0 (#9)

* 🔖 Update package.json version to 0.1.0

* 💚 Fix versioning check in automation workflow

* ⚡️ Fix CI/CD workflows and update changelog

* 💚 Sync release branch to dev and create automated PR

* Update versioning check in automation workflow

* 💚 Update automation_workflow.yml to check for changes in package.json and CHANGELOG.md

* Refactor workflow to check for updated files

* Refactor code to improve performance and readability

* Add LICENSE file to GitHub Actions workflow

* 💚 Update automation workflow to check for changed files

* Update automation_workflow.yml to check for changes in package.json and CHANGELOG.md files

* Add checks for package.json, CHANGELOG.md, and LICENSE files

* Refactor verification logic in automation workflow

* Update automation_workflow.yml to verify changes in CHANGELOG.md file

* 💚 Add automation workflow for creating PRs to dev and main branches

* Update GitHub Actions versions

* 💚 Update automation_workflow.yml to use dynamic branch names

* Update GitHub token in automation_workflow.yml

* Refactor automation workflow to remove unnecessary steps

* Feat/erc 7579 interfaces (#12)

* 🙈 Add cache_forge to .gitignore

* Add .husky to .gitignore

* 🎨 Update tab width to 4 spaces in .prettierrc

* 🚧 Disable no-inline-assembly rule in .solhint.json

* ⚡️ Add account-abstraction dependency and update husky hooks

* 🔥 Remove Git hooks for branch name validation

* 🔧 Update tsconfig.json to disable strict mode

* 🎨 Update Solidity version and remappings, delete unused contracts and tests

* 🙈 Add .vscode/settings.json to .gitignore

* 🔥 Delete unused contracts and tests

* ✨ Add utility functions for conversion and formatting

* ✨ Add buildUserOp function to utils.ts

* ✨ Add git hook to check branch names

* ✨ Add SmartAccount contract

* ✨ Add AccountConfig contract implementation

* ✨ Add Execution contract for account execution

* ✨ Add ModuleConfig contract for managing modules

* ✨ Add Storage contract for isolated storage access

* ✨ Add Validator contract for user operation validation

* ⚡️ Add ERC-7579 interfaces for smart account configuration, execution, module, and module configuration

* ✨ Add IStorage interface for ERC20 account storage

* 🚀 Add deployment of SmartAccount contract

* 🚧 Update import statement and variable name in Deploy script

* ⚡️ Add Entrypoint 0.7.0

* ⚡️ Add Imports.sol for consolidated imports

* ✅ Add SmartAccount test file

* 👷 Remove unnecessary branch from PR Automation Workflow

* ✏️ Update storage location for SmartAccount in contracts

* Feat/slither (#14)

* 👷 Add Slither analysis workflow

* ♻️ Update Slither workflow to include Foundry installation***

* Add permissions and update Slither configuration

* Update Slither workflow to ensure tool availability

* Update Slither workflow

* Add Slither workflow to run static analysis

* 💚 add yarn.lock

* ✨ Update Slither workflow to include Node.js setup and SARIF report generation

* Remove SARIF file upload step in slither.yml

* Update Slither configuration in workflow

* 🚧 Update Slither workflow to include Foundry installation and contract building

* Remove target directory for analysis in slither.yml workflow

* 🚑 Update Slither workflow to include SARIF file upload

* Add token to SARIF file upload

* Add comment.js and update slither.yml workflow

* Update node version in slither.yml

* Update Slither workflow to fail on medium severity issues

* Add target directory for Slither analysis

* Update slither.yml with filter paths for mock contracts

* Update slither-args in slither.yml

* Fix slither-args path in GitHub workflow

* Update slither configuration to exclude node_modules directory

* Update slither-args in slither.yml workflow

* Update Slither version to 0.10.0

* Update slither.yml to fail on no severity issues

* Add check for pull request event in comment.js

* Update GitHub Actions workflow to trigger on pull requests (#15)

* Update GitHub Actions workflow to trigger on pull requests

* Update Slither workflow permissions and arguments

* Refactor CI workflow and remove redundant coverage and slither workflows

* Update Node.js and Foundry versions

* Add Foundry to PATH

* Update CI workflow to install lcov and make other improvements

* Add cache for Foundry Toolchain

* Update CI workflow configuration

* Refactor GitHub Actions workflow***

* Update CI workflow to cache node_modules and Foundry toolchain

* Update CI workflow and add linting, unit tests, coverage, and static analysis

* Update cache keys and add Foundry toolchain

* Add Foundry cache key generation and ensure Foundry directory exists

* Update CI workflow and cache actions***

* Update CI workflow and dependencies

* Update CI workflow to install Foundry and generate coverage report

* Add lcov installation step and update Codecov upload for Foundry and Hardhat coverage reports

* Refactor CI workflow and add Slither analysis

* Update CI Workflow to include linting, unit tests, coverage, and slither analysis

* Refactor CI workflow and update Slither analysis

* [WIP] Refactor and Start implementing methods (#17)

* 🙈 Add cache_forge to .gitignore

* Add .husky to .gitignore

* 🎨 Update tab width to 4 spaces in .prettierrc

* 🚧 Disable no-inline-assembly rule in .solhint.json

* ⚡️ Add account-abstraction dependency and update husky hooks

* 🔥 Remove Git hooks for branch name validation

* 🔧 Update tsconfig.json to disable strict mode

* 🎨 Update Solidity version and remappings, delete unused contracts and tests

* 🙈 Add .vscode/settings.json to .gitignore

* 🔥 Delete unused contracts and tests

* ✨ Add utility functions for conversion and formatting

* ✨ Add buildUserOp function to utils.ts

* ✨ Add git hook to check branch names

* ✨ Add SmartAccount contract

* ✨ Add AccountConfig contract implementation

* ✨ Add Execution contract for account execution

* ✨ Add ModuleConfig contract for managing modules

* ✨ Add Storage contract for isolated storage access

* ✨ Add Validator contract for user operation validation

* ⚡️ Add ERC-7579 interfaces for smart account configuration, execution, module, and module configuration

* ✨ Add IStorage interface for ERC20 account storage

* 🚀 Add deployment of SmartAccount contract

* 🚧 Update import statement and variable name in Deploy script

* ⚡️ Add Entrypoint 0.7.0

* ⚡️ Add Imports.sol for consolidated imports

* ✅ Add SmartAccount test file

* 👷 Remove unnecessary branch from PR Automation Workflow

* ✏️ Update storage location for SmartAccount in contracts

* Feat/slither (#14)

* 👷 Add Slither analysis workflow

* ♻️ Update Slither workflow to include Foundry installation***

* Add permissions and update Slither configuration

* Update Slither workflow to ensure tool availability

* Update Slither workflow

* Add Slither workflow to run static analysis

* 💚 add yarn.lock

* ✨ Update Slither workflow to include Node.js setup and SARIF report generation

* Remove SARIF file upload step in slither.yml

* Update Slither configuration in workflow

* 🚧 Update Slither workflow to include Foundry installation and contract building

* Remove target directory for analysis in slither.yml workflow

* 🚑 Update Slither workflow to include SARIF file upload

* Add token to SARIF file upload

* Add comment.js and update slither.yml workflow

* Update node version in slither.yml

* Update Slither workflow to fail on medium severity issues

* Add target directory for Slither analysis

* Update slither.yml with filter paths for mock contracts

* Update slither-args in slither.yml

* Fix slither-args path in GitHub workflow

* Update slither configuration to exclude node_modules directory

* Update slither-args in slither.yml workflow

* Update Slither version to 0.10.0

* Update slither.yml to fail on no severity issues

* Add check for pull request event in comment.js

* Update GitHub Actions workflow to trigger on pull requests (#15)

* Update GitHub Actions workflow to trigger on pull requests

* Update Slither workflow permissions and arguments

* Refactor CI workflow and remove redundant coverage and slither workflows

* Update Node.js and Foundry versions

* Add Foundry to PATH

* Update CI workflow to install lcov and make other improvements

* Add cache for Foundry Toolchain

* Update CI workflow configuration

* Refactor GitHub Actions workflow***

* Update CI workflow to cache node_modules and Foundry toolchain

* Update CI workflow and add linting, unit tests, coverage, and static analysis

* Update cache keys and add Foundry toolchain

* Add Foundry cache key generation and ensure Foundry directory exists

* Update CI workflow and cache actions***

* Update CI workflow and dependencies

* Update CI workflow to install Foundry and generate coverage report

* Add lcov installation step and update Codecov upload for Foundry and Hardhat coverage reports

* Refactor CI workflow and add Slither analysis

* Update CI Workflow to include linting, unit tests, coverage, and slither analysis

* lint comment.js module

* prettier on branch name check and add comments

* Refactor CI workflow and update Slither analysis

* Refactor comment.js and ci.yml to improve Slither analysis report generation

* Add Module contract implementation

* Fix returnData initialization bug in Execution.sol and import IModule in Module.sol

* Refactor getEmoji function to use text instead of impact level

* Update TYPE_ID constant to uint256

* Refactor comment.js to add URL shortening and emoji processing

* Update constant declaration in Module.sol

* Refactor comment.js to improve readability and add emojis

* Refactor comment.js to improve URL shortening and emoji handling

* refactor, change acc id

* 🎨 further refactor. add module types

* ⚙️ validateUserOp implementation

* ✅ add execute via EP test

* Add remappings and solady module

* 📦 Add new dependencies and update existing ones

* 🔨 Update package.json with new check-branch-name script

* Add 'deployments' to .gitignore

* Add hardhat-deploy package

* Refactor comment.js

* Refactor buildUserOp function and add new utility functions

* Add UserOperation and PackedUserOperation interfaces

* 📦 Update dependencies in yarn.lock

* Update husky hooks in package.json

* 🔥 Remove unused contract files

* 🐛 revert remappings in remappings.txt due to issue with hh

* Remove duplicated account-abstraction dep

* Update import paths for PackedUserOperation

* Remove unused contracts and imports

* ♻️ Update AccountConfig implementation ID

* 🙈 Add .solcover.js configuration file

* 🙈 add solcover

* 🔥 remove utils

* 🔥 remove account.test.ts

* 🎨 improve code with interface

* ✨ add encoding utils function

* ✨ add helpers for operation

* 🔥 remove unused module

* 🚀 utils for deployment

* ✨ add Counter test contract

* ✅ add mockvalidator for test purpose

* 🎨 simplify Execution funcs for quick test

* ✨ add onInstall hook on moduleManager

* 🔥 remove empty useless contract

* 🚀 add basic AccountFactory

* 🎨 add interface for AccountFactory

* ✅ add deployment tests

* ✅ add configuration tests

* ✅ add module management tests

* ✅ add acc execution tests

* 🚨 lint fix

* chore: forge init

* forge install: forge-std

v1.7.6

* chore: forge init

* Delete CounterTest contract and related tests

* Remove submodule lib/forge-std

* 🔧 Update remappings in remappings.txt

* 📦 Add ds-test dependency

* 📦 Add ds-test dependency

* ✨ Add computeAccountAddress function to AccountFactory

* Add test function to ignore coverage of ModuleTypeLib.sol

* Add test function to MockValidator to ignore coverage

* Remove forge-std subproject

* Update import path for Script.sol

* ✨ Add Structs.sol with ModuleType enum

* 🚚 Update import statement in Storage.sol

* 🚚 Update module interface in AccountFactory

* Remove deprecated interfaces

* Add IStorage interface definition

* Update imports in Imports.sol

* ✨ Add Helpers.sol with utility functions

* Refactor code to improve performance and readability

* Refactor BicoTestBase and import Helpers and console2.sol

* Add Forge-std Test import and refactor newWallet function

* 🚨 Lint fix

* Delete unnecessary files

* 🔥 Remove unused function isInitialized()

* ⚡️ Refactor comment posting logic to delete existing Slither comments

* lint fix (Remove empty line in IModule.sol)

* 🐛 fix missing var on comment.js

* Add uniqueSlitherHeader to markdownComment

* Remove test workflow

* refactor

* proposed naming convention changes

* rename to supportsExecutionMode

* lint refactor

* refactor as per discussion / PR

* fix linter with unused import

* 🎨 lint

---------

Co-authored-by: aboudjem <[email protected]>
Co-authored-by: Filipp Makarov <[email protected]>
Co-authored-by: livingrockrises <[email protected]>

* Update version to 0.2.0 in CHANGELOG.md and package.json

---------

Co-authored-by: filmakarov <[email protected]>
Co-authored-by: Filipp Makarov <[email protected]>
Co-authored-by: livingrockrises <[email protected]>

* update versions nexus to 1.0.0-beta

* lint fix

* fix conflicts

* remove Husky hooks and gas report generation + lint fix + clean + badge update

---------

Co-authored-by: filmakarov <[email protected]>
Co-authored-by: Filipp Makarov <[email protected]>
Co-authored-by: livingrockrises <[email protected]>
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.

4 participants