Used only by CosmosInterchainService

Prepares an ICQ Connection Kit based on the icq/v1 IBC application protocol.

icq/v1, also referred to as async-icq, is a protocol for asynchronous queries between IBC-enabled chains. It allows a chain to send queries to another chain and receive responses asynchronously.

The ICQ connection kit provides the necessary functionality to establish and manage an ICQ connection between two chains. It includes methods for retrieving the local and remote addresses of the connection, as well as sending queries and handling connection events.

  • Parameters

    • zone: Zone
    • vowTools: VowTools

    Returns ((...args: [port: Port]) => GuardedKit<{
        connection: {
            getLocalAddress(): `/ibc-port/${string}`;
            getRemoteAddress(): `/${string}ibc-port/${string}/ordered/${string}` | `/${string}ibc-port/${string}/unordered/${string}`;
            query(msgs: {
                data: string;
                height: string;
                path: string;
                prove: boolean;
            }[]): Vow<{
                code: number;
                codespace: string;
                height: string;
                index: string;
                info: string;
                key: string;
                log: string;
                proofOps?: {
                    ops: {
                        data: ...;
                        key: ...;
                        type: ...;
                    }[];
                };
                value: string;
            }[]>;
        };
        connectionHandler: {
            onClose(_connection: any, reason: any): Promise<void>;
            onOpen(connection: Remote<Connection>, localAddr: `/ibc-port/${string}`, remoteAddr: `/${string}ibc-port/${string}/ordered/${string}` | `/${string}ibc-port/${string}/unordered/${string}`): Promise<void>;
        };
        parseQueryPacketWatcher: {
            onFulfilled(ack: string): {
                code: number;
                codespace: string;
                height: string;
                index: string;
                info: string;
                key: string;
                log: string;
                proofOps?: {
                    ops: {
                        data: string;
                        key: string;
                        type: string;
                    }[];
                };
                value: string;
            }[];
        };
    }>)

      • (...args): GuardedKit<{
            connection: {
                getLocalAddress(): `/ibc-port/${string}`;
                getRemoteAddress(): `/${string}ibc-port/${string}/ordered/${string}` | `/${string}ibc-port/${string}/unordered/${string}`;
                query(msgs: {
                    data: string;
                    height: string;
                    path: string;
                    prove: boolean;
                }[]): Vow<{
                    code: number;
                    codespace: string;
                    height: string;
                    index: string;
                    info: string;
                    key: string;
                    log: string;
                    proofOps?: {
                        ops: {
                            data: ...;
                            key: ...;
                            type: ...;
                        }[];
                    };
                    value: string;
                }[]>;
            };
            connectionHandler: {
                onClose(_connection: any, reason: any): Promise<void>;
                onOpen(connection: Remote<Connection>, localAddr: `/ibc-port/${string}`, remoteAddr: `/${string}ibc-port/${string}/ordered/${string}` | `/${string}ibc-port/${string}/unordered/${string}`): Promise<void>;
            };
            parseQueryPacketWatcher: {
                onFulfilled(ack: string): {
                    code: number;
                    codespace: string;
                    height: string;
                    index: string;
                    info: string;
                    key: string;
                    log: string;
                    proofOps?: {
                        ops: {
                            data: string;
                            key: string;
                            type: string;
                        }[];
                    };
                    value: string;
                }[];
            };
        }>
      • Parameters

        • Rest...args: [port: Port]

        Returns GuardedKit<{
            connection: {
                getLocalAddress(): `/ibc-port/${string}`;
                getRemoteAddress(): `/${string}ibc-port/${string}/ordered/${string}` | `/${string}ibc-port/${string}/unordered/${string}`;
                query(msgs: {
                    data: string;
                    height: string;
                    path: string;
                    prove: boolean;
                }[]): Vow<{
                    code: number;
                    codespace: string;
                    height: string;
                    index: string;
                    info: string;
                    key: string;
                    log: string;
                    proofOps?: {
                        ops: {
                            data: ...;
                            key: ...;
                            type: ...;
                        }[];
                    };
                    value: string;
                }[]>;
            };
            connectionHandler: {
                onClose(_connection: any, reason: any): Promise<void>;
                onOpen(connection: Remote<Connection>, localAddr: `/ibc-port/${string}`, remoteAddr: `/${string}ibc-port/${string}/ordered/${string}` | `/${string}ibc-port/${string}/unordered/${string}`): Promise<void>;
            };
            parseQueryPacketWatcher: {
                onFulfilled(ack: string): {
                    code: number;
                    codespace: string;
                    height: string;
                    index: string;
                    info: string;
                    key: string;
                    log: string;
                    proofOps?: {
                        ops: {
                            data: string;
                            key: string;
                            type: string;
                        }[];
                    };
                    value: string;
                }[];
            };
        }>