import { PageRequest, PageResponse } from "../../../../cosmos/base/query/v1beta1/pagination"; import { ConnectionEnd, IdentifiedConnection } from "./connection"; import { Height, IdentifiedClientState } from "../../client/v1/client"; import { Any } from "../../../../google/protobuf/any"; import { LCDClient } from "@osmonauts/lcd"; import { setPaginationParams } from "@osmonauts/helpers"; import { QueryConnectionRequest, QueryConnectionResponse, QueryConnectionsRequest, QueryConnectionsResponse, QueryClientConnectionsRequest, QueryClientConnectionsResponse, QueryConnectionClientStateRequest, QueryConnectionClientStateResponse, QueryConnectionConsensusStateRequest, QueryConnectionConsensusStateResponse } from "./query"; export class LCDQueryClient extends LCDClient { constructor({ restEndpoint }: { restEndpoint: string; }) { super({ restEndpoint }); } /* Connection queries an IBC connection end. */ async connection(params: QueryConnectionRequest): Promise { const endpoint = `ibc/core/connection/v1/connections/${params.connection_id}`; return await this.request(endpoint); } /* Connections queries all the IBC connections of a chain. */ async connections(params: QueryConnectionsRequest = { pagination: undefined }): Promise { const options: any = { params: {} }; if (typeof params?.pagination !== "undefined") { setPaginationParams(options, params.pagination); } const endpoint = `ibc/core/connection/v1/connections`; return await this.request(endpoint, options); } /* ClientConnections queries the connection paths associated with a client state. */ async clientConnections(params: QueryClientConnectionsRequest): Promise { const endpoint = `ibc/core/connection/v1/client_connections/${params.client_id}`; return await this.request(endpoint); } /* ConnectionClientState queries the client state associated with the connection. */ async connectionClientState(params: QueryConnectionClientStateRequest): Promise { const endpoint = `ibc/core/connection/v1/connections/${params.connection_id}/client_state`; return await this.request(endpoint); } /* ConnectionConsensusState queries the consensus state associated with the connection. */ async connectionConsensusState(params: QueryConnectionConsensusStateRequest): Promise { const endpoint = `ibc/core/connection/v1/connections/${params.connection_id}/consensus_state/revision/${params.revision_number}height/${params.revision_height}`; return await this.request(endpoint); } }