Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/safe-global/safe-wallet-web
Safe{Wallet} – multisig EVM wallet
https://github.com/safe-global/safe-wallet-web
ethereum ethersjs gnosis-safe nextjs react typescript
Last synced: 22 days ago
JSON representation
Safe{Wallet} – multisig EVM wallet
- Host: GitHub
- URL: https://github.com/safe-global/safe-wallet-web
- Owner: safe-global
- License: gpl-3.0
- Created: 2022-04-13T11:54:07.000Z (over 2 years ago)
- Default Branch: dev
- Last Pushed: 2024-10-29T09:55:34.000Z (2 months ago)
- Last Synced: 2024-10-29T09:56:58.516Z (2 months ago)
- Topics: ethereum, ethersjs, gnosis-safe, nextjs, react, typescript
- Language: TypeScript
- Homepage: https://app.safe.global
- Size: 23.1 MB
- Stars: 352
- Watchers: 24
- Forks: 419
- Open Issues: 154
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - safe-global/safe-wallet-web - Safe{Wallet} – smart account wallet (TypeScript)
README
# Safe Global Monorepo 🙋♂️
## Overview
Welcome to the Safe Global Monorepo! This repository houses multiple applications and packages managed under a unified
structure using Yarn Workspaces. The monorepo setup simplifies dependency management and ensures consistent development
practices across projects.### Key Components
- **apps/**: Contains application projects (e.g., `mobile` for the Safe Mobile App).
- **packages/**: Shared libraries and utilities.
- **config/**: Configuration files for the monorepo.## Getting Started
To get started, ensure you have the required tools installed and follow these steps:
### Prerequisites
- **Node.js**: Install the latest stable version from [Node.js](https://nodejs.org/).
- **Yarn**: Use Yarn version 4.5.3 or laterto install it with the latest node version you can simply do
```bash
corepack enable
```and then just run
```bash
yarn
```This will install the required version of yarn and resolve all dependencies.
> [!INFO]
>
> Corepack is a tool to help with managing versions of your package managers. It exposes binary proxies for each supported package manager that, when called, will identify whatever package manager is
> configured for the current project, download it if needed, and finally run it.### Initial Setup
1. Clone the repository:
```bash
git clone
cd monorepo
```2. Install dependencies:
```bash
yarn install
```## Monorepo Commands
Here are some essential commands to help you navigate the monorepo:
### Workspace Management
- **Run a script in a specific workspace:**
```bash
yarn workspace
```Example:
```bash
yarn workspace @safe-global/web start
```- **Add a dependency to a specific workspace:**
```bash
yarn workspace <workspace-name> add <package-name>
```- **Remove a dependency from a specific workspace:**
```bash
yarn workspace <workspace-name> remove <package-name>
```> [!Note]
>
> Yarn treats commands that contain a colon as global commands. For example if you have a
> command in a workspace that has a colon and there isn't another workspace that has the same command,
> you can run the command without specifying the workspace name. For example:
>
> ```bash
> yarn cypress:open
> ```
>
> is equivalent to:
>
> ```bash
> yarn workspace @safe-global/web cypress:open
> ```### Linting and Formatting
- **Run ESLint across all workspaces:**
```bash
yarn lint
```### Testing
- **Run unit tests across all workspaces:**
```bash
yarn test
```## Contributing
### Adding a New Workspace
1. Create a new directory under `apps/` or `packages/`.
2. Add a `package.json` file with the appropriate configuration.
3. Run:```bash
yarn install
```### Best Practices
- Use Yarn Workspaces commands for managing dependencies.
- Ensure tests and linting pass before pushing changes.
- Follow the commit message guidelines.### Tools & Configurations
- **Husky**: Pre-commit hooks for linting and tests.
- **ESLint & Prettier**: Enforce coding standards and formatting.
- **Jest**: Unit testing framework.
- **Expo**: Mobile app framework for the `mobile` workspace.
- **Next.js**: React framework for the `web` workspace.## Useful Links
- [Yarn Workspaces Documentation](https://classic.yarnpkg.com/en/docs/workspaces/)
- [Expo Documentation](https://docs.expo.dev/)
- [Next.js Documentation](https://nextjs.org/docs)
- [Jest Documentation](https://jestjs.io/)
- [ESLint Documentation](https://eslint.org/)
- [Prettier Documentation](https://prettier.io/)---
If you have any questions or run into issues, feel free to open a discussion or contact the maintainers. Happy coding!
🚀