Socket
Socket
Sign inDemoInstall

@onekeyfe/hd-core

Package Overview
Dependencies
Maintainers
2
Versions
251
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@onekeyfe/hd-core - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

1

dist/constants/errors.d.ts

@@ -11,2 +11,3 @@ export declare const ERROR_CODES: {

Device_InitializeFailed: string;
Device_Interrupted: string;
Not_Use_Onekey_Device: string;

@@ -13,0 +14,0 @@ Runtime: string;

@@ -7,2 +7,3 @@ /// <reference types="node" />

export declare const callAPI: (message: CoreMessage) => Promise<any>;
export declare const cancel: (connectId?: string | undefined) => void;
export default class Core extends EventEmitter {

@@ -9,0 +10,0 @@ handleMessage(message: CoreMessage): Promise<any>;

3

dist/device/Device.d.ts

@@ -35,3 +35,2 @@ /// <reference types="node" />

internalState: string[];
loaded: boolean;
needReloadDevice: boolean;

@@ -51,4 +50,6 @@ keepSession: boolean;

updateDescriptor(descriptor: DeviceDescriptor): void;
updateFromCache(device: Device): void;
run(fn?: () => Promise<void>, options?: RunOptions): Promise<void>;
_runInner<T>(fn: (() => Promise<T>) | undefined, options: RunOptions): Promise<undefined>;
interruption(): void;
getMode(): "normal" | "bootloader" | "initialize" | "seedless";

@@ -55,0 +56,0 @@ getFirmwareVersion(): import("../types").IVersionArray | null;

@@ -30,2 +30,9 @@ import { IFRAME } from './iframe';

}
export interface IFrameCancelMessage {
event: typeof IFRAME.CANCEL;
type: typeof IFRAME.CANCEL;
payload: {
connectId?: string;
};
}
export declare const RESPONSE_EVENT = "RESPONSE_EVENT";

@@ -32,0 +39,0 @@ export interface MethodResponseMessage {

import { Unsuccessful } from '../types/params';
import { IFrameCallMessage } from './call';
import { IFrameCallMessage, IFrameCancelMessage } from './call';
import { DeviceEventMessage } from './device';

@@ -11,3 +11,3 @@ import { IFrameEventMessage } from './iframe';

success?: true | false;
} & (IFrameEventMessage | IFrameCallMessage | UiResponseMessage | UiEventMessage | DeviceEventMessage);
} & (IFrameEventMessage | IFrameCallMessage | IFrameCancelMessage | UiResponseMessage | UiEventMessage | DeviceEventMessage);
export declare type PostMessageEvent = MessageEvent<any>;

@@ -14,0 +14,0 @@ export declare const parseMessage: (messageData: any) => CoreMessage;

@@ -8,2 +8,3 @@ import type { ConnectSettings } from '../types';

readonly CALL: "iframe-call";
readonly CANCEL: "iframe-cancel";
};

@@ -10,0 +11,0 @@ export interface IFrameInit {

@@ -39,2 +39,3 @@ import EventEmitter, { EventEmitter as EventEmitter$1 } from 'events';

Device_InitializeFailed: string;
Device_Interrupted: string;
Not_Use_Onekey_Device: string;

@@ -915,3 +916,3 @@ Runtime: string;

uiResponse: typeof uiResponse;
cancel: (params?: string) => void;
cancel: (connectId?: string) => void;
searchDevices: typeof searchDevices;

@@ -1050,2 +1051,3 @@ getFeatures: typeof getFeatures;

readonly CALL: "iframe-call";
readonly CANCEL: "iframe-cancel";
};

@@ -1095,2 +1097,9 @@ interface IFrameInit {

}
interface IFrameCancelMessage {
event: typeof IFRAME.CANCEL;
type: typeof IFRAME.CANCEL;
payload: {
connectId?: string;
};
}
declare const RESPONSE_EVENT = "RESPONSE_EVENT";

@@ -1124,3 +1133,3 @@ interface MethodResponseMessage {

success?: true | false;
} & (IFrameEventMessage | IFrameCallMessage | UiResponseMessage | UiEventMessage | DeviceEventMessage);
} & (IFrameEventMessage | IFrameCallMessage | IFrameCancelMessage | UiResponseMessage | UiEventMessage | DeviceEventMessage);
declare type PostMessageEvent = MessageEvent<any>;

@@ -1305,3 +1314,2 @@ declare const parseMessage: (messageData: any) => CoreMessage;

internalState: string[];
loaded: boolean;
needReloadDevice: boolean;

@@ -1321,4 +1329,6 @@ keepSession: boolean;

