-
-
Notifications
You must be signed in to change notification settings - Fork 282
/
Copy pathdeviceActions.ts
111 lines (90 loc) · 3.28 KB
/
deviceActions.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import { createAction } from '@reduxjs/toolkit';
import { ButtonRequest, TrezorDevice } from '@suite-common/suite-types';
import { WalletType } from '@suite-common/wallet-types';
import { DEVICE, Device } from '@trezor/connect';
export const DEVICE_MODULE_PREFIX = '@suite/device';
export type ConnectDeviceSettings = {
defaultWalletLoading: WalletType;
};
export type DeviceConnectActionPayload = { device: Device; settings: ConnectDeviceSettings };
const connectDevice = createAction(DEVICE.CONNECT, (payload: DeviceConnectActionPayload) => ({
payload,
}));
const connectUnacquiredDevice = createAction(
DEVICE.CONNECT_UNACQUIRED,
(payload: DeviceConnectActionPayload) => ({ payload }),
);
const deviceChanged = createAction(DEVICE.CHANGED, (payload: Device | TrezorDevice) => ({
payload,
}));
const deviceDisconnect = createAction(DEVICE.DISCONNECT, (payload: TrezorDevice) => ({
payload,
}));
const updatePassphraseMode = createAction(
`${DEVICE_MODULE_PREFIX}/updatePassphraseMode`,
(payload: { device: TrezorDevice; hidden: boolean; alwaysOnDevice?: boolean }) => ({ payload }),
);
const receiveAuthConfirm = createAction(
`${DEVICE_MODULE_PREFIX}/receiveAuthConfirm`,
(payload: { device: TrezorDevice; success: boolean }) => ({ payload }),
);
const rememberDevice = createAction(
`${DEVICE_MODULE_PREFIX}/rememberDevice`,
(payload: { device: TrezorDevice; remember: boolean; forceRemember?: true }) => ({
payload,
}),
);
export type ForgetDeviceActionPayload = { device: TrezorDevice; settings: ConnectDeviceSettings };
const forgetDevice = createAction(
`${DEVICE_MODULE_PREFIX}/forgetDevice`,
(payload: ForgetDeviceActionPayload) => ({
payload,
}),
);
const addButtonRequest = createAction(
`${DEVICE_MODULE_PREFIX}/addButtonRequest`,
(payload: { device?: TrezorDevice; buttonRequest: ButtonRequest }) => ({ payload }),
);
const requestDeviceReconnect = createAction(`${DEVICE_MODULE_PREFIX}/requestDeviceReconnect`);
const selectDevice = createAction(
`${DEVICE_MODULE_PREFIX}/selectDevice`,
(payload?: TrezorDevice) => ({
payload,
}),
);
const updateSelectedDevice = createAction(
`${DEVICE_MODULE_PREFIX}/updateSelectedDevice`,
(payload: TrezorDevice) => ({ payload }),
);
// Remove button requests for specific device by button request code or all button requests if no code is provided.
export const removeButtonRequests = createAction(
`${DEVICE_MODULE_PREFIX}/removeButtonRequests`,
(payload: { device?: TrezorDevice; buttonRequestCode?: ButtonRequest['code'] }) => ({
payload,
}),
);
const dismissFirmwareAuthenticityCheck = createAction(
`${DEVICE_MODULE_PREFIX}/dismissFirmwareAuthenticityCheck`,
(payload: string) => ({ payload }),
);
const setEntropyCheckFail = createAction(
`${DEVICE_MODULE_PREFIX}/setEntropyCheckFail`,
(payload: string | null) => ({ payload }),
);
export const deviceActions = {
connectDevice,
connectUnacquiredDevice,
deviceChanged,
deviceDisconnect,
dismissFirmwareAuthenticityCheck,
updatePassphraseMode,
receiveAuthConfirm,
rememberDevice,
forgetDevice,
addButtonRequest,
requestDeviceReconnect,
selectDevice,
updateSelectedDevice,
removeButtonRequests,
setEntropyCheckFail,
};