Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
7299b38
feat: ecdsa validator with stateless validation
leekt Nov 3, 2025
d5cbf02
feat: ecdsa signer with stateless validation logic
leekt Nov 3, 2025
bc99663
feat: signature policy
leekt Nov 4, 2025
53e86c0
Remove all submodules
leekt Nov 4, 2025
f898564
Purge broken submodules and metadata
leekt Nov 4, 2025
04cb212
removed hooks and actions
leekt Nov 4, 2025
8acbec3
merge recent commits
leekt Nov 4, 2025
e418592
cleanup
leekt Nov 4, 2025
702616c
gitignore
leekt Nov 4, 2025
eaddd42
temp
leekt Nov 4, 2025
ef6564d
compilable
leekt Nov 4, 2025
23b5614
fix: signer ordering
leekt Nov 5, 2025
b051dd0
TimelockPolicy
leekt Nov 5, 2025
9ab44f6
cleanup mess
leekt Nov 5, 2025
543ee02
foundry.toml
leekt Nov 5, 2025
1d65788
tests
leekt Nov 6, 2025
7b8de1e
testBase
leekt Nov 6, 2025
c2061cc
test file done
leekt Nov 6, 2025
57eca15
finished test cases
leekt Nov 6, 2025
b439f3e
removed isInitialized function
leekt Nov 12, 2025
9bc5eb2
Merge pull request #34 from zerodevapp/fix/remove_isInitialized
leekt Nov 18, 2025
db37cbc
change address and WebAuthn.sol
leekt Jan 9, 2026
0937ec5
Merge pull request #35 from zerodevapp/fix/webauthn_release
leekt Jan 9, 2026
d395c44
feat: ecdsa validator with stateless validation
leekt Nov 3, 2025
5deb90d
feat: ecdsa signer with stateless validation logic
leekt Nov 3, 2025
581985f
feat: signature policy
leekt Nov 4, 2025
ef5a618
Remove all submodules
leekt Nov 4, 2025
b41c1d4
Purge broken submodules and metadata
leekt Nov 4, 2025
335a67c
removed hooks and actions
leekt Nov 4, 2025
88a4d4c
merge recent commits
leekt Nov 4, 2025
dea31e1
cleanup
leekt Nov 4, 2025
a0057e1
gitignore
leekt Nov 4, 2025
6e0996d
temp
leekt Nov 4, 2025
3ab3b19
compilable
leekt Nov 4, 2025
afbab8c
fix: signer ordering
leekt Nov 5, 2025
f3438c1
TimelockPolicy
leekt Nov 5, 2025
dba4b6e
cleanup mess
leekt Nov 5, 2025
29c4991
foundry.toml
leekt Nov 5, 2025
943dbdb
tests
leekt Nov 6, 2025
bd999e1
testBase
leekt Nov 6, 2025
e7af1e5
test file done
leekt Nov 6, 2025
27ef3dc
finished test cases
leekt Nov 6, 2025
6ae157f
removed isInitialized function
leekt Nov 12, 2025
223c693
Merge branch 'dev/0.2.0' of github.com:zerodevapp/kernel-7579-plugins…
leekt Jan 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 19 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,19 @@
**/log
# Compiler files
cache/
out/

# Ignores development broadcast logs
!/broadcast
/broadcast/*/31337/
/broadcast/**/dry-run/

# Docs
docs/

# Dotenv file
.env

coverage/
lcov.info
log/

