@trilitech-umami/umami-embed
Version:
[WIP - not ready for production use] A simple embeddable Umami wallet
80 lines (79 loc) • 2.52 kB
TypeScript
import { type PartialTezosOperation, type SigningType } from "@airgap/beacon-types";
export type LogsLevel = "none" | "info" | "warn" | "error";
export type Theme = "light" | "dark";
export type UmamiEmbedConfig = UmamiIframeConfig & {
iframeParent?: HTMLElement;
useLocalEmbedIframe?: boolean;
};
export type UmamiIframeConfig = {
network: Network;
loginOptions?: TypeOfLogin[];
theme?: Theme;
logsLevel?: LogsLevel;
};
export type Network = "mainnet" | "ghostnet";
export type TypeOfLogin = "google" | "reddit" | "twitter" | "facebook";
export type UserData = {
pk: string;
pkh: string;
typeOfLogin: TypeOfLogin;
id: string;
name?: string;
emailAddress?: string;
imageUrl?: string;
};
export type RequestType = "config_request" | "login_request" | "logout_request" | "operation_request" | "sign_request";
export type ResponseType = "init_complete" | "config_response" | "login_response" | "logout_response" | "computation_completed_response" | "operation_response" | "sign_response";
export declare const toMatchingResponseType: (type: RequestType) => ResponseType;
export type FailedResponse = {
type: ResponseType;
error: string;
errorMessage?: string;
};
export type InitResponse = {
type: "init_complete";
userData?: UserData;
};
export type ConfigRequest = {
type: "config_request";
config: UmamiIframeConfig;
};
export type ConfigResponse = {
type: "config_response";
};
export type LoginRequest = {
type: "login_request";
};
export type LoginResponse = {
type: "login_response";
} & UserData;
export type LogoutRequest = {
type: "logout_request";
};
export type LogoutResponse = {
type: "logout_response";
};
export type ComputationCompletedResponse = {
type: "computation_completed_response";
};
export type OperationRequest = {
type: "operation_request";
operations: PartialTezosOperation[];
};
export type OperationResponse = {
type: "operation_response";
} & {
opHash: string;
};
export type SignRequest = {
type: "sign_request";
signingType: SigningType;
payload: string;
};
export type SignResponse = {
type: "sign_response";
signingType: SigningType;
signature: string;
};
export type RequestMessage = ConfigRequest | LoginRequest | LogoutRequest | OperationRequest | SignRequest;
export type ResponseMessage = InitResponse | ConfigResponse | LoginResponse | LogoutResponse | ComputationCompletedResponse | OperationResponse | SignResponse | FailedResponse;