This migration guide assumes you have already migrated to ^0.4.0
and are now migrating to ^0.5.0
.
module-bases
The module-bases repository has been integrated within ModuleKit and is no longer required as a dependency. You should:
src/module-bases
Dependencies to the following smart account repositories have been removed:
All required interfaces and libraries are now located within src/accounts/
where each account has a specific folder with its own implementations.
Example updating imports:
src/external/ERC7579.sol
All contracts imported from the ERC7579 reference implementation have been removed. Interfaces and libraries have been moved to:
src/accounts/erc7579/interfaces
src/accounts/erc7579/lib
src/Accounts.sol
Accounts.sol
no longer imports Execution
from external/ERC7579.sol
. It now imports all smart account interfaces directly:
Major interfaces now imported:
IERC7579Account
(common ERC7579 interface)IMSA
(ERC7579 reference implementation)IKernelAccount
(Kernel)ISafe7579
(Safe7579)src/Core.sol
Core.sol
is unused and has been removed.
src/Helpers.sol
sign
is no longer imported within Helpers.sol
. It has been moved to src/test/utils/ECDSA.sol
. All account helpers are now consolidated in Helpers.sol
src/Interface.sol
, src/Mocks.sol
, src/Modules.sol
Since module-bases is now integrated, the imports in these files come from local files:
src/Interfaces.sol
src/Mocks.sol
src/Modules.sol
If you are using module-bases as an external dependency in conjunction with ModuleKit, this could cause compiler issues. We recommend removing the module-bases dependency and only using ModuleKit.