// Copyright © Endless // Copyright © Aptos Foundation // SPDX-License-Identifier: Apache-2.0 import { AccountAddressInput } from "../core"; import { getDelegatedPools, getDelegationPools, batchGetPoolRewards, getPoolRewards } from "../internal/stake"; import { DelegatedPoolResponse, DelegationPoolResponse, PoolRewardResponse } from "../types"; import { EndlessConfig } from "./endlessConfig"; /** * A class to query all `Stake` related queries on Endless indexer. */ export class Stake { constructor(readonly config: EndlessConfig) {} /** * Get all delegation pools * * @param args.user Optional user address to filter pools * @returns Delegation pools */ async getDelegationPools(args?: { user?: AccountAddressInput }): Promise { return getDelegationPools({ endlessConfig: this.config, ...args }); } /** * Batch get pool rewards by pool address list * * @param args.pools Pool addresses * @returns Pool rewards */ async batchGetPoolRewards(args: { pools: AccountAddressInput[] }): Promise { return batchGetPoolRewards({ endlessConfig: this.config, ...args }); } /** * Get pool rewards by pool address * * @param args.pool Pool address * @returns Pool reward */ async getPoolRewards(args: { pool: AccountAddressInput }): Promise { return getPoolRewards({ endlessConfig: this.config, ...args }); } /** * Get delegated pools by delegator address * * @param args.user Delegator address * @returns Delegated pools */ async getDelegatedPools(args: { user: AccountAddressInput }): Promise { return getDelegatedPools({ endlessConfig: this.config, ...args }); } }