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.