@nemoprotocol/points-sdk
Version:
1. [Overview](#overview) 2. [Installation](#installation) 3. [Core Features](#core-features) 4. [API Reference](#api-reference) 5. [Type Definitions](#type-definitions)
105 lines • 3.09 kB
TypeScript
import { PositionQueryConfig, RewardMetric } from './types';
import { LpPosition, PyPosition, QueryYieldParams } from './types/position';
import { ClaimRewardConfig } from './types/rewards';
export declare class PositionQuery {
private client;
private graphqlEndpoint;
constructor({ rpcUrl, network }: PositionQueryConfig);
/**
* 通用的GraphQL分页查询方法
*/
private queryGraphQLWithPagination;
/**
* Query LP Position data
*/
queryLpPositions(options: {
address: string;
maturity?: string;
marketStateId?: string;
positionTypes: string[];
}): Promise<LpPosition[]>;
/**
* Query PY Position data (including PT and YT balance)
*/
queryPyPositions(options: {
address: string;
positionTypes: string[];
maturity?: string;
pyStateId?: string;
}): Promise<PyPosition[]>;
/**
* Query total PT and YT balances (sum of all PY Positions)
*/
queryPyBalance(options: {
address: string;
maturity?: string;
pyStateId?: string;
positionTypes: string[];
}): Promise<{
ptBalance: string;
ytBalance: string;
}>;
/**
* Query total LP balance (sum of all LP Positions)
*/
queryLpBalance(options: {
address: string;
positionTypes: string[];
maturity?: string;
marketStateId?: string;
}): Promise<string>;
/**
* Query YT Yield amount (simulate redeem_due_interest)
*/
queryYield({ config, address, ytBalance, pyPositions, receivingType, }: QueryYieldParams): Promise<{
outputValue: string;
outputAmount: string;
}>;
/**
* Query PY Position holders count using GraphQL
* 统计持有特定类型PY Position的用户数量,PT和YT分开统计
*/
queryPyPositionHoldersCount(options: {
positionTypes: string[];
maturity?: string;
pyStateId?: string;
pageSize?: number;
}): Promise<{
ptHolders: number;
ytHolders: number;
totalHolders: number;
holdersByType: Record<string, {
ptHolders: number;
ytHolders: number;
}>;
totalPositions: number;
}>;
/**
* Query LP Position holders count using GraphQL
* 统计持有特定类型LP Position的用户数量
*/
queryLpPositionHoldersCount(options: {
positionTypes: string[];
maturity?: string;
marketStateId?: string;
pageSize?: number;
}): Promise<{
totalHolders: number;
holdersByType: Record<string, number>;
totalPositions: number;
}>;
/**
* Query rewards for multiple reward metrics
*/
queryRewards(options: {
address: string;
config: Omit<ClaimRewardConfig, "syCoinType">;
lpPositions: LpPosition[];
rewardMetrics: RewardMetric[];
}): Promise<Array<{
coinType: string;
coinName: string;
amount: string;
}>>;
}
//# sourceMappingURL=PositionQuery.d.ts.map