/paymaster-examples

Ready to use paymaster contracts for zkSync Era

Primary LanguageTypeScriptMIT LicenseMIT

Paymaster Examples Repository 📁

Welcome to the world of Paymasters!! 🎉 🌍 🎉

⚠️ Work in Progress: Please note that none of the contracts in this repository have been fully audited or extensively tested. These contracts are examples and, therefore, are not designed for production use.

This repository houses a variety of example Paymaster Contracts demonstrating different use cases. Plus, a user-friendly, configurable frontend to interact with these examples, developed using React and Next.js.

Repository structure 🏗️

The repository is divided into two main sections:

  • /contracts: This directory contains the smart contracts, where each sub-directory represents a unique Paymaster use case.

  • /frontend: This directory hosts the frontend developed using React and Next.js. The frontend allows you to interact with the various Paymaster contracts provided.

Commands 💻

Here are some useful commands to get started:

  • yarn compile:contracts: Compiles the contracts.
  • yarn deploy:contracts: This command deploys contracts. Scripts for deployment can be found in the /contracts/deploy directory.
  • yarn test:contracts: Runs contract tests. Please ensure to check the test requirements in /contracts directory.
  • yarn serve:ui: Serves up frontend on localhost:3000
  • yarn format: Runs prettier formatter.

Have a request? 🙋‍♀️

Do you want to see a specific type of Paymaster contract included in this repository? Head over to the zkync-developers/discussions and tell us about it! We highly value your feedback and are always open to new ideas for showcasing different use-cases and techniques.

Contributing 🙋‍♂️

We welcome all contributors! If you're interested in contributing to this project, please review the CONTRIBUTING guide but for a quick summary:

  1. Fork the repository
  2. Create a new branch for your changes
  3. Implement your changes and commit them
  4. Push your changes to your fork
  5. Submit a pull request to the main repository

Your contribution will be reviewed and, if it's beneficial to the project, merged into the main branch. Thank you for your interest in our project!

Official links 🔗