Skip to content

webb-tools/webb-dapp

Repository files navigation

Webb Monorepo

Decentralized interfaces into the Webb protocol, featuring Tangle Network dApps for MPC-as-a-service restaking infrastructure.

GitHub Workflow Status License Apache 2.0 Follow Tangle on twitter Follow Webb on twitter Telegram Discord

Table of Contents

Table of Contents

Getting Started

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.

Prerequisites

This repository makes use of yarn, nodejs, and requires version node v18. 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:

npm install --global yarn

Great! Now your Node environment is ready!

Applications

  • tangle-dapp: the central hub to managing Tangle Network assets and MPC (Multi-Party Computation) services.
  • bridge-dapp: an interface for interacting and bridging assets cross-chain using Webb's Asset Protocol.
  • faucet: an interface for requesting cryptocurrencies (assets) on the Webb Protocol System.
  • hubble-stats: an interface for displaying statistical data of the Cross-chain Bridging System.
  • stats-dapp: an interface for displaying statistical data of Webb's Tangle Network (DKG system).
  • zk-explorer: a platform for discovering and learning about zero-knowledge proof projects and circuits, featuring detailed project insights, filtering options, and more.

Libraries

  • 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.

Testing

The following instructions outlines how to run Webb Dapp test suite.

To run tests

yarn test

To start Storybook for component library

  1. Install dependencies by yarn

    yarn install
  2. Start the storybook:

    yarn nx storybook webb-ui-components

Visit http://localhost:4400/ to see the Webb Component Library!

Contributing

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!

Lint before you push!

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 and husky. Please refer to the Commit Message Guidelines for more information.

Without proper linting, formatting, or commit message, husky will prevent you from either committing or pushing your changes.

License

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.

Need help?

If you need help or you want to additional information please:


Follow us at Follow Tangle on twitter Follow Webb on twitter Follow Webb on LinkedIn


Share the project link with your network on social media.

Share on LinkedIn Shared on Twitter Share on Telegram