110 changes: 0 additions & 110 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,110 +0,0 @@
[submodule "validators/webauthn/lib/forge-std"]
path = validators/webauthn/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "signers/ecdsa/lib/forge-std"]
path = signers/ecdsa/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "validators/webauthn/lib/openzeppelin-contracts"]
path = validators/webauthn/lib/openzeppelin-contracts
url = https://github.com/openzeppelin/openzeppelin-contracts
[submodule "signers/ecdsa/lib/kernel_v3"]
path = signers/ecdsa/lib/kernel_v3
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "signers/ecdsa/lib/solady"]
path = signers/ecdsa/lib/solady
url = https://github.com/vectorized/solady
[submodule "policies/signature-caller/lib/forge-std"]
path = policies/signature-caller/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "policies/signature-caller/lib/kernel_v3"]
path = policies/signature-caller/lib/kernel_v3
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "policies/call-policy/lib/forge-std"]
path = policies/call-policy/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "policies/call-policy/lib/kernel_v3"]
path = policies/call-policy/lib/kernel_v3
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "policies/ratelimit/lib/forge-std"]
path = policies/ratelimit/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "policies/gas/lib/forge-std"]
path = policies/gas/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "policies/gas/lib/kernel_v3"]
path = policies/gas/lib/kernel_v3
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "policies/ratelimit/lib/kernel_v3"]
path = policies/ratelimit/lib/kernel_v3
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "policies/timestamp/lib/forge-std"]
path = policies/timestamp/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "policies/timestamp/lib/kernel_v3"]
path = policies/timestamp/lib/kernel_v3
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "signers/webauthn/lib/forge-std"]
path = signers/webauthn/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "signers/webauthn/lib/openzeppelin-contracts"]
path = signers/webauthn/lib/openzeppelin-contracts
url = https://github.com/openzeppelin/openzeppelin-contracts
[submodule "policies/sudo/lib/forge-std"]
path = policies/sudo/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "policies/sudo/lib/kernel_v3"]
path = policies/sudo/lib/kernel_v3
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "actions/recovery/lib/forge-std"]
path = actions/recovery/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "actions/recovery/lib/kernel_v3"]
path = actions/recovery/lib/kernel_v3
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "hooks/onlyEntrypoint/lib/forge-std"]
path = hooks/onlyEntrypoint/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "hooks/onlyEntrypoint/lib/kernel_v3"]
path = hooks/onlyEntrypoint/lib/kernel_v3
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "signers/webauthn/lib/kernel"]
path = signers/webauthn/lib/kernel
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "hooks/spendlingLimits/lib/forge-std"]
path = hooks/spendlingLimits/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "hooks/spendlingLimits/lib/kernel"]
path = hooks/spendlingLimits/lib/kernel
url = https://github.com/zerodevapp/kernel
branch = release/v3.1
[submodule "hooks/spendlingLimits/lib/solady"]
path = hooks/spendlingLimits/lib/solady
url = https://github.com/vectorized/solady
[submodule "hooks/caller/lib/forge-std"]
path = hooks/caller/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "hooks/caller/lib/kernel"]
path = hooks/caller/lib/kernel
url = https://github.com/zerodevapp/kernel
[submodule "validators/erc1271/lib/forge-std"]
path = validators/erc1271/lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "validators/erc1271/lib/kernel"]
path = validators/erc1271/lib/kernel
url = https://github.com/zerodevapp/kernel
[submodule "validators/erc1271/lib/safe-smart-account"]
path = validators/erc1271/lib/safe-smart-account
url = https://github.com/safe-global/safe-smart-account
[submodule "lib/safe-smart-account"]
path = lib/safe-smart-account
url = https://github.com/safe-global/safe-smart-account
16 changes: 16 additions & 0 deletions AUDIT_OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Audit Overview – ERC-7579 Plugins

**Scope** `src/policies`, `src/signers`, `src/validators` (WebAuthn excluded) **Rev** 1.2 **Date** 2025-11-06

**Module IDs** 1 `VALIDATOR`, 2 `EXECUTOR` (unused), 3 `FALLBACK` (unused), 4 `HOOK`, 5 `POLICY`, 6 `SIGNER`, 7 `STATELESS_VALIDATOR`, 8 `STATELESS_VALIDATOR_WITH_SENDER`. Modules only claim IDs they fully implement.

**Policies**
- SignaturePolicy — types 5/10; tracks caller allowlists per `(id, wallet)`; stateless helper expects caller list in calldata.
- TimelockPolicy — types 5/7/10; proposal → execute flow with delay/expiry; detects no-op calldata; proposals keyed by `(account, calldata hash, nonce)`.

**Signers**
- ECDSASigner — types 6/7/10; one signer per `(id, wallet)`; eth-signed fallback; stateless helpers take signer address from calldata.
- WeightedECDSASigner — types 6/7/10; weighted guardians + threshold; enforces ascending signer order; stateless helper uses supplied guardian data.

**Validators**
- ECDSAValidator — types 1/4/7/10; single owner per account; `preCheck` enforces owner-only execution; stateless helpers take owner from calldata.
16 changes: 0 additions & 16 deletions README.md

This file was deleted.

34 changes: 0 additions & 34 deletions actions/recovery/.github/workflows/test.yml

This file was deleted.

14 changes: 0 additions & 14 deletions actions/recovery/.gitignore

This file was deleted.

66 changes: 0 additions & 66 deletions actions/recovery/README.md

This file was deleted.

6 changes: 0 additions & 6 deletions actions/recovery/foundry.toml

This file was deleted.

1 change: 0 additions & 1 deletion actions/recovery/lib/forge-std
Submodule forge-std deleted from bb4cee
1 change: 0 additions & 1 deletion actions/recovery/lib/kernel_v3
Submodule kernel_v3 deleted from 991234
4 changes: 0 additions & 4 deletions actions/recovery/remappings.txt

This file was deleted.

10 changes: 0 additions & 10 deletions actions/recovery/src/RecoveryAction.sol

This file was deleted.

Loading