@onekeyfe/hd-core 1.2.2-alpha.105 → 1.2.2-alpha.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/__tests__/AllNetworkGetAddressBase.tracing.test.ts +2 -2
- package/__tests__/core-error-output.test.ts +92 -1
- package/__tests__/device-lifecycle-events.test.ts +313 -2
- package/__tests__/open-wallet-session-error-response.test.ts +2 -2
- package/__tests__/open-wallet-session.test.ts +8 -411
- package/__tests__/public-device-state-api.test.ts +2 -7
- package/dist/api/GetFeatures.d.ts.map +1 -1
- package/dist/api/GetPassphraseState.d.ts.map +1 -1
- package/dist/api/OpenWalletSession.d.ts.map +1 -1
- package/dist/core/RequestQueue.d.ts +1 -0
- package/dist/core/RequestQueue.d.ts.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/device/Device.d.ts +2 -0
- package/dist/device/Device.d.ts.map +1 -1
- package/dist/index.d.ts +16 -18
- package/dist/index.js +156 -124
- package/dist/types/api/getFeatures.d.ts.map +1 -1
- package/dist/types/api/getPassphraseState.d.ts.map +1 -1
- package/dist/types/api/openWalletSession.d.ts +1 -10
- package/dist/types/api/openWalletSession.d.ts.map +1 -1
- package/dist/types/params.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/GetFeatures.ts +1 -0
- package/src/api/GetPassphraseState.ts +1 -0
- package/src/api/OpenWalletSession.ts +7 -77
- package/src/core/RequestQueue.ts +20 -0
- package/src/core/index.ts +95 -42
- package/src/device/Device.ts +51 -27
- package/src/types/api/getFeatures.ts +2 -1
- package/src/types/api/getPassphraseState.ts +2 -5
- package/src/types/api/openWalletSession.ts +7 -19
- package/src/types/params.ts +7 -0
|
@@ -982,45 +982,6 @@ describe('openWalletSession', () => {
|
|
|
982
982
|
);
|
|
983
983
|
});
|
|
984
984
|
|
|
985
|
-
test('uses an explicit wallet binding to resume on Protocol V2', async () => {
|
|
986
|
-
const typedCall = jest
|
|
987
|
-
.fn()
|
|
988
|
-
.mockResolvedValueOnce({ message: { version: 2 } })
|
|
989
|
-
.mockResolvedValueOnce({
|
|
990
|
-
message: {
|
|
991
|
-
btc_test_address: 'hidden-state',
|
|
992
|
-
session_id: 'renewed-session',
|
|
993
|
-
},
|
|
994
|
-
});
|
|
995
|
-
const promptPassphrase = jest.fn();
|
|
996
|
-
const method = new OpenWalletSession({
|
|
997
|
-
payload: {
|
|
998
|
-
method: 'openWalletSession',
|
|
999
|
-
connectId: 'connect-id',
|
|
1000
|
-
mode: 'resume-hidden',
|
|
1001
|
-
deviceId: 'device-1',
|
|
1002
|
-
passphraseState: 'hidden-state',
|
|
1003
|
-
},
|
|
1004
|
-
});
|
|
1005
|
-
method.init();
|
|
1006
|
-
deviceWalletSessionStore.set('device-1', 'hidden-state', 'known-session');
|
|
1007
|
-
method.device = createDevice({ typedCall, promptPassphrase }) as any;
|
|
1008
|
-
|
|
1009
|
-
await expect(method.run()).resolves.toEqual({
|
|
1010
|
-
protocol: 'V2',
|
|
1011
|
-
walletType: 'hidden',
|
|
1012
|
-
deviceId: 'device-1',
|
|
1013
|
-
passphraseState: 'hidden-state',
|
|
1014
|
-
resumed: true,
|
|
1015
|
-
});
|
|
1016
|
-
expect(typedCall).toHaveBeenCalledWith('DeviceSessionGet', 'DeviceSession', {
|
|
1017
|
-
session_id: 'known-session',
|
|
1018
|
-
btc_test_address: 'hidden-state',
|
|
1019
|
-
...standardSessionGet,
|
|
1020
|
-
});
|
|
1021
|
-
expect(promptPassphrase).not.toHaveBeenCalled();
|
|
1022
|
-
});
|
|
1023
|
-
|
|
1024
985
|
test.each([
|
|
1025
986
|
{
|
|
1026
987
|
mode: 'standard',
|
|
@@ -1035,12 +996,6 @@ describe('openWalletSession', () => {
|
|
|
1035
996
|
deviceId: 'device-1',
|
|
1036
997
|
passphraseState: 'hidden-state',
|
|
1037
998
|
},
|
|
1038
|
-
{
|
|
1039
|
-
mode: 'resume-hidden',
|
|
1040
|
-
deviceId: 'device-1',
|
|
1041
|
-
passphraseState: 'hidden-state',
|
|
1042
|
-
initSession: false,
|
|
1043
|
-
},
|
|
1044
999
|
])('rejects legacy parameters combined with explicit mode: %o', params => {
|
|
1045
1000
|
const method = new OpenWalletSession({
|
|
1046
1001
|
payload: {
|
|
@@ -1076,15 +1031,7 @@ describe('openWalletSession', () => {
|
|
|
1076
1031
|
}
|
|
1077
1032
|
);
|
|
1078
1033
|
|
|
1079
|
-
test('
|
|
1080
|
-
const typedCall = jest.fn().mockResolvedValue({
|
|
1081
|
-
type: 'PassphraseState',
|
|
1082
|
-
message: {
|
|
1083
|
-
passphrase_state: 'hidden-state',
|
|
1084
|
-
session_id: 'known-session',
|
|
1085
|
-
unlocked_attach_pin: false,
|
|
1086
|
-
},
|
|
1087
|
-
});
|
|
1034
|
+
test('rejects the removed resume-hidden mode', () => {
|
|
1088
1035
|
const method = new OpenWalletSession({
|
|
1089
1036
|
payload: {
|
|
1090
1037
|
method: 'openWalletSession',
|
|
@@ -1092,76 +1039,15 @@ describe('openWalletSession', () => {
|
|
|
1092
1039
|
mode: 'resume-hidden',
|
|
1093
1040
|
deviceId: 'device-1',
|
|
1094
1041
|
passphraseState: 'hidden-state',
|
|
1095
|
-
},
|
|
1096
|
-
});
|
|
1097
|
-
method.init();
|
|
1098
|
-
deviceWalletSessionStore.set('device-1', 'hidden-state', 'known-session');
|
|
1099
|
-
const device = createDevice({ typedCall });
|
|
1100
|
-
device.isProtocolV2 = () => false;
|
|
1101
|
-
device.features = {
|
|
1102
|
-
...device.features,
|
|
1103
|
-
deviceId: 'device-1',
|
|
1104
|
-
unlocked: true,
|
|
1105
|
-
sessionId: null,
|
|
1106
|
-
};
|
|
1107
|
-
device.getCurrentFirmwareVersionString = () => '4.15.0';
|
|
1108
|
-
device.getCurrentDeviceType = () => EDeviceType.Pro;
|
|
1109
|
-
device.getFeatures = jest.fn();
|
|
1110
|
-
method.device = device as any;
|
|
1111
|
-
|
|
1112
|
-
await expect(method.run()).resolves.toMatchObject({
|
|
1113
|
-
protocol: 'V1',
|
|
1114
|
-
walletType: 'hidden',
|
|
1115
|
-
passphraseState: 'hidden-state',
|
|
1116
|
-
resumed: true,
|
|
1117
|
-
});
|
|
1118
|
-
expect(device.initialize).toHaveBeenCalledWith({
|
|
1119
|
-
deviceId: 'device-1',
|
|
1120
|
-
passphraseState: 'hidden-state',
|
|
1121
|
-
});
|
|
1122
|
-
expect(typedCall).toHaveBeenCalledWith('GetPassphraseState', 'PassphraseState', {
|
|
1123
|
-
passphrase_state: 'hidden-state',
|
|
1042
|
+
} as any,
|
|
1124
1043
|
});
|
|
1125
|
-
});
|
|
1126
1044
|
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
unlocked_attach_pin: false,
|
|
1134
|
-
},
|
|
1135
|
-
});
|
|
1136
|
-
const method = new OpenWalletSession({
|
|
1137
|
-
payload: {
|
|
1138
|
-
method: 'openWalletSession',
|
|
1139
|
-
connectId: 'connect-id',
|
|
1140
|
-
mode: 'resume-hidden',
|
|
1141
|
-
deviceId: 'device-1',
|
|
1142
|
-
passphraseState: 'hidden-state',
|
|
1143
|
-
},
|
|
1144
|
-
});
|
|
1145
|
-
method.init();
|
|
1146
|
-
deviceWalletSessionStore.set('device-1', 'hidden-state', 'known-session');
|
|
1147
|
-
const device = createDevice({ typedCall });
|
|
1148
|
-
device.isProtocolV2 = () => false;
|
|
1149
|
-
device.features = {
|
|
1150
|
-
...device.features,
|
|
1151
|
-
deviceId: 'device-1',
|
|
1152
|
-
unlocked: true,
|
|
1153
|
-
sessionId: null,
|
|
1154
|
-
};
|
|
1155
|
-
device.getCurrentFirmwareVersionString = () => '4.15.0';
|
|
1156
|
-
device.getCurrentDeviceType = () => EDeviceType.Pro;
|
|
1157
|
-
device.getFeatures = jest.fn();
|
|
1158
|
-
method.device = device as any;
|
|
1159
|
-
|
|
1160
|
-
await expect(method.run()).rejects.toMatchObject({
|
|
1161
|
-
errorCode: HardwareErrorCode.DeviceCheckPassphraseStateError,
|
|
1162
|
-
});
|
|
1163
|
-
expect(device.clearInternalState).toHaveBeenCalledTimes(1);
|
|
1164
|
-
expect(deviceWalletSessionStore.get('device-1', 'hidden-state')).toBeUndefined();
|
|
1045
|
+
expect(() => method.init()).toThrow(
|
|
1046
|
+
expect.objectContaining({
|
|
1047
|
+
errorCode: HardwareErrorCode.CallMethodInvalidParameter,
|
|
1048
|
+
message: 'Parameter [mode] must be one of standard or select-hidden.',
|
|
1049
|
+
})
|
|
1050
|
+
);
|
|
1165
1051
|
});
|
|
1166
1052
|
|
|
1167
1053
|
test('opens the standard wallet without selecting a hidden wallet', async () => {
|
|
@@ -1882,295 +1768,6 @@ describe('openWalletSession', () => {
|
|
|
1882
1768
|
}
|
|
1883
1769
|
);
|
|
1884
1770
|
|
|
1885
|
-
test('resumes a known hidden wallet without prompting or device selection', async () => {
|
|
1886
|
-
const typedCall = jest
|
|
1887
|
-
.fn()
|
|
1888
|
-
.mockResolvedValueOnce({ message: { version: 2 } })
|
|
1889
|
-
.mockResolvedValueOnce({
|
|
1890
|
-
message: {
|
|
1891
|
-
btc_test_address: 'hidden-state',
|
|
1892
|
-
session_id: 'renewed-session',
|
|
1893
|
-
},
|
|
1894
|
-
});
|
|
1895
|
-
const promptPassphrase = jest.fn();
|
|
1896
|
-
const method = new OpenWalletSession({
|
|
1897
|
-
payload: {
|
|
1898
|
-
method: 'openWalletSession',
|
|
1899
|
-
connectId: 'connect-id',
|
|
1900
|
-
mode: 'resume-hidden',
|
|
1901
|
-
deviceId: 'device-1',
|
|
1902
|
-
passphraseState: 'hidden-state',
|
|
1903
|
-
},
|
|
1904
|
-
});
|
|
1905
|
-
method.init();
|
|
1906
|
-
deviceWalletSessionStore.set('device-1', 'hidden-state', 'known-session');
|
|
1907
|
-
method.device = createDevice({ typedCall, promptPassphrase }) as any;
|
|
1908
|
-
|
|
1909
|
-
await expect(method.run()).resolves.toEqual({
|
|
1910
|
-
protocol: 'V2',
|
|
1911
|
-
walletType: 'hidden',
|
|
1912
|
-
deviceId: 'device-1',
|
|
1913
|
-
passphraseState: 'hidden-state',
|
|
1914
|
-
resumed: true,
|
|
1915
|
-
});
|
|
1916
|
-
expect(typedCall).toHaveBeenCalledWith('DeviceSessionGet', 'DeviceSession', {
|
|
1917
|
-
session_id: 'known-session',
|
|
1918
|
-
btc_test_address: 'hidden-state',
|
|
1919
|
-
...standardSessionGet,
|
|
1920
|
-
});
|
|
1921
|
-
expect(promptPassphrase).not.toHaveBeenCalled();
|
|
1922
|
-
});
|
|
1923
|
-
|
|
1924
|
-
test('validates a locked Protocol V2 resume binding after deviceId refresh', async () => {
|
|
1925
|
-
const typedCall = jest
|
|
1926
|
-
.fn()
|
|
1927
|
-
.mockResolvedValueOnce({ message: { version: 2 } })
|
|
1928
|
-
.mockResolvedValueOnce({
|
|
1929
|
-
message: {
|
|
1930
|
-
btc_test_address: 'hidden-state',
|
|
1931
|
-
session_id: 'renewed-session',
|
|
1932
|
-
},
|
|
1933
|
-
});
|
|
1934
|
-
const method = new OpenWalletSession({
|
|
1935
|
-
payload: {
|
|
1936
|
-
method: 'openWalletSession',
|
|
1937
|
-
connectId: 'connect-id',
|
|
1938
|
-
mode: 'resume-hidden',
|
|
1939
|
-
deviceId: 'device-1',
|
|
1940
|
-
passphraseState: 'hidden-state',
|
|
1941
|
-
},
|
|
1942
|
-
});
|
|
1943
|
-
method.init();
|
|
1944
|
-
deviceWalletSessionStore.set('device-1', 'hidden-state', 'known-session');
|
|
1945
|
-
const device = createDevice({ typedCall });
|
|
1946
|
-
device.features.unlocked = false;
|
|
1947
|
-
device.getDeviceState = jest
|
|
1948
|
-
.fn()
|
|
1949
|
-
.mockResolvedValueOnce({
|
|
1950
|
-
identity: { deviceId: undefined },
|
|
1951
|
-
status: { unlocked: false, passphraseProtection: true },
|
|
1952
|
-
})
|
|
1953
|
-
.mockResolvedValueOnce({
|
|
1954
|
-
identity: { deviceId: 'device-1' },
|
|
1955
|
-
status: {
|
|
1956
|
-
unlocked: true,
|
|
1957
|
-
passphraseProtection: true,
|
|
1958
|
-
unlockedAttachPin: false,
|
|
1959
|
-
},
|
|
1960
|
-
});
|
|
1961
|
-
device.unlockDevice = jest.fn().mockImplementation(() => {
|
|
1962
|
-
device.features.unlocked = true;
|
|
1963
|
-
return Promise.resolve(device.features);
|
|
1964
|
-
});
|
|
1965
|
-
method.device = device as any;
|
|
1966
|
-
|
|
1967
|
-
await expect(method.run()).resolves.toMatchObject({
|
|
1968
|
-
protocol: 'V2',
|
|
1969
|
-
walletType: 'hidden',
|
|
1970
|
-
deviceId: 'device-1',
|
|
1971
|
-
passphraseState: 'hidden-state',
|
|
1972
|
-
resumed: true,
|
|
1973
|
-
});
|
|
1974
|
-
expect(device.unlockDevice).toHaveBeenCalledTimes(1);
|
|
1975
|
-
expect(device.getDeviceState).toHaveBeenCalledTimes(2);
|
|
1976
|
-
expect(typedCall).toHaveBeenCalledWith('DeviceSessionGet', 'DeviceSession', {
|
|
1977
|
-
session_id: 'known-session',
|
|
1978
|
-
btc_test_address: 'hidden-state',
|
|
1979
|
-
...standardSessionGet,
|
|
1980
|
-
});
|
|
1981
|
-
const sessionGetCall = typedCall.mock.calls.findIndex(
|
|
1982
|
-
([requestName]) => requestName === 'DeviceSessionGet'
|
|
1983
|
-
);
|
|
1984
|
-
expect(device.getDeviceState.mock.invocationCallOrder[1]).toBeLessThan(
|
|
1985
|
-
typedCall.mock.invocationCallOrder[sessionGetCall]
|
|
1986
|
-
);
|
|
1987
|
-
});
|
|
1988
|
-
|
|
1989
|
-
test('rejects a Protocol V2 resume when the refreshed deviceId does not match', async () => {
|
|
1990
|
-
const typedCall = jest.fn().mockResolvedValue({
|
|
1991
|
-
message: {
|
|
1992
|
-
btc_test_address: 'hidden-state',
|
|
1993
|
-
session_id: 'renewed-session',
|
|
1994
|
-
},
|
|
1995
|
-
});
|
|
1996
|
-
const method = new OpenWalletSession({
|
|
1997
|
-
payload: {
|
|
1998
|
-
method: 'openWalletSession',
|
|
1999
|
-
connectId: 'connect-id',
|
|
2000
|
-
mode: 'resume-hidden',
|
|
2001
|
-
deviceId: 'device-1',
|
|
2002
|
-
passphraseState: 'hidden-state',
|
|
2003
|
-
},
|
|
2004
|
-
});
|
|
2005
|
-
method.init();
|
|
2006
|
-
deviceWalletSessionStore.set('device-1', 'hidden-state', 'known-session');
|
|
2007
|
-
const device = createDevice({ typedCall });
|
|
2008
|
-
device.features.unlocked = false;
|
|
2009
|
-
device.getDeviceState = jest
|
|
2010
|
-
.fn()
|
|
2011
|
-
.mockResolvedValueOnce({
|
|
2012
|
-
identity: { deviceId: undefined },
|
|
2013
|
-
status: { passphraseProtection: true },
|
|
2014
|
-
})
|
|
2015
|
-
.mockResolvedValueOnce({
|
|
2016
|
-
identity: { deviceId: 'other-device' },
|
|
2017
|
-
status: {
|
|
2018
|
-
unlocked: true,
|
|
2019
|
-
passphraseProtection: true,
|
|
2020
|
-
unlockedAttachPin: false,
|
|
2021
|
-
},
|
|
2022
|
-
});
|
|
2023
|
-
device.unlockDevice = jest.fn().mockImplementation(() => {
|
|
2024
|
-
device.features.unlocked = true;
|
|
2025
|
-
return Promise.resolve(device.features);
|
|
2026
|
-
});
|
|
2027
|
-
method.device = device as any;
|
|
2028
|
-
|
|
2029
|
-
await expect(method.run()).rejects.toMatchObject({
|
|
2030
|
-
errorCode: HardwareErrorCode.DeviceCheckDeviceIdError,
|
|
2031
|
-
});
|
|
2032
|
-
expect(typedCall).not.toHaveBeenCalled();
|
|
2033
|
-
expect(device.clearInternalState).not.toHaveBeenCalled();
|
|
2034
|
-
expect(deviceWalletSessionStore.get('device-1', 'hidden-state')).toBeUndefined();
|
|
2035
|
-
});
|
|
2036
|
-
|
|
2037
|
-
test('reselects the expected hidden wallet when a cached Protocol V2 session is invalid', async () => {
|
|
2038
|
-
const typedCall = jest
|
|
2039
|
-
.fn()
|
|
2040
|
-
.mockResolvedValueOnce({ message: { version: 2 } })
|
|
2041
|
-
.mockRejectedValueOnce(
|
|
2042
|
-
Object.assign(new Error('Invalid session'), {
|
|
2043
|
-
errorCode: HardwareErrorCode.WalletSessionInvalid,
|
|
2044
|
-
})
|
|
2045
|
-
)
|
|
2046
|
-
.mockResolvedValueOnce({ message: {} })
|
|
2047
|
-
.mockResolvedValueOnce({
|
|
2048
|
-
message: {
|
|
2049
|
-
btc_test_address: 'hidden-state',
|
|
2050
|
-
session_id: 'renewed-session',
|
|
2051
|
-
},
|
|
2052
|
-
});
|
|
2053
|
-
const promptPassphrase = jest.fn().mockResolvedValue({ passphrase: 'host hidden wallet' });
|
|
2054
|
-
const method = new OpenWalletSession({
|
|
2055
|
-
payload: {
|
|
2056
|
-
method: 'openWalletSession',
|
|
2057
|
-
connectId: 'connect-id',
|
|
2058
|
-
mode: 'resume-hidden',
|
|
2059
|
-
deviceId: 'device-1',
|
|
2060
|
-
passphraseState: 'hidden-state',
|
|
2061
|
-
},
|
|
2062
|
-
});
|
|
2063
|
-
method.init();
|
|
2064
|
-
deviceWalletSessionStore.set('device-1', 'hidden-state', 'expired-session');
|
|
2065
|
-
method.device = createDevice({ typedCall, promptPassphrase }) as any;
|
|
2066
|
-
|
|
2067
|
-
await expect(method.run()).resolves.toEqual({
|
|
2068
|
-
protocol: 'V2',
|
|
2069
|
-
walletType: 'hidden',
|
|
2070
|
-
deviceId: 'device-1',
|
|
2071
|
-
passphraseState: 'hidden-state',
|
|
2072
|
-
resumed: false,
|
|
2073
|
-
});
|
|
2074
|
-
expect(typedCall).toHaveBeenCalledWith('DeviceSessionGet', 'DeviceSession', {
|
|
2075
|
-
session_id: 'expired-session',
|
|
2076
|
-
btc_test_address: 'hidden-state',
|
|
2077
|
-
...standardSessionGet,
|
|
2078
|
-
});
|
|
2079
|
-
expect(promptPassphrase).toHaveBeenCalledTimes(1);
|
|
2080
|
-
expect(deviceWalletSessionStore.get('device-1', 'hidden-state')).toBe('renewed-session');
|
|
2081
|
-
});
|
|
2082
|
-
|
|
2083
|
-
test('recovers the current Attach PIN wallet when the cached session is invalid', async () => {
|
|
2084
|
-
const typedCall = jest
|
|
2085
|
-
.fn()
|
|
2086
|
-
.mockResolvedValueOnce({ message: { version: 2 } })
|
|
2087
|
-
.mockRejectedValueOnce(
|
|
2088
|
-
Object.assign(new Error('Invalid session'), {
|
|
2089
|
-
errorCode: HardwareErrorCode.WalletSessionInvalid,
|
|
2090
|
-
})
|
|
2091
|
-
)
|
|
2092
|
-
.mockResolvedValueOnce({
|
|
2093
|
-
message: {
|
|
2094
|
-
btc_test_address: 'hidden-state',
|
|
2095
|
-
session_id: 'renewed-session',
|
|
2096
|
-
},
|
|
2097
|
-
});
|
|
2098
|
-
const promptPassphrase = jest.fn();
|
|
2099
|
-
const method = new OpenWalletSession({
|
|
2100
|
-
payload: {
|
|
2101
|
-
method: 'openWalletSession',
|
|
2102
|
-
connectId: 'connect-id',
|
|
2103
|
-
mode: 'resume-hidden',
|
|
2104
|
-
deviceId: 'device-1',
|
|
2105
|
-
passphraseState: 'hidden-state',
|
|
2106
|
-
},
|
|
2107
|
-
});
|
|
2108
|
-
method.init();
|
|
2109
|
-
deviceWalletSessionStore.set('device-1', 'hidden-state', 'expired-session');
|
|
2110
|
-
const device = createDevice({ unlockedAttachPin: true, typedCall, promptPassphrase });
|
|
2111
|
-
method.device = device as any;
|
|
2112
|
-
|
|
2113
|
-
await expect(method.run()).resolves.toEqual({
|
|
2114
|
-
protocol: 'V2',
|
|
2115
|
-
walletType: 'hidden',
|
|
2116
|
-
deviceId: 'device-1',
|
|
2117
|
-
passphraseState: 'hidden-state',
|
|
2118
|
-
resumed: false,
|
|
2119
|
-
});
|
|
2120
|
-
expect(typedCall.mock.calls.filter(call => call[0] === 'DeviceSessionGet')).toEqual([
|
|
2121
|
-
[
|
|
2122
|
-
'DeviceSessionGet',
|
|
2123
|
-
'DeviceSession',
|
|
2124
|
-
{
|
|
2125
|
-
session_id: 'expired-session',
|
|
2126
|
-
btc_test_address: 'hidden-state',
|
|
2127
|
-
},
|
|
2128
|
-
],
|
|
2129
|
-
['DeviceSessionGet', 'DeviceSession', {}],
|
|
2130
|
-
]);
|
|
2131
|
-
expect(promptPassphrase).not.toHaveBeenCalled();
|
|
2132
|
-
expect(device.lockDevice).not.toHaveBeenCalled();
|
|
2133
|
-
expect(deviceWalletSessionStore.get('device-1', 'hidden-state')).toBe('renewed-session');
|
|
2134
|
-
});
|
|
2135
|
-
|
|
2136
|
-
test('selects the expected hidden wallet when Protocol V2 has no cached session', async () => {
|
|
2137
|
-
const typedCall = jest
|
|
2138
|
-
.fn()
|
|
2139
|
-
.mockResolvedValueOnce({ message: { version: 2 } })
|
|
2140
|
-
.mockResolvedValueOnce({
|
|
2141
|
-
message: {
|
|
2142
|
-
btc_test_address: 'hidden-state',
|
|
2143
|
-
session_id: 'new-session',
|
|
2144
|
-
},
|
|
2145
|
-
});
|
|
2146
|
-
const promptPassphrase = jest.fn().mockResolvedValue({ passphrase: 'host hidden wallet' });
|
|
2147
|
-
const method = new OpenWalletSession({
|
|
2148
|
-
payload: {
|
|
2149
|
-
method: 'openWalletSession',
|
|
2150
|
-
connectId: 'connect-id',
|
|
2151
|
-
mode: 'resume-hidden',
|
|
2152
|
-
deviceId: 'device-1',
|
|
2153
|
-
passphraseState: 'hidden-state',
|
|
2154
|
-
},
|
|
2155
|
-
});
|
|
2156
|
-
method.init();
|
|
2157
|
-
method.device = createDevice({ typedCall, promptPassphrase }) as any;
|
|
2158
|
-
|
|
2159
|
-
await expect(method.run()).resolves.toEqual({
|
|
2160
|
-
protocol: 'V2',
|
|
2161
|
-
walletType: 'hidden',
|
|
2162
|
-
deviceId: 'device-1',
|
|
2163
|
-
passphraseState: 'hidden-state',
|
|
2164
|
-
resumed: false,
|
|
2165
|
-
});
|
|
2166
|
-
expect(typedCall).toHaveBeenCalledWith('DeviceSessionGet', 'DeviceSession', {
|
|
2167
|
-
btc_test_address: 'hidden-state',
|
|
2168
|
-
...standardSessionGet,
|
|
2169
|
-
});
|
|
2170
|
-
expect(promptPassphrase).not.toHaveBeenCalled();
|
|
2171
|
-
expect(deviceWalletSessionStore.get('device-1', 'hidden-state')).toBe('new-session');
|
|
2172
|
-
});
|
|
2173
|
-
|
|
2174
1771
|
test.each([false, true])(
|
|
2175
1772
|
'openWalletSession does not thread CommonParams.deriveCardano: %s',
|
|
2176
1773
|
async deriveCardano => {
|
|
@@ -22,7 +22,6 @@ describe('public device state API boundary', () => {
|
|
|
22
22
|
expect((publicTypes as Record<string, unknown>).OpenWalletSessionMode).toEqual({
|
|
23
23
|
Standard: 'standard',
|
|
24
24
|
SelectHidden: 'select-hidden',
|
|
25
|
-
ResumeHidden: 'resume-hidden',
|
|
26
25
|
});
|
|
27
26
|
});
|
|
28
27
|
|
|
@@ -83,9 +82,7 @@ describe('public device state API boundary', () => {
|
|
|
83
82
|
useEmptyPassphrase: false,
|
|
84
83
|
});
|
|
85
84
|
await api.openWalletSession('device-2', {
|
|
86
|
-
mode: publicTypes.OpenWalletSessionMode.
|
|
87
|
-
deviceId: 'wallet-device-1',
|
|
88
|
-
passphraseState: 'wallet-state-1',
|
|
85
|
+
mode: publicTypes.OpenWalletSessionMode.SelectHidden,
|
|
89
86
|
});
|
|
90
87
|
await api.clearSessionCache({
|
|
91
88
|
deviceId: 'wallet-device-1',
|
|
@@ -100,9 +97,7 @@ describe('public device state API boundary', () => {
|
|
|
100
97
|
});
|
|
101
98
|
expect(call).toHaveBeenNthCalledWith(2, {
|
|
102
99
|
connectId: 'device-2',
|
|
103
|
-
mode: '
|
|
104
|
-
deviceId: 'wallet-device-1',
|
|
105
|
-
passphraseState: 'wallet-state-1',
|
|
100
|
+
mode: 'select-hidden',
|
|
106
101
|
method: 'openWalletSession',
|
|
107
102
|
});
|
|
108
103
|
expect(call).toHaveBeenNthCalledWith(3, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetFeatures.d.ts","sourceRoot":"","sources":["../../src/api/GetFeatures.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"GetFeatures.d.ts","sourceRoot":"","sources":["../../src/api/GetFeatures.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,UAAU;IACjD,IAAI;IAWE,GAAG;CASV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetPassphraseState.d.ts","sourceRoot":"","sources":["../../src/api/GetPassphraseState.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"GetPassphraseState.d.ts","sourceRoot":"","sources":["../../src/api/GetPassphraseState.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,UAAU;IACxD,qBAAqB;IAIrB,IAAI;IAKE,GAAG;CAiCV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenWalletSession.d.ts","sourceRoot":"","sources":["../../src/api/OpenWalletSession.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenWalletSession.d.ts","sourceRoot":"","sources":["../../src/api/OpenWalletSession.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AAiDxC,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,UAAU,CAAC,uBAAuB,CAAC;IAChF,qBAAqB;IAIrB,IAAI;IAYE,GAAG,IAAI,OAAO,CAAC,wBAAwB,CAAC;CAkJ/C"}
|
|
@@ -12,6 +12,7 @@ export default class RequestQueue {
|
|
|
12
12
|
generateRequestId: (method?: BaseMethod) => number;
|
|
13
13
|
createTask(method: BaseMethod): RequestTask;
|
|
14
14
|
getTask(requestId: number): RequestTask | undefined;
|
|
15
|
+
waitForTask<T>(task: RequestTask, pending: () => Promise<T>): Promise<T>;
|
|
15
16
|
getAbortController(requestId: number): AbortController | undefined;
|
|
16
17
|
abortRequest(requestId: number): boolean;
|
|
17
18
|
private isRequestForConnectId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestQueue.d.ts","sourceRoot":"","sources":["../../src/core/RequestQueue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RequestQueue.d.ts","sourceRoot":"","sources":["../../src/core/RequestQueue.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACxC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,YAAY,CAAkC;IAEtD,OAAO,CAAC,oBAAoB,CAAqC;IAG1D,iBAAiB,YAAa,UAAU,YAK7C;IAEK,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW;IAY3C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI7C,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmB9E,kBAAkB,CAAC,SAAS,EAAE,MAAM;IAKpC,YAAY,CAAC,SAAS,EAAE,MAAM;IAUrC,OAAO,CAAC,qBAAqB;IAUtB,wBAAwB,CAAC,SAAS,EAAE,MAAM;IAY1C,4BAA4B,CAAC,SAAS,EAAE,MAAM;IAO9C,gBAAgB;IAYhB,iBAAiB;IAKjB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAS/C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAS3C,WAAW,CAAC,SAAS,EAAE,MAAM;IAI7B,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC;IAYxE,2BAA2B,CACtC,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC;IAST,mBAAmB,CAAC,SAAS,EAAE,MAAM;CAM7C"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type { CoreMessage } from '../events';
|
|
|
8
8
|
import type { BaseMethod } from '../api/BaseMethod';
|
|
9
9
|
export type CoreContext = ReturnType<Core['getCoreContext']>;
|
|
10
10
|
export declare const callAPI: (context: CoreContext, message: CoreMessage) => Promise<any>;
|
|
11
|
+
export declare function getPostCallPendingPromise(method: BaseMethod, device: Device): Promise<void>;
|
|
11
12
|
export declare function isRetryableBleProtocolV2ProbeError(method: BaseMethod, error: unknown): boolean;
|
|
12
13
|
export declare function isRetryableBleConnectionError(method: BaseMethod, error: unknown): boolean;
|
|
13
14
|
export declare function isMissingDetectedProtocolV2Error(method: BaseMethod, error: unknown): boolean;
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAEL,KAAK,6BAA6B,EAElC,KAAK,YAAY,EAIlB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,EAEL,KAAK,6BAA6B,EAElC,KAAK,YAAY,EAIlB,MAAM,wBAAwB,CAAC;AAiChC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAsB1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAYxD,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,UAAU,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAmD,MAAM,WAAW,CAAC;AAI9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAYpD,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AA0E7D,eAAO,MAAM,OAAO,YAAmB,WAAW,WAAW,WAAW,iBAoFvE,CAAC;AAyFF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY3F;AAomBD,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,WAWpF;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,WAoB/E;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,WAQlF;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,WAEzD;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,WAI3D;AAiKD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAMtF;AA+LD,eAAO,MAAM,MAAM,YAAa,WAAW,cAAc,MAAM,SA4G9D,CAAC;AA8GF,eAAO,MAAM,qBAAqB,gFAejC,CAAC;AAiLF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IAC5C,OAAO,CAAC,cAAc,CAAoB;IAE1C,SAAgB,aAAa,EAAE,MAAM,CAAC;IAEtC,OAAO,CAAC,YAAY,CAAsB;IAE1C,OAAO,CAAC,cAAc,CAAC,CAAgB;IAGvC,OAAO,CAAC,sBAAsB,CAAoC;IAElE,OAAO,CAAC,iBAAiB,CAAoB;;IAS7C,OAAO,CAAC,cAAc;IAuChB,aAAa,CAAC,OAAO,EAAE,WAAW;IAuExC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAOV,gBAAgB;CAiC/B;AAED,eAAO,MAAM,QAAQ,YAIpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAYzB,CAAC;AAMF,eAAO,MAAM,IAAI,aACL,eAAe,aACd,GAAG,WACL,6BAA6B,8BAiBvC,CAAC;AAEF,eAAO,MAAM,eAAe;SAKrB,eAAe,CAAC,KAAK,CAAC;eAChB,GAAG;;UASf,CAAC"}
|
package/dist/device/Device.d.ts
CHANGED
|
@@ -83,6 +83,7 @@ export declare class Device extends EventEmitter {
|
|
|
83
83
|
set features(features: Features | undefined);
|
|
84
84
|
runPromise?: Deferred<void> | null;
|
|
85
85
|
private runCleanupPromise?;
|
|
86
|
+
private userInterruption?;
|
|
86
87
|
externalState: string[];
|
|
87
88
|
unavailableCapabilities: UnavailableCapabilities;
|
|
88
89
|
instance: number;
|
|
@@ -171,6 +172,7 @@ export declare class Device extends EventEmitter {
|
|
|
171
172
|
markProtocolV2Reboot(rebootType: DeviceRebootType): void;
|
|
172
173
|
updateDescriptor(descriptor: DeviceDescriptor, forceUpdate?: boolean): void;
|
|
173
174
|
updateFromCache(device: Device): void;
|
|
175
|
+
waitForRunCleanup(): Promise<void>;
|
|
174
176
|
run(fn?: () => Promise<void>, options?: RunOptions): Promise<void>;
|
|
175
177
|
_runInner<T>(fn: (() => Promise<T>) | undefined, options: RunOptions, runPromise: Deferred<void>): Promise<void>;
|
|
176
178
|
interruptionFromOutside(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Device.d.ts","sourceRoot":"","sources":["../../src/device/Device.ts"],"names":[],"mappings":"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"}
|