Decentralized interfaces into the Webb protocol, featuring Tangle Network dApps for MPC-as-a-service restaking infrastructure.
Table of Contents
This monorepo is the cornerstone for decentralized interfaces within the Webb protocol, incorporating a suite of dApps, including the revolutionary Tangle Network applications. These applications are geared towards kickstarting advanced cryptographic developments and innovations in blockchain technology, leveraging multi-party computation (MPC) services and cross-chain capabilities.
It uses nx.dev for fast and extensible building. The apps
directory contains the protocol's interfaces while libs
contains the necessary code and logic.
This repository makes use of yarn, nodejs, and requires version node v18.12.x. To install node.js binaries, installers, and source tarballs, please visit https://nodejs.org/en/download/. Once node.js is installed you may proceed to install yarn:
- Run
corepack enable
to activate Corepack - Go into your project directory
- Run
yarn set version 4.2.2
For more information about the migration, you can refer to the Yarn documentation.
Great! Now your Node environment is ready!
- tangle-dapp: the central hub to managing Tangle Network assets and MPC (Multi-Party Computation) services.
abstract-api-provider
: a collection of base and abstract classes that unify the API across multiple providers.api-provider-environment
: contains the React context definitions, the app event, and functions for handling interactive feedback errors for the bridge app.browser-utils
: contains all the browser utility functions, such as fetch with caching, download file and string, the customized logger class, get browser platform, and the storage factory function for interacting with local storage.dapp-config
: contains all configurations (chains, wallets, etc.) for the bridge dApp.dapp-types
: contains all the sharable TypeScript types and interfaces across the apps.icons
: contains all the sharable icons across the apps.note-manager
: contains all the logic for storing note account data.polkadot-api-provider
: the Substrate (or Polkadot) provider for the bridge.react-hooks
: contains all the sharable hooks across the apps.relayer-manager-factory
: contains all the logic for interacting with the relayer.tailwind-preset
: the Webb TailwindCSS preset for all the apps.web3-api-provider
: the EVM provider for the bridge.- webb-ui-components: a collection of reusable components for building interfaces quickly.
The following instructions outlines how to run Webb Dapp test suite.
yarn test
To start Storybook for component library
-
Install dependencies by
yarn
yarn install
-
Start the storybook:
yarn nx storybook webb-ui-components
Visit http://localhost:4400/
to see the Webb Component Library!
Interested in contributing to the Webb Dapp interface? Thank you so much for your interest! We are always appreciative for contributions from the open-source community!
If you would like to contribute, please refer to our Contribution Guide for instructions. We are excited for your first contribution!
Please ensure you lint and format your changes prior to opening a PR.
To lint:
yarn lint
To Format:
yarn format
To Build:
yarn build
Additionally, to ensure commit message consistency, this repository uses commitlint. Please refer to the Commit Message Guidelines for more information.
To release a new version of the projects in this monorepo, follow these steps:
-
Create a new branch from
develop
. -
Run
yarn run generate:release
to review the new bump version and the changelog. -
If everything looks good, run
yarn run generate:release -d=false
to apply changes, stage, and commit them.3.1. If you don't want to commit the changes, run
yarn run generate:release -d=false --gitCommit=false
. This will only update the version and changelog files.3.2. There are a few options available for the
generate:release
script. You can check them by runningyarn run generate:release --help
. -
Push and open a PR to
develop
, the PR title should start with[RELEASE]
in order to trigger the release workflow. -
After the PR is merged, the release workflow will sync the changes to the
master
branch if the commit message starts with[RELEASE]
on thedevelop
branch. The release workflow will also create a new release on GitHub.
Licensed under Apache 2.0 license.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache 2.0 license, shall be licensed as above, without any additional terms or conditions.
If you need help or you want to additional information please:
- Refer to the Tangle Network Official Documentation or Webb Official Documentation.
- If you have feedback on how to improve the dApp interface or you have a specific question? Check out the Tangle dApp Feedback Discussion or Webb dApp Feedback Discussion.
- If you found a bug please open an issue or join our Discord server to report it.
Share the project link with your network on social media.