libdocs/liquidity_pool_call_builder.js

import { CallBuilder } from "./call_builder";
/**
 * Creates a new {@link LiquidityPoolCallBuilder} pointed to server defined by serverUrl.
 * Do not create this object directly, use {@link Server#liquidityPools}.
 *
 * @class LiquidityPoolCallBuilder
 * @extends CallBuilder
 * @constructor
 * @param {string} serverUrl Horizon server URL.
 */
export class LiquidityPoolCallBuilder extends CallBuilder {
    constructor(serverUrl) {
        super(serverUrl);
        this.url.segment("liquidity_pools");
    }
    /**
     * Filters out pools whose reserves don't exactly match these assets.
     *
     * @see Asset
     * @param {Asset[]} assets
     * @returns {LiquidityPoolCallBuilder} current LiquidityPoolCallBuilder instance
     */
    forAssets(...assets) {
        const assetList = assets
            .map((asset) => asset.toString())
            .join(",");
        this.url.setQuery("reserves", assetList);
        return this;
    }
    /**
     * Retrieves all pools an account is participating in.
     *
     * @param {string} id   the participant account to filter by
     * @returns {LiquidityPoolCallBuilder} current LiquidityPoolCallBuilder instance
     */
    forAccount(id) {
        this.url.setQuery("account", id);
        return this;
    }
    /**
     * Retrieves a specific liquidity pool by ID.
     *
     * @param {string} id   the hash/ID of the liquidity pool
     * @returns {CallBuilder} a new CallBuilder instance for the /liquidity_pools/:id endpoint
     */
    liquidityPoolId(id) {
        if (!id.match(/[a-fA-F0-9]{64}/)) {
            throw new TypeError(`${id} does not look like a liquidity pool ID`);
        }
        const builder = new CallBuilder(this.url.clone());
        builder.filter.push([id.toLowerCase()]);
        return builder;
    }
}
//# sourceMappingURL=liquidity_pool_call_builder.js.map