import { PageRequest, PageResponse } from "../../cosmos/base/query/v1beta1/pagination"; import { Params } from "./params"; import { SuperfluidAssetType, SuperfluidAsset, OsmoEquivalentMultiplierRecord, SuperfluidDelegationRecord } from "./superfluid"; import { Coin } from "../../cosmos/base/v1beta1/coin"; import { SyntheticLock } from "../lockup/lock"; import { Rpc } from "@osmonauts/helpers"; import * as _m0 from "protobufjs/minimal"; import { QueryParamsRequest, QueryParamsResponse, AssetTypeRequest, AssetTypeResponse, AllAssetsRequest, AllAssetsResponse, AssetMultiplierRequest, AssetMultiplierResponse, AllIntermediaryAccountsRequest, AllIntermediaryAccountsResponse, ConnectedIntermediaryAccountRequest, ConnectedIntermediaryAccountResponse, TotalSuperfluidDelegationsRequest, TotalSuperfluidDelegationsResponse, SuperfluidDelegationAmountRequest, SuperfluidDelegationAmountResponse, SuperfluidDelegationsByDelegatorRequest, SuperfluidDelegationsByDelegatorResponse, SuperfluidUndelegationsByDelegatorRequest, SuperfluidUndelegationsByDelegatorResponse, SuperfluidDelegationsByValidatorDenomRequest, SuperfluidDelegationsByValidatorDenomResponse, EstimateSuperfluidDelegatedAmountByValidatorDenomRequest, EstimateSuperfluidDelegatedAmountByValidatorDenomResponse } from "./query"; /** Query defines the RPC service */ export interface Query { params(request: QueryParamsRequest): Promise; /*Params returns the total set of minting parameters.*/ assetType(request: AssetTypeRequest): Promise; /*Returns superfluid asset type*/ allAssets(request: AllAssetsRequest): Promise; /*Returns all superfluid asset types*/ assetMultiplier(request: AssetMultiplierRequest): Promise; /*Returns superfluid asset Multiplier*/ allIntermediaryAccounts(request: AllIntermediaryAccountsRequest): Promise; /*Returns all superfluid intermediary account*/ connectedIntermediaryAccount(request: ConnectedIntermediaryAccountRequest): Promise; /*Returns intermediary account connected to a superfluid staked lock by id*/ totalSuperfluidDelegations(request: TotalSuperfluidDelegationsRequest): Promise; /*Returns the total amount of osmo superfluidly staked response denominated in uosmo*/ superfluidDelegationAmount(request: SuperfluidDelegationAmountRequest): Promise; /*Returns the coins superfluid delegated for a delegator, validator, denom triplet*/ superfluidDelegationsByDelegator(request: SuperfluidDelegationsByDelegatorRequest): Promise; /*Returns all the superfluid poistions for a specific delegator*/ superfluidUndelegationsByDelegator(request: SuperfluidUndelegationsByDelegatorRequest): Promise; /*null*/ superfluidDelegationsByValidatorDenom(request: SuperfluidDelegationsByValidatorDenomRequest): Promise; /*Returns all the superfluid positions of a specific denom delegated to one validator*/ estimateSuperfluidDelegatedAmountByValidatorDenom(request: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): Promise; /*Returns the amount of a specific denom delegated to a specific validator This is labeled an estimate, because the way it calculates the amount can lead rounding errors from the true delegated amount*/ } export class QueryClientImpl implements Query { private readonly rpc: Rpc; constructor(rpc: Rpc) { this.rpc = rpc; this.params = this.params.bind(this); this.assetType = this.assetType.bind(this); this.allAssets = this.allAssets.bind(this); this.assetMultiplier = this.assetMultiplier.bind(this); this.allIntermediaryAccounts = this.allIntermediaryAccounts.bind(this); this.connectedIntermediaryAccount = this.connectedIntermediaryAccount.bind(this); this.totalSuperfluidDelegations = this.totalSuperfluidDelegations.bind(this); this.superfluidDelegationAmount = this.superfluidDelegationAmount.bind(this); this.superfluidDelegationsByDelegator = this.superfluidDelegationsByDelegator.bind(this); this.superfluidUndelegationsByDelegator = this.superfluidUndelegationsByDelegator.bind(this); this.superfluidDelegationsByValidatorDenom = this.superfluidDelegationsByValidatorDenom.bind(this); this.estimateSuperfluidDelegatedAmountByValidatorDenom = this.estimateSuperfluidDelegatedAmountByValidatorDenom.bind(this); } params(request: QueryParamsRequest): Promise { const data = QueryParamsRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "Params", data); return promise.then(data => QueryParamsResponse.decode(new _m0.Reader(data))); } assetType(request: AssetTypeRequest): Promise { const data = AssetTypeRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "AssetType", data); return promise.then(data => AssetTypeResponse.decode(new _m0.Reader(data))); } allAssets(request: AllAssetsRequest): Promise { const data = AllAssetsRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "AllAssets", data); return promise.then(data => AllAssetsResponse.decode(new _m0.Reader(data))); } assetMultiplier(request: AssetMultiplierRequest): Promise { const data = AssetMultiplierRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "AssetMultiplier", data); return promise.then(data => AssetMultiplierResponse.decode(new _m0.Reader(data))); } allIntermediaryAccounts(request: AllIntermediaryAccountsRequest): Promise { const data = AllIntermediaryAccountsRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "AllIntermediaryAccounts", data); return promise.then(data => AllIntermediaryAccountsResponse.decode(new _m0.Reader(data))); } connectedIntermediaryAccount(request: ConnectedIntermediaryAccountRequest): Promise { const data = ConnectedIntermediaryAccountRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "ConnectedIntermediaryAccount", data); return promise.then(data => ConnectedIntermediaryAccountResponse.decode(new _m0.Reader(data))); } totalSuperfluidDelegations(request: TotalSuperfluidDelegationsRequest): Promise { const data = TotalSuperfluidDelegationsRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "TotalSuperfluidDelegations", data); return promise.then(data => TotalSuperfluidDelegationsResponse.decode(new _m0.Reader(data))); } superfluidDelegationAmount(request: SuperfluidDelegationAmountRequest): Promise { const data = SuperfluidDelegationAmountRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "SuperfluidDelegationAmount", data); return promise.then(data => SuperfluidDelegationAmountResponse.decode(new _m0.Reader(data))); } superfluidDelegationsByDelegator(request: SuperfluidDelegationsByDelegatorRequest): Promise { const data = SuperfluidDelegationsByDelegatorRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "SuperfluidDelegationsByDelegator", data); return promise.then(data => SuperfluidDelegationsByDelegatorResponse.decode(new _m0.Reader(data))); } superfluidUndelegationsByDelegator(request: SuperfluidUndelegationsByDelegatorRequest): Promise { const data = SuperfluidUndelegationsByDelegatorRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "SuperfluidUndelegationsByDelegator", data); return promise.then(data => SuperfluidUndelegationsByDelegatorResponse.decode(new _m0.Reader(data))); } superfluidDelegationsByValidatorDenom(request: SuperfluidDelegationsByValidatorDenomRequest): Promise { const data = SuperfluidDelegationsByValidatorDenomRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "SuperfluidDelegationsByValidatorDenom", data); return promise.then(data => SuperfluidDelegationsByValidatorDenomResponse.decode(new _m0.Reader(data))); } estimateSuperfluidDelegatedAmountByValidatorDenom(request: EstimateSuperfluidDelegatedAmountByValidatorDenomRequest): Promise { const data = EstimateSuperfluidDelegatedAmountByValidatorDenomRequest.encode(request).finish(); const promise = this.rpc.request("osmosis.superfluid.Query", "EstimateSuperfluidDelegatedAmountByValidatorDenom", data); return promise.then(data => EstimateSuperfluidDelegatedAmountByValidatorDenomResponse.decode(new _m0.Reader(data))); } }