diff --git a/README.md b/README.md index e0d8992d99..471177b158 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ # Safe{Wallet} monorepo -- [Safe{Wallet} web app](/apps/web/README.md) -- [Safe{Wallet} mobile app](/apps/mobile/README.md) +- 🌐 [Safe{Wallet} web app](/apps/web/README.md) +- 📱 [Safe{Wallet} mobile app](/apps/mobile/README.md) ## Overview diff --git a/apps/mobile/README.md b/apps/mobile/README.md index d787ce30a2..972a9ac946 100644 --- a/apps/mobile/README.md +++ b/apps/mobile/README.md @@ -1,4 +1,4 @@ -# Safe Mobile App 📱 +# Safe{Wallet} mobile app 📱 This project is now part of the **@safe-global/safe-wallet** monorepo! The monorepo setup allows centralized management of multiple applications and shared libraries. This workspace (`apps/mobile`) contains the Safe Mobile App. @@ -20,7 +20,7 @@ You can follow the [expo documentation](https://docs.expo.dev/get-started/set-up Follow the [Maestro](https://maestro.mobile.dev/) documentation to install the tool for E2E testing. -## Setup the Project +## Setup the project 1. Install all dependencies from the **root of the monorepo**: @@ -28,7 +28,7 @@ Follow the [Maestro](https://maestro.mobile.dev/) documentation to install the t yarn install ``` -## Running the App +## Running the app ### Running on iOS @@ -56,7 +56,7 @@ From the root of the monorepo: yarn workspace @safe-global/mobile start:android ``` -### How to Open the Custom DevTools Menu +### How to open the custom devtools menu The app supports **Redux**, **RTK Query**, and **React DevTools**. To access these tools: @@ -66,7 +66,7 @@ The app supports **Redux**, **RTK Query**, and **React DevTools**. To access the ## Running the Storybook -### Running in the browse +### Running in the browser Run the storybook command from the root: @@ -84,12 +84,12 @@ yarn workspace @safe-global/mobile storybook:[ios|android] To View stories press `i` on iOS or `a` on Android. -## How to Run the E2E Tests +## How to run the E2E Tests We use [Maestro](https://maestro.mobile.dev/) for E2E testing. Before running tests, install Maestro following the documentation for your OS. -### Run a Dev Build and E2E Tests +### Run a dev build and E2E tests To build the app for tests: @@ -107,7 +107,7 @@ yarn workspace @safe-global/mobile e2e:metro-android These commands include `.e2e.ts|.e2e.tsx` files for mocking services or adding test-specific code. -### Run the Tests +### Run the tests In a second terminal run: @@ -115,7 +115,7 @@ In a second terminal run: yarn workspace @safe-global/mobile e2e:run ``` -### Use Maestro Studio to Write Tests +### Use Maestro Studio to write tests To write tests with Maestro Studio, run: @@ -125,12 +125,12 @@ maestro studio Export the generated YAML file to the `e2e` folder and include it in the test suite. -### Running E2E Tests in CI +### Running E2E tests in CI To run tests in CI, add the `eas-build-ios:build-and-maestro-test` label to a PR. This triggers the Expo CI pipeline to execute the tests. -## Unit Tests +## Unit tests We use **Jest** and the [React Native Testing Library](https://callstack.github.io/react-native-testing-library/) for unit, component, and hook tests. diff --git a/apps/web/README.md b/apps/web/README.md index 5a55f95373..851ee7f9a3 100644 --- a/apps/web/README.md +++ b/apps/web/README.md @@ -5,7 +5,7 @@ ![GitHub package.json version (branch)](https://img.shields.io/github/package-json/v/safe-global/safe-wallet-web) [![GitPOAP Badge](https://public-api.gitpoap.io/v1/repo/safe-global/safe-wallet-web/badge)](https://www.gitpoap.io/gh/safe-global/safe-wallet-web) -# Safe{Wallet} Web 💻 +# Safe{Wallet} web app This project is now part of the **@safe-global/safe-wallet** monorepo! The monorepo setup allows centralized management of multiple @@ -43,34 +43,33 @@ Create a `.env` file with environment variables. You can use the `.env.example` Here's the list of all the environment variables: -| Env variable | Description | -| ------------------------ | ----------------------------------------------- | -| `NEXT_PUBLIC_BRAND_NAME` | The name of the app, defaults to "Wallet fork" | -| `NEXT_PUBLIC_BRAND_LOGO` | The URL of the app logo displayed in the header | - -| `NEXT_PUBLIC_INFURA_TOKEN` | [Infura](https://docs.infura.io/infura/networks/ethereum/how-to/secure-a-project/project-id) RPC API token | -| `NEXT_PUBLIC_SAFE_APPS_INFURA_TOKEN` | Infura token for Safe Apps, falls back to `NEXT_PUBLIC_INFURA_TOKEN` | -| `NEXT_PUBLIC_IS_PRODUCTION` | Set to `true` to build a minified production app | -| `NEXT_PUBLIC_GATEWAY_URL_PRODUCTION` | The base URL for the [Safe Client Gateway](https://github.com/safe-global/safe-client-gateway) | -| `NEXT_PUBLIC_GATEWAY_URL_STAGING` | The base CGW URL on staging | -| `NEXT_PUBLIC_SAFE_VERSION` | The latest version of the Safe contract, defaults to 1.4.1 | -| `NEXT_PUBLIC_WC_PROJECT_ID` | [WalletConnect v2](https://docs.walletconnect.com/2.0/cloud/relay) project ID | -| `NEXT_PUBLIC_TENDERLY_ORG_NAME` | [Tenderly](https://tenderly.co) org name for Transaction Simulation | -| `NEXT_PUBLIC_TENDERLY_PROJECT_NAME` | Tenderly project name | -| `NEXT_PUBLIC_TENDERLY_SIMULATE_ENDPOINT_URL` | Tenderly simulation URL | -| `NEXT_PUBLIC_BEAMER_ID` | [Beamer](https://www.getbeamer.com) is a news feed for in-app announcements | -| `NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID` | [GTM](https://tagmanager.google.com) project id | -| `NEXT_PUBLIC_GOOGLE_TAG_MANAGER_DEVELOPMENT_AUTH` | Dev GTM key | -| `NEXT_PUBLIC_GOOGLE_TAG_MANAGER_LATEST_AUTH` | Preview GTM key | -| `NEXT_PUBLIC_GOOGLE_TAG_MANAGER_LIVE_AUTH` | Production GTM key | -| `NEXT_PUBLIC_SENTRY_DSN` | [Sentry](https://sentry.io) id for tracking runtime errors | -| `NEXT_PUBLIC_IS_OFFICIAL_HOST` | Whether it's the official distribution of the app, or a fork; has legal implications. Set to true only if you also update the legal pages like Imprint and Terms of use | -| `NEXT_PUBLIC_REDEFINE_API` | Redefine API base URL | -| `NEXT_PUBLIC_FIREBASE_OPTIONS_PRODUCTION` | Firebase Cloud Messaging (FCM) `initializeApp` options on production | -| `NEXT_PUBLIC_FIREBASE_VAPID_KEY_PRODUCTION` | FCM vapid key on production | -| `NEXT_PUBLIC_FIREBASE_OPTIONS_STAGING` | FCM `initializeApp` options on staging | -| `NEXT_PUBLIC_FIREBASE_VAPID_KEY_STAGING` | FCM vapid key on staging | -| `NEXT_PUBLIC_SPINDL_SDK_KEY` | [Spindl](http://spindl.xyz) SDK key | +| Env variable | Description | +| ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `NEXT_PUBLIC_BRAND_NAME` | The name of the app, defaults to "Wallet fork" | +| `NEXT_PUBLIC_BRAND_LOGO` | The URL of the app logo displayed in the header | +| `NEXT_PUBLIC_INFURA_TOKEN` | [Infura](https://docs.infura.io/infura/networks/ethereum/how-to/secure-a-project/project-id) RPC API token | +| `NEXT_PUBLIC_SAFE_APPS_INFURA_TOKEN` | Infura token for Safe Apps, falls back to `NEXT_PUBLIC_INFURA_TOKEN` | +| `NEXT_PUBLIC_IS_PRODUCTION` | Set to `true` to build a minified production app | +| `NEXT_PUBLIC_GATEWAY_URL_PRODUCTION` | The base URL for the [Safe Client Gateway](https://github.com/safe-global/safe-client-gateway) | +| `NEXT_PUBLIC_GATEWAY_URL_STAGING` | The base CGW URL on staging | +| `NEXT_PUBLIC_SAFE_VERSION` | The latest version of the Safe contract, defaults to 1.4.1 | +| `NEXT_PUBLIC_WC_PROJECT_ID` | [WalletConnect v2](https://docs.walletconnect.com/2.0/cloud/relay) project ID | +| `NEXT_PUBLIC_TENDERLY_ORG_NAME` | [Tenderly](https://tenderly.co) org name for Transaction Simulation | +| `NEXT_PUBLIC_TENDERLY_PROJECT_NAME` | Tenderly project name | +| `NEXT_PUBLIC_TENDERLY_SIMULATE_ENDPOINT_URL` | Tenderly simulation URL | +| `NEXT_PUBLIC_BEAMER_ID` | [Beamer](https://www.getbeamer.com) is a news feed for in-app announcements | +| `NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID` | [GTM](https://tagmanager.google.com) project id | +| `NEXT_PUBLIC_GOOGLE_TAG_MANAGER_DEVELOPMENT_AUTH` | Dev GTM key | +| `NEXT_PUBLIC_GOOGLE_TAG_MANAGER_LATEST_AUTH` | Preview GTM key | +| `NEXT_PUBLIC_GOOGLE_TAG_MANAGER_LIVE_AUTH` | Production GTM key | +| `NEXT_PUBLIC_SENTRY_DSN` | [Sentry](https://sentry.io) id for tracking runtime errors | +| `NEXT_PUBLIC_IS_OFFICIAL_HOST` | Whether it's the official distribution of the app, or a fork; has legal implications. Set to true only if you also update the legal pages like Imprint and Terms of use | +| `NEXT_PUBLIC_REDEFINE_API` | Redefine API base URL | +| `NEXT_PUBLIC_FIREBASE_OPTIONS_PRODUCTION` | Firebase Cloud Messaging (FCM) `initializeApp` options on production | +| `NEXT_PUBLIC_FIREBASE_VAPID_KEY_PRODUCTION` | FCM vapid key on production | +| `NEXT_PUBLIC_FIREBASE_OPTIONS_STAGING` | FCM `initializeApp` options on staging | +| `NEXT_PUBLIC_FIREBASE_VAPID_KEY_STAGING` | FCM vapid key on staging | +| `NEXT_PUBLIC_SPINDL_SDK_KEY` | [Spindl](http://spindl.xyz) SDK key | If you don't provide some of the variables, the corresponding features will be disabled in the UI.