@keplr-ewallet/ewallet-sdk-cosmos
Version:
32 lines (31 loc) • 2.03 kB
TypeScript
import type { AccountData, AminoSignResponse, OfflineAminoSigner, StdSignature, StdSignDoc } from "@cosmjs/amino";
import { type DirectSignResponse, type OfflineDirectSigner } from "@cosmjs/proto-signing";
import type { ChainInfo, KeplrSignOptions, Key, SettledResponses } from "@keplr-wallet/types";
import { type KeplrEWallet } from "@keplr-ewallet/ewallet-sdk-core";
import type { CosmosEWallet } from "./cosmos_ewallet";
export interface SignDoc {
bodyBytes: Uint8Array;
authInfoBytes: Uint8Array;
chainId: string;
accountNumber: bigint;
}
export interface ICosmosEWallet {
keplrEWallet: CosmosEWallet;
signIn: (authType: Parameters<KeplrEWallet["signIn"]>[0]) => Promise<void>;
enable: (chainId: string) => Promise<void>;
experimentalSuggestChain: (chainInfo: ChainInfo) => Promise<void>;
getAccounts: () => Promise<AccountData[]>;
getKey: (chainId: string) => Promise<Key>;
getKeysSettled: (chainIds: string[]) => Promise<SettledResponses<Key>>;
getOfflineSigner: (chainId: string, signOptions?: KeplrSignOptions) => OfflineDirectSigner & OfflineAminoSigner;
getOfflineSignerOnlyAmino: (chainId: string, signOptions?: KeplrSignOptions) => OfflineAminoSigner;
getOfflineSignerAuto: (chainId: string, signOptions?: KeplrSignOptions) => Promise<OfflineDirectSigner | OfflineAminoSigner>;
signAmino: (chainId: string, signer: string, signDoc: StdSignDoc, signOptions?: KeplrSignOptions) => Promise<AminoSignResponse>;
signArbitrary: (chainId: string, signer: string, data: string | Uint8Array) => Promise<StdSignature>;
signDirect: (chainId: string, signer: string, signDoc: SignDoc, signOptions?: KeplrSignOptions) => Promise<DirectSignResponse>;
verifyArbitrary: (chainId: string, signer: string, data: string | Uint8Array, signature: StdSignature) => Promise<boolean>;
sendTx: (chainId: string, tx: unknown, mode: "async" | "sync" | "block", options?: {
silent?: boolean;
onFulfill?: (tx: any) => void;
}) => Promise<Uint8Array>;
}