@onekeyfe/hd-core 0.0.4 → 0.0.7
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/SearchDevices.d.ts +1 -1
- package/dist/api/SearchDevices.d.ts.map +1 -1
- package/dist/api/helpers/pathUtils.d.ts +0 -1
- package/dist/api/helpers/pathUtils.d.ts.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/events/ui-request.d.ts +3 -1
- package/dist/events/ui-request.d.ts.map +1 -1
- package/dist/index.d.ts +25 -6
- package/dist/index.js +154 -113
- package/dist/types/api/btcSignTransaction.d.ts +2 -2
- package/dist/types/api/btcSignTransaction.d.ts.map +1 -1
- package/dist/types/api/export.d.ts +1 -0
- package/dist/types/api/export.d.ts.map +1 -1
- package/dist/utils/deviceFeaturesUtils.d.ts +2 -0
- package/dist/utils/deviceFeaturesUtils.d.ts.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/api/SearchDevices.ts +2 -2
- package/src/api/btc/BTCGetPublicKey.ts +2 -2
- package/src/api/helpers/pathUtils.ts +1 -1
- package/src/core/index.ts +17 -2
- package/src/events/ui-request.ts +7 -1
- package/src/types/api/btcSignTransaction.ts +1 -2
- package/src/types/api/export.ts +8 -0
- package/src/utils/deviceFeaturesUtils.ts +18 -0
- package/src/utils/index.ts +8 -1
|
@@ -5,7 +5,7 @@ export default class SearchDevices extends BaseMethod {
|
|
|
5
5
|
init(): void;
|
|
6
6
|
run(): Promise<{
|
|
7
7
|
connectId: string;
|
|
8
|
-
deviceType:
|
|
8
|
+
deviceType: import("..").IDeviceType | null;
|
|
9
9
|
path: string;
|
|
10
10
|
session?: string | null | undefined;
|
|
11
11
|
debugSession?: string | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchDevices.d.ts","sourceRoot":"","sources":["../../src/api/SearchDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchDevices.d.ts","sourceRoot":"","sources":["../../src/api/SearchDevices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAMxD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,UAAU;IACnD,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,IAAI;IAIE,GAAG;;;;;;;;;;CA8BV"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ChangeOutputScriptType, InputScriptType } from '@onekeyfe/hd-transport/src/types/messages';
|
|
2
|
-
export declare const HD_HARDENED = 2147483648;
|
|
3
2
|
export declare const toHardened: (n: number) => number;
|
|
4
3
|
export declare const fromHardened: (n: number) => number;
|
|
5
4
|
export declare const getHDPath: (path: string) => Array<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pathUtils.d.ts","sourceRoot":"","sources":["../../../src/api/helpers/pathUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"pathUtils.d.ts","sourceRoot":"","sources":["../../../src/api/helpers/pathUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAIpG,eAAO,MAAM,UAAU,MAAO,MAAM,KAAG,MAAiC,CAAC;AACzE,eAAO,MAAM,YAAY,MAAO,MAAM,KAAG,MAAkC,CAAC;AAQ5E,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,MAAM,MAAM,CAuBpD,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,MAAM,CAAC,KAAG,OACF,CAAC;AAEpD,eAAO,MAAM,YAAY,SAAU,MAAM,MAAM,CAAC,KAAG,OACA,CAAC;AAEpD,eAAO,MAAM,YAAY,SAAU,MAAM,MAAM,CAAC,KAAG,OACA,CAAC;AAEpD,eAAO,MAAM,aAAa,SAAU,MAAM,MAAM,CAAC,KAAG,eAcnD,CAAC;AAEF,eAAO,MAAM,mBAAmB,mCAAsB,sBAmBrD,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,MAAM,CAAC,KAAG,MAWpD,CAAC;AAEF,eAAO,MAAM,YAAY,SACjB,MAAM,GAAG,MAAM,MAAM,CAAC,sCAG3B,MAAM,MAAM,CAoBd,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":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AASlC,OAAO,EACL,WAAW,EAYZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAWxD,eAAO,MAAM,OAAO,YAAmB,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AASlC,OAAO,EACL,WAAW,EAYZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,UAAU,CAAC;AAE7D,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAWxD,eAAO,MAAM,OAAO,YAAmB,WAAW,iBAgIjD,CAAC;AAoHF,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,YAAY;IACtC,aAAa,CAAC,OAAO,EAAE,WAAW;IA2BxC,OAAO;CAGR;AAED,eAAO,MAAM,QAAQ,YAGpB,CAAC;AAEF,eAAO,MAAM,aAAa,uBAGzB,CAAC;AAMF,eAAO,MAAM,IAAI,aAAoB,eAAe,aAAa,GAAG,8BAgBnE,CAAC"}
|
|
@@ -8,9 +8,11 @@ export declare const UI_REQUEST: {
|
|
|
8
8
|
readonly INVALID_PIN: "ui-invalid_pin";
|
|
9
9
|
readonly REQUEST_BUTTON: "ui-button";
|
|
10
10
|
readonly CLOSE_UI_WINDOW: "ui-close_window";
|
|
11
|
+
readonly BLUETOOTH_PERMISSION: "ui-bluetooth_permission";
|
|
12
|
+
readonly LOCATION_PERMISSION: "ui-location_permission";
|
|
11
13
|
};
|
|
12
14
|
export interface UiRequestWithoutPayload {
|
|
13
|
-
type: typeof UI_REQUEST.CLOSE_UI_WINDOW;
|
|
15
|
+
type: typeof UI_REQUEST.CLOSE_UI_WINDOW | typeof UI_REQUEST.BLUETOOTH_PERMISSION | typeof UI_REQUEST.LOCATION_PERMISSION;
|
|
14
16
|
payload?: typeof undefined;
|
|
15
17
|
}
|
|
16
18
|
export declare type UiRequestDeviceAction = {
|
|
@@ -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;;;;;;;CASb,CAAC;AAEX,MAAM,WAAW,uBAAuB;IACtC,IAAI,EACA,OAAO,UAAU,CAAC,eAAe,GACjC,OAAO,UAAU,CAAC,oBAAoB,GACtC,OAAO,UAAU,CAAC,mBAAmB,CAAC;IAC1C,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,CAAC;KACnC,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,oBAAY,OAAO,GAAG,uBAAuB,GAAG,qBAAqB,GAAG,eAAe,CAAC;AAExF,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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import EventEmitter, { EventEmitter as EventEmitter$1 } from 'events';
|
|
2
2
|
import { Messages, Transport, OneKeyDeviceInfo } from '@onekeyfe/hd-transport';
|
|
3
3
|
export { Messages as PROTO } from '@onekeyfe/hd-transport';
|
|
4
|
-
import { EthereumPublicKey, EthereumMessageSignature, Success as Success$1, Address, MultisigRedeemScriptType, InputScriptType, PublicKey, MessageSignature,
|
|
4
|
+
import { EthereumPublicKey, EthereumMessageSignature, Success as Success$1, Address, MultisigRedeemScriptType, InputScriptType, PublicKey, MessageSignature, PrevInput, TxOutputBinType, TxInput, TxOutputType, TxInputType, RecoveryDeviceType, SafetyCheckLevel, StarcoinAddress as StarcoinAddress$1, StarcoinPublicKey as StarcoinPublicKey$1, StarcoinMessageSignature, StarcoinSignedTx } from '@onekeyfe/hd-transport/src/types/messages';
|
|
5
5
|
|
|
6
6
|
interface CommonParams {
|
|
7
7
|
keepSession?: boolean;
|
|
@@ -361,6 +361,20 @@ declare type BTCSignMessageParams = {
|
|
|
361
361
|
};
|
|
362
362
|
declare function btcSignMessage(connectId: string, params: CommonParams & BTCSignMessageParams): Response<MessageSignature>;
|
|
363
363
|
|
|
364
|
+
declare type SignedTransaction = {
|
|
365
|
+
signatures: string[];
|
|
366
|
+
serializedTx: string;
|
|
367
|
+
txid?: string;
|
|
368
|
+
};
|
|
369
|
+
declare type TransactionOptions = {
|
|
370
|
+
version?: number;
|
|
371
|
+
lock_time?: number;
|
|
372
|
+
expiry?: number;
|
|
373
|
+
overwintered?: boolean;
|
|
374
|
+
version_group_id?: number;
|
|
375
|
+
timestamp?: number;
|
|
376
|
+
branch_id?: number;
|
|
377
|
+
};
|
|
364
378
|
declare type RefTransaction = {
|
|
365
379
|
hash: string;
|
|
366
380
|
version: number;
|
|
@@ -417,7 +431,7 @@ declare type BTCSignTransactionParams = {
|
|
|
417
431
|
branchId?: number;
|
|
418
432
|
timestamp?: number;
|
|
419
433
|
};
|
|
420
|
-
declare function btcSignTransaction(connectId: string, params: CommonParams & BTCSignTransactionParams): Response<
|
|
434
|
+
declare function btcSignTransaction(connectId: string, params: CommonParams & BTCSignTransactionParams): Response<SignedTransaction>;
|
|
421
435
|
|
|
422
436
|
declare type BTCVerifyMessageParams = {
|
|
423
437
|
address: string;
|
|
@@ -629,9 +643,11 @@ declare const UI_REQUEST: {
|
|
|
629
643
|
readonly INVALID_PIN: "ui-invalid_pin";
|
|
630
644
|
readonly REQUEST_BUTTON: "ui-button";
|
|
631
645
|
readonly CLOSE_UI_WINDOW: "ui-close_window";
|
|
646
|
+
readonly BLUETOOTH_PERMISSION: "ui-bluetooth_permission";
|
|
647
|
+
readonly LOCATION_PERMISSION: "ui-location_permission";
|
|
632
648
|
};
|
|
633
649
|
interface UiRequestWithoutPayload {
|
|
634
|
-
type: typeof UI_REQUEST.CLOSE_UI_WINDOW;
|
|
650
|
+
type: typeof UI_REQUEST.CLOSE_UI_WINDOW | typeof UI_REQUEST.BLUETOOTH_PERMISSION | typeof UI_REQUEST.LOCATION_PERMISSION;
|
|
635
651
|
payload?: typeof undefined;
|
|
636
652
|
}
|
|
637
653
|
declare type UiRequestDeviceAction = {
|
|
@@ -874,10 +890,13 @@ declare const getDeviceType: (features?: {
|
|
|
874
890
|
display_rotation: number | null;
|
|
875
891
|
experimental_features: boolean | null;
|
|
876
892
|
} | undefined) => IDeviceType;
|
|
893
|
+
declare const getDeviceTypeByBleName: (name?: string | undefined) => IDeviceType | null;
|
|
894
|
+
declare const getDeviceTypeByDeviceId: (deviceId?: string | undefined) => IDeviceType;
|
|
877
895
|
declare const getDeviceUUID: (features: Features) => string;
|
|
878
896
|
declare const getDeviceLabel: (features: Features) => string;
|
|
879
|
-
|
|
880
|
-
declare const
|
|
897
|
+
|
|
898
|
+
declare const getHDPath: (path: string) => Array<number>;
|
|
899
|
+
declare const getScriptType: (path: Array<number>) => InputScriptType;
|
|
881
900
|
|
|
882
901
|
declare type RunOptions = {
|
|
883
902
|
keepSession?: boolean;
|
|
@@ -982,4 +1001,4 @@ declare class DataManager {
|
|
|
982
1001
|
|
|
983
1002
|
declare const HardwareSdk: ({ init, call, dispose, eventEmitter, uiResponse, cancel, }: InjectApi) => CoreApi;
|
|
984
1003
|
|
|
985
|
-
export { AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCVerifyMessageParams, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CommonParams, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Deferred, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFlagsParams, DeviceMode, DeviceRecoveryParams, DeviceResetParams, DeviceSettingsParams, DeviceStatus, DeviceTypeMap, errors as ERRORS, EVMAccessList, EVMAddress, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, Features, FirmwareRange, FirmwareRelease, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, MethodResponseMessage, PostMessageEvent, RESPONSE_EVENT, ReleaseInfo, RemoteConfigResponse, Response, SearchDevice, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, Success, TransportReleaseStatus, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestWithoutPayload, UiResponseEvent, UiResponseMessage, UiResponsePin, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, corsValidator, create, createDeviceMessage, createErrorMessage, createIFrameMessage, createResponseMessage, createUiMessage, createUiResponse, HardwareSdk as default, enableLog,
|
|
1004
|
+
export { AccountAddress, AccountAddresses, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CommonParams, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Deferred, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFlagsParams, DeviceMode, DeviceRecoveryParams, DeviceResetParams, DeviceSettingsParams, DeviceStatus, DeviceTypeMap, errors as ERRORS, EVMAccessList, EVMAddress, EVMGetAddressParams, EVMGetPublicKeyParams, EVMPublicKey, EVMSignMessageEIP712Params, EVMSignMessageParams, EVMSignTransactionParams, EVMSignTypedDataParams, EVMSignedTx, EVMTransaction, EVMTransactionEIP1559, EVMVerifyMessageParams, EthereumSignTypedDataMessage, EthereumSignTypedDataTypeProperty, EthereumSignTypedDataTypes, Features, FirmwareRange, FirmwareRelease, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, MethodResponseMessage, PostMessageEvent, RESPONSE_EVENT, RefTransaction, ReleaseInfo, RemoteConfigResponse, Response, SearchDevice, SignedTransaction, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, Success, TransactionOptions, TransportReleaseStatus, UI_EVENT, UI_REQUEST, UI_RESPONSE, UiEvent, UiEventMessage, UiPromise, UiPromiseResponse, UiRequestButton, UiRequestDeviceAction, UiRequestWithoutPayload, UiResponseEvent, UiResponseMessage, UiResponsePin, UnavailableCapabilities, UnavailableCapability, Unsuccessful, VersionArray, corsValidator, create, createDeviceMessage, createErrorMessage, createIFrameMessage, createResponseMessage, createUiMessage, createUiResponse, HardwareSdk as default, enableLog, getDeviceLabel, getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getEnv, getHDPath, getScriptType, getTimeStamp, httpRequest, init as initCore, initLog, isValidVersionArray, isValidVersionString, normalizeVersionArray, parseConnectSettings, parseMessage, versionCompare, versionSplit };
|
package/dist/index.js
CHANGED
|
@@ -814,6 +814,26 @@ const getDeviceType = (features) => {
|
|
|
814
814
|
}
|
|
815
815
|
const serialNo = features.serial_no;
|
|
816
816
|
const miniFlag = serialNo.slice(0, 2);
|
|
817
|
+
if (miniFlag.toLowerCase() === 'mi')
|
|
818
|
+
return 'mini';
|
|
819
|
+
if (miniFlag.toLowerCase() === 'tc')
|
|
820
|
+
return 'touch';
|
|
821
|
+
return 'classic';
|
|
822
|
+
};
|
|
823
|
+
const getDeviceTypeByBleName = (name) => {
|
|
824
|
+
if (!name)
|
|
825
|
+
return 'classic';
|
|
826
|
+
if (name.startsWith('MI'))
|
|
827
|
+
return 'mini';
|
|
828
|
+
if (name.startsWith('T'))
|
|
829
|
+
return 'touch';
|
|
830
|
+
return 'classic';
|
|
831
|
+
};
|
|
832
|
+
const getDeviceTypeByDeviceId = (deviceId) => {
|
|
833
|
+
if (!deviceId) {
|
|
834
|
+
return 'classic';
|
|
835
|
+
}
|
|
836
|
+
const miniFlag = deviceId.slice(0, 2);
|
|
817
837
|
if (miniFlag.toLowerCase() === 'mi')
|
|
818
838
|
return 'mini';
|
|
819
839
|
return 'classic';
|
|
@@ -845,6 +865,109 @@ const getDeviceBLEFirmwareVersion = (features) => {
|
|
|
845
865
|
return features.ble_ver.split('.');
|
|
846
866
|
};
|
|
847
867
|
|
|
868
|
+
const HD_HARDENED = 0x80000000;
|
|
869
|
+
const toHardened = (n) => (n | HD_HARDENED) >>> 0;
|
|
870
|
+
const fromHardened = (n) => (n & ~HD_HARDENED) >>> 0;
|
|
871
|
+
const PATH_NOT_VALID = TypedError('Method_InvalidParameter', 'Not a valid path');
|
|
872
|
+
const PATH_NEGATIVE_VALUES = TypedError('Method_InvalidParameter', 'Path cannot contain negative values');
|
|
873
|
+
const getHDPath = (path) => {
|
|
874
|
+
const parts = path.toLowerCase().split('/');
|
|
875
|
+
if (parts[0] !== 'm')
|
|
876
|
+
throw PATH_NOT_VALID;
|
|
877
|
+
return parts
|
|
878
|
+
.filter((p) => p !== 'm' && p !== '')
|
|
879
|
+
.map((p) => {
|
|
880
|
+
let hardened = false;
|
|
881
|
+
if (p.substr(p.length - 1) === "'") {
|
|
882
|
+
hardened = true;
|
|
883
|
+
p = p.substr(0, p.length - 1);
|
|
884
|
+
}
|
|
885
|
+
let n = parseInt(p);
|
|
886
|
+
if (Number.isNaN(n)) {
|
|
887
|
+
throw PATH_NOT_VALID;
|
|
888
|
+
}
|
|
889
|
+
else if (n < 0) {
|
|
890
|
+
throw PATH_NEGATIVE_VALUES;
|
|
891
|
+
}
|
|
892
|
+
if (hardened) {
|
|
893
|
+
n = toHardened(n);
|
|
894
|
+
}
|
|
895
|
+
return n;
|
|
896
|
+
});
|
|
897
|
+
};
|
|
898
|
+
const isMultisigPath = (path) => Array.isArray(path) && path[0] === toHardened(48);
|
|
899
|
+
const isSegwitPath = (path) => Array.isArray(path) && path[0] === toHardened(49);
|
|
900
|
+
const getScriptType = (path) => {
|
|
901
|
+
if (!Array.isArray(path) || path.length < 1)
|
|
902
|
+
return 'SPENDADDRESS';
|
|
903
|
+
const p1 = fromHardened(path[0]);
|
|
904
|
+
switch (p1) {
|
|
905
|
+
case 48:
|
|
906
|
+
return 'SPENDMULTISIG';
|
|
907
|
+
case 49:
|
|
908
|
+
return 'SPENDP2SHWITNESS';
|
|
909
|
+
case 84:
|
|
910
|
+
return 'SPENDWITNESS';
|
|
911
|
+
default:
|
|
912
|
+
return 'SPENDADDRESS';
|
|
913
|
+
}
|
|
914
|
+
};
|
|
915
|
+
const getOutputScriptType = (path) => {
|
|
916
|
+
if (!Array.isArray(path) || path.length < 1)
|
|
917
|
+
return 'PAYTOADDRESS';
|
|
918
|
+
if (path[0] === 49) {
|
|
919
|
+
return 'PAYTOP2SHWITNESS';
|
|
920
|
+
}
|
|
921
|
+
const p = fromHardened(path[0]);
|
|
922
|
+
switch (p) {
|
|
923
|
+
case 48:
|
|
924
|
+
return 'PAYTOMULTISIG';
|
|
925
|
+
case 49:
|
|
926
|
+
return 'PAYTOP2SHWITNESS';
|
|
927
|
+
case 84:
|
|
928
|
+
return 'PAYTOWITNESS';
|
|
929
|
+
default:
|
|
930
|
+
return 'PAYTOADDRESS';
|
|
931
|
+
}
|
|
932
|
+
};
|
|
933
|
+
const serializedPath = (path) => {
|
|
934
|
+
const pathStr = path
|
|
935
|
+
.map((p) => {
|
|
936
|
+
if (p & HD_HARDENED) {
|
|
937
|
+
return `${p & ~HD_HARDENED}'`;
|
|
938
|
+
}
|
|
939
|
+
return p;
|
|
940
|
+
})
|
|
941
|
+
.join('/');
|
|
942
|
+
return `m/${pathStr}`;
|
|
943
|
+
};
|
|
944
|
+
const validatePath = (path, length = 0, base = false) => {
|
|
945
|
+
let valid;
|
|
946
|
+
if (typeof path === 'string') {
|
|
947
|
+
valid = getHDPath(path);
|
|
948
|
+
}
|
|
949
|
+
else if (Array.isArray(path)) {
|
|
950
|
+
valid = path.map((p) => {
|
|
951
|
+
const n = parseInt(p);
|
|
952
|
+
if (Number.isNaN(n)) {
|
|
953
|
+
throw PATH_NOT_VALID;
|
|
954
|
+
}
|
|
955
|
+
else if (n < 0) {
|
|
956
|
+
throw PATH_NEGATIVE_VALUES;
|
|
957
|
+
}
|
|
958
|
+
return n;
|
|
959
|
+
});
|
|
960
|
+
}
|
|
961
|
+
else {
|
|
962
|
+
valid = undefined;
|
|
963
|
+
}
|
|
964
|
+
if (!valid)
|
|
965
|
+
throw PATH_NOT_VALID;
|
|
966
|
+
if (length > 0 && valid.length < length)
|
|
967
|
+
throw PATH_NOT_VALID;
|
|
968
|
+
return base ? valid.splice(0, 3) : valid;
|
|
969
|
+
};
|
|
970
|
+
|
|
848
971
|
var nested = {
|
|
849
972
|
BinanceGetAddress: {
|
|
850
973
|
fields: {
|
|
@@ -9808,6 +9931,8 @@ const UI_REQUEST$1 = {
|
|
|
9808
9931
|
INVALID_PIN: 'ui-invalid_pin',
|
|
9809
9932
|
REQUEST_BUTTON: 'ui-button',
|
|
9810
9933
|
CLOSE_UI_WINDOW: 'ui-close_window',
|
|
9934
|
+
BLUETOOTH_PERMISSION: 'ui-bluetooth_permission',
|
|
9935
|
+
LOCATION_PERMISSION: 'ui-location_permission',
|
|
9811
9936
|
};
|
|
9812
9937
|
const createUiMessage = (type, payload) => ({
|
|
9813
9938
|
event: UI_EVENT,
|
|
@@ -10457,7 +10582,10 @@ class SearchDevices extends BaseMethod {
|
|
|
10457
10582
|
const devicesDescriptor = (_c = deviceDiff === null || deviceDiff === void 0 ? void 0 : deviceDiff.descriptors) !== null && _c !== void 0 ? _c : [];
|
|
10458
10583
|
const env = DataManager.getSettings('env');
|
|
10459
10584
|
if (env === 'react-native') {
|
|
10460
|
-
return devicesDescriptor.map(device =>
|
|
10585
|
+
return devicesDescriptor.map(device => {
|
|
10586
|
+
var _a;
|
|
10587
|
+
return (Object.assign(Object.assign({}, device), { connectId: device.id, deviceType: getDeviceTypeByBleName((_a = device.name) !== null && _a !== void 0 ? _a : '') }));
|
|
10588
|
+
});
|
|
10461
10589
|
}
|
|
10462
10590
|
const devices = [];
|
|
10463
10591
|
try {
|
|
@@ -10492,109 +10620,6 @@ class GetFeatures extends BaseMethod {
|
|
|
10492
10620
|
}
|
|
10493
10621
|
}
|
|
10494
10622
|
|
|
10495
|
-
const HD_HARDENED = 0x80000000;
|
|
10496
|
-
const toHardened = (n) => (n | HD_HARDENED) >>> 0;
|
|
10497
|
-
const fromHardened = (n) => (n & ~HD_HARDENED) >>> 0;
|
|
10498
|
-
const PATH_NOT_VALID = TypedError('Method_InvalidParameter', 'Not a valid path');
|
|
10499
|
-
const PATH_NEGATIVE_VALUES = TypedError('Method_InvalidParameter', 'Path cannot contain negative values');
|
|
10500
|
-
const getHDPath = (path) => {
|
|
10501
|
-
const parts = path.toLowerCase().split('/');
|
|
10502
|
-
if (parts[0] !== 'm')
|
|
10503
|
-
throw PATH_NOT_VALID;
|
|
10504
|
-
return parts
|
|
10505
|
-
.filter((p) => p !== 'm' && p !== '')
|
|
10506
|
-
.map((p) => {
|
|
10507
|
-
let hardened = false;
|
|
10508
|
-
if (p.substr(p.length - 1) === "'") {
|
|
10509
|
-
hardened = true;
|
|
10510
|
-
p = p.substr(0, p.length - 1);
|
|
10511
|
-
}
|
|
10512
|
-
let n = parseInt(p);
|
|
10513
|
-
if (Number.isNaN(n)) {
|
|
10514
|
-
throw PATH_NOT_VALID;
|
|
10515
|
-
}
|
|
10516
|
-
else if (n < 0) {
|
|
10517
|
-
throw PATH_NEGATIVE_VALUES;
|
|
10518
|
-
}
|
|
10519
|
-
if (hardened) {
|
|
10520
|
-
n = toHardened(n);
|
|
10521
|
-
}
|
|
10522
|
-
return n;
|
|
10523
|
-
});
|
|
10524
|
-
};
|
|
10525
|
-
const isMultisigPath = (path) => Array.isArray(path) && path[0] === toHardened(48);
|
|
10526
|
-
const isSegwitPath = (path) => Array.isArray(path) && path[0] === toHardened(49);
|
|
10527
|
-
const getScriptType = (path) => {
|
|
10528
|
-
if (!Array.isArray(path) || path.length < 1)
|
|
10529
|
-
return 'SPENDADDRESS';
|
|
10530
|
-
const p1 = fromHardened(path[0]);
|
|
10531
|
-
switch (p1) {
|
|
10532
|
-
case 48:
|
|
10533
|
-
return 'SPENDMULTISIG';
|
|
10534
|
-
case 49:
|
|
10535
|
-
return 'SPENDP2SHWITNESS';
|
|
10536
|
-
case 84:
|
|
10537
|
-
return 'SPENDWITNESS';
|
|
10538
|
-
default:
|
|
10539
|
-
return 'SPENDADDRESS';
|
|
10540
|
-
}
|
|
10541
|
-
};
|
|
10542
|
-
const getOutputScriptType = (path) => {
|
|
10543
|
-
if (!Array.isArray(path) || path.length < 1)
|
|
10544
|
-
return 'PAYTOADDRESS';
|
|
10545
|
-
if (path[0] === 49) {
|
|
10546
|
-
return 'PAYTOP2SHWITNESS';
|
|
10547
|
-
}
|
|
10548
|
-
const p = fromHardened(path[0]);
|
|
10549
|
-
switch (p) {
|
|
10550
|
-
case 48:
|
|
10551
|
-
return 'PAYTOMULTISIG';
|
|
10552
|
-
case 49:
|
|
10553
|
-
return 'PAYTOP2SHWITNESS';
|
|
10554
|
-
case 84:
|
|
10555
|
-
return 'PAYTOWITNESS';
|
|
10556
|
-
default:
|
|
10557
|
-
return 'PAYTOADDRESS';
|
|
10558
|
-
}
|
|
10559
|
-
};
|
|
10560
|
-
const serializedPath = (path) => {
|
|
10561
|
-
const pathStr = path
|
|
10562
|
-
.map((p) => {
|
|
10563
|
-
if (p & HD_HARDENED) {
|
|
10564
|
-
return `${p & ~HD_HARDENED}'`;
|
|
10565
|
-
}
|
|
10566
|
-
return p;
|
|
10567
|
-
})
|
|
10568
|
-
.join('/');
|
|
10569
|
-
return `m/${pathStr}`;
|
|
10570
|
-
};
|
|
10571
|
-
const validatePath = (path, length = 0, base = false) => {
|
|
10572
|
-
let valid;
|
|
10573
|
-
if (typeof path === 'string') {
|
|
10574
|
-
valid = getHDPath(path);
|
|
10575
|
-
}
|
|
10576
|
-
else if (Array.isArray(path)) {
|
|
10577
|
-
valid = path.map((p) => {
|
|
10578
|
-
const n = parseInt(p);
|
|
10579
|
-
if (Number.isNaN(n)) {
|
|
10580
|
-
throw PATH_NOT_VALID;
|
|
10581
|
-
}
|
|
10582
|
-
else if (n < 0) {
|
|
10583
|
-
throw PATH_NEGATIVE_VALUES;
|
|
10584
|
-
}
|
|
10585
|
-
return n;
|
|
10586
|
-
});
|
|
10587
|
-
}
|
|
10588
|
-
else {
|
|
10589
|
-
valid = undefined;
|
|
10590
|
-
}
|
|
10591
|
-
if (!valid)
|
|
10592
|
-
throw PATH_NOT_VALID;
|
|
10593
|
-
if (length > 0 && valid.length < length)
|
|
10594
|
-
throw PATH_NOT_VALID;
|
|
10595
|
-
return base ? valid.splice(0, 3) : valid;
|
|
10596
|
-
};
|
|
10597
|
-
|
|
10598
10623
|
const hasHexPrefix = (str) => str.slice(0, 2).toLowerCase() === '0x';
|
|
10599
10624
|
const stripHexPrefix = (str) => (hasHexPrefix(str) ? str.slice(2) : str);
|
|
10600
10625
|
const addHexPrefix = (str) => (hasHexPrefix(str) ? str : `0x${str}`);
|
|
@@ -10987,8 +11012,8 @@ class BTCGetPublicKey extends BaseMethod {
|
|
|
10987
11012
|
}
|
|
10988
11013
|
init() {
|
|
10989
11014
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.INITIALIZE];
|
|
10990
|
-
|
|
10991
|
-
const payload = hasBundle ? this.payload : { bundle: [this.payload] };
|
|
11015
|
+
this.hasBundle = Object.prototype.hasOwnProperty.call(this.payload, 'bundle');
|
|
11016
|
+
const payload = this.hasBundle ? this.payload : { bundle: [this.payload] };
|
|
10992
11017
|
validateParams(payload, [{ name: 'bundle', type: 'array' }]);
|
|
10993
11018
|
this.params = [];
|
|
10994
11019
|
payload.bundle.forEach((batch) => {
|
|
@@ -12325,7 +12350,7 @@ let _connector;
|
|
|
12325
12350
|
let _uiPromises = [];
|
|
12326
12351
|
let _callPromise;
|
|
12327
12352
|
const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
12328
|
-
var _a;
|
|
12353
|
+
var _a, _b;
|
|
12329
12354
|
if (!message.id || !message.payload || message.type !== IFRAME.CALL) {
|
|
12330
12355
|
return Promise.reject(TypedError('Method_InvalidParameter', 'onCall: message.id or message.payload is missing'));
|
|
12331
12356
|
}
|
|
@@ -12345,7 +12370,10 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
12345
12370
|
return createResponseMessage(method.responseID, true, response);
|
|
12346
12371
|
}
|
|
12347
12372
|
catch (error) {
|
|
12348
|
-
return createResponseMessage(method.responseID, false,
|
|
12373
|
+
return createResponseMessage(method.responseID, false, {
|
|
12374
|
+
code: error.code,
|
|
12375
|
+
error: (_a = error.message) !== null && _a !== void 0 ? _a : error,
|
|
12376
|
+
});
|
|
12349
12377
|
}
|
|
12350
12378
|
}
|
|
12351
12379
|
try {
|
|
@@ -12368,7 +12396,7 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
12368
12396
|
return Promise.reject(error);
|
|
12369
12397
|
}
|
|
12370
12398
|
Log.debug('Call API - setDevice: ', device);
|
|
12371
|
-
(
|
|
12399
|
+
(_b = method.setDevice) === null || _b === void 0 ? void 0 : _b.call(method, device);
|
|
12372
12400
|
device.on(DEVICE.PIN, onDevicePinHandler);
|
|
12373
12401
|
device.on(DEVICE.BUTTON, (d, code) => {
|
|
12374
12402
|
onDeviceButtonHandler(d, code);
|
|
@@ -12397,7 +12425,13 @@ const callAPI = (message) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
12397
12425
|
Log.debug('Call API - Device Run: ', device);
|
|
12398
12426
|
const deviceRun = () => device.run(inner);
|
|
12399
12427
|
_callPromise = create(deviceRun);
|
|
12400
|
-
|
|
12428
|
+
try {
|
|
12429
|
+
return yield _callPromise.promise;
|
|
12430
|
+
}
|
|
12431
|
+
catch (e) {
|
|
12432
|
+
console.log('Device Run Error: ', e);
|
|
12433
|
+
return createResponseMessage(method.responseID, false, e.message);
|
|
12434
|
+
}
|
|
12401
12435
|
}
|
|
12402
12436
|
catch (error) {
|
|
12403
12437
|
messageResponse = createResponseMessage(method.responseID, false, error);
|
|
@@ -12506,6 +12540,11 @@ class Core extends events.exports {
|
|
|
12506
12540
|
}
|
|
12507
12541
|
break;
|
|
12508
12542
|
}
|
|
12543
|
+
case UI_REQUEST$1.BLUETOOTH_PERMISSION:
|
|
12544
|
+
case UI_REQUEST$1.LOCATION_PERMISSION: {
|
|
12545
|
+
postMessage(message);
|
|
12546
|
+
break;
|
|
12547
|
+
}
|
|
12509
12548
|
case IFRAME.CALL: {
|
|
12510
12549
|
const response = yield callAPI(message);
|
|
12511
12550
|
return response;
|
|
@@ -12534,7 +12573,7 @@ const init = (settings, Transport) => __awaiter(void 0, void 0, void 0, function
|
|
|
12534
12573
|
yield DataManager.load(settings);
|
|
12535
12574
|
initTransport(Transport);
|
|
12536
12575
|
}
|
|
12537
|
-
catch (
|
|
12576
|
+
catch (_c) {
|
|
12538
12577
|
Log.error('DataManager.load error');
|
|
12539
12578
|
}
|
|
12540
12579
|
enableLog(DataManager.getSettings('debug'));
|
|
@@ -12582,12 +12621,14 @@ exports.createUiMessage = createUiMessage;
|
|
|
12582
12621
|
exports.createUiResponse = createUiResponse;
|
|
12583
12622
|
exports["default"] = HardwareSdk;
|
|
12584
12623
|
exports.enableLog = enableLog;
|
|
12585
|
-
exports.getDeviceBLEFirmwareVersion = getDeviceBLEFirmwareVersion;
|
|
12586
|
-
exports.getDeviceFirmwareVersion = getDeviceFirmwareVersion;
|
|
12587
12624
|
exports.getDeviceLabel = getDeviceLabel;
|
|
12588
12625
|
exports.getDeviceType = getDeviceType;
|
|
12626
|
+
exports.getDeviceTypeByBleName = getDeviceTypeByBleName;
|
|
12627
|
+
exports.getDeviceTypeByDeviceId = getDeviceTypeByDeviceId;
|
|
12589
12628
|
exports.getDeviceUUID = getDeviceUUID;
|
|
12590
12629
|
exports.getEnv = getEnv;
|
|
12630
|
+
exports.getHDPath = getHDPath;
|
|
12631
|
+
exports.getScriptType = getScriptType;
|
|
12591
12632
|
exports.getTimeStamp = getTimeStamp;
|
|
12592
12633
|
exports.httpRequest = httpRequest;
|
|
12593
12634
|
exports.initCore = init;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TxInput as OrigTxInput, PrevInput,
|
|
1
|
+
import { TxInput as OrigTxInput, PrevInput, TxOutputBinType, TxOutputType, TxInputType } from '@onekeyfe/hd-transport/src/types/messages';
|
|
2
2
|
import type { CommonParams, Response } from '../params';
|
|
3
3
|
export declare type SignedTransaction = {
|
|
4
4
|
signatures: string[];
|
|
@@ -70,5 +70,5 @@ export declare type BTCSignTransactionParams = {
|
|
|
70
70
|
branchId?: number;
|
|
71
71
|
timestamp?: number;
|
|
72
72
|
};
|
|
73
|
-
export declare function btcSignTransaction(connectId: string, params: CommonParams & BTCSignTransactionParams): Response<
|
|
73
|
+
export declare function btcSignTransaction(connectId: string, params: CommonParams & BTCSignTransactionParams): Response<SignedTransaction>;
|
|
74
74
|
//# sourceMappingURL=btcSignTransaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"btcSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/types/api/btcSignTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,WAAW,EACtB,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"btcSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/types/api/btcSignTransaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ export type { BTCAddress, BTCGetAddressParams } from './btcGetAddress';
|
|
|
2
2
|
export type { BTCPublicKey, BTCGetPublicKeyParams } from './btcGetPublicKey';
|
|
3
3
|
export type { BTCSignMessageParams } from './btcSignMessage';
|
|
4
4
|
export type { BTCVerifyMessageParams } from './btcVerifyMessage';
|
|
5
|
+
export type { RefTransaction, AccountAddress, AccountAddresses, BTCSignTransactionParams, SignedTransaction, TransactionOptions, } from './btcSignTransaction';
|
|
5
6
|
export type { DeviceChangePinParams } from './deviceChangePin';
|
|
6
7
|
export type { DeviceFlagsParams } from './deviceFlags';
|
|
7
8
|
export type { DeviceRecoveryParams } from './deviceRecovery';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/types/api/export.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/types/api/export.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EACV,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACzE,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,wBAAwB,EACxB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,YAAY,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAC5F,YAAY,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,YAAY,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -46,6 +46,8 @@ export declare const getDeviceType: (features?: {
|
|
|
46
46
|
display_rotation: number | null;
|
|
47
47
|
experimental_features: boolean | null;
|
|
48
48
|
} | undefined) => IDeviceType;
|
|
49
|
+
export declare const getDeviceTypeByBleName: (name?: string | undefined) => IDeviceType | null;
|
|
50
|
+
export declare const getDeviceTypeByDeviceId: (deviceId?: string | undefined) => IDeviceType;
|
|
49
51
|
export declare const getDeviceUUID: (features: Features) => string;
|
|
50
52
|
export declare const getDeviceLabel: (features: Features) => string;
|
|
51
53
|
export declare const getDeviceFirmwareVersion: (features: Features) => IVersionArray;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceFeaturesUtils.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAErE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA0B,
|
|
1
|
+
{"version":3,"file":"deviceFeaturesUtils.d.ts","sourceRoot":"","sources":["../../src/utils/deviceFeaturesUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAErE,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA0B,WAUnD,CAAC;AAEF,eAAO,MAAM,sBAAsB,iCAAoB,WAAW,GAAG,IAKpE,CAAC;AAEF,eAAO,MAAM,uBAAuB,qCAAwB,WAQ3D,CAAC;AAEF,eAAO,MAAM,aAAa,aAAc,QAAQ,WAM/C,CAAC;AAEF,eAAO,MAAM,cAAc,aAAc,QAAQ,WAOhD,CAAC;AAKF,eAAO,MAAM,wBAAwB,aAAc,QAAQ,kBAK1D,CAAC;AAKF,eAAO,MAAM,2BAA2B,aAAc,QAAQ,KAAG,aAAa,GAAG,IAKhF,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { initLog, enableLog } from './logger';
|
|
|
2
2
|
export * from './assets';
|
|
3
3
|
export * from './versionUtils';
|
|
4
4
|
export * from './deferred';
|
|
5
|
-
export
|
|
5
|
+
export { getDeviceType, getDeviceTypeByBleName, getDeviceTypeByDeviceId, getDeviceUUID, getDeviceLabel, } from './deviceFeaturesUtils';
|
|
6
|
+
export { getHDPath, getScriptType } from '../api/helpers/pathUtils';
|
|
6
7
|
export { initLog, enableLog };
|
|
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,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE9C,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE9C,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,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,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@onekeyfe/hd-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "OneKey",
|
|
6
6
|
"homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@onekeyfe/hd-transport": "^0.0.
|
|
28
|
+
"@onekeyfe/hd-transport": "^0.0.7",
|
|
29
29
|
"axios": "^0.27.2",
|
|
30
30
|
"bignumber.js": "^9.0.2",
|
|
31
31
|
"parse-uri": "^1.0.7",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"@types/parse-uri": "^1.0.0",
|
|
36
36
|
"@types/semver": "^7.3.9"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "7be7677368fcb50f411891f009367424ea77df33"
|
|
39
39
|
}
|
package/src/api/SearchDevices.ts
CHANGED
|
@@ -3,6 +3,7 @@ import DeviceConnector from '../device/DeviceConnector';
|
|
|
3
3
|
import TransportManager from '../data-manager/TransportManager';
|
|
4
4
|
import { Device } from '../device/Device';
|
|
5
5
|
import { DataManager } from '../data-manager';
|
|
6
|
+
import { getDeviceTypeByBleName } from '../utils';
|
|
6
7
|
|
|
7
8
|
export default class SearchDevices extends BaseMethod {
|
|
8
9
|
connector?: DeviceConnector;
|
|
@@ -26,8 +27,7 @@ export default class SearchDevices extends BaseMethod {
|
|
|
26
27
|
return devicesDescriptor.map(device => ({
|
|
27
28
|
...device,
|
|
28
29
|
connectId: device.id,
|
|
29
|
-
|
|
30
|
-
deviceType: 'classic',
|
|
30
|
+
deviceType: getDeviceTypeByBleName(device.name ?? ''),
|
|
31
31
|
}));
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -13,8 +13,8 @@ export default class BTCGetPublicKey extends BaseMethod<GetPublicKey[]> {
|
|
|
13
13
|
init() {
|
|
14
14
|
this.allowDeviceMode = [...this.allowDeviceMode, UI_REQUEST.INITIALIZE];
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
const payload = hasBundle ? this.payload : { bundle: [this.payload] };
|
|
16
|
+
this.hasBundle = Object.prototype.hasOwnProperty.call(this.payload, 'bundle');
|
|
17
|
+
const payload = this.hasBundle ? this.payload : { bundle: [this.payload] };
|
|
18
18
|
|
|
19
19
|
validateParams(payload, [{ name: 'bundle', type: 'array' }]);
|
|
20
20
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { ChangeOutputScriptType, InputScriptType } from '@onekeyfe/hd-transport/src/types/messages';
|
|
4
4
|
import { ERRORS } from '../../constants';
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
const HD_HARDENED = 0x80000000;
|
|
7
7
|
export const toHardened = (n: number): number => (n | HD_HARDENED) >>> 0;
|
|
8
8
|
export const fromHardened = (n: number): number => (n & ~HD_HARDENED) >>> 0;
|
|
9
9
|
|
package/src/core/index.ts
CHANGED
|
@@ -61,7 +61,10 @@ export const callAPI = async (message: CoreMessage) => {
|
|
|
61
61
|
const response = await method.run();
|
|
62
62
|
return createResponseMessage(method.responseID, true, response);
|
|
63
63
|
} catch (error) {
|
|
64
|
-
return createResponseMessage(method.responseID, false,
|
|
64
|
+
return createResponseMessage(method.responseID, false, {
|
|
65
|
+
code: error.code,
|
|
66
|
+
error: error.message ?? error,
|
|
67
|
+
});
|
|
65
68
|
}
|
|
66
69
|
}
|
|
67
70
|
|
|
@@ -136,7 +139,13 @@ export const callAPI = async (message: CoreMessage) => {
|
|
|
136
139
|
Log.debug('Call API - Device Run: ', device);
|
|
137
140
|
const deviceRun = () => device.run(inner);
|
|
138
141
|
_callPromise = createDeferred(deviceRun);
|
|
139
|
-
|
|
142
|
+
|
|
143
|
+
try {
|
|
144
|
+
return await _callPromise.promise;
|
|
145
|
+
} catch (e) {
|
|
146
|
+
console.log('Device Run Error: ', e);
|
|
147
|
+
return createResponseMessage(method.responseID, false, e.message);
|
|
148
|
+
}
|
|
140
149
|
} catch (error) {
|
|
141
150
|
messageResponse = createResponseMessage(method.responseID, false, error);
|
|
142
151
|
_callPromise?.reject(ERRORS.TypedError('Call_API', error));
|
|
@@ -282,6 +291,12 @@ export default class Core extends EventEmitter {
|
|
|
282
291
|
break;
|
|
283
292
|
}
|
|
284
293
|
|
|
294
|
+
case UI_REQUEST.BLUETOOTH_PERMISSION:
|
|
295
|
+
case UI_REQUEST.LOCATION_PERMISSION: {
|
|
296
|
+
postMessage(message);
|
|
297
|
+
break;
|
|
298
|
+
}
|
|
299
|
+
|
|
285
300
|
case IFRAME.CALL: {
|
|
286
301
|
const response = await callAPI(message);
|
|
287
302
|
return response;
|
package/src/events/ui-request.ts
CHANGED
|
@@ -11,10 +11,16 @@ export const UI_REQUEST = {
|
|
|
11
11
|
REQUEST_BUTTON: 'ui-button',
|
|
12
12
|
|
|
13
13
|
CLOSE_UI_WINDOW: 'ui-close_window',
|
|
14
|
+
|
|
15
|
+
BLUETOOTH_PERMISSION: 'ui-bluetooth_permission',
|
|
16
|
+
LOCATION_PERMISSION: 'ui-location_permission',
|
|
14
17
|
} as const;
|
|
15
18
|
|
|
16
19
|
export interface UiRequestWithoutPayload {
|
|
17
|
-
type:
|
|
20
|
+
type:
|
|
21
|
+
| typeof UI_REQUEST.CLOSE_UI_WINDOW
|
|
22
|
+
| typeof UI_REQUEST.BLUETOOTH_PERMISSION
|
|
23
|
+
| typeof UI_REQUEST.LOCATION_PERMISSION;
|
|
18
24
|
payload?: typeof undefined;
|
|
19
25
|
}
|
|
20
26
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TxInput as OrigTxInput,
|
|
3
3
|
PrevInput,
|
|
4
|
-
Success,
|
|
5
4
|
TxOutputBinType,
|
|
6
5
|
TxOutputType,
|
|
7
6
|
TxInputType,
|
|
@@ -95,4 +94,4 @@ export type BTCSignTransactionParams = {
|
|
|
95
94
|
export declare function btcSignTransaction(
|
|
96
95
|
connectId: string,
|
|
97
96
|
params: CommonParams & BTCSignTransactionParams
|
|
98
|
-
): Response<
|
|
97
|
+
): Response<SignedTransaction>;
|
package/src/types/api/export.ts
CHANGED
|
@@ -2,6 +2,14 @@ export type { BTCAddress, BTCGetAddressParams } from './btcGetAddress';
|
|
|
2
2
|
export type { BTCPublicKey, BTCGetPublicKeyParams } from './btcGetPublicKey';
|
|
3
3
|
export type { BTCSignMessageParams } from './btcSignMessage';
|
|
4
4
|
export type { BTCVerifyMessageParams } from './btcVerifyMessage';
|
|
5
|
+
export type {
|
|
6
|
+
RefTransaction,
|
|
7
|
+
AccountAddress,
|
|
8
|
+
AccountAddresses,
|
|
9
|
+
BTCSignTransactionParams,
|
|
10
|
+
SignedTransaction,
|
|
11
|
+
TransactionOptions,
|
|
12
|
+
} from './btcSignTransaction';
|
|
5
13
|
|
|
6
14
|
export type { DeviceChangePinParams } from './deviceChangePin';
|
|
7
15
|
export type { DeviceFlagsParams } from './deviceFlags';
|
|
@@ -8,6 +8,24 @@ export const getDeviceType = (features?: Features): IDeviceType => {
|
|
|
8
8
|
const serialNo = features.serial_no;
|
|
9
9
|
const miniFlag = serialNo.slice(0, 2);
|
|
10
10
|
if (miniFlag.toLowerCase() === 'mi') return 'mini';
|
|
11
|
+
if (miniFlag.toLowerCase() === 'tc') return 'touch';
|
|
12
|
+
return 'classic';
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const getDeviceTypeByBleName = (name?: string): IDeviceType | null => {
|
|
16
|
+
if (!name) return 'classic';
|
|
17
|
+
if (name.startsWith('MI')) return 'mini';
|
|
18
|
+
if (name.startsWith('T')) return 'touch';
|
|
19
|
+
return 'classic';
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const getDeviceTypeByDeviceId = (deviceId?: string): IDeviceType => {
|
|
23
|
+
if (!deviceId) {
|
|
24
|
+
return 'classic';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const miniFlag = deviceId.slice(0, 2);
|
|
28
|
+
if (miniFlag.toLowerCase() === 'mi') return 'mini';
|
|
11
29
|
return 'classic';
|
|
12
30
|
};
|
|
13
31
|
|
package/src/utils/index.ts
CHANGED
|
@@ -3,6 +3,13 @@ import { initLog, enableLog } from './logger';
|
|
|
3
3
|
export * from './assets';
|
|
4
4
|
export * from './versionUtils';
|
|
5
5
|
export * from './deferred';
|
|
6
|
-
export
|
|
6
|
+
export {
|
|
7
|
+
getDeviceType,
|
|
8
|
+
getDeviceTypeByBleName,
|
|
9
|
+
getDeviceTypeByDeviceId,
|
|
10
|
+
getDeviceUUID,
|
|
11
|
+
getDeviceLabel,
|
|
12
|
+
} from './deviceFeaturesUtils';
|
|
13
|
+
export { getHDPath, getScriptType } from '../api/helpers/pathUtils';
|
|
7
14
|
|
|
8
15
|
export { initLog, enableLog };
|