Experiment the support for Account abstraction on zkSync (v2, Era).
Initial:
- Create a factory contract for deploying AAccounts
- Create a MultiSig 2:2 owned by the 2 AAccount owners
- Use the AAMultiSig contract to deploy another Account
- Apply the UUPS proxy pattern to the MultiSig contract
You need Node.js and Yarn.
Install all dependencies with pnpm install
or yarn
.
Compile all contracts with yarn hardhat compile
To run the scripts to deploy and execute the contracts, use the zksync-deploy
command:
yarn hardhat deploy-zksync --script deploy-factory.ts
: deploys the factory contractyarn hardhat deploy-zksync --script deploy-multisig.ts
: deploys a multisig wallet and executes a transaction.
Refer to matter-labs / custom-aa-tutorial
Code for the "Account abstraction" tutorial from the zkSync v2 documentation.
You can find a full step-by-step guide to build this project in this article.
Check out the common errors section in the tutorial, open an issue, or contact us on Discord.