From e400f6e24f89d06c58fa6d5fae4e9bcaae2eef2e Mon Sep 17 00:00:00 2001 From: Peter Sanderson Date: Mon, 29 Sep 2025 15:31:21 +0200 Subject: [PATCH] chore: naming for asDeviceUniquePath --- packages/connect/src/device/DeviceList.ts | 4 ++-- packages/connect/src/types/api/__tests__/bitcoin.ts | 4 ++-- packages/connect/src/types/api/__tests__/cardano.ts | 4 ++-- packages/connect/src/types/api/__tests__/ethereum.ts | 4 ++-- packages/connect/src/types/api/__tests__/nem.ts | 4 ++-- packages/connect/src/types/api/__tests__/ripple.ts | 4 ++-- packages/connect/src/types/api/__tests__/stellar.ts | 4 ++-- packages/connect/src/types/api/__tests__/tezos.ts | 4 ++-- packages/connect/src/types/device.ts | 9 ++++++++- suite-common/test-utils/src/mocks.ts | 3 ++- 10 files changed, 26 insertions(+), 18 deletions(-) diff --git a/packages/connect/src/device/DeviceList.ts b/packages/connect/src/device/DeviceList.ts index c48be4480c..ac5c843b7e 100644 --- a/packages/connect/src/device/DeviceList.ts +++ b/packages/connect/src/device/DeviceList.ts @@ -16,7 +16,7 @@ import { import { ERRORS } from '../constants'; import { DEVICE, DecodedTrezorPushNotification, TransportError, TransportInfo } from '../events'; import { Device } from './Device'; -import { ConnectSettings, DeviceUniquePath, StaticSessionId } from '../types'; +import { ConnectSettings, DeviceUniquePath, StaticSessionId, asDeviceUniquePath } from '../types'; import { createTransportList } from './TransportList'; import { TransportManager } from './TransportManager'; import { initLog } from '../utils/debug'; @@ -144,7 +144,7 @@ export class DeviceList extends TypedEmitter implements IDevic private async onDeviceConnected(descriptor: Descriptor, transport: Transport) { const id = (this.deviceCounter++).toString(16).slice(-8); - const device = new Device({ id: DeviceUniquePath(id), transport, descriptor }); + const device = new Device({ id: asDeviceUniquePath(id), transport, descriptor }); const penalty = this.authPenaltyManager.get(); const stillConnected = await this.handshakeLock(() => diff --git a/packages/connect/src/types/api/__tests__/bitcoin.ts b/packages/connect/src/types/api/__tests__/bitcoin.ts index 6fadd8e387..aba990a694 100644 --- a/packages/connect/src/types/api/__tests__/bitcoin.ts +++ b/packages/connect/src/types/api/__tests__/bitcoin.ts @@ -1,4 +1,4 @@ -import { DeviceUniquePath, TrezorConnect } from '../../..'; +import { TrezorConnect, asDeviceUniquePath } from '../../..'; export const getAddress = async (api: TrezorConnect) => { // regular @@ -29,7 +29,7 @@ export const getAddress = async (api: TrezorConnect) => { // with all possible params api.getAddress({ device: { - path: DeviceUniquePath('1'), + path: asDeviceUniquePath('1'), instance: 1, state: 'state@device-id:1', }, diff --git a/packages/connect/src/types/api/__tests__/cardano.ts b/packages/connect/src/types/api/__tests__/cardano.ts index 2940e61811..0311279473 100644 --- a/packages/connect/src/types/api/__tests__/cardano.ts +++ b/packages/connect/src/types/api/__tests__/cardano.ts @@ -1,4 +1,4 @@ -import { DeviceUniquePath, PROTO, TrezorConnect } from '../../..'; +import { PROTO, TrezorConnect, asDeviceUniquePath } from '../../..'; const { CardanoAddressType, @@ -122,7 +122,7 @@ export const cardanoGetAddress = async (api: TrezorConnect) => { // with all possible params api.cardanoGetAddress({ device: { - path: DeviceUniquePath('1'), + path: asDeviceUniquePath('1'), instance: 1, state: 'state@device-id:1', }, diff --git a/packages/connect/src/types/api/__tests__/ethereum.ts b/packages/connect/src/types/api/__tests__/ethereum.ts index ae6008f5ba..6025c28639 100644 --- a/packages/connect/src/types/api/__tests__/ethereum.ts +++ b/packages/connect/src/types/api/__tests__/ethereum.ts @@ -1,4 +1,4 @@ -import { DeviceUniquePath, TrezorConnect } from '../../..'; +import { TrezorConnect, asDeviceUniquePath } from '../../..'; export const ethereumGetAddress = async (api: TrezorConnect) => { // regular @@ -30,7 +30,7 @@ export const ethereumGetAddress = async (api: TrezorConnect) => { // with all possible params api.ethereumGetAddress({ device: { - path: DeviceUniquePath('1'), + path: asDeviceUniquePath('1'), instance: 1, state: 'state@device-id:1', }, diff --git a/packages/connect/src/types/api/__tests__/nem.ts b/packages/connect/src/types/api/__tests__/nem.ts index b282046806..c74fc451e5 100644 --- a/packages/connect/src/types/api/__tests__/nem.ts +++ b/packages/connect/src/types/api/__tests__/nem.ts @@ -1,4 +1,4 @@ -import { DeviceUniquePath, NEM, TrezorConnect } from '../../..'; +import { NEM, TrezorConnect, asDeviceUniquePath } from '../../..'; export const nemGetAddress = async (api: TrezorConnect) => { // regular @@ -33,7 +33,7 @@ export const nemGetAddress = async (api: TrezorConnect) => { // with all possible params api.nemGetAddress({ device: { - path: DeviceUniquePath('1'), + path: asDeviceUniquePath('1'), instance: 1, state: 'state@device-id:1', }, diff --git a/packages/connect/src/types/api/__tests__/ripple.ts b/packages/connect/src/types/api/__tests__/ripple.ts index 7a63fc0d5e..735a07a9c8 100644 --- a/packages/connect/src/types/api/__tests__/ripple.ts +++ b/packages/connect/src/types/api/__tests__/ripple.ts @@ -1,4 +1,4 @@ -import { DeviceUniquePath, TrezorConnect } from '../../..'; +import { TrezorConnect, asDeviceUniquePath } from '../../..'; export const rippleGetAddress = async (api: TrezorConnect) => { // regular @@ -31,7 +31,7 @@ export const rippleGetAddress = async (api: TrezorConnect) => { // with all possible params api.rippleGetAddress({ device: { - path: DeviceUniquePath('1'), + path: asDeviceUniquePath('1'), instance: 1, state: 'state@device-id:1', }, diff --git a/packages/connect/src/types/api/__tests__/stellar.ts b/packages/connect/src/types/api/__tests__/stellar.ts index 1164974b88..7ea7d0707e 100644 --- a/packages/connect/src/types/api/__tests__/stellar.ts +++ b/packages/connect/src/types/api/__tests__/stellar.ts @@ -1,4 +1,4 @@ -import { DeviceUniquePath, TrezorConnect } from '../../..'; +import { TrezorConnect, asDeviceUniquePath } from '../../..'; export const stellarGetAddress = async (api: TrezorConnect) => { // regular @@ -29,7 +29,7 @@ export const stellarGetAddress = async (api: TrezorConnect) => { // with all possible params api.stellarGetAddress({ device: { - path: DeviceUniquePath('1'), + path: asDeviceUniquePath('1'), instance: 1, state: 'state@device-id:1', }, diff --git a/packages/connect/src/types/api/__tests__/tezos.ts b/packages/connect/src/types/api/__tests__/tezos.ts index e4887411f9..3c9b37bd22 100644 --- a/packages/connect/src/types/api/__tests__/tezos.ts +++ b/packages/connect/src/types/api/__tests__/tezos.ts @@ -1,4 +1,4 @@ -import { DeviceUniquePath, TrezorConnect } from '../../..'; +import { TrezorConnect, asDeviceUniquePath } from '../../..'; export const tezosGetAddress = async (api: TrezorConnect) => { // regular @@ -29,7 +29,7 @@ export const tezosGetAddress = async (api: TrezorConnect) => { // with all possible params api.tezosGetAddress({ device: { - path: DeviceUniquePath('1'), + path: asDeviceUniquePath('1'), instance: 1, state: 'state@device-id:1', }, diff --git a/packages/connect/src/types/device.ts b/packages/connect/src/types/device.ts index 7b3204a692..67388732d6 100644 --- a/packages/connect/src/types/device.ts +++ b/packages/connect/src/types/device.ts @@ -77,8 +77,15 @@ export type FirmwareHashCheckResult = errorPayload?: unknown; }; +/** + * The Unique Device Identifier per Suite run & Connected Device. + * When Suite is restarted or the Device is reconnected this will change. + * + * The main reason for this identifier is to reference device which is unacquired + * and therefore has no `id` yet. Typical use case is THP pairing + */ export type DeviceUniquePath = string & Branded<'DeviceUniquePath'>; -export const DeviceUniquePath = (id: string) => id as DeviceUniquePath; +export const asDeviceUniquePath = (id: string) => id as DeviceUniquePath; type BaseDevice = { path: DeviceUniquePath; diff --git a/suite-common/test-utils/src/mocks.ts b/suite-common/test-utils/src/mocks.ts index de5a096b87..b1f80693bf 100644 --- a/suite-common/test-utils/src/mocks.ts +++ b/suite-common/test-utils/src/mocks.ts @@ -22,6 +22,7 @@ import { Features, FirmwareType, TrezorConnect, + asDeviceUniquePath, } from '@trezor/connect'; import { DeviceModelInternal } from '@trezor/device-utils'; @@ -160,7 +161,7 @@ type StringPath = Omit & { path * @returns {Device} */ const getConnectDevice = (dev?: Partial>, feat?: Partial): Device => { - const path = DeviceUniquePath(dev?.path ?? '1'); + const path = asDeviceUniquePath(dev?.path ?? '1'); if (dev && typeof dev.type === 'string' && dev.type === 'unreadable') { return {