Hi, Awesome people! Welcome to start a bounty task on Mask Network.
Mask Network extension is written in TypeScript. The UI is written by React and @mui framework. We write CSS in CSS-in-JS style.
We prefer widely adopting tech solutions that include:
- Web3.js Ethereum JavaScript API
- react-use React Hooks — 👍
- bignumber.js A JavaScript library for arbitrary-precision arithmetic.
- lodash A modern JavaScript utility library delivering modularity, performance & extras.
- urlcat A URL builder library for JavaScript.
If your bounty task is related to another project, it could have extra requirements that need to consider.
If you are familiar with these libraries mentioned above, it will take less effort for you to get started. The codebase is open-sourced under the AGPLv3 license.
After cloning the repository and set up the development environment. The codebase is constructed as a monorepo with many internal packages. Each package serves a specific purpose. Let's take a quick tour.
packages/maskThe main extension which has multiple websites supports, keeps the user's data safe and hosts a plugin system.packages/encryptionThe encryption & decryption of mask network.packages/plugin-infraThe definition of the plugin system, with a bunch of APIs to expose the core abilities to plugins.
packages/plugins/*All of integrated plugins.
packages/sharedShared UI components and utilities.packages/shared-baseShared types, constants, and atomic units. Must be as pure as possible and testable.
packages/web3-constantsEach Web3 constant must set up for all known chain IDs.packages/web3-contractsEVM contract ABIs and compiled TypeScript definitions.packages/web3-providerA hub of APIs for external data source.packages/web3-shared-*Shared hooks, utilities, types for each network.
Almost all bounty tasks for the Mask Network plugin relate to a plugin. After learning the basics, checkout those pull requests or plugins to learn quick from examples.
| Plugin | Pull Request Links |
|---|---|
| EVM Chains | https://github.com/DimensionDev/Maskbook/pulls?q=is%3Apr+label%3A%22Plugin%3A+EVM%22 |
After bounty hacker opening a pull request. Reviewer will label it with Type: Bounty, and update a status tag while the progress on-going.
| Status | Description |
|---|---|
Bounty: Started |
The DEV team noticed your request. You will receive comments from reviewers. |
Bounty: Reviewed |
The QA team noticed your request. You will receive bugs from reviewers. |
Bounty: Qualified |
Your request is qualifed. It will ship soon. |