Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tangle-network/dapp

Monorepo for the Tangle ecosystem.
https://github.com/tangle-network/dapp

blockchain cryptocurrency dapp frontend monorepo

Last synced: 15 days ago
JSON representation

Monorepo for the Tangle ecosystem.

Awesome Lists containing this project

README

        


![Webb Logo](./.github/assets/webb_banner_light.png#gh-light-mode-only)
![Webb Logo](./.github/assets/webb_banner_dark.png#gh-dark-mode-only)

# Webb Monorepo


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


[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/tangle-network/dapp/check-build.yml?branch=develop&style=flat-square)](https://github.com/tangle-network/dapp/actions) [![License Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square)](https://www.apache.org/licenses/LICENSE-2.0.html) [![Follow Tangle on twitter](https://img.shields.io/twitter/follow/tangle_network.svg?style=social)](https://twitter.com/intent/follow?screen_name=tangle_network) [![Follow Webb on twitter](https://img.shields.io/twitter/follow/webbprotocol.svg?style=social)](https://twitter.com/intent/follow?screen_name=webbprotocol) [![Telegram](https://img.shields.io/badge/Telegram-gray?logo=telegram)](https://t.me/tanglenet) [![Discord](https://img.shields.io/discord/833784453251596298.svg?style=flat-square&label=Discord&logo=discord)](https://discord.gg/cv8EfJu3Tn)

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](https://tangle.tools) 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](https://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.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](https://yarnpkg.com/):

1. Run `corepack enable` to activate [Corepack](https://nodejs.org/api/corepack.html)
2. Go into your project directory
3. Run `yarn set version 4.2.2`

For more information about the migration, you can refer to the Yarn [documentation](https://yarnpkg.com/migration/guide#migration-steps).

Great! Now your **Node** environment is ready!

↑ Back to top ↑

Applications

- [tangle-dapp](./apps/tangle-dapp/README.md): the central hub to managing Tangle Network assets and MPC (Multi-Party Computation) services.

↑ Back to top ↑

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.
- `tailwind-preset`: the Webb TailwindCSS preset for all the apps.
- `web3-api-provider`: the EVM provider for the bridge.
- [webb-ui-components](./libs/webb-ui-components/README.md): a collection of reusable components for building interfaces quickly.

↑ Back to top ↑

Testing

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

### To run tests

```
yarn test
```

### To start [Storybook](https://storybook.js.org/) for component library

1. Install dependencies by `yarn`

```bash
yarn install
```

2. Start the storybook:

```bash
yarn nx storybook webb-ui-components
```

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

↑ Back to top ↑

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](./.github/CONTRIBUTING.md) 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](https://commitlint.js.org/#/). Please refer to the [Commit Message Guidelines](./.github/CONTRIBUTING.md#commit-message-guidelines) for more information.

↑ Back to top ↑

How to release (for maintainers)

To release a new version of the projects in this monorepo, follow these steps:

1. Create a new branch from `develop`.
2. Run `yarn run generate:release` to review the new bump version and the changelog.
3. 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 running `yarn run generate:release --help`.

4. Push and open a PR to `develop`, the PR title should start with `[RELEASE]` in order to trigger the release workflow.
5. After the PR is merged, the release workflow will sync the changes to the `master` branch if the commit message starts with `[RELEASE]` on the `develop` branch. The release workflow will also create a new release on GitHub.

↑ Back to top ↑

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.

↑ Back to top ↑

Need help?

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

- Refer to the [Tangle Network Official Documentation](https://docs.tangle.tools/) or [Webb Official Documentation](https://docs.webb.tools/).
- If you have feedback on how to improve the dApp interface or you have a specific question? Check out the [Tangle dApp Feedback Discussion](https://github.com/tangle-network/feedback/discussions/categories/tangle-dapp) or [Webb dApp Feedback Discussion](https://github.com/tangle-network/feedback/discussions/categories/webb-dapp-feedback).
- If you found a bug please [open an issue](https://github.com/tangle-network/dapp/issues/new/choose) or [join our Discord](https://discord.gg/jUDeFpggrR) server to report it.

---

**Follow us at**
[![Follow Tangle on twitter](https://img.shields.io/twitter/follow/tangle_network.svg?style=social)](https://twitter.com/intent/follow?screen_name=tangle_network)
[![Follow Webb on twitter](https://img.shields.io/twitter/follow/webbprotocol.svg?style=social)](https://twitter.com/intent/follow?screen_name=webbprotocol)
[![Follow Webb on LinkedIn](https://img.shields.io/badge/LinkedIn-webbprotocol-blue?style=flat&logo=linkedin&logoColor=b0c0c0&labelColor=363D44)](https://www.linkedin.com/company/webb-protocol/)

---

**Share** the project link with your network on social media.


Share on LinkedIn


Shared on Twitter


Share on Telegram

↑ Back to top ↑