Skip to content

Commit

Permalink
chore: update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
howydev committed Jan 24, 2024
1 parent 7b23932 commit b2e566a
Showing 1 changed file with 21 additions and 33 deletions.
54 changes: 21 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
# Alchemy Modular Smart Contract Account (MSCA)
# Modular Account

Contracts for an upgradeable modular smart contract account that is compatible with ERC-4337, along with a set of plugins.
Alchemy's Modular Account is a maximally modular smart contract account. It is compatible with [ERC-4337](https://eips.ethereum.org/EIPS/eip-4337), upgradeable, and is in-line with [ERC-6900](https://eips.ethereum.org/EIPS/eip-6900).

## Overview

This repository contains:
* The [Modular Account](https://github.com/alchemyplatform/modular-account/src/account)
* [Factory contracts for the Modular Account](https://github.com/alchemyplatform/modular-account/src/factory)
* 3 Modular Account compatible plugins:
* [MultiOwnerPlugin](https://github.com/alchemyplatform/modular-account/src/plugins/owner) is a plugin supporting 1+ ECDSA owners.
* [TokenReceiverPlugin](https://github.com/alchemyplatform/modular-account/src/plugins/TokenReceiverPlugin.sol) contains ERC721/ERC777/ERC1155 token receivers.
* [SessionKeyPlugin](https://github.com/alchemyplatform/modular-account/src/plugins/session) enables session keys with additonal optional restrictions such as time ranges, token spend limits, and gas spend limits.

## Development

Expand All @@ -10,54 +20,32 @@ Contracts for an upgradeable modular smart contract account that is compatible w
- `validation` and `validationFunction` are used to replace `validator`.
- `associated` and `associatedFunction` are used to represents `validationFunction` and `hook`

## Build
### Building and Testing

```bash
# Build options
forge build

# or use the lite profile to reduce compilation time
FOUNDRY_PROFILE=lite forge build

# for faster IR builds (to check contract sizes)
FOUNDRY_PROFILE=optimized-build forge build --sizes
```

## Syntax check

```bash
# Lint
pnpm lint:src && pnpm lint:test
```

## Test

```bash
# Test Options
forge test -vvv

# or use the lite profile to reduce compilation time
FOUNDRY_PROFILE=lite forge test -vvv
```

## Generate Inspections
### Deployment

A deployment script can be found in the `scripts/` folder
```bash
bash utils/inspect.sh
```

## Static Analysis

```bash
slither .
forge script script/Deploy.s.sol --rpc-url $SEPOLIA_RPC_URL --broadcast
```

## External Libraries
## Security and Audits

We use Solady's highly optimized [UUPSUpgradeable](https://github.com/Vectorized/solady/blob/a061f38f27cd7ae330a86d42d3f15b4e7237f064/src/utils/UUPSUpgradeable.sol) in our contracts

## Deployment

```bash
forge script script/Deploy.s.sol --rpc-url $SEPOLIA_RPC_URL --broadcast
```
We have done 2 audits from Spearbit and Quantstamp and will upload the reports shortly.

## License

Expand Down

0 comments on commit b2e566a

Please sign in to comment.