Bounty Development
Hi, Awesome people! Welcome to start a bounty task on Mask Network.
Tech Requirements
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.
Packages
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.
Core Packages
packages/mask
The main extension which has multiple websites supports, keeps the user's data safe and hosts a plugin system.packages/encryption
The encryption & decryption of mask network.packages/plugin-infra
The definition of the plugin system, with a bunch of APIs to expose the core abilities to plugins.
Plugin Packages
packages/plugins/*
All of the plugin packages.
Shared Packages
packages/shared
Shared UI components and utilities.packages/shared-base
Shared types, constants, and atomic units. Must be as pure as possible and testable.
Web3 Packages
packages/web3-constants
Each Web3 constant must set up for all known chain IDs.packages/web3-contracts
EVM contract ABIs and compiled TypeScript definitions.packages/web3-provider
A hub of APIs for external data source.packages/web3-shared-*
Shared hooks, utilities, types for each network.
Learn Through Examples
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.
Dapp Plugins
Network Plugins
Plugin | Pull Request Links |
---|---|
EVM Chains | https://github.com/DimensionDev/Maskbook/pulls?q=is%3Apr+label%3A%22Plugin%3A+EVM%22 |
Pull Request Conversions
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. |