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
TypeScript
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;
}