updateDescriptor(descriptor: OneKeyDeviceInfo): void;
updateFromCache(device: Device): void;
run(fn?: () => Promise<void>, options?: RunOptions): Promise<void>;
_runInner<T>(fn: (() => Promise<T>) | undefined, options: RunOptions): Promise<undefined>;
interruption(): void;
getMode(): "normal" | "bootloader" | "initialize" | "seedless";

@@ -1396,2 +1406,2 @@ getFirmwareVersion(): IVersionArray | null;

export { AccountAddress, AccountAddresses, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CipheredKeyValue, CipheredKeyValueParams, CommonParams, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Deferred, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFirmwareRange, 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, FirmwareProgress, FirmwareRange, FirmwareRelease, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, Params, PostMessageEvent, RESPONSE_EVENT, RefTransaction, ReleaseInfo, RemoteConfigResponse, Response, SearchDevice, SignedTransaction, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, 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 };
export { AccountAddress, AccountAddresses, AssetsMap, BTCAddress, BTCGetAddressParams, BTCGetPublicKeyParams, BTCPublicKey, BTCSignMessageParams, BTCSignTransactionParams, BTCVerifyMessageParams, CORE_EVENT, CallMethod, CallMethodAnyResponse, CallMethodKeys, CallMethodPayload, CallMethodResponse, CallMethodUnion, CipheredKeyValue, CipheredKeyValueParams, CommonParams, ConnectSettings, Core, CoreApi, CoreMessage, DEFAULT_PRIORITY, DEVICE, DEVICE_EVENT, DataManager, Deferred, Device$1 as Device, DeviceButtonRequest, DeviceButtonRequestPayload, DeviceChangePinParams, DeviceEvent, DeviceEventListenerFn, DeviceEventMessage, DeviceFirmwareRange, 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, FirmwareProgress, FirmwareRange, FirmwareRelease, IBLEFirmwareReleaseInfo, IDeviceBLEFirmwareStatus, IDeviceFirmwareStatus, IDeviceModel, IDeviceType, IFRAME, IFirmwareReleaseInfo, IFrameBridge, IFrameCallMessage, IFrameCancelMessage, IFrameEvent, IFrameEventMessage, IFrameInit, ILocale, ITransportStatus, IVersionArray, KnownDevice, MajorVersion, MethodResponseMessage, NEMAddress, NEMAggregateModificationTransaction, NEMGetAddressParams, NEMImportanceTransaction, NEMMosaic, NEMMosaicCreationTransaction, NEMMultisigTransaction, NEMProvisionNamespaceTransaction, NEMSignTransactionParams, NEMSupplyChangeTransaction, NEMTransaction, NEMTransferTransaction, Params, PostMessageEvent, RESPONSE_EVENT, RefTransaction, ReleaseInfo, RemoteConfigResponse, Response, SearchDevice, SignedTransaction, SolanaAddress, SolanaGetAddressParams, SolanaSignTransactionParams, SolanaSignedTx, StarcoinAddress, StarcoinGetAddressParams, StarcoinGetPublicKeyParams, StarcoinPublicKey, StarcoinSignMessageParams, StarcoinSignTransactionParams, StarcoinVerifyMessageParams, StellarAddress, StellarAsset, StellarGetAddressParams, StellarOperation, StellarSignTransactionParams, StellarTransaction, StrictFeatures, 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 };

@@ -52,3 +52,3 @@ import { on, off, removeAllListeners } from './event';

uiResponse: typeof uiResponse;
cancel: (params?: string) => void;
cancel: (connectId?: string) => void;
searchDevices: typeof searchDevices;

@@ -55,0 +55,0 @@ getFeatures: typeof getFeatures;

{
"name": "@onekeyfe/hd-core",
"version": "0.1.1",
"version": "0.1.2",
"description": "> TODO: description",

@@ -28,3 +28,3 @@ "author": "OneKey",

"dependencies": {
"@onekeyfe/hd-transport": "^0.1.1",
"@onekeyfe/hd-transport": "^0.1.2",
"axios": "^0.27.2",

@@ -39,3 +39,3 @@ "bignumber.js": "^9.0.2",

},
"gitHead": "006c48af97498aad26719d9839979ecc2c55aea6"
"gitHead": "5640e7870a99d8f3bade996fb5f57af055c749d8"
}

