Skip to content

Commit

Permalink
馃摑 readme: add basic description and instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
cruzdanilo committed May 21, 2024
1 parent a97bcd6 commit 7d4a979
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Webauthn Owner Plugin

This repository contains code for an ERC-6900 compliant plugin where one or more
EOA accounts, ERC-1271 compliant contracts, or P256 passkeys can be owners of
the account. Its core features include:

- Enable ECDSA verification of signatures, standard EOA signature verification.
- Enable ERC-1271 signature verification, standard contract owner signature
verification.
- Enable Webauthn verification, secp256r1 (P256) passkey signatures verification.
- Multiple equal owners who have the same root access to account.
- Implements EIP-712.
- By default, owner validation is added for most of the account's native functions,
including:
- `installPlugin`/ `uninstallPlugin`
- `upgradeToAndCall`
- `execute` / `executeBatch`

> [!CAUTION]
> The code in this repository and its dependencies are still under audit.
It is not yet recommended for production use.

## Developing

After cloning the repo, run the tests using Forge, from [Foundry](https://github.com/foundry-rs/foundry)

```bash
forge test
```

### Static Analysis

To run the static analysis tools, install the Python dependencies in `requirements.txt`
and the JavaScript dependencies using any [_npm-compatible_](https://bun.sh/)
package manager:

```bash
pip install -r requirements.txt
bun install # or npm install
```

Then run the full suite of tests, including static analysis, formatting,
and gas checking:

```bash
bun run test # or npm run test
```

## Influences

Much of the code in this repository started from Alchemy's [Multi Owner Plugin](https://github.com/alchemyplatform/modular-account/blob/develop/src/plugins/owner/MultiOwnerPlugin.sol)
implementation. It was also influenced by Coinbase's [Smart Wallet](https://github.com/coinbase/smart-wallet).

0 comments on commit 7d4a979

Please sign in to comment.