@onekeyfe/hd-core 0.1.53 → 0.1.54
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/dist/api/FirmwareUpdateV2.d.ts +16 -0
- package/dist/api/FirmwareUpdateV2.d.ts.map +1 -0
- package/dist/api/firmware/getBinary.d.ts.map +1 -1
- package/dist/api/firmware/uploadFirmware.d.ts.map +1 -1
- package/dist/api/index.d.ts +1 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/constants/ui-request.d.ts +1 -0
- package/dist/constants/ui-request.d.ts.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/events/ui-request.d.ts +11 -1
- package/dist/events/ui-request.d.ts.map +1 -1
- package/dist/index.d.ts +15 -2
- package/dist/index.js +140 -5
- package/dist/inject.d.ts.map +1 -1
- package/dist/types/api/index.d.ts +1 -0
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/api/FirmwareUpdateV2.ts +166 -0
- package/src/api/firmware/getBinary.ts +1 -4
- package/src/api/firmware/uploadFirmware.ts +19 -0
- package/src/api/index.ts +1 -0
- package/src/constants/ui-request.ts +2 -0
- package/src/core/index.ts +6 -1
- package/src/events/ui-request.ts +11 -1
- package/src/inject.ts +2 -0
- package/src/types/api/index.ts +1 -0
- package/src/utils/index.ts +5 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Deferred } from '@onekeyfe/hd-shared';
|
|
2
|
+
import { BaseMethod } from './BaseMethod';
|
|
3
|
+
declare type Params = {
|
|
4
|
+
binary?: ArrayBuffer;
|
|
5
|
+
version?: number[];
|
|
6
|
+
updateType: 'firmware' | 'ble';
|
|
7
|
+
};
|
|
8
|
+
export default class FirmwareUpdate extends BaseMethod<Params> {
|
|
9
|
+
checkPromise: Deferred<any> | null;
|
|
10
|
+
init(): void;
|
|
11
|
+
postTipMessage: (message: string) => void;
|
|
12
|
+
checkDeviceToBootloader(): void;
|
|
13
|
+
run(): Promise<import("packages/hd-transport/dist").Success>;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=FirmwareUpdateV2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirmwareUpdateV2.d.ts","sourceRoot":"","sources":["../../src/api/FirmwareUpdateV2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAA6B,MAAM,qBAAqB,CAAC;AAE1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS1C,aAAK,MAAM,GAAG;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;CAChC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,UAAU,CAAC,MAAM,CAAC;IAC5D,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAE1C,IAAI;IAoCJ,cAAc,YAAa,MAAM,UAS/B;IAEF,uBAAuB;IA6BjB,GAAG;CAqEV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBinary.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/getBinary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;CAChC;AAED,UAAU,cAAe,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,sCAA6C,cAAc;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"getBinary.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/getBinary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,GAAG,KAAK,CAAC;CAChC;AAED,UAAU,cAAe,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,sCAA6C,cAAc;;;;;;;;;;;;;;;;;;;;;;EAwBhF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadFirmware.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/uploadFirmware.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,WAAW,EAA+B,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"uploadFirmware.d.ts","sourceRoot":"","sources":["../../../src/api/firmware/uploadFirmware.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,WAAW,EAA+B,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAsC7D,eAAO,MAAM,cAAc,eACb,UAAU,GAAG,KAAK,aACnB,SAAS,yBACG,WAAW,KAAK,IAAI,UACnC,MAAM,eACD,MAAM,cAAc,0DA4ClC,CAAC"}
|
package/dist/api/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export { default as deviceSupportFeatures } from './device/DeviceSupportFeatures
|
|
|
18
18
|
export { default as deviceVerify } from './device/DeviceVerify';
|
|
19
19
|
export { default as deviceWipe } from './device/DeviceWipe';
|
|
20
20
|
export { default as firmwareUpdate } from './FirmwareUpdate';
|
|
21
|
+
export { default as firmwareUpdateV2 } from './FirmwareUpdateV2';
|
|
21
22
|
export { default as requestWebUsbDevice } from './RequestWebUsbDevice';
|
|
22
23
|
export { default as batchGetPublicKey } from './BatchGetPublicKey';
|
|
23
24
|
export { default as cipherKeyValue } from './CipherKeyValue';
|
package/dist/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,6 @@ export declare const UI_REQUEST: {
|
|
|
9
9
|
readonly FIRMWARE_NOT_COMPATIBLE: "ui-device_firmware_not_compatible";
|
|
10
10
|
readonly FIRMWARE_NOT_INSTALLED: "ui-device_firmware_not_installed";
|
|
11
11
|
readonly NOT_USE_ONEKEY_DEVICE: "ui-device_please_use_onekey_device";
|
|
12
|
+
readonly FIRMWARE_TIP: "ui-firmware-tip";
|
|
12
13
|
};
|
|
13
14
|
//# sourceMappingURL=ui-request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/constants/ui-request.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/constants/ui-request.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;CAab,CAAC"}
|
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;AAqBlC,OAAO,EACL,WAAW,EAYZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AA2BxD,eAAO,MAAM,OAAO,YAAmB,WAAW,iBA0PjD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AACA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAqBlC,OAAO,EACL,WAAW,EAYZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AA2BxD,eAAO,MAAM,OAAO,YAAmB,WAAW,iBA0PjD,CAAC;AAgLF,eAAO,MAAM,MAAM,0CAkBlB,CAAC;AA8IF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IACtC,aAAa,CAAC,OAAO,EAAE,WAAW;IA8CxC,OAAO;CAGR;AAED,eAAO,MAAM,QAAQ,YAGpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAIzB,CAAC;AAMF,eAAO,MAAM,IAAI,aAAoB,eAAe,aAAa,GAAG,8BAmBnE,CAAC"}
|
|
@@ -14,6 +14,7 @@ export declare const UI_REQUEST: {
|
|
|
14
14
|
readonly LOCATION_PERMISSION: "ui-location_permission";
|
|
15
15
|
readonly LOCATION_SERVICE_PERMISSION: "ui-location_service_permission";
|
|
16
16
|
readonly FIRMWARE_PROGRESS: "ui-firmware-progress";
|
|
17
|
+
readonly FIRMWARE_TIP: "ui-firmware-tip";
|
|
17
18
|
readonly NOT_IN_BOOTLOADER: "ui-device_not_in_bootloader_mode";
|
|
18
19
|
};
|
|
19
20
|
export interface UiRequestWithoutPayload {
|
|
@@ -52,7 +53,16 @@ export interface FirmwareProgress {
|
|
|
52
53
|
progress: number;
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
|
-
export
|
|
56
|
+
export interface FirmwareTip {
|
|
57
|
+
type: typeof UI_REQUEST.FIRMWARE_TIP;
|
|
58
|
+
payload: {
|
|
59
|
+
device: Device;
|
|
60
|
+
data: {
|
|
61
|
+
message: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export declare type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | UiRequestPassphrase | FirmwareProgress | FirmwareTip;
|
|
56
66
|
export declare type UiEventMessage = UiEvent & {
|
|
57
67
|
event: typeof UI_EVENT;
|
|
58
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/events/ui-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"ui-request.d.ts","sourceRoot":"","sources":["../../src/events/ui-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAiBb,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,IAAI,EACA,OAAO,UAAU,CAAC,eAAe,GACjC,OAAO,UAAU,CAAC,oBAAoB,GACtC,OAAO,UAAU,CAAC,mBAAmB,GACrC,OAAO,UAAU,CAAC,2BAA2B,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,SAAS,CAAC;CAC5B;AAED,oBAAY,qBAAqB,GAAG;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,WAAW,CAAC;IACpC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,KAAK,CAAC,oBAAoB,GAAG,wBAAwB,CAAC;KAC9D,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,UAAU,CAAC,cAAc,CAAC;IACvC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC,kBAAkB,CAAC;IAC3C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,UAAU,CAAC,4BAA4B,CAAC;IACrD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,UAAU,CAAC,iBAAiB,CAAC;IAC1C,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,UAAU,CAAC,YAAY,CAAC;IACrC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3B,CAAC;CACH;AAED,oBAAY,OAAO,GACf,uBAAuB,GACvB,qBAAqB,GACrB,eAAe,GACf,2BAA2B,GAC3B,mBAAmB,GACnB,gBAAgB,GAChB,WAAW,CAAC;AAEhB,oBAAY,cAAc,GAAG,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,QAAQ,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,eAAe,EAAE,gBAAgB,CAAC,OAAO,QAAQ,EAAE,OAAO,CAK5D,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1080,6 +1080,7 @@ declare type CoreApi = {
|
|
|
1080
1080
|
checkFirmwareRelease: typeof checkFirmwareRelease;
|
|
1081
1081
|
checkBLEFirmwareRelease: typeof checkBLEFirmwareRelease;
|
|
1082
1082
|
firmwareUpdate: typeof firmwareUpdate;
|
|
1083
|
+
firmwareUpdateV2: typeof firmwareUpdate;
|
|
1083
1084
|
batchGetPublicKey: typeof batchGetPublicKey;
|
|
1084
1085
|
cipherKeyValue: typeof cipherKeyValue;
|
|
1085
1086
|
evmGetAddress: typeof evmGetAddress;
|
|
@@ -1206,6 +1207,7 @@ declare const UI_REQUEST: {
|
|
|
1206
1207
|
readonly LOCATION_PERMISSION: "ui-location_permission";
|
|
1207
1208
|
readonly LOCATION_SERVICE_PERMISSION: "ui-location_service_permission";
|
|
1208
1209
|
readonly FIRMWARE_PROGRESS: "ui-firmware-progress";
|
|
1210
|
+
readonly FIRMWARE_TIP: "ui-firmware-tip";
|
|
1209
1211
|
readonly NOT_IN_BOOTLOADER: "ui-device_not_in_bootloader_mode";
|
|
1210
1212
|
};
|
|
1211
1213
|
interface UiRequestWithoutPayload {
|
|
@@ -1244,7 +1246,16 @@ interface FirmwareProgress {
|
|
|
1244
1246
|
progress: number;
|
|
1245
1247
|
};
|
|
1246
1248
|
}
|
|
1247
|
-
|
|
1249
|
+
interface FirmwareTip {
|
|
1250
|
+
type: typeof UI_REQUEST.FIRMWARE_TIP;
|
|
1251
|
+
payload: {
|
|
1252
|
+
device: Device$1;
|
|
1253
|
+
data: {
|
|
1254
|
+
message: string;
|
|
1255
|
+
};
|
|
1256
|
+
};
|
|
1257
|
+
}
|
|
1258
|
+
declare type UiEvent = UiRequestWithoutPayload | UiRequestDeviceAction | UiRequestButton | UiRequestPassphraseOnDevice | UiRequestPassphrase | FirmwareProgress | FirmwareTip;
|
|
1248
1259
|
declare type UiEventMessage = UiEvent & {
|
|
1249
1260
|
event: typeof UI_EVENT;
|
|
1250
1261
|
};
|
|
@@ -1619,6 +1630,8 @@ declare enum LoggerNames {
|
|
|
1619
1630
|
}
|
|
1620
1631
|
declare const getLogger: (key: LoggerNames) => Log;
|
|
1621
1632
|
|
|
1633
|
+
declare const wait: (ms: number) => Promise<unknown>;
|
|
1634
|
+
|
|
1622
1635
|
declare const getSDKVersion: () => any;
|
|
1623
1636
|
|
|
1624
1637
|
declare const DEFAULT_PRIORITY = 2;
|
|
@@ -1657,4 +1670,4 @@ declare class DataManager {
|
|
|
1657
1670
|
|
|
1658
1671
|
declare const HardwareSdk: ({ init, call, dispose, eventEmitter, uiResponse, cancel, }: InjectApi) => CoreApi;
|
|
1659
1672
|
|
|
1660
|
-
export { AccountAddress, AccountAddresses, AptosAddress, AptosGetAddressParams, AptosSignTransactionParams, AptosSignedTx, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, BleReleaseInfoEvent, BleReleaseInfoPayload, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CipheredKeyValue, CipheredKeyValueParams, CommonParams, ConfluxAddress, ConfluxGetAddressParams, ConfluxSignMessageCIP23Params, ConfluxSignMessageParams, ConfluxSignTransactionParams, ConfluxSignedTx, ConfluxTransaction, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceConnnectRequest, DeviceDisconnnectRequest, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFeaturesPayload, DeviceFirmwareRange, DeviceFlagsParams, DeviceMode, DeviceRecoveryParams, DeviceResetParams, DeviceSendFeatures, DeviceSendSupportFeatures, DeviceSettingsParams, DeviceStatus, DeviceSupportFeatures, DeviceSupportFeaturesPayload, DeviceTypeMap, DeviceVerifyParams, DeviceVerifySignature, EVMAccessList, EVMAddress, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, FIRMWARE, FIRMWARE_EVENT, Features, FirmwareEvent, FirmwareMessage, FirmwareProgress, FirmwareRange, FirmwareRelease$1 as FirmwareRelease, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameCancelMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, LOG, LOG_EVENT, LogEvent, LogEventMessage, LogOutput, LoggerNames, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, NearAddress, NearGetAddressParams, NearSignTransactionParams, Params, PostMessageEvent, RESPONSE_EVENT, RefTransaction, ReleaseInfo, ReleaseInfoEvent, ReleaseInfoPayload, RemoteConfigResponse, Response, SearchDevice, SignedTransaction, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, Success, SupportFeatureType, SupportFeatures, TransactionOptions, TransportReleaseStatus, TronAddress, TronGetAddressParams, TronSignMessageParams, TronSignTransactionParams, TronTransaction, TronTransactionContract, TronTransferContract, TronTriggerSmartContract, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestPassphrase, UiRequestPassphraseOnDevice, UiRequestWithoutPayload, UiResponseEvent, UiResponseMessage, UiResponsePassphrase, UiResponsePin, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, corsValidator, createDeviceMessage, createErrorMessage, createFirmwareMessage, createIFrameMessage, createLogMessage, createResponseMessage, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, getDeviceLabel, getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getEnv, getHDPath, getLog, getLogger, getSDKVersion, getScriptType, getTimeStamp, httpRequest, init as initCore, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, patchFeatures, safeThrowError, setLoggerPostMessage, versionCompare, versionSplit };
|
|
1673
|
+
export { AccountAddress, AccountAddresses, AptosAddress, AptosGetAddressParams, AptosSignTransactionParams, AptosSignedTx, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, BleReleaseInfoEvent, BleReleaseInfoPayload, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CipheredKeyValue, CipheredKeyValueParams, CommonParams, ConfluxAddress, ConfluxGetAddressParams, ConfluxSignMessageCIP23Params, ConfluxSignMessageParams, ConfluxSignTransactionParams, ConfluxSignedTx, ConfluxTransaction, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceConnnectRequest, DeviceDisconnnectRequest, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFeaturesPayload, DeviceFirmwareRange, DeviceFlagsParams, DeviceMode, DeviceRecoveryParams, DeviceResetParams, DeviceSendFeatures, DeviceSendSupportFeatures, DeviceSettingsParams, DeviceStatus, DeviceSupportFeatures, DeviceSupportFeaturesPayload, DeviceTypeMap, DeviceVerifyParams, DeviceVerifySignature, EVMAccessList, EVMAddress, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, FIRMWARE, FIRMWARE_EVENT, Features, FirmwareEvent, FirmwareMessage, FirmwareProgress, FirmwareRange, FirmwareRelease$1 as FirmwareRelease, FirmwareTip, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameCancelMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, LOG, LOG_EVENT, LogEvent, LogEventMessage, LogOutput, LoggerNames, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, NearAddress, NearGetAddressParams, NearSignTransactionParams, Params, PostMessageEvent, RESPONSE_EVENT, RefTransaction, ReleaseInfo, ReleaseInfoEvent, ReleaseInfoPayload, RemoteConfigResponse, Response, SearchDevice, SignedTransaction, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, Success, SupportFeatureType, SupportFeatures, TransactionOptions, TransportReleaseStatus, TronAddress, TronGetAddressParams, TronSignMessageParams, TronSignTransactionParams, TronTransaction, TronTransactionContract, TronTransferContract, TronTriggerSmartContract, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestPassphrase, UiRequestPassphraseOnDevice, UiRequestWithoutPayload, UiResponseEvent, UiResponseMessage, UiResponsePassphrase, UiResponsePin, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, corsValidator, createDeviceMessage, createErrorMessage, createFirmwareMessage, createIFrameMessage, createLogMessage, createResponseMessage, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, getDeviceLabel, getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getEnv, getHDPath, getLog, getLogger, getSDKVersion, getScriptType, getTimeStamp, httpRequest, init as initCore, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, patchFeatures, safeThrowError, setLoggerPostMessage, versionCompare, versionSplit, wait };
|
package/dist/index.js
CHANGED
|
@@ -79,6 +79,7 @@ const inject = ({ call, cancel, dispose, eventEmitter, init, uiResponse, }) => {
|
|
|
79
79
|
stellarGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'stellarGetAddress' })),
|
|
80
80
|
stellarSignTransaction: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'stellarSignTransaction' })),
|
|
81
81
|
firmwareUpdate: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'firmwareUpdate' })),
|
|
82
|
+
firmwareUpdateV2: (connectId, params) => call(Object.assign(Object.assign({}, params), { connectId, method: 'firmwareUpdateV2' })),
|
|
82
83
|
requestWebUsbDevice: () => call({ method: 'requestWebUsbDevice' }),
|
|
83
84
|
tronGetAddress: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'tronGetAddress' })),
|
|
84
85
|
tronSignMessage: (connectId, deviceId, params) => call(Object.assign(Object.assign({}, params), { connectId, deviceId, method: 'tronSignMessage' })),
|
|
@@ -10338,6 +10339,10 @@ const LoggerMap = {
|
|
|
10338
10339
|
};
|
|
10339
10340
|
const getLogger = (key) => LoggerMap[key];
|
|
10340
10341
|
|
|
10342
|
+
const wait = (ms) => new Promise(resolve => {
|
|
10343
|
+
setTimeout(resolve, ms);
|
|
10344
|
+
});
|
|
10345
|
+
|
|
10341
10346
|
const getReleaseStatus = (releases, currentVersion) => {
|
|
10342
10347
|
const newVersions = releases.filter(r => semver__default["default"].gt(r.version.join('.'), currentVersion));
|
|
10343
10348
|
if (newVersions.length === 0) {
|
|
@@ -10517,6 +10522,7 @@ const UI_REQUEST$1 = {
|
|
|
10517
10522
|
LOCATION_PERMISSION: 'ui-location_permission',
|
|
10518
10523
|
LOCATION_SERVICE_PERMISSION: 'ui-location_service_permission',
|
|
10519
10524
|
FIRMWARE_PROGRESS: 'ui-firmware-progress',
|
|
10525
|
+
FIRMWARE_TIP: 'ui-firmware-tip',
|
|
10520
10526
|
NOT_IN_BOOTLOADER: 'ui-device_not_in_bootloader_mode',
|
|
10521
10527
|
};
|
|
10522
10528
|
const createUiMessage = (type, payload) => ({
|
|
@@ -11067,6 +11073,7 @@ const UI_REQUEST = {
|
|
|
11067
11073
|
FIRMWARE_NOT_COMPATIBLE: 'ui-device_firmware_not_compatible',
|
|
11068
11074
|
FIRMWARE_NOT_INSTALLED: 'ui-device_firmware_not_installed',
|
|
11069
11075
|
NOT_USE_ONEKEY_DEVICE: 'ui-device_please_use_onekey_device',
|
|
11076
|
+
FIRMWARE_TIP: 'ui-firmware-tip',
|
|
11070
11077
|
};
|
|
11071
11078
|
|
|
11072
11079
|
const pkg = require('../package.json');
|
|
@@ -12194,8 +12201,7 @@ const getBinary = ({ features, updateType, version }) => __awaiter(void 0, void
|
|
|
12194
12201
|
if (!releaseInfo) {
|
|
12195
12202
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'no firmware found for this device');
|
|
12196
12203
|
}
|
|
12197
|
-
if (version &&
|
|
12198
|
-
!semver__default["default"].eq(releaseInfo.version, version)) {
|
|
12204
|
+
if (version && !semver__default["default"].eq(releaseInfo.version.join('.'), version.join('.'))) {
|
|
12199
12205
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'firmware version mismatch');
|
|
12200
12206
|
}
|
|
12201
12207
|
const url = updateType === 'ble' ? releaseInfo.webUpdate : releaseInfo.url;
|
|
@@ -12228,12 +12234,22 @@ const postProgressMessage = (device, progress, postMessage) => {
|
|
|
12228
12234
|
progress,
|
|
12229
12235
|
}));
|
|
12230
12236
|
};
|
|
12237
|
+
const postProgressTip = (device, message, postMessage) => {
|
|
12238
|
+
postMessage(createUiMessage(UI_REQUEST$1.FIRMWARE_TIP, {
|
|
12239
|
+
device: device.toMessageObject(),
|
|
12240
|
+
data: {
|
|
12241
|
+
message,
|
|
12242
|
+
},
|
|
12243
|
+
}));
|
|
12244
|
+
};
|
|
12231
12245
|
const uploadFirmware = (updateType, typedCall, postMessage, device, { payload }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12232
12246
|
var _a, _b;
|
|
12233
12247
|
if (((_a = device.features) === null || _a === void 0 ? void 0 : _a.major_version) === 1) {
|
|
12234
12248
|
postConfirmationMessage(device);
|
|
12249
|
+
postProgressTip(device, 'ConfirmOnDevice', postMessage);
|
|
12235
12250
|
const eraseCommand = updateType === 'firmware' ? 'FirmwareErase' : 'FirmwareErase_ex';
|
|
12236
12251
|
yield typedCall(eraseCommand, 'Success', {});
|
|
12252
|
+
postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
|
|
12237
12253
|
postProgressMessage(device, 0, postMessage);
|
|
12238
12254
|
const { message } = yield typedCall('FirmwareUpload', 'Success', {
|
|
12239
12255
|
payload,
|
|
@@ -12243,8 +12259,10 @@ const uploadFirmware = (updateType, typedCall, postMessage, device, { payload })
|
|
|
12243
12259
|
}
|
|
12244
12260
|
if (((_b = device.features) === null || _b === void 0 ? void 0 : _b.major_version) === 2) {
|
|
12245
12261
|
postConfirmationMessage(device);
|
|
12262
|
+
postProgressTip(device, 'ConfirmOnDevice', postMessage);
|
|
12246
12263
|
const length = payload.byteLength;
|
|
12247
12264
|
let response = yield typedCall('FirmwareErase', ['FirmwareRequest', 'Success'], { length });
|
|
12265
|
+
postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
|
|
12248
12266
|
while (response.type !== 'Success') {
|
|
12249
12267
|
const start = response.message.offset;
|
|
12250
12268
|
const end = response.message.offset + response.message.length;
|
|
@@ -12262,7 +12280,7 @@ const uploadFirmware = (updateType, typedCall, postMessage, device, { payload })
|
|
|
12262
12280
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'uploadFirmware: unknown major_version');
|
|
12263
12281
|
});
|
|
12264
12282
|
|
|
12265
|
-
class FirmwareUpdate extends BaseMethod {
|
|
12283
|
+
class FirmwareUpdate$1 extends BaseMethod {
|
|
12266
12284
|
init() {
|
|
12267
12285
|
this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.INITIALIZE];
|
|
12268
12286
|
this.requireDeviceMode = [UI_REQUEST.BOOTLOADER];
|
|
@@ -12312,6 +12330,118 @@ class FirmwareUpdate extends BaseMethod {
|
|
|
12312
12330
|
}
|
|
12313
12331
|
}
|
|
12314
12332
|
|
|
12333
|
+
class FirmwareUpdate extends BaseMethod {
|
|
12334
|
+
constructor() {
|
|
12335
|
+
super(...arguments);
|
|
12336
|
+
this.checkPromise = null;
|
|
12337
|
+
this.postTipMessage = (message) => {
|
|
12338
|
+
this.postMessage(createUiMessage(UI_REQUEST.FIRMWARE_TIP, {
|
|
12339
|
+
device: this.device.toMessageObject(),
|
|
12340
|
+
data: {
|
|
12341
|
+
message,
|
|
12342
|
+
},
|
|
12343
|
+
}));
|
|
12344
|
+
};
|
|
12345
|
+
}
|
|
12346
|
+
init() {
|
|
12347
|
+
this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.INITIALIZE];
|
|
12348
|
+
this.requireDeviceMode = [];
|
|
12349
|
+
this.useDevicePassphraseState = false;
|
|
12350
|
+
const { payload } = this;
|
|
12351
|
+
validateParams(payload, [
|
|
12352
|
+
{ name: 'version', type: 'array' },
|
|
12353
|
+
{ name: 'binary', type: 'buffer' },
|
|
12354
|
+
]);
|
|
12355
|
+
if (!payload.updateType) {
|
|
12356
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.CallMethodInvalidParameter, 'updateType is required');
|
|
12357
|
+
}
|
|
12358
|
+
this.params = { updateType: payload.updateType };
|
|
12359
|
+
if ('version' in payload) {
|
|
12360
|
+
this.params = Object.assign(Object.assign({}, this.params), { version: payload.version });
|
|
12361
|
+
}
|
|
12362
|
+
if ('binary' in payload) {
|
|
12363
|
+
this.params = Object.assign(Object.assign({}, this.params), { binary: payload.binary });
|
|
12364
|
+
}
|
|
12365
|
+
}
|
|
12366
|
+
checkDeviceToBootloader() {
|
|
12367
|
+
this.checkPromise = hdShared.createDeferred();
|
|
12368
|
+
const intervalTimer = setInterval(() => __awaiter(this, void 0, void 0, function* () {
|
|
12369
|
+
var _a, _b, _c, _d;
|
|
12370
|
+
const deviceDiff = yield ((_a = this.device.deviceConnector) === null || _a === void 0 ? void 0 : _a.enumerate());
|
|
12371
|
+
const devicesDescriptor = (_b = deviceDiff === null || deviceDiff === void 0 ? void 0 : deviceDiff.descriptors) !== null && _b !== void 0 ? _b : [];
|
|
12372
|
+
const { deviceList } = yield DevicePool.getDevices(devicesDescriptor, this.connectId);
|
|
12373
|
+
console.log('device list: ', deviceList);
|
|
12374
|
+
if (deviceList.length === 1 && ((_c = deviceList[0].features) === null || _c === void 0 ? void 0 : _c.bootloader_mode)) {
|
|
12375
|
+
this.device.updateFromCache(deviceList[0]);
|
|
12376
|
+
this.device.commands.disposed = false;
|
|
12377
|
+
clearInterval(intervalTimer);
|
|
12378
|
+
(_d = this.checkPromise) === null || _d === void 0 ? void 0 : _d.resolve(true);
|
|
12379
|
+
}
|
|
12380
|
+
}), 2000);
|
|
12381
|
+
setTimeout(() => {
|
|
12382
|
+
if (this.checkPromise) {
|
|
12383
|
+
clearInterval(intervalTimer);
|
|
12384
|
+
this.checkPromise.reject(new Error());
|
|
12385
|
+
}
|
|
12386
|
+
}, 30000);
|
|
12387
|
+
}
|
|
12388
|
+
run() {
|
|
12389
|
+
var _a, _b;
|
|
12390
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
12391
|
+
const { device, params } = this;
|
|
12392
|
+
const { features, commands } = device;
|
|
12393
|
+
if (!(features === null || features === void 0 ? void 0 : features.bootloader_mode)) {
|
|
12394
|
+
const uuid = getDeviceUUID(features);
|
|
12395
|
+
const deviceType = getDeviceType(features);
|
|
12396
|
+
if (deviceType === 'mini') {
|
|
12397
|
+
return Promise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceUnexpectedBootloaderMode));
|
|
12398
|
+
}
|
|
12399
|
+
try {
|
|
12400
|
+
this.postTipMessage('AutoRebootToBootloader');
|
|
12401
|
+
yield commands.typedCall('BixinReboot', 'Success');
|
|
12402
|
+
this.postTipMessage('GoToBootloaderSuccess');
|
|
12403
|
+
this.checkDeviceToBootloader();
|
|
12404
|
+
if (deviceType === 'classic') {
|
|
12405
|
+
DevicePool.clearDeviceCache(uuid);
|
|
12406
|
+
}
|
|
12407
|
+
delete DevicePool.devicesCache[''];
|
|
12408
|
+
yield ((_a = this.checkPromise) === null || _a === void 0 ? void 0 : _a.promise);
|
|
12409
|
+
this.checkPromise = null;
|
|
12410
|
+
yield wait(1500);
|
|
12411
|
+
}
|
|
12412
|
+
catch (e) {
|
|
12413
|
+
console.log('auto go to bootloader mode failed: ', e);
|
|
12414
|
+
return Promise.reject(hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'go to bootloader mode failed'));
|
|
12415
|
+
}
|
|
12416
|
+
}
|
|
12417
|
+
let binary;
|
|
12418
|
+
try {
|
|
12419
|
+
if (params.binary) {
|
|
12420
|
+
binary = this.params.binary;
|
|
12421
|
+
}
|
|
12422
|
+
else {
|
|
12423
|
+
if (!device.features) {
|
|
12424
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.RuntimeError, 'no features found for this device');
|
|
12425
|
+
}
|
|
12426
|
+
this.postTipMessage('DownloadFirmware');
|
|
12427
|
+
const firmware = yield getBinary({
|
|
12428
|
+
features: device.features,
|
|
12429
|
+
version: params.version,
|
|
12430
|
+
updateType: params.updateType,
|
|
12431
|
+
});
|
|
12432
|
+
binary = firmware.binary;
|
|
12433
|
+
this.postTipMessage('DownloadFirmwareSuccess');
|
|
12434
|
+
}
|
|
12435
|
+
}
|
|
12436
|
+
catch (err) {
|
|
12437
|
+
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.FirmwareUpdateDownloadFailed, (_b = err.message) !== null && _b !== void 0 ? _b : err);
|
|
12438
|
+
}
|
|
12439
|
+
yield this.device.acquire();
|
|
12440
|
+
return uploadFirmware(params.updateType, this.device.getCommands().typedCall.bind(this.device.getCommands()), this.postMessage, device, { payload: binary });
|
|
12441
|
+
});
|
|
12442
|
+
}
|
|
12443
|
+
}
|
|
12444
|
+
|
|
12315
12445
|
const Log$2 = getLogger(exports.LoggerNames.Method);
|
|
12316
12446
|
class RequestWebUsbDevice extends BaseMethod {
|
|
12317
12447
|
init() {
|
|
@@ -15004,7 +15134,8 @@ var ApiMethods = /*#__PURE__*/Object.freeze({
|
|
|
15004
15134
|
deviceSupportFeatures: DeviceSupportFeatures,
|
|
15005
15135
|
deviceVerify: DeviceVerify,
|
|
15006
15136
|
deviceWipe: DeviceWipe,
|
|
15007
|
-
firmwareUpdate: FirmwareUpdate,
|
|
15137
|
+
firmwareUpdate: FirmwareUpdate$1,
|
|
15138
|
+
firmwareUpdateV2: FirmwareUpdate,
|
|
15008
15139
|
requestWebUsbDevice: RequestWebUsbDevice,
|
|
15009
15140
|
batchGetPublicKey: BatchGetPublicKey,
|
|
15010
15141
|
cipherKeyValue: CipherKeyValue,
|
|
@@ -15384,7 +15515,9 @@ function initDevice(method) {
|
|
|
15384
15515
|
[device] = allDevices;
|
|
15385
15516
|
}
|
|
15386
15517
|
else if (allDevices.length > 1) {
|
|
15387
|
-
throw hdShared.ERRORS.TypedError(
|
|
15518
|
+
throw hdShared.ERRORS.TypedError(method.name === 'firmwareUpdateV2'
|
|
15519
|
+
? hdShared.HardwareErrorCode.FirmwareUpdateLimitOneDevice
|
|
15520
|
+
: hdShared.HardwareErrorCode.SelectDevice);
|
|
15388
15521
|
}
|
|
15389
15522
|
if (!device) {
|
|
15390
15523
|
throw hdShared.ERRORS.TypedError(hdShared.HardwareErrorCode.DeviceNotFound);
|
|
@@ -15477,6 +15610,7 @@ const ensureConnected = (method, pollingId) => __awaiter(void 0, void 0, void 0,
|
|
|
15477
15610
|
hdShared.HardwareErrorCode.BleCharacteristicNotifyError,
|
|
15478
15611
|
hdShared.HardwareErrorCode.BleWriteCharacteristicError,
|
|
15479
15612
|
hdShared.HardwareErrorCode.BleAlreadyConnected,
|
|
15613
|
+
hdShared.HardwareErrorCode.FirmwareUpdateLimitOneDevice,
|
|
15480
15614
|
].includes(error.errorCode)) {
|
|
15481
15615
|
reject(error);
|
|
15482
15616
|
return;
|
|
@@ -15747,3 +15881,4 @@ exports.safeThrowError = safeThrowError;
|
|
|
15747
15881
|
exports.setLoggerPostMessage = setLoggerPostMessage;
|
|
15748
15882
|
exports.versionCompare = versionCompare;
|
|
15749
15883
|
exports.versionSplit = versionSplit;
|
|
15884
|
+
exports.wait = wait;
|
package/dist/inject.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,+DAOhB,SAAS,KAAG,
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,MAAM,+DAOhB,SAAS,KAAG,OAmKd,CAAC"}
|
|
@@ -89,6 +89,7 @@ export declare type CoreApi = {
|
|
|
89
89
|
checkFirmwareRelease: typeof checkFirmwareRelease;
|
|
90
90
|
checkBLEFirmwareRelease: typeof checkBLEFirmwareRelease;
|
|
91
91
|
firmwareUpdate: typeof firmwareUpdate;
|
|
92
|
+
firmwareUpdateV2: typeof firmwareUpdate;
|
|
92
93
|
batchGetPublicKey: typeof batchGetPublicKey;
|
|
93
94
|
cipherKeyValue: typeof cipherKeyValue;
|
|
94
95
|
evmGetAddress: typeof evmGetAddress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/api/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/api/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ export * from './patch';
|
|
|
4
4
|
export { getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getDeviceLabel, } from './deviceFeaturesUtils';
|
|
5
5
|
export { getHDPath, getScriptType } from '../api/helpers/pathUtils';
|
|
6
6
|
export { getLogger, enableLog, LoggerNames, getLog, setLoggerPostMessage } from './logger';
|
|
7
|
+
export declare const wait: (ms: number) => Promise<unknown>;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,uBAAuB,EACvB,aAAa,EACb,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE3F,eAAO,MAAM,IAAI,OAAQ,MAAM,qBAG3B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.54",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@onekeyfe/hd-shared": "^0.1.
|
|
28
|
-
"@onekeyfe/hd-transport": "^0.1.
|
|
27
|
+
"@onekeyfe/hd-shared": "^0.1.54",
|
|
28
|
+
"@onekeyfe/hd-transport": "^0.1.54",
|
|
29
29
|
"axios": "^0.27.2",
|
|
30
30
|
"bignumber.js": "^9.0.2",
|
|
31
31
|
"js-sha256": "^0.9.0",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"@types/parse-uri": "^1.0.0",
|
|
38
38
|
"@types/semver": "^7.3.9"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "d9c6d2f5fce55505f2bb067eb94ced0142251308"
|
|
41
41
|
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { createDeferred, Deferred, ERRORS, HardwareErrorCode } from '@onekeyfe/hd-shared';
|
|
2
|
+
import { UI_REQUEST } from '../constants/ui-request';
|
|
3
|
+
import { BaseMethod } from './BaseMethod';
|
|
4
|
+
import { validateParams } from './helpers/paramsValidator';
|
|
5
|
+
import { DevicePool } from '../device/DevicePool';
|
|
6
|
+
import { getBinary } from './firmware/getBinary';
|
|
7
|
+
import { uploadFirmware } from './firmware/uploadFirmware';
|
|
8
|
+
import { getDeviceType, getDeviceUUID, wait } from '../utils';
|
|
9
|
+
import { createUiMessage } from '../events/ui-request';
|
|
10
|
+
import type { KnownDevice, Features } from '../types';
|
|
11
|
+
|
|
12
|
+
type Params = {
|
|
13
|
+
binary?: ArrayBuffer;
|
|
14
|
+
version?: number[];
|
|
15
|
+
updateType: 'firmware' | 'ble';
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export default class FirmwareUpdate extends BaseMethod<Params> {
|
|
19
|
+
checkPromise: Deferred<any> | null = null;
|
|
20
|
+
|
|
21
|
+
init() {
|
|
22
|
+
this.allowDeviceMode = [UI_REQUEST.BOOTLOADER, UI_REQUEST.INITIALIZE];
|
|
23
|
+
this.requireDeviceMode = [];
|
|
24
|
+
this.useDevicePassphraseState = false;
|
|
25
|
+
|
|
26
|
+
const { payload } = this;
|
|
27
|
+
|
|
28
|
+
validateParams(payload, [
|
|
29
|
+
{ name: 'version', type: 'array' },
|
|
30
|
+
{ name: 'binary', type: 'buffer' },
|
|
31
|
+
]);
|
|
32
|
+
|
|
33
|
+
if (!payload.updateType) {
|
|
34
|
+
throw ERRORS.TypedError(
|
|
35
|
+
HardwareErrorCode.CallMethodInvalidParameter,
|
|
36
|
+
'updateType is required'
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
this.params = { updateType: payload.updateType };
|
|
41
|
+
|
|
42
|
+
if ('version' in payload) {
|
|
43
|
+
this.params = {
|
|
44
|
+
...this.params,
|
|
45
|
+
version: payload.version,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if ('binary' in payload) {
|
|
50
|
+
this.params = {
|
|
51
|
+
...this.params,
|
|
52
|
+
binary: payload.binary,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
postTipMessage = (message: string) => {
|
|
58
|
+
this.postMessage(
|
|
59
|
+
createUiMessage(UI_REQUEST.FIRMWARE_TIP, {
|
|
60
|
+
device: this.device.toMessageObject() as KnownDevice,
|
|
61
|
+
data: {
|
|
62
|
+
message,
|
|
63
|
+
},
|
|
64
|
+
})
|
|
65
|
+
);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
checkDeviceToBootloader() {
|
|
69
|
+
this.checkPromise = createDeferred();
|
|
70
|
+
|
|
71
|
+
// check device goto bootloader mode
|
|
72
|
+
const intervalTimer: ReturnType<typeof setInterval> | undefined = setInterval(async () => {
|
|
73
|
+
const deviceDiff = await this.device.deviceConnector?.enumerate();
|
|
74
|
+
const devicesDescriptor = deviceDiff?.descriptors ?? [];
|
|
75
|
+
const { deviceList } = await DevicePool.getDevices(devicesDescriptor, this.connectId);
|
|
76
|
+
console.log('device list: ', deviceList);
|
|
77
|
+
if (deviceList.length === 1 && deviceList[0].features?.bootloader_mode) {
|
|
78
|
+
// should update current device from cache
|
|
79
|
+
// because device was reboot and had some new requests
|
|
80
|
+
this.device.updateFromCache(deviceList[0]);
|
|
81
|
+
this.device.commands.disposed = false;
|
|
82
|
+
|
|
83
|
+
clearInterval(intervalTimer);
|
|
84
|
+
this.checkPromise?.resolve(true);
|
|
85
|
+
}
|
|
86
|
+
}, 2000);
|
|
87
|
+
|
|
88
|
+
// check goto bootloader mode timeout and throw error
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
if (this.checkPromise) {
|
|
91
|
+
clearInterval(intervalTimer);
|
|
92
|
+
this.checkPromise.reject(new Error());
|
|
93
|
+
}
|
|
94
|
+
}, 30000);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
async run() {
|
|
98
|
+
const { device, params } = this;
|
|
99
|
+
const { features, commands } = device;
|
|
100
|
+
if (!features?.bootloader_mode) {
|
|
101
|
+
const uuid = getDeviceUUID(features as Features);
|
|
102
|
+
const deviceType = getDeviceType(features);
|
|
103
|
+
// mini should go to bootloader mode manually
|
|
104
|
+
if (deviceType === 'mini') {
|
|
105
|
+
return Promise.reject(ERRORS.TypedError(HardwareErrorCode.DeviceUnexpectedBootloaderMode));
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// auto go to bootloader mode
|
|
109
|
+
try {
|
|
110
|
+
this.postTipMessage('AutoRebootToBootloader');
|
|
111
|
+
await commands.typedCall('BixinReboot', 'Success');
|
|
112
|
+
this.postTipMessage('GoToBootloaderSuccess');
|
|
113
|
+
this.checkDeviceToBootloader();
|
|
114
|
+
|
|
115
|
+
// force clean classic device cache so that the device can initialize again
|
|
116
|
+
if (deviceType === 'classic') {
|
|
117
|
+
DevicePool.clearDeviceCache(uuid);
|
|
118
|
+
}
|
|
119
|
+
delete DevicePool.devicesCache[''];
|
|
120
|
+
await this.checkPromise?.promise;
|
|
121
|
+
this.checkPromise = null;
|
|
122
|
+
await wait(1500);
|
|
123
|
+
} catch (e) {
|
|
124
|
+
console.log('auto go to bootloader mode failed: ', e);
|
|
125
|
+
return Promise.reject(
|
|
126
|
+
ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'go to bootloader mode failed')
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
let binary;
|
|
132
|
+
|
|
133
|
+
try {
|
|
134
|
+
if (params.binary) {
|
|
135
|
+
binary = this.params.binary;
|
|
136
|
+
} else {
|
|
137
|
+
if (!device.features) {
|
|
138
|
+
throw ERRORS.TypedError(
|
|
139
|
+
HardwareErrorCode.RuntimeError,
|
|
140
|
+
'no features found for this device'
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
this.postTipMessage('DownloadFirmware');
|
|
144
|
+
const firmware = await getBinary({
|
|
145
|
+
features: device.features,
|
|
146
|
+
version: params.version,
|
|
147
|
+
updateType: params.updateType,
|
|
148
|
+
});
|
|
149
|
+
binary = firmware.binary;
|
|
150
|
+
this.postTipMessage('DownloadFirmwareSuccess');
|
|
151
|
+
}
|
|
152
|
+
} catch (err) {
|
|
153
|
+
throw ERRORS.TypedError(HardwareErrorCode.FirmwareUpdateDownloadFailed, err.message ?? err);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
await this.device.acquire();
|
|
157
|
+
|
|
158
|
+
return uploadFirmware(
|
|
159
|
+
params.updateType,
|
|
160
|
+
this.device.getCommands().typedCall.bind(this.device.getCommands()),
|
|
161
|
+
this.postMessage,
|
|
162
|
+
device,
|
|
163
|
+
{ payload: binary }
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
@@ -20,10 +20,7 @@ export const getBinary = async ({ features, updateType, version }: GetBinaryProp
|
|
|
20
20
|
throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'no firmware found for this device');
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
if (
|
|
24
|
-
version &&
|
|
25
|
-
!semver.eq(releaseInfo.version as unknown as semver.SemVer, version as unknown as semver.SemVer)
|
|
26
|
-
) {
|
|
23
|
+
if (version && !semver.eq(releaseInfo.version.join('.'), version.join('.'))) {
|
|
27
24
|
throw ERRORS.TypedError(HardwareErrorCode.RuntimeError, 'firmware version mismatch');
|
|
28
25
|
}
|
|
29
26
|
|
|
@@ -25,6 +25,21 @@ const postProgressMessage = (
|
|
|
25
25
|
);
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
+
const postProgressTip = (
|
|
29
|
+
device: Device,
|
|
30
|
+
message: string,
|
|
31
|
+
postMessage: (message: CoreMessage) => void
|
|
32
|
+
) => {
|
|
33
|
+
postMessage(
|
|
34
|
+
createUiMessage(UI_REQUEST.FIRMWARE_TIP, {
|
|
35
|
+
device: device.toMessageObject() as KnownDevice,
|
|
36
|
+
data: {
|
|
37
|
+
message,
|
|
38
|
+
},
|
|
39
|
+
})
|
|
40
|
+
);
|
|
41
|
+
};
|
|
42
|
+
|
|
28
43
|
export const uploadFirmware = async (
|
|
29
44
|
updateType: 'firmware' | 'ble',
|
|
30
45
|
typedCall: TypedCall,
|
|
@@ -34,8 +49,10 @@ export const uploadFirmware = async (
|
|
|
34
49
|
) => {
|
|
35
50
|
if (device.features?.major_version === 1) {
|
|
36
51
|
postConfirmationMessage(device);
|
|
52
|
+
postProgressTip(device, 'ConfirmOnDevice', postMessage);
|
|
37
53
|
const eraseCommand = updateType === 'firmware' ? 'FirmwareErase' : 'FirmwareErase_ex';
|
|
38
54
|
await typedCall(eraseCommand as unknown as any, 'Success', {});
|
|
55
|
+
postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
|
|
39
56
|
postProgressMessage(device, 0, postMessage);
|
|
40
57
|
const { message } = await typedCall('FirmwareUpload', 'Success', {
|
|
41
58
|
payload,
|
|
@@ -46,9 +63,11 @@ export const uploadFirmware = async (
|
|
|
46
63
|
|
|
47
64
|
if (device.features?.major_version === 2) {
|
|
48
65
|
postConfirmationMessage(device);
|
|
66
|
+
postProgressTip(device, 'ConfirmOnDevice', postMessage);
|
|
49
67
|
const length = payload.byteLength;
|
|
50
68
|
|
|
51
69
|
let response = await typedCall('FirmwareErase', ['FirmwareRequest', 'Success'], { length });
|
|
70
|
+
postProgressTip(device, 'FirmwareEraseSuccess', postMessage);
|
|
52
71
|
while (response.type !== 'Success') {
|
|
53
72
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
54
73
|
const start = response.message.offset!;
|
package/src/api/index.ts
CHANGED
|
@@ -18,6 +18,7 @@ export { default as deviceSupportFeatures } from './device/DeviceSupportFeatures
|
|
|
18
18
|
export { default as deviceVerify } from './device/DeviceVerify';
|
|
19
19
|
export { default as deviceWipe } from './device/DeviceWipe';
|
|
20
20
|
export { default as firmwareUpdate } from './FirmwareUpdate';
|
|
21
|
+
export { default as firmwareUpdateV2 } from './FirmwareUpdateV2';
|
|
21
22
|
export { default as requestWebUsbDevice } from './RequestWebUsbDevice';
|
|
22
23
|
|
|
23
24
|
export { default as batchGetPublicKey } from './BatchGetPublicKey';
|
|
@@ -9,4 +9,6 @@ export const UI_REQUEST = {
|
|
|
9
9
|
FIRMWARE_NOT_COMPATIBLE: 'ui-device_firmware_not_compatible',
|
|
10
10
|
FIRMWARE_NOT_INSTALLED: 'ui-device_firmware_not_installed',
|
|
11
11
|
NOT_USE_ONEKEY_DEVICE: 'ui-device_please_use_onekey_device',
|
|
12
|
+
|
|
13
|
+
FIRMWARE_TIP: 'ui-firmware-tip',
|
|
12
14
|
} as const;
|
package/src/core/index.ts
CHANGED
|
@@ -345,7 +345,11 @@ function initDevice(method: BaseMethod) {
|
|
|
345
345
|
} else if (allDevices.length === 1) {
|
|
346
346
|
[device] = allDevices;
|
|
347
347
|
} else if (allDevices.length > 1) {
|
|
348
|
-
throw ERRORS.TypedError(
|
|
348
|
+
throw ERRORS.TypedError(
|
|
349
|
+
method.name === 'firmwareUpdateV2'
|
|
350
|
+
? HardwareErrorCode.FirmwareUpdateLimitOneDevice
|
|
351
|
+
: HardwareErrorCode.SelectDevice
|
|
352
|
+
);
|
|
349
353
|
}
|
|
350
354
|
|
|
351
355
|
if (!device) {
|
|
@@ -463,6 +467,7 @@ const ensureConnected = async (method: BaseMethod, pollingId: number) => {
|
|
|
463
467
|
HardwareErrorCode.BleCharacteristicNotifyError,
|
|
464
468
|
HardwareErrorCode.BleWriteCharacteristicError,
|
|
465
469
|
HardwareErrorCode.BleAlreadyConnected,
|
|
470
|
+
HardwareErrorCode.FirmwareUpdateLimitOneDevice,
|
|
466
471
|
].includes(error.errorCode)
|
|
467
472
|
) {
|
|
468
473
|
reject(error);
|
package/src/events/ui-request.ts
CHANGED
|
@@ -19,6 +19,7 @@ export const UI_REQUEST = {
|
|
|
19
19
|
LOCATION_SERVICE_PERMISSION: 'ui-location_service_permission',
|
|
20
20
|
|
|
21
21
|
FIRMWARE_PROGRESS: 'ui-firmware-progress',
|
|
22
|
+
FIRMWARE_TIP: 'ui-firmware-tip',
|
|
22
23
|
|
|
23
24
|
NOT_IN_BOOTLOADER: 'ui-device_not_in_bootloader_mode',
|
|
24
25
|
} as const;
|
|
@@ -69,13 +70,22 @@ export interface FirmwareProgress {
|
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
72
|
|
|
73
|
+
export interface FirmwareTip {
|
|
74
|
+
type: typeof UI_REQUEST.FIRMWARE_TIP;
|
|
75
|
+
payload: {
|
|
76
|
+
device: Device;
|
|
77
|
+
data: { message: string };
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
72
81
|
export type UiEvent =
|
|
73
82
|
| UiRequestWithoutPayload
|
|
74
83
|
| UiRequestDeviceAction
|
|
75
84
|
| UiRequestButton
|
|
76
85
|
| UiRequestPassphraseOnDevice
|
|
86
|
+
| UiRequestPassphrase
|
|
77
87
|
| FirmwareProgress
|
|
78
|
-
|
|
|
88
|
+
| FirmwareTip;
|
|
79
89
|
|
|
80
90
|
export type UiEventMessage = UiEvent & { event: typeof UI_EVENT };
|
|
81
91
|
|
package/src/inject.ts
CHANGED
|
@@ -150,6 +150,8 @@ export const inject = ({
|
|
|
150
150
|
call({ ...params, connectId, deviceId, method: 'stellarSignTransaction' }),
|
|
151
151
|
|
|
152
152
|
firmwareUpdate: (connectId, params) => call({ ...params, connectId, method: 'firmwareUpdate' }),
|
|
153
|
+
firmwareUpdateV2: (connectId, params) =>
|
|
154
|
+
call({ ...params, connectId, method: 'firmwareUpdateV2' }),
|
|
153
155
|
requestWebUsbDevice: () => call({ method: 'requestWebUsbDevice' }),
|
|
154
156
|
|
|
155
157
|
tronGetAddress: (connectId, deviceId, params) =>
|
package/src/types/api/index.ts
CHANGED
|
@@ -116,6 +116,7 @@ export type CoreApi = {
|
|
|
116
116
|
checkFirmwareRelease: typeof checkFirmwareRelease;
|
|
117
117
|
checkBLEFirmwareRelease: typeof checkBLEFirmwareRelease;
|
|
118
118
|
firmwareUpdate: typeof firmwareUpdate;
|
|
119
|
+
firmwareUpdateV2: typeof firmwareUpdate;
|
|
119
120
|
|
|
120
121
|
batchGetPublicKey: typeof batchGetPublicKey;
|
|
121
122
|
cipherKeyValue: typeof cipherKeyValue;
|
package/src/utils/index.ts
CHANGED
|
@@ -11,3 +11,8 @@ export {
|
|
|
11
11
|
export { getHDPath, getScriptType } from '../api/helpers/pathUtils';
|
|
12
12
|
|
|
13
13
|
export { getLogger, enableLog, LoggerNames, getLog, setLoggerPostMessage } from './logger';
|
|
14
|
+
|
|
15
|
+
export const wait = (ms: number) =>
|
|
16
|
+
new Promise(resolve => {
|
|
17
|
+
setTimeout(resolve, ms);
|
|
18
|
+
});
|