@eversurf/surfkeeper-provider
Version:
Provider interface for Surf Keeper extension of the Everscale blockchain
71 lines (70 loc) • 2.53 kB
TypeScript
import { ProviderApiRequestParams, ProviderApiResponse, ProviderNetwork, ProviderSubscriptionRequestParams } from './api';
import { SubscriptionType } from './constants';
import type { ConnectResponse, DisconnectResponse, ProviderProperties, SubscriptionDisposer, SurfKeeperProvider } from './types';
export declare function hasSurfKeeperProvider(): Promise<boolean>;
export declare class ProviderNotFoundException extends Error {
constructor();
}
export declare class ProviderNotInitializedException extends Error {
constructor();
}
export declare class ProviderRpcClient {
private _provider?;
private readonly _network;
private readonly _properties;
private readonly _api;
private readonly _subscribe;
private readonly _initializationPromise;
constructor(network: ProviderNetwork, properties?: ProviderProperties);
/**
* Checks whether this page has injected surfkeeper provider or
* there is a fallback provider.
*/
hasProvider(): Promise<boolean>;
/**
* Waits until provider api will be available. Calls `fallback` if no provider was found
*
* @throws ProviderNotFoundException when no provider found
*/
ensureInitialized(): Promise<void>;
/**
* Whether provider api is ready
*/
get isInitialized(): boolean;
/**
* Raw provider
*/
get getProvider(): SurfKeeperProvider;
/**
* Connect extension.
* Shows an approval window to the user.
*/
connect(): Promise<ConnectResponse>;
/**
* Get connection status.
*/
connectStatus(): Promise<ConnectResponse>;
/**
* Disconnect extension.
*/
disconnect(): Promise<DisconnectResponse>;
/**
* Subscribes on the event and listens to the updates.
*/
subscribe(args: ProviderSubscriptionRequestParams<SubscriptionType>): SubscriptionDisposer;
/**
* Signs arbitrary data.
* Shows an approval window to the user.
*/
signData(args: ProviderApiRequestParams<'signData'>): Promise<ProviderApiResponse<'signData'>>;
/**
* Sends an internal message from the user account.
* Shows an approval window to the user.
*/
sendMessage(args: ProviderApiRequestParams<'sendMessage'>): Promise<ProviderApiResponse<'sendMessage'>>;
/**
* Sends transaction with provided params.
* Shows an approval window to the user.
*/
sendTransaction(args: ProviderApiRequestParams<'sendTransaction'>): Promise<ProviderApiResponse<'sendTransaction'>>;
}