UNPKG

@secux/transport

Version:

SecuX Hardware Wallet transport API for communication layer

84 lines (80 loc) 2.65 kB
/*! Copyright 2022 SecuX Technology Inc Copyright Chen Wei-En Copyright Wu Tsung-Yu Licensed under the Apache License, Version 2.0 (the License); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ /// <reference types="node" /> import { IAPDUResponse } from "./interface"; export type IResponse = { data: Buffer; response: IAPDUResponse; type: ResponseType; }; export declare enum ResponseType { UNKNOWN = 0, CRYPTO = 1, NIFTY = 2, APDU = 3, NOTIFY = 4 } export declare abstract class IResolver { #private; constructor(next?: IResolver); abstract handleData(data: Buffer): IResponse; abstract toResponse(data: Buffer): IAPDUResponse; reset(): void; protected toNext(data: Buffer): IResponse; protected sendData(data: Buffer): void; get Next(): IResolver | undefined; get Prev(): IResolver | undefined; get DataSource(): Array<Buffer>; get Sent(): Buffer; set Sent(data: Buffer); get cla(): number; get ins(): number; static handleData(this: IResolver, data: Buffer): IResponse; static resetAll(this: IResolver): void; static isRunning(this: IResolver): boolean; } export declare class BaseResolver extends IResolver { handleData(data: Buffer): IResponse; toResponse(data: Buffer): IAPDUResponse; } export declare class CommandResolver extends BaseResolver { #private; handleData(data: Buffer): IResponse; reset(): void; protected sendData(data: Buffer): void; get cla(): number; get ins(): number; } export declare class BaseResolverV2 extends IResolver { handleData(data: Buffer): IResponse; toResponse(data: Buffer): IAPDUResponse; protected unpack(source: Array<Buffer>): Buffer; } export declare class APDUResolver extends BaseResolverV2 { #private; handleData(data: Buffer): IResponse; toResponse(data: Buffer): IAPDUResponse; reset(): void; get Sent(): Buffer; set Sent(data: Buffer); get cla(): number; get ins(): number; } export declare class NotifyResolver extends BaseResolverV2 { static readonly Notifys = 252; handleData(data: Buffer): IResponse; toResponse(data: Buffer): IAPDUResponse; protected sendData(data: Buffer): void; }