Interface UPClientChannel

API for client channel, each time an iframe's UPClientProvider is allocated and connected the UPProviderConnector will create and emit a new UPClientChannel. The UPClientChannel will have the API to control that channel. The configuration will default to values from the UPProviderConnector but enable will be false.

interface UPClientChannel {
    element: null | HTMLIFrameElement;
    id: string;
    window: Window;
    get allowedAccounts(): `0x${string}`[];
    set allowedAccounts(accounts: `0x${string}`[]): void;
    get chainId(): number;
    set chainId(chainId: number): void;
    get contextAccounts(): `0x${string}`[];
    set contextAccounts(contextAccounts: `0x${string}`[]): void;
    get enable(): boolean;
    set enable(value: boolean): void;
    get rpcUrls(): string[];
    set rpcUrls(rpcUrls: string[]): void;
    addListener<T extends keyof UPClientChannelEvents>(
        event: T,
        fn: (
            ...args: ArgumentMap<UPClientChannelEvents>[Extract<
                T,
                keyof UPClientChannelEvents,
            >],
        ) => void,
        context?: any,
    ): this;
    close(): void;
    emit<T extends keyof UPClientChannelEvents>(
        event: T,
        ...args: ArgumentMap<UPClientChannelEvents>[Extract<
            T,
            keyof UPClientChannelEvents,
        >],
    ): boolean;
    eventNames(): (keyof UPClientChannelEvents)[];
    listenerCount(event: keyof UPClientChannelEvents): number;
    listeners<T extends keyof UPClientChannelEvents>(
        event: T,
    ): (
        ...args: ArgumentMap<UPClientChannelEvents>[Extract<
            T,
            keyof UPClientChannelEvents,
        >],
    ) => void[];
    off<T extends keyof UPClientChannelEvents>(
        event: T,
        fn?: (
            ...args: ArgumentMap<UPClientChannelEvents>[Extract<
                T,
                keyof UPClientChannelEvents,
            >],
        ) => void,
        context?: any,
        once?: boolean,
    ): this;
    on<T extends keyof UPClientChannelEvents>(
        event: T,
        fn: (
            ...args: ArgumentMap<UPClientChannelEvents>[Extract<
                T,
                keyof UPClientChannelEvents,
            >],
        ) => void,
        context?: any,
    ): this;
    once<T extends keyof UPClientChannelEvents>(
        event: T,
        fn: (
            ...args: ArgumentMap<UPClientChannelEvents>[Extract<
                T,
                keyof UPClientChannelEvents,
            >],
        ) => void,
        context?: any,
    ): this;
    removeAllListeners(event?: keyof UPClientChannelEvents): this;
    removeListener<T extends keyof UPClientChannelEvents>(
        event: T,
        fn?: (
            ...args: ArgumentMap<UPClientChannelEvents>[Extract<
                T,
                keyof UPClientChannelEvents,
            >],
        ) => void,
        context?: any,
        once?: boolean,
    ): this;
    resume(delay: number): void;
    send(method: string, params: unknown[]): Promise<void>;
    setAllowedAccounts(accounts: `0x${string}`[]): Promise<void>;
    setChainId(chainId: number): Promise<void>;
    setContextAccounts(contextAccounts: `0x${string}`[]): Promise<void>;
    setEnable(enable: boolean): Promise<void>;
    setRpcUrls(rpcUrls: string[]): Promise<void>;
    setupChannel(
        enable: boolean,
        accounts: `0x${string}`[],
        contextAccounts: `0x${string}`[],
        chainId: number,
    ): Promise<void>;
}

Properties

element: null | HTMLIFrameElement
id: string
window: Window

Accessors

  • get allowedAccounts(): `0x${string}`[]
  • This represents the normal "eth_accounts" method list.

    Returns `0x${string}`[]

    list of accounts

  • set allowedAccounts(accounts: `0x${string}`[]): void
  • This represents the normal "eth_accounts" method list. (setter mirrors setAllowedAccounts)

    Parameters

    • accounts: `0x${string}`[]

    Returns void

  • get contextAccounts(): `0x${string}`[]
  • These are extra accounts sent to each provider. In the ue.io grid, this is used to represent the account that is the grid owner.

    Returns `0x${string}`[]

    list of addresses

  • set contextAccounts(contextAccounts: `0x${string}`[]): void
  • These are extra accounts sent to each provider. In the ue.io grid, this is used to represent the account that is the grid owner. (setter mirrors setContextAccounts)

    Parameters

    • contextAccounts: `0x${string}`[]

    Returns void

Methods

  • Remove all listeners, or those of the specified event.

    Parameters

    • Optionalevent: keyof UPClientChannelEvents

    Returns this

  • Send message to dapp.

    Parameters

    • method: string

      method name/event

    • params: unknown[]

      parameters

    Returns Promise<void>

  • This represents the normal "eth_accounts" method list.

    Parameters

    • accounts: `0x${string}`[]

      list of addresses

    Returns Promise<void>

  • These are extra accounts sent to each provider. In the ue.io grid, this is used to represent the account that is the grid owner.

    Parameters

    • contextAccounts: `0x${string}`[]

    Returns Promise<void>

  • Enable or disable the channel.

    Parameters

    • enable: boolean

      enable or disable the channel

    Returns Promise<void>

  • RPC urls

    Parameters

    • rpcUrls: string[]

      list of rpc urls (used by client provider to short circuit requests)

    Returns Promise<void>

  • Helper to setup the channel with all the necessary information.

    Parameters

    • enable: boolean

      enable

    • accounts: `0x${string}`[]

      accounts (allowed accounts)

    • contextAccounts: `0x${string}`[]

      context accounts

    • chainId: number

      chainId

    Returns Promise<void>