import { setPaginationParams } from "../../../helpers"; import { LCDClient } from "@osmonauts/lcd"; import { QueryParamsRequest, QueryParamsResponseSDKType, QuerySigningInfoRequest, QuerySigningInfoResponseSDKType, QuerySigningInfosRequest, QuerySigningInfosResponseSDKType } from "./query"; export class LCDQueryClient { req: LCDClient; constructor({ requestClient }: { requestClient: LCDClient; }) { this.req = requestClient; this.params = this.params.bind(this); this.signingInfo = this.signingInfo.bind(this); this.signingInfos = this.signingInfos.bind(this); } /* Params queries the parameters of slashing module */ async params(_params: QueryParamsRequest = {}): Promise { const endpoint = `cosmos/slashing/v1beta1/params`; return await this.req.get(endpoint); } /* SigningInfo queries the signing info of given cons address */ async signingInfo(params: QuerySigningInfoRequest): Promise { const endpoint = `cosmos/slashing/v1beta1/signing_infos/${params.consAddress}`; return await this.req.get(endpoint); } /* SigningInfos queries signing info of all validators */ async signingInfos(params: QuerySigningInfosRequest = { pagination: undefined }): Promise { const options: any = { params: {} }; if (typeof params?.pagination !== "undefined") { setPaginationParams(options, params.pagination); } const endpoint = `cosmos/slashing/v1beta1/signing_infos`; return await this.req.get(endpoint, options); } }