walletlink-e
Version:
WalletLink JavaScript SDK
88 lines (87 loc) • 2.7 kB
TypeScript
import { Observable } from "rxjs";
import { ServerMessageEvent } from "./ServerMessage";
import { SessionConfig } from "./SessionConfig";
/**
* WalletLink Connection
*/
export declare class WalletLinkConnection {
private sessionId;
private sessionKey;
private ws;
private subscriptions;
private destroyed;
private lastHeartbeatResponse;
private nextReqId;
private connectedSubject;
private linkedSubject;
private sessionConfigSubject;
/**
* Constructor
* @param sessionId Session ID
* @param sessionKey Session Key
* @param serverUrl Walletlinkd RPC URL
* @param [WebSocketClass] Custom WebSocket implementation
*/
constructor(sessionId: string, sessionKey: string, serverUrl: string, WebSocketClass?: typeof WebSocket);
/**
* Make a connection to the server
*/
connect(): void;
/**
* Terminate connection, and mark as destroyed. To reconnect, create a new
* instance of WalletLinkConnection
*/
destroy(): void;
/**
* Emit true if connected and authenticated, else false
* @returns an Observable
*/
get connected$(): Observable<boolean>;
/**
* Emit once connected
* @returns an Observable
*/
get onceConnected$(): Observable<void>;
/**
* Emit true if linked (a guest has joined before)
* @returns an Observable
*/
get linked$(): Observable<boolean>;
/**
* Emit once when linked
* @returns an Observable
*/
get onceLinked$(): Observable<void>;
/**
* Emit current session config if available, and subsequent updates
* @returns an Observable for the session config
*/
get sessionConfig$(): Observable<SessionConfig>;
/**
* Emit incoming Event messages
* @returns an Observable for the messages
*/
get incomingEvent$(): Observable<ServerMessageEvent>;
/**
* Set session metadata in SessionConfig object
* @param key
* @param value
* @returns an Observable that completes when successful
*/
setSessionMetadata(key: string, value: string | null): Observable<void>;
/**
* Publish an event and emit event ID when successful
* @param event event name
* @param data event data
* @param callWebhook whether the webhook should be invoked
* @returns an Observable that emits event ID when successful
*/
publishEvent(event: string, data: string, callWebhook?: boolean): Observable<string>;
private sendData;
private updateLastHeartbeat;
private heartbeat;
private makeRequest;
private authenticate;
private sendIsLinked;
private sendGetSessionConfig;
}