chore(suite-native): confirm on trezor package

This commit is contained in:
juriczech
2026-02-17 13:52:50 +01:00
committed by Bohdan Juříček
parent f071bb4c0b
commit 4b76776ddc
57 changed files with 141 additions and 53 deletions

View File

@@ -103,7 +103,7 @@ buck-out/
!**/suite-native/app/.env.staging
suite-native/atoms/src/Spinner/refresh-spinner-*.json
suite-native/device/src/assets/confirm-on-trezor-lottie.json
suite-native/confirm-on-trezor/src/assets/confirm-on-trezor-lottie.json
suite-native/module-home/src/assets/auto-eject-*-lottie.json
suite-native/transaction-management/assets/send-arrows-lottie.json
suite-native/thp/src/assets/create-secure-connection-lottie.json

View File

@@ -0,0 +1,31 @@
{
"name": "@suite-native/confirm-on-trezor",
"version": "1.0.0",
"private": true,
"license": "See LICENSE.md in repo root",
"sideEffects": false,
"main": "src/index",
"scripts": {
"depcheck": "yarn g:depcheck",
"lint:js": "yarn g:eslint '**/*.{ts,tsx,js}'",
"lint:js:fix": "yarn lint:js --fix",
"type-check": "yarn g:tsc --build"
},
"dependencies": {
"@react-navigation/native": "7.1.26",
"@suite-native/atoms": "workspace:*",
"@suite-native/config": "workspace:*",
"@suite-native/intl": "workspace:*",
"@suite-native/navigation": "workspace:*",
"@suite-native/theme": "workspace:*",
"@trezor/env-utils": "workspace:*",
"@trezor/styles": "workspace:*",
"@trezor/theme": "workspace:*",
"expo-haptics": "~15.0.8",
"expo-linear-gradient": "~15.0.8",
"react": "19.1.0",
"react-native": "0.81.5",
"react-native-gesture-handler": "2.29.0",
"react-native-reanimated": "~4.1.5"
}
}

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View File

Before

Width:  |  Height:  |  Size: 173 KiB

After

Width:  |  Height:  |  Size: 173 KiB

View File

@@ -18,7 +18,7 @@ import { getScreenWidth, getWindowWidth } from '@trezor/env-utils';
import { prepareNativeStyle, useNativeStyles } from '@trezor/styles';
import { ThemeColorVariant } from '@trezor/theme';
import { BottomSheetControlProps } from './hooks/useConfirmOnTrezorSheet';
import { BottomSheetControlProps } from '../hooks/useConfirmOnTrezorSheet';
const SCREEN_WIDTH = getScreenWidth();
const WINDOW_WIDTH = getWindowWidth();

View File

@@ -2,7 +2,7 @@ import { Box, Text, VStack } from '@suite-native/atoms';
import { Translation } from '@suite-native/intl';
import { prepareNativeStyle, useNativeStyles } from '@trezor/styles';
import { ConfirmOnTrezorAnimation } from '../ConfirmOnTrezorAnimation';
import { ConfirmOnTrezorAnimation } from './ConfirmOnTrezorAnimation';
const containerStyle = prepareNativeStyle(() => ({
marginTop: '25%',

View File

@@ -15,7 +15,7 @@ import { prepareNativeTheme } from '@trezor/theme';
import { ConfirmOnTrezorContent, type ConfirmOnTrezorWrapperProps } from './ConfirmOnTrezorContent';
import { ConfirmOnTrezorHeader } from './ConfirmOnTrezorHeader';
import { ConfirmOnTrezorInstructions } from './ConfirmOnTrezorInstructions';
import { useConfirmOnTrezorSheet } from './hooks/useConfirmOnTrezorSheet';
import { useConfirmOnTrezorSheet } from '../hooks/useConfirmOnTrezorSheet';
const instructionsContainerStyle = prepareNativeStyle<{
paddingTop: number;

View File

@@ -0,0 +1,5 @@
export * from './components/ConfirmOnTrezorAnimation';
export * from './components/ConfirmOnTrezorImage';
export * from './components/ConfirmOnTrezorWrapper';
export * from './hooks/useConfirmOnTrezorController';
export * from './hooks/useConfirmOnTrezorSheet';

View File

@@ -0,0 +1,15 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": { "outDir": "libDev" },
"references": [
{ "path": "../atoms" },
{ "path": "../config" },
{ "path": "../intl" },
{ "path": "../navigation" },
{ "path": "../theme" },
{ "path": "../../packages/env-utils" },
{ "path": "../../packages/styles" },
{ "path": "../../packages/theme" }
],
"include": [".", "**/*.json"]
}

View File

@@ -31,7 +31,6 @@
"@suite-native/analytics": "workspace:*",
"@suite-native/atoms": "workspace:*",
"@suite-native/bluetooth": "workspace:*",
"@suite-native/config": "workspace:*",
"@suite-native/device-mutex": "workspace:*",
"@suite-native/device-onboarding": "workspace:*",
"@suite-native/feature-flags": "workspace:*",
@@ -58,8 +57,6 @@
"@trezor/utils": "workspace:*",
"@types/semver": "^7.7.0",
"expo": "~54.0.30",
"expo-haptics": "~15.0.8",
"expo-linear-gradient": "~15.0.8",
"expo-video": "~3.0.15",
"jotai": "2.15.0",
"react": "19.1.0",

View File

@@ -1,3 +0,0 @@
export * from './ConfirmOnTrezorWrapper';
export * from './hooks/useConfirmOnTrezorSheet';
export * from './hooks/useConfirmOnTrezorController';

View File

@@ -10,7 +10,6 @@ export * from './hooks/usePinAction';
export * from './hooks/useRenderDeviceDangerBanner';
export * from './hooks/useCoinLabel';
export * from './components/ConnectDeviceAnimation';
export * from './components/ConfirmOnTrezorImage';
export * from './components/ConnectorImage';
export * from './components/DeviceImage';
export * from './components/ContinueOnTrezorScreenContent';
@@ -23,8 +22,6 @@ export * from './deviceThunks';
export * from './types';
export * from './deviceAtoms';
export * from './components/EmptyWalletSvg';
export * from './components/ConfirmOnTrezorAnimation';
export * from './components/TrezorDeviceSvg';
export * from './components/ConfirmOnTrezor';
export * from './components/DeviceInteractionScreenWrapper';
export * from './hooks/useDeviceLowBatteryAlert';

View File

@@ -43,7 +43,6 @@
{ "path": "../analytics" },
{ "path": "../atoms" },
{ "path": "../bluetooth" },
{ "path": "../config" },
{ "path": "../device-mutex" },
{ "path": "../device-onboarding" },
{ "path": "../feature-flags" },

View File

@@ -15,15 +15,16 @@
"@reduxjs/toolkit": "2.11.2",
"@shopify/react-native-skia": "2.2.12",
"@suite-common/firmware": "workspace:*",
"@suite-common/redux-utils": "workspace:*",
"@suite-common/icons": "workspace:*",
"@suite-common/message-system": "workspace:*",
"@suite-common/redux-utils": "workspace:*",
"@suite-common/suite-types": "workspace:*",
"@suite-common/wallet-core": "workspace:*",
"@suite-native/alerts": "workspace:*",
"@suite-native/analytics": "workspace:*",
"@suite-native/atoms": "workspace:*",
"@suite-native/config": "workspace:*",
"@suite-native/confirm-on-trezor": "workspace:*",
"@suite-native/device-mutex": "workspace:*",
"@suite-native/icons": "workspace:*",
"@suite-native/intl": "workspace:*",

View File

@@ -7,7 +7,10 @@ import { useKeepAwake } from 'expo-keep-awake';
import { firmwareActions } from '@suite-common/firmware';
import { Box, Button, VStack, useBottomSheetModal } from '@suite-native/atoms';
import { ConfirmOnTrezorWrapper, useConfirmOnTrezorController } from '@suite-native/device';
import {
ConfirmOnTrezorWrapper,
useConfirmOnTrezorController,
} from '@suite-native/confirm-on-trezor';
import { Translation } from '@suite-native/intl';
import { SUITE_MOBILE_SUPPORT_URL, useOpenLink } from '@suite-native/link';
import { DynamicScreenHeader } from '@suite-native/navigation';

View File

@@ -7,6 +7,9 @@
{
"path": "../../suite-common/message-system"
},
{
"path": "../../suite-common/redux-utils"
},
{
"path": "../../suite-common/suite-types"
},
@@ -17,6 +20,7 @@
{ "path": "../analytics" },
{ "path": "../atoms" },
{ "path": "../config" },
{ "path": "../confirm-on-trezor" },
{ "path": "../device-mutex" },
{ "path": "../icons" },
{ "path": "../intl" },

View File

@@ -25,7 +25,7 @@
"@suite-native/atoms": "workspace:*",
"@suite-native/clipboard": "workspace:*",
"@suite-native/config": "workspace:*",
"@suite-native/device": "workspace:*",
"@suite-native/confirm-on-trezor": "workspace:*",
"@suite-native/device-manager": "workspace:*",
"@suite-native/icons": "workspace:^",
"@suite-native/intl": "workspace:^",

View File

@@ -2,7 +2,7 @@ import { useSelector } from 'react-redux';
import { selectSelectedDevice } from '@suite-common/wallet-core';
import { Box } from '@suite-native/atoms';
import { ConfirmOnTrezorImage } from '@suite-native/device';
import { ConfirmOnTrezorImage } from '@suite-native/confirm-on-trezor';
import { Translation } from '@suite-native/intl';
import { prepareNativeStyle, useNativeStyles } from '@trezor/styles';

View File

@@ -33,7 +33,7 @@
{ "path": "../atoms" },
{ "path": "../clipboard" },
{ "path": "../config" },
{ "path": "../device" },
{ "path": "../confirm-on-trezor" },
{ "path": "../device-manager" },
{ "path": "../icons" },
{ "path": "../intl" },

View File

@@ -28,6 +28,7 @@
"@suite-native/atoms": "workspace:*",
"@suite-native/blockchain": "workspace:*",
"@suite-native/bluetooth": "workspace:*",
"@suite-native/confirm-on-trezor": "workspace:*",
"@suite-native/device": "workspace:*",
"@suite-native/device-manager": "workspace:*",
"@suite-native/discovery": "workspace:*",

View File

@@ -4,7 +4,7 @@ import { useNavigation } from '@react-navigation/native';
import { selectDeviceModel } from '@suite-common/wallet-core';
import { Box, Button, Card, CenteredTitleHeader, VStack } from '@suite-native/atoms';
import { ConfirmOnTrezorAnimation } from '@suite-native/device';
import { ConfirmOnTrezorAnimation } from '@suite-native/confirm-on-trezor';
import { Translation } from '@suite-native/intl';
import {
DeviceOnboardingStackRoutes,

View File

@@ -28,6 +28,7 @@
{ "path": "../atoms" },
{ "path": "../blockchain" },
{ "path": "../bluetooth" },
{ "path": "../confirm-on-trezor" },
{ "path": "../device" },
{ "path": "../device-manager" },
{ "path": "../discovery" },

View File

@@ -30,7 +30,7 @@
"@suite-native/analytics": "workspace:*",
"@suite-native/atoms": "workspace:*",
"@suite-native/config": "workspace:*",
"@suite-native/device": "workspace:*",
"@suite-native/confirm-on-trezor": "workspace:*",
"@suite-native/formatters": "workspace:*",
"@suite-native/forms": "workspace:*",
"@suite-native/helpers": "workspace:*",

View File

@@ -4,7 +4,10 @@ import { useSelector } from 'react-redux';
import { useFocusEffect } from '@react-navigation/native';
import { Box, Text, VStack } from '@suite-native/atoms';
import { ConfirmOnTrezorWrapper, useConfirmOnTrezorController } from '@suite-native/device';
import {
ConfirmOnTrezorWrapper,
useConfirmOnTrezorController,
} from '@suite-native/confirm-on-trezor';
import { Translation } from '@suite-native/intl';
import {
ScreenHeader,

View File

@@ -4,7 +4,10 @@ import { useSelector } from 'react-redux';
import { useFocusEffect } from '@react-navigation/native';
import { Text, VStack } from '@suite-native/atoms';
import { ConfirmOnTrezorWrapper, useConfirmOnTrezorController } from '@suite-native/device';
import {
ConfirmOnTrezorWrapper,
useConfirmOnTrezorController,
} from '@suite-native/confirm-on-trezor';
import { Translation } from '@suite-native/intl';
import { SendStackParamList, SendStackRoutes, StackProps } from '@suite-native/navigation';
import {

View File

@@ -3,7 +3,10 @@ import { useSelector } from 'react-redux';
import { AccountsRootState, selectAccountByKey } from '@suite-common/wallet-core';
import { Box, VStack } from '@suite-native/atoms';
import { ConfirmOnTrezorWrapper, useConfirmOnTrezorController } from '@suite-native/device';
import {
ConfirmOnTrezorWrapper,
useConfirmOnTrezorController,
} from '@suite-native/confirm-on-trezor';
import { Translation } from '@suite-native/intl';
import {
ScreenHeader,

View File

@@ -31,7 +31,7 @@
{ "path": "../analytics" },
{ "path": "../atoms" },
{ "path": "../config" },
{ "path": "../device" },
{ "path": "../confirm-on-trezor" },
{ "path": "../formatters" },
{ "path": "../forms" },
{ "path": "../helpers" },

View File

@@ -23,7 +23,7 @@
"@suite-common/wallet-utils": "workspace:*",
"@suite-native/alerts": "workspace:*",
"@suite-native/atoms": "workspace:*",
"@suite-native/device": "workspace:*",
"@suite-native/confirm-on-trezor": "workspace:*",
"@suite-native/forms": "workspace:*",
"@suite-native/icons": "workspace:*",
"@suite-native/intl": "workspace:*",

View File

@@ -68,8 +68,8 @@ jest.mock('@react-navigation/native', () => ({
},
}));
jest.mock('@suite-native/device', () => ({
...jest.requireActual('@suite-native/device'),
jest.mock('@suite-native/confirm-on-trezor', () => ({
...jest.requireActual('@suite-native/confirm-on-trezor'),
useConfirmOnTrezorController: () => ({
revealConfirmOnTrezorSheet: mockRevealConfirmOnTrezorSheet,
confirmOnTrezorRef: { current: null },

View File

@@ -25,7 +25,7 @@ import {
} from '@suite-common/wallet-types';
import { useAlert } from '@suite-native/alerts';
import { useBottomSheetModal } from '@suite-native/atoms';
import { useConfirmOnTrezorController } from '@suite-native/device';
import { useConfirmOnTrezorController } from '@suite-native/confirm-on-trezor';
import { useTranslate } from '@suite-native/intl';
import {
AuthorizeDeviceStackRoutes,

View File

@@ -6,7 +6,7 @@ import { useNavigation, useRoute } from '@react-navigation/native';
import { activateStellarTokenThunk } from '@suite-common/wallet-core';
import { formatNetworkAmount } from '@suite-common/wallet-utils';
import { Box, Button, InlineAlertBox, Text, VStack } from '@suite-native/atoms';
import { ConfirmOnTrezorWrapper } from '@suite-native/device';
import { ConfirmOnTrezorWrapper } from '@suite-native/confirm-on-trezor';
import { Form } from '@suite-native/forms';
import { Translation } from '@suite-native/intl';
import { Link } from '@suite-native/link';

View File

@@ -6,7 +6,7 @@ import { useNavigation, useRoute } from '@react-navigation/native';
import { deactivateStellarTokenThunk } from '@suite-common/wallet-core';
import { formatNetworkAmount } from '@suite-common/wallet-utils';
import { Box, Button, Card, HStack, Text, VStack } from '@suite-native/atoms';
import { ConfirmOnTrezorWrapper } from '@suite-native/device';
import { ConfirmOnTrezorWrapper } from '@suite-native/confirm-on-trezor';
import { Form } from '@suite-native/forms';
import { Icon } from '@suite-native/icons';
import { Translation } from '@suite-native/intl';

View File

@@ -22,7 +22,7 @@
},
{ "path": "../alerts" },
{ "path": "../atoms" },
{ "path": "../device" },
{ "path": "../confirm-on-trezor" },
{ "path": "../forms" },
{ "path": "../icons" },
{ "path": "../intl" },

View File

@@ -39,6 +39,7 @@
"@suite-native/analytics": "workspace:*",
"@suite-native/atoms": "workspace:*",
"@suite-native/clipboard": "workspace:*",
"@suite-native/confirm-on-trezor": "workspace:*",
"@suite-native/device": "workspace:*",
"@suite-native/device-authorization": "workspace:*",
"@suite-native/device-manager": "workspace:*",

View File

@@ -1,7 +1,7 @@
import { TradingType } from '@suite-common/trading';
import { AccountKey, TokenAddress } from '@suite-common/wallet-types';
import { Box, VStack } from '@suite-native/atoms';
import { ConfirmOnTrezorWrapper } from '@suite-native/device';
import { ConfirmOnTrezorWrapper } from '@suite-native/confirm-on-trezor';
import { Translation } from '@suite-native/intl';
import { ScreenHeader } from '@suite-native/navigation';
import { ReviewOutputItemList } from '@suite-native/transaction-management';

View File

@@ -3,8 +3,8 @@ import { renderWithStoreProviderAsync } from '@suite-native/test-utils';
import { ReviewOutputsContent, ReviewOutputsContentProps } from '../ReviewOutputsContent';
jest.mock('@suite-native/device', () => ({
...jest.requireActual('@suite-native/device'),
jest.mock('@suite-native/confirm-on-trezor', () => ({
...jest.requireActual('@suite-native/confirm-on-trezor'),
useConfirmOnTrezorController: () => ({
confirmOnTrezorRef: { current: null },
closeSheet: jest.fn(),

View File

@@ -26,8 +26,8 @@ const mockPop = jest.fn();
const mockUseOutputsReviewBackInterceptor = jest.fn();
const mockShowAlert = jest.fn();
jest.mock('@suite-native/device', () => ({
...jest.requireActual('@suite-native/device'),
jest.mock('@suite-native/confirm-on-trezor', () => ({
...jest.requireActual('@suite-native/confirm-on-trezor'),
useConfirmOnTrezorController: () => mockUseConfirmOnTrezorController,
}));

View File

@@ -5,7 +5,7 @@ import { useNavigation } from '@react-navigation/native';
import { sendFormActions } from '@suite-common/wallet-core';
import { AccountKey } from '@suite-common/wallet-types';
import { useConfirmOnTrezorController } from '@suite-native/device';
import { useConfirmOnTrezorController } from '@suite-native/confirm-on-trezor';
import type {
TradingExchangeAnalyticReportCallback,
TradingSellAnalyticReportCallback,

View File

@@ -50,8 +50,8 @@ jest.mock('@react-navigation/native', () => ({
useRoute: () => ({ name: 'TEST_ROUTE_NAME' }),
}));
jest.mock('@suite-native/device', () => ({
...jest.requireActual('@suite-native/device'),
jest.mock('@suite-native/confirm-on-trezor', () => ({
...jest.requireActual('@suite-native/confirm-on-trezor'),
useConfirmOnTrezorController: () => ({
confirmOnTrezorRef: { current: null },
closeSheet: jest.fn(),

View File

@@ -45,6 +45,7 @@
{ "path": "../analytics" },
{ "path": "../atoms" },
{ "path": "../clipboard" },
{ "path": "../confirm-on-trezor" },
{ "path": "../device" },
{ "path": "../device-authorization" },
{ "path": "../device-manager" },

View File

@@ -19,7 +19,7 @@
"@suite-native/alerts": "workspace:*",
"@suite-native/analytics": "workspace:*",
"@suite-native/atoms": "workspace:*",
"@suite-native/device": "workspace:*",
"@suite-native/confirm-on-trezor": "workspace:*",
"@suite-native/forms": "workspace:*",
"@suite-native/icons": "workspace:*",
"@suite-native/intl": "workspace:*",

View File

@@ -1,5 +1,5 @@
import { CenteredTitleHeader, VStack } from '@suite-native/atoms';
import { ConfirmOnTrezorAnimation } from '@suite-native/device';
import { ConfirmOnTrezorAnimation } from '@suite-native/confirm-on-trezor';
import { Translation } from '@suite-native/intl';
export const PassphraseConfirmOnTrezorScreenContent = () => (

View File

@@ -1,5 +1,5 @@
import { Box, Button, Card, CenteredTitleHeader, VStack } from '@suite-native/atoms';
import { ConfirmOnTrezorAnimation } from '@suite-native/device';
import { ConfirmOnTrezorAnimation } from '@suite-native/confirm-on-trezor';
import { Translation } from '@suite-native/intl';
import { prepareNativeStyle, useNativeStyles } from '@trezor/styles';

View File

@@ -11,7 +11,7 @@
{ "path": "../alerts" },
{ "path": "../analytics" },
{ "path": "../atoms" },
{ "path": "../device" },
{ "path": "../confirm-on-trezor" },
{ "path": "../forms" },
{ "path": "../icons" },
{ "path": "../intl" },

View File

@@ -24,6 +24,7 @@
"@suite-native/analytics": "workspace:*",
"@suite-native/atoms": "workspace:*",
"@suite-native/clipboard": "workspace:*",
"@suite-native/confirm-on-trezor": "workspace:*",
"@suite-native/device": "workspace:*",
"@suite-native/device-mutex": "workspace:*",
"@suite-native/helpers": "workspace:*",

View File

@@ -22,9 +22,9 @@ import {
} from '@suite-native/atoms';
import {
ConfirmOnTrezorWrapper,
selectHasFirmwareAuthenticityCheckHardFailed,
useConfirmOnTrezorController,
} from '@suite-native/device';
} from '@suite-native/confirm-on-trezor';
import { selectHasFirmwareAuthenticityCheckHardFailed } from '@suite-native/device';
import { useInAppRating } from '@suite-native/in-app-rating';
import { Translation } from '@suite-native/intl';
import { Link } from '@suite-native/link';

View File

@@ -19,6 +19,7 @@
{ "path": "../analytics" },
{ "path": "../atoms" },
{ "path": "../clipboard" },
{ "path": "../confirm-on-trezor" },
{ "path": "../device" },
{ "path": "../device-mutex" },
{ "path": "../helpers" },

View File

@@ -12262,6 +12262,28 @@ __metadata:
languageName: unknown
linkType: soft
"@suite-native/confirm-on-trezor@workspace:*, @suite-native/confirm-on-trezor@workspace:suite-native/confirm-on-trezor":
version: 0.0.0-use.local
resolution: "@suite-native/confirm-on-trezor@workspace:suite-native/confirm-on-trezor"
dependencies:
"@react-navigation/native": "npm:7.1.26"
"@suite-native/atoms": "workspace:*"
"@suite-native/config": "workspace:*"
"@suite-native/intl": "workspace:*"
"@suite-native/navigation": "workspace:*"
"@suite-native/theme": "workspace:*"
"@trezor/env-utils": "workspace:*"
"@trezor/styles": "workspace:*"
"@trezor/theme": "workspace:*"
expo-haptics: "npm:~15.0.8"
expo-linear-gradient: "npm:~15.0.8"
react: "npm:19.1.0"
react-native: "npm:0.81.5"
react-native-gesture-handler: "npm:2.29.0"
react-native-reanimated: "npm:~4.1.5"
languageName: unknown
linkType: soft
"@suite-native/connection-status@workspace:*, @suite-native/connection-status@workspace:suite-native/connection-status":
version: 0.0.0-use.local
resolution: "@suite-native/connection-status@workspace:suite-native/connection-status"
@@ -12402,7 +12424,6 @@ __metadata:
"@suite-native/analytics": "workspace:*"
"@suite-native/atoms": "workspace:*"
"@suite-native/bluetooth": "workspace:*"
"@suite-native/config": "workspace:*"
"@suite-native/device-mutex": "workspace:*"
"@suite-native/device-onboarding": "workspace:*"
"@suite-native/feature-flags": "workspace:*"
@@ -12429,8 +12450,6 @@ __metadata:
"@trezor/utils": "workspace:*"
"@types/semver": "npm:^7.7.0"
expo: "npm:~54.0.30"
expo-haptics: "npm:~15.0.8"
expo-linear-gradient: "npm:~15.0.8"
expo-video: "npm:~3.0.15"
jotai: "npm:2.15.0"
react: "npm:19.1.0"
@@ -12516,12 +12535,14 @@ __metadata:
"@suite-common/firmware": "workspace:*"
"@suite-common/icons": "workspace:*"
"@suite-common/message-system": "workspace:*"
"@suite-common/redux-utils": "workspace:*"
"@suite-common/suite-types": "workspace:*"
"@suite-common/wallet-core": "workspace:*"
"@suite-native/alerts": "workspace:*"
"@suite-native/analytics": "workspace:*"
"@suite-native/atoms": "workspace:*"
"@suite-native/config": "workspace:*"
"@suite-native/confirm-on-trezor": "workspace:*"
"@suite-native/device-mutex": "workspace:*"
"@suite-native/icons": "workspace:*"
"@suite-native/intl": "workspace:*"
@@ -13032,7 +13053,7 @@ __metadata:
"@suite-native/atoms": "workspace:*"
"@suite-native/clipboard": "workspace:*"
"@suite-native/config": "workspace:*"
"@suite-native/device": "workspace:*"
"@suite-native/confirm-on-trezor": "workspace:*"
"@suite-native/device-manager": "workspace:*"
"@suite-native/icons": "workspace:^"
"@suite-native/intl": "workspace:^"
@@ -13268,6 +13289,7 @@ __metadata:
"@suite-native/atoms": "workspace:*"
"@suite-native/blockchain": "workspace:*"
"@suite-native/bluetooth": "workspace:*"
"@suite-native/confirm-on-trezor": "workspace:*"
"@suite-native/device": "workspace:*"
"@suite-native/device-manager": "workspace:*"
"@suite-native/discovery": "workspace:*"
@@ -13378,7 +13400,7 @@ __metadata:
"@suite-native/analytics": "workspace:*"
"@suite-native/atoms": "workspace:*"
"@suite-native/config": "workspace:*"
"@suite-native/device": "workspace:*"
"@suite-native/confirm-on-trezor": "workspace:*"
"@suite-native/formatters": "workspace:*"
"@suite-native/forms": "workspace:*"
"@suite-native/helpers": "workspace:*"
@@ -13489,7 +13511,7 @@ __metadata:
"@suite-common/wallet-utils": "workspace:*"
"@suite-native/alerts": "workspace:*"
"@suite-native/atoms": "workspace:*"
"@suite-native/device": "workspace:*"
"@suite-native/confirm-on-trezor": "workspace:*"
"@suite-native/forms": "workspace:*"
"@suite-native/icons": "workspace:*"
"@suite-native/intl": "workspace:*"
@@ -13538,6 +13560,7 @@ __metadata:
"@suite-native/analytics": "workspace:*"
"@suite-native/atoms": "workspace:*"
"@suite-native/clipboard": "workspace:*"
"@suite-native/confirm-on-trezor": "workspace:*"
"@suite-native/device": "workspace:*"
"@suite-native/device-authorization": "workspace:*"
"@suite-native/device-manager": "workspace:*"
@@ -13679,7 +13702,7 @@ __metadata:
"@suite-native/alerts": "workspace:*"
"@suite-native/analytics": "workspace:*"
"@suite-native/atoms": "workspace:*"
"@suite-native/device": "workspace:*"
"@suite-native/confirm-on-trezor": "workspace:*"
"@suite-native/forms": "workspace:*"
"@suite-native/icons": "workspace:*"
"@suite-native/intl": "workspace:*"
@@ -13751,6 +13774,7 @@ __metadata:
"@suite-native/analytics": "workspace:*"
"@suite-native/atoms": "workspace:*"
"@suite-native/clipboard": "workspace:*"
"@suite-native/confirm-on-trezor": "workspace:*"
"@suite-native/device": "workspace:*"
"@suite-native/device-mutex": "workspace:*"
"@suite-native/helpers": "workspace:*"