UNPKG

eosjs-signature-provider-interface

Version:

An abstract class that implements the EOSJS SignatureProvider interface, and provides helper methods for interacting with an authenticator using the EOSIO Authentication Transport Protocol Specification.

65 lines (64 loc) 2.16 kB
import { ApiInterfaces, RpcInterfaces } from 'eosjs'; import { SecurityExclusions, SignatureProviderRequest, SignatureProviderRequestEnvelope, SignatureProviderResponseEnvelope, Uint8BinaryAbi } from './interfaces'; export interface SignatureProviderInterfaceParams { declaredDomain: string; returnUrl: string; callbackUrl?: string; securityExclusions?: SecurityExclusions; options?: any; } export interface CreateRequestEnvelopeParams { request: SignatureProviderRequest; } export interface SignParams { chainId: string; requiredKeys: string[]; serializedTransaction: Uint8Array; abis: Uint8BinaryAbi[]; } export declare type HandleRequestReturnType = string[] | RpcInterfaces.PushTransactionArgs; export declare abstract class SignatureProviderInterface implements ApiInterfaces.SignatureProvider { private declaredDomain; private returnUrl; private callbackUrl?; private securityExclusions?; private pendingRequest; constructor({ declaredDomain, returnUrl, callbackUrl, securityExclusions, }: SignatureProviderInterfaceParams); /** * SignatureProvider Methods */ getAvailableKeys(): Promise<string[]>; sign(params: SignParams): Promise<RpcInterfaces.PushTransactionArgs>; /** * Request Handlers */ protected abstract sendRequest(requestEnvelope: SignatureProviderRequestEnvelope): void; private handleRequest; /** * Response Handlers */ protected handleResponse: (responseEnvelope: SignatureProviderResponseEnvelope) => void; private handleSelectiveDisclosureResponse; private handleTransactionSignatureResponse; /** * Caching */ protected abstract getCachedKeys(): string[]; protected abstract setCachedKeys(keys: string[]): void; abstract clearCachedKeys(): void; /** * Cancelling */ private cancelPendingRequest; cancelRequest(): void; /** * Life Cycle */ abstract cleanUp(): void; /** * Struct Creation */ private createRequestEnvelope; private createSelectiveDisclosureRequest; private createTransactionSignatureRequest; }