UNPKG

@keplr-ewallet/ewallet-sdk-eth

Version:
57 lines (56 loc) 1.68 kB
import type { Address, CustomSource, Hex, Prettify, SignableMessage, RpcTransactionRequest } from "viem"; export interface EthSignMethodMap { sign_transaction: { params: { type: "sign_transaction"; data: { address: Address; transaction: RpcTransactionRequest; }; }; result: { type: "signed_transaction"; signedTransaction: Hex; }; }; personal_sign: { params: { type: "personal_sign"; data: { address: Address; message: SignableMessage; }; }; result: { type: "signature"; signature: Hex; }; }; sign_typedData_v4: { params: { type: "sign_typedData_v4"; data: { address: Address; serializedTypedData: string; }; }; result: { type: "signature"; signature: Hex; }; }; } export type EthSignMethod = keyof EthSignMethodMap; export type EthSignParams = EthSignMethodMap[EthSignMethod]["params"]; export type EthSignResult<P extends EthSignParams> = EthSignMethodMap[P["type"]]["result"]; export type EthSignFunction = <P extends EthSignParams>(parameters: P) => Promise<EthSignResult<P>>; export interface EthSigner { getAddress: () => Promise<Address>; sign: EthSignFunction; } export type EWalletAccount<source extends string = string, address extends Address = Address> = Prettify<CustomSource & { address: address; publicKey: Hex; source: source; type: "local"; }>;