@coinbase/wallet-sdk
Version: 
Coinbase Wallet JavaScript SDK
70 lines • 2.47 kB
TypeScript
import { EventEmitter } from 'eventemitter3';
export interface RequestArguments {
    readonly method: string;
    readonly params?: readonly unknown[] | object;
}
export interface ProviderRpcError extends Error {
    message: string;
    code: number;
    data?: unknown;
}
interface ProviderConnectInfo {
    readonly chainId: string;
}
type ProviderEventMap = {
    connect: ProviderConnectInfo;
    disconnect: ProviderRpcError;
    chainChanged: string;
    accountsChanged: string[];
};
export declare class ProviderEventEmitter extends EventEmitter<keyof ProviderEventMap> {
}
export interface ProviderInterface extends ProviderEventEmitter {
    request(args: RequestArguments): Promise<unknown>;
    disconnect(): Promise<void>;
    emit<K extends keyof ProviderEventMap>(event: K, ...args: [ProviderEventMap[K]]): boolean;
    on<K extends keyof ProviderEventMap>(event: K, listener: (_: ProviderEventMap[K]) => void): this;
}
export type ProviderEventCallback = ProviderInterface['emit'];
export interface AppMetadata {
    /** Application name */
    appName: string;
    /** Application logo image URL; favicon is used if unspecified */
    appLogoUrl: string | null;
    /** Array of chainIds your dapp supports */
    appChainIds: number[];
}
export type Attribution = {
    auto: boolean;
    dataSuffix?: never;
} | {
    auto?: never;
    dataSuffix: `0x${string}`;
};
export type Preference = {
    /**
     * The URL for the keys popup.
     * By default, `https://keys.coinbase.com/connect` is used for production. Use `https://keys-dev.coinbase.com/connect` for development environments.
     * @type {string}
     */
    keysUrl?: string;
    /**
     * @param options
     */
    options: 'all' | 'smartWalletOnly' | 'eoaOnly';
    /**
     * @param attribution
     * @type {Attribution}
     * @note Smart Wallet only
     * @description This option only applies to Coinbase Smart Wallet. When a valid data suffix is supplied, it is appended to the initCode and executeBatch calldata.
     * Coinbase Smart Wallet expects a 16 byte hex string. If the data suffix is not a 16 byte hex string, the Smart Wallet will ignore the property. If auto is true,
     * the Smart Wallet will generate a 16 byte hex string from the apps origin.
     */
    attribution?: Attribution;
} & Record<string, unknown>;
export interface ConstructorOptions {
    metadata: AppMetadata;
    preference: Preference;
}
export {};
//# sourceMappingURL=interface.d.ts.map