What's Changed
- fix: improve session key gas estimation by @howydev in #140
- update versioning by @howydev in #143
- deploy + update deployments by @howydev in #144
- update banner by @howydev in #145
- build: update name of workflow to test by @jaypaik in #148
- docs: add shields by @jaypaik in #147
- update audit report by @howydev in #146
- docs: readme nits by @jaypaik in #150
- chore: update base-sepolia and eth-sepolia deployments by @jaypaik in #151
- chore: deploy on amoy by @howydev in #152
- feat(chains): add zora and frax deployments by @0xfourzerofour in #154
- docs: add documentation for the session key and multi-owner plugins by @noam-alchemy in #155
- feat: add name & version to package.json by @adam-alchemy in #164
- chore: fix audit report name, deployment files by @jaypaik in #165
- Refactor/use modular account libs by @Zer0dot in #166
- feat: update repo template by @adamegyed in #170
- feat: delete MAv1 [1/2] by @adamegyed in #171
- feat: import v2 base [2/2] by @adamegyed in #172
- feat: add code size and test coverage reporting to ci by @adamegyed in #173
- feat: use real entrypoint bytecode in tests by @adamegyed in #174
- feat: port account tests by @adamegyed in #175
- feat: gas benchmark setup by @adamegyed in #176
- feat: add MA runtime gas benchmarks by @adamegyed in #179
- feat: Deferred Validation Installation by @Zer0dot in #177
- fix: fix how 6900 dependencies are mapped and imported by @fangting-alchemy in #182
- feat: user op gas benchmarks for MA and LA by @adamegyed in #181
- feat: benchmark SemiModularAcocunt by @adamegyed in #183
- refactor: reorganize folders by @adamegyed in #185
- feat: use solady proxies by @adamegyed in #187
- feat: use custom base account by @adamegyed in #186
- feat: add erc20 token limit module by @fangting-alchemy in #184
- fix: pin evm version by @adamegyed in #193
- feat: add allowlist module by @adamegyed in #178
- feat: add time range module by @adamegyed in #180
- feat: deferred install gas benchmarks by @Zer0dot in #188
- feat: add paymaster guard module by @fangting-alchemy in #195
- feat: add webauthn module by @howydev in #189
- chore: consolidate module tests by @howydev in #198
- fix: fix compiler warning by @adamegyed in #201
- feat: introduce a storage-only SMA by @Zer0dot in #196
- fix: Fix ERC20TokenLimitModule and add session key gas benchmarks by @adamegyed in #194
- test: add hook ordering test by @adamegyed in #197
- feat: enable contract creation and update forge snapshots by @linnall in #192
- refactor: clean up modules to be consistent by @fangting-alchemy in #205
- fix: fix SMA test and CI by @adamegyed in #207
- feat: direct call validation for sma by @Zer0dot in #204
- feat: add token receiver into MABase by @fangting-alchemy in #209
- feat: migrate account storage to LLS by @adamegyed in #200
- feat: interface check simplification by @adamegyed in #202
- feat: skip return data collection on self-call by @adamegyed in #203
- test: port library tests and add type safety by @adamegyed in #208
- feat: bump reference-implementation version and fix errors by @jaypaik in #210
- build: separate cache dirs for optimized-build by @adamegyed in #214
- feat: change fallback validation magic value to zero by @Zer0dot in #211
- feat: skip signature length encoding on final sig by @adamegyed in #215
- refactor: move EP immutable to BaseAccount by @adamegyed in #217
- feat: add factory token sweeping by @fangting-alchemy in #221
- feat: hook data as calldata by @adamegyed in #218
- feat: add SMA known selectors by @Zer0dot in #223
- feat: add native token module by @howydev in #199
- chore: update licenses by @jaypaik in #230
- fix: fix AllowlistModule with selector wildcard case and update naming by @fangting-alchemy in #212
- fix: mapping fix for native token limit module by @fangting-alchemy in #232
- feat: hook mem management by @adamegyed in #219
- feat: move validation hooks to be LLS by @adamegyed in #220
- fix: detect compiler warnings in CI by @adamegyed in #235
- feat: change sig validation to switch off 1 byte of calldata by @howydev in #224
- refactor: use reference-implementation's libraries by @jaypaik in #228
- feat: merge allowlist and erc20 spend limit modules by @fangting-alchemy in #229
- feat: user op call buffers by @adamegyed in #222
- feat: runtime call buffers by @adamegyed in #225
- feat: hook call buffers by @adamegyed in #226
- fix: skip fuzz on coverage by @adamegyed in #238
- feat: dense post hooks by @adamegyed in #227
- fix: deferred validation install encoding by @adamegyed in #234
- fix: module signature length checks by @adamegyed in #236
- fix: update pnpm coverage script command by @jaypaik in #242
- refactor: update license + docs + var renaming by @fangting-alchemy in #244
- feat: account code cleanup by @adamegyed in #237
- feat: change deferred validation to deferred action by @adamegyed in #239
- feat: signature call buffers by @adamegyed in #240
- fix: correctly check hooks length in installValidation by @adamegyed in #243
- feat: bump ref-impl and update imports by @jaypaik in #245
- fix: accountstorage coverage, natspec, storage root derivation by @adamegyed in #246
- fix: rename ValidationData and ExecutionData by @jaypaik in #247
- fix: BaseAccount coverage and comments by @adamegyed in #248
- fix: update to replaced v0.8.0-rc.5 ref impl by @jaypaik in #249
- refactor: fix casing for WebAuthnValidationModule by @jaypaik in #250
- refactor: rename ECDSAValidationModule by @jaypaik in #251
- refactor: update moduleManagerInternals by @fangting-alchemy in #252
- docs: update README by @jaypaik in #254
- refactor: validation res helper and add tests by @fangting-alchemy in #253
- fix: correctly report hooks for account native functions by @adamegyed in #255
- chore: add integration tests for paymasterGuardModule by @fangting-alchemy in #258
- feat: add ERC7739 compatibility by @howydev in #241
- refactor: add docs + cleanup MA and MABase with small opt by @fangting-alchemy in #259
- fix: ModularAccountBase cleanup, coverage, custom error types by @adamegyed in #257
- feat: forward value in runtime validation by @adamegyed in #260
- chore: optimize Base module a bit by @fangting-alchemy in #261
- refactor: BaseAccount and BaseModule rename by @jaypaik in #256
- chore: pragma and licenses cleanup by @jaypaik in #262
- fix: accountId and moduleId cleanup by @jaypaik in #263
- refactor: codesize reduction by @Zer0dot in #231
- chore: improve comments, add tests for special paymaster by @howydev in #264
- chore: KnownSelectorsLib natspec by @jaypaik in #266
- docs: add natspec in libraries by @adamegyed in #265
- chore: natspec polish by @jaypaik in #267
- chore: doc and comments clean up by @fangting-alchemy in #268
- chore: remove 7739 by @howydev in #270
- chore: update forge-std and update deprecated cheatcodes by @adamegyed in #271
- chore: update ci for new foundry formatting by @adamegyed in #273
- refactor: update gas snapshotting to use foundry-native snapshot feature by @adamegyed in #274
- build(deps): bump secp256k1 from 4.0.3 to 4.0.4 by @dependabot in #269
- chore: cleanup test fixture and foundry.toml by @adamegyed in #276
- fix: [QS-ALC-2] add non zero address check for paymaster in modules by @fangting-alchemy in #279
- fix: [QS-ALC-4] mask deadline 48 bits by @fangting-alchemy in #285
- fix: [QS-ALC-3] add preSignatureValidationHook to isIModuleFunction in KnownSelectorsLib by @fangting-alchemy in #284
- test: [QS ALC-9] add more tests for insufficient return data and clarifying comments by @adamegyed in #277
- fix: [CL-009] address allowlist can be set independently of spend limits by @howydev in #280
- fix: [CL ALCHEMY-001] validation applicability check in deferred action by @adamegyed in #278
- fix: [CL ALCHEMY-002] use correct validation function for running hooks in executeUserOp by @adamegyed in #289
- feat: add function to deploy webauthn accounts from factory by @howydev in #275
- fix: [CL-008] remove duplicate wrapping by @howydev in #281
- fix: [CL-007] [QS-13] add invalidateDeferredValidationInstallNonce to native selectors check by @howydev in #282
- fix: [QS-12] prevent setting bad time ranges by @howydev in #286
- feat: add 7702 compatible semi modular account by @fangting-alchemy in #288
- fix: [QS-01] revert on presence of validation hooks in deferred validation, and run validation-associated execution hooks by @Zer0dot in #287
- fix: [QUANTSTAMP-ALC-20] Add NativeTokenLimitModule missing supported interface by @Zer0dot in #291
- fix: [Quantstamp-ALC-14] fix execution data view for native functions by @fangting-alchemy in #290
- fix: [QUANTSTAMP-ALC-22] use bytes31 instead of bytes30 for setValues by @Zer0dot in #292
- fix: [ALCHEMY-010] code maturity fixes by @jaypaik in #294
- fix: [ALCHEMY-010] extraneous event fixes by @jaypaik in #295
- fix: [S5] use Ownable2Step in AccountFactory by @jaypaik in #296
- fix: [S4] disable renounce ownership by @jaypaik in #297
- fix: [Quantstamp - ALC12 & S1] fix validUntil 0 value handing in timeRangeModule by @fangting-alchemy in #298
- fix: [CL-010-014] add docs for SMAB address encoding requirement by @fangting-alchemy in #306
- fix: [ALCHEMY-010] easy fixes (002, 015, 016) by @jaypaik in #301
- fix: [S6][ALCHEMY-010] uninstall revert on inconsistent config by @jaypaik in #303
- fix: [QS-S2] Comment and documentation update by @adamegyed in #304
- fix: [QS-S3] Minor gas optimizations and consistency by @adamegyed in #305
- fix: [CL ALCHEMY-003] validation function uniqueness in nonce by @adamegyed in #293
- fix: [CL ALCHEMY-004] enforce unique deferred action nonce per UO validation by @adamegyed in #299
- fix: [ALCHEMY-010] event emissions (006, 007, 008) by @jaypaik in #307
- fix: [S7] don't return exec hooks in getExecutionData for native functions that don't execute msg.sig-based hooks by @jaypaik in #300
- refactor: remove NativeFunctionDelegate by @jaypaik in #302
- chore: update licenses by @jaypaik in #308
- fix: [ALC-2] check paymaster address in hook as well by @jaypaik in #309
- fix: [Quantstamp-ALC12] update state to max if setting timeRange until to 0 in module if necessary by @fangting-alchemy in #310
- test: add updateFallbackSignerData test by @jaypaik in #311
- feat: bump spec to v0.8.0-rc.7 by @jaypaik in #312
- feat: add initcode hash script by @adamegyed in #314
- chore: add docs by @howydev in #315
- build(deps-dev): bump pnpm from 8.15.9 to 9.15.0 in the npm_and_yarn group across 1 directory by @dependabot in #319
- chore: final review fixes by @howydev in #317
- feat: deploy and address prediction scripts by @adamegyed in #321
- chore: add audit reports by @jaypaik in #322
- chore: bump reference-implementation to v0.8.0 by @jaypaik in #323
- feat: specialize deploy scripts per artifact by @adamegyed in #324
- docs: Add readme deployment instructions by @adamegyed in #325
- feat: add factory stake script by @adamegyed in #326
- feat: add v2.0.0 deployments by @adamegyed in #327
New Contributors
- @0xfourzerofour made their first contribution in #154
- @noam-alchemy made their first contribution in #155
- @adamegyed made their first contribution in #170
- @linnall made their first contribution in #192
- @dependabot made their first contribution in #269
Full Changelog: v1.0.1...v2.0.0
Deployed Contracts
Contract Name | Address | Salt |
---|---|---|
AccountFactory | 0x00000000000017c61b5bEe81050EC8eFc9c6fecd |
0x0000000000000000000000000000000000000000620c1b8944951c0586e48adb |
ModularAccount | 0x00000000000002377B26b1EdA7b0BC371C60DD4f |
0x000000000000000000000000000000000000000026d724645fb0ae7579e98c62 |
SemiModularAccount7702 | 0x69007702764179f14F51cdce752f4f775d74E139 |
0x560d523fd8061660acf1839f13f8550b0910ad69cf928acafea0cd76936f3800 |
SemiModularAccountBytecode | 0x000000000000c5A9089039570Dd36455b5C07383 |
0x0000000000000000000000000000000000000000d5ec084a831ef551abb05bc7 |
SemiModularAccountStorageOnly | 0x0000000000006E2f9d80CaEc0Da6500f005EB25A |
0x0000000000000000000000000000000000000000927a62077526ff6711e02ca3 |
ExecutionInstallDelegate | 0x0000000000008e6a39E03C7156e46b238C9E2036 |
0x0000000000000000000000000000000000000000f025c5072701275be9e38d72 |
SingleSignerValidationModule | 0x00000000000099DE0BF6fA90dEB851E2A2df7d83 |
0x000000000000000000000000000000000000000021f94598c3ee4349df132fca |
WebAuthnValidationModule | 0x0000000000001D9d34E07D9834274dF9ae575217 |
0x0000000000000000000000000000000000000000d6fcd2d895007352212d092c |
AllowlistModule | 0x0000000000002311EEE9A2B887af1F144dbb4F6e |
0x000000000000000000000000000000000000000053327e2d907120557b948d91 |
NativeTokenLimitModule | 0x00000000000001e541f0D090868FBe24b59Fbe06 |
0x0000000000000000000000000000000000000000cd5d40e42713cb5f4b81d828 |
PaymasterGuardModule | 0x0000000000001aA7A7F7E29abe0be06c72FD42A1 |
0x00000000000000000000000000000000000000001c0a1f2f2ba4a325db87a323 |
TimeRangeModule | 0x00000000000082B8e2012be914dFA4f62A0573eA |
0x0000000000000000000000000000000000000000500e1dfd80787c342371e513 |