@@ -14,2 +14,3 @@ export const ERROR_CODES = {

Device_InitializeFailed: '',
Device_Interrupted: 'The device is performing other operations',
Not_Use_Onekey_Device: 'Please use onekey device',

@@ -16,0 +17,0 @@

@@ -44,2 +44,4 @@ import semver from 'semver';

const deviceCacheMap = new Map<string, Device>();
export const callAPI = async (message: CoreMessage) => {

@@ -254,3 +256,9 @@ if (!message.id || !message.payload || message.type !== IFRAME.CALL) {

const device = Device.fromDescriptor({ id: method.connectId } as OneKeyDeviceInfo);
let device: Device;
if (deviceCacheMap.has(method.connectId)) {
device = deviceCacheMap.get(method.connectId) as Device;
} else {
device = Device.fromDescriptor({ id: method.connectId } as OneKeyDeviceInfo);
deviceCacheMap.set(method.connectId, device);
}
device.deviceConnector = _connector;

@@ -260,2 +268,17 @@ return device;

export const cancel = (connectId?: string) => {
const env = DataManager.getSettings('env');
if (connectId) {
let device;
if (env === 'react-native') {
device = initDeviceForBle({ connectId } as BaseMethod);
} else {
device = initDevice({ connectId } as BaseMethod);
}
device?.interruption();
}
cleanup();
closePopup();
};
const cleanup = () => {

@@ -352,2 +375,6 @@ _uiPromises = [];

}
case IFRAME.CANCEL: {
cancel(message.payload.connectId);
break;
}
default:

@@ -354,0 +381,0 @@ break;

@@ -88,4 +88,2 @@ import EventEmitter from 'events';

loaded = false;
needReloadDevice = false;

@@ -285,6 +283,15 @@

updateFromCache(device: Device) {
this.mainId = device.mainId;
this.commands = device.commands;
this.updateDescriptor(device.originalDescriptor);
if (device.features) {
this._updateFeatures(device.features);
}
}
async run(fn?: () => Promise<void>, options?: RunOptions) {
if (this.runPromise) {
Log.error('[Device] run error:', 'Device is running');
throw ERRORS.TypedError('Device_CallInProgress');
this.interruption();
Log.debug('[Device] run error:', 'Device is running, but will cancel previous operate');
}

@@ -324,7 +331,2 @@

// reload features
if (this.loaded && this.features) {
await this.getFeatures();
}
if (

@@ -344,6 +346,11 @@ (!this.keepSession && typeof options.keepSession !== 'boolean') ||

this.runPromise = null;
}
if (!this.loaded) {
this.loaded = true;
interruption() {
if (this.commands) {
this.commands.dispose();
}
if (this.runPromise) {
this.runPromise.reject(ERRORS.TypedError('Device_Interrupted'));
}
}

@@ -350,0 +357,0 @@

@@ -59,3 +59,7 @@ import type { Transport, Messages } from '@onekeyfe/hd-transport';

this.disposed = true;
if (this._cancelableRequest) {
this._cancelableRequest();
}
this._cancelableRequest = undefined;
this.transport.cancel?.();
}

@@ -62,0 +66,0 @@

@@ -5,3 +5,8 @@ import EventEmitter from 'events';

import { getDeviceUUID } from '../utils/deviceFeaturesUtils';
import { initLog } from '../utils';
const cacheDeviceMap = new Map<string, Device>();
const Log = initLog('DeviceList');
export class DeviceList extends EventEmitter {

@@ -24,3 +29,3 @@ devices: Record<string, Device> = {};

for await (const descriptor of descriptorList) {
const device = Device.fromDescriptor(descriptor);
let device = Device.fromDescriptor(descriptor);
device.deviceConnector = this.connector;

@@ -35,3 +40,10 @@ await device.connect();

const uuid = getDeviceUUID(device.features);
if (cacheDeviceMap.has(uuid)) {
const cache = cacheDeviceMap.get(uuid);
cache?.updateFromCache(device);
device = cache as Device;
Log.debug('use cache device: ', uuid);
}
this.devices[uuid] = device;
cacheDeviceMap.set(uuid, device);
}

@@ -38,0 +50,0 @@ }

@@ -49,2 +49,8 @@ import { serializeError } from '../constants/errors';

export interface IFrameCancelMessage {
event: typeof IFRAME.CANCEL;
type: typeof IFRAME.CANCEL;
payload: { connectId?: string };
}
export const RESPONSE_EVENT = 'RESPONSE_EVENT';

@@ -51,0 +57,0 @@

import { Unsuccessful } from '../types/params';
import { IFrameCallMessage } from './call';
import { IFrameCallMessage, IFrameCancelMessage } from './call';
import { DeviceEventMessage } from './device';

@@ -16,2 +16,3 @@ import { IFrameEventMessage } from './iframe';

| IFrameCallMessage
| IFrameCancelMessage
| UiResponseMessage

@@ -18,0 +19,0 @@ | UiEventMessage

@@ -9,2 +9,3 @@ import type { ConnectSettings } from '../types';

CALL: 'iframe-call',
CANCEL: 'iframe-cancel',
} as const;

@@ -11,0 +12,0 @@

@@ -57,3 +57,3 @@ import { on, off, removeAllListeners } from './event';

uiResponse: typeof uiResponse;
cancel: (params?: string) => void;
cancel: (connectId?: string) => void;

@@ -60,0 +60,0 @@ /**

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc