Convenience type for browser plugin wallets supporting the CIP 30 DApp connector standard (eg. Eternl, Nami).

interface Cip30Handle {
    getNetworkId(): Promise<number>,
    getUsedAddresses(): Promise<string[]>,
    getUnusedAddresses(): Promise<string[]>,
    getUtxos(): Promise<string[]>,
    signTx(txHex: string, partialSign: boolean): Promise<string>,
    submitTx(txHex: string): Promise<string>

This is useful in typescript projects to avoid type errors when accessing the handles in window.cardano.

// refer to this file in the 'typeRoots' list in tsconfig.json

type Cip30SimpleHandle = {
    name: string,
    icon: string,
    enable(): Promise<helios.Cip30Handle>,
    isEnabled(): boolean

declare global {
  interface Window {
    cardano: {
        [walletName: string]: Cip30SimpleHandle