This commit converts all remaining schema-based constructors to use the generic Payload<'methodName'> type and makes payload required where used in init(). Changes made: - Converted 5 schema-based types to Payload<'methodName'>: * authorizeCoinjoin.ts * cancelCoinjoinAuthorization.ts * changeLanguage.ts * getCoinInfo.ts * requestLogin.ts - Made payload required in 3 files already using Payload<'methodName'>: * evoluGetDelegatedIdentityKey.ts * getNonce.ts * showDeviceTutorial.ts - Added Payload import to all 8 files - Removed 'as any' casts from all super() calls in these files Result: ✓ 37 of 39 method constructors are now completely type-safe (no 'as any') ✓ Only 2 files retain 'as any' - legitimate edge cases with no payload ✓ All type-checks pass Type safety: PASSED
TREZOR SUITE MONOREPO
Welcome to the Trezor Suite repository! This repository contains the source code for 3 projects:
- Connect - tool that offers developers an easy way to integrate Trezor's functionality into their own applications
- Trezor Suite - desktop and web application for managing Trezor hardware wallet
- Trezor Suite Mobile - Mobile/Tablet application designed for managing Trezor hardware wallet
Development
Prerequisities
- Install NVM
- Hint: you can have your shell automatically switch versions in each repo
- Enable Yarn through npm
- Install Git LFS (For Linux/Ubuntu, after adding the repository do
sudo apt-get install git-lfs, more info here)
Getting started
git clone git@github.com:trezor/trezor-suite.gitcd trezor-suitegit submodule update --init --recursivegit lfs install// Set up Git LFS for your user account. You only need to run this once per user account.git lfs pullnvm installyarnyarn build:essential
It's recommended to enable git config --global submodule.recurse true so you don't need to run git submodule update --init --recursive every time when submodules are updated.
You don't need a Trezor device to get into the app, you can use emulator. There is a Trezor User Env to help you set it up and run emulator for any Trezor model 🎉
Connect @trezor/connect
This repository is used for development of version 9 of @trezor/connect. For detailed documentation, please refer to this page.
Historically, Trezor Connect had its own repository. This repository is now archived.
Trezor Suite @trezor/suite
Dev environment is primarily supported on macOS or Linux, though development on Windows is possible by following this guide.
Run a dev build:
yarn suite:dev(web app)yarn suite:dev:vite(⚠️ EXPERIMENTAL: web app with Vite bundler used for development only, useyarn suite:devif you want fidelity to production app)yarn suite:dev:desktop(electron app)- React dev tools are available with a known caveat: you need to reload the renderer process (Ctrl+R or Cmd+R) while having the dev tools open
yarn suite:build:web:preview(localhost of production web app with applied security headers)
Local .env setup (optional):
- Rename
env.local.exampleto.env.localin the repo root. - Set
TANSTACK_REACT_QUERY_DEV_TOOLS=trueto enable TanStack React Query Devtools on localhost.
Trezor Suite Mobile @suite-native/app
To set up your dev environment for a native platform (iOS/Android) follow these additional steps.
Contribute
Inspired by GitLab Contributing Guide
Using Conventional Commits is required.
Security vulnerability disclosure
Please report suspected security vulnerabilities in private to security@satoshilabs.com, also see the disclosure section on the Trezor.io website. Please do NOT create publicly viewable issues for suspected security vulnerabilities.
IDE specific settings
Find specific settings for Integrated Development Environments (IDE) in IDE.md