libdocs/offer_call_builder.js

import { CallBuilder } from "./call_builder";
/**
 * Creates a new {@link OfferCallBuilder} pointed to server defined by serverUrl.
 * Do not create this object directly, use {@link Server#offers}.
 *
 * @see [Offers](https://developers.stellar.org/api/resources/offers/)
 * @class OfferCallBuilder
 * @constructor
 * @extends CallBuilder
 * @param {string} serverUrl Horizon server URL.
 */
export class OfferCallBuilder extends CallBuilder {
    constructor(serverUrl) {
        super(serverUrl, "offers");
        this.url.segment("offers");
    }
    /**
     * The offer details endpoint provides information on a single offer. The offer ID provided in the id
     * argument specifies which offer to load.
     * @see [Offer Details](https://developers.stellar.org/api/resources/offers/single/)
     * @param {string} offerId Offer ID
     * @returns {CallBuilder<ServerApi.OfferRecord>} CallBuilder<ServerApi.OfferRecord> OperationCallBuilder instance
     */
    offer(offerId) {
        const builder = new CallBuilder(this.url.clone());
        builder.filter.push([offerId]);
        return builder;
    }
    /**
     * Returns all offers where the given account is involved.
     *
     * @see [Offers](https://developers.stellar.org/api/resources/accounts/offers/)
     * @param {string} id For example: `GDGQVOKHW4VEJRU2TETD6DBRKEO5ERCNF353LW5WBFW3JJWQ2BRQ6KDD`
     * @returns {OfferCallBuilder} current OfferCallBuilder instance
     */
    forAccount(id) {
        return this.forEndpoint("accounts", id);
    }
    /**
     * Returns all offers buying an asset.
     * @see [Offers](https://developers.stellar.org/api/resources/offers/list/)
     * @see Asset
     * @param {Asset} asset For example: `new Asset('USD','GDGQVOKHW4VEJRU2TETD6DBRKEO5ERCNF353LW5WBFW3JJWQ2BRQ6KDD')`
     * @returns {OfferCallBuilder} current OfferCallBuilder instance
     */
    buying(asset) {
        if (!asset.isNative()) {
            this.url.setQuery("buying_asset_type", asset.getAssetType());
            this.url.setQuery("buying_asset_code", asset.getCode());
            this.url.setQuery("buying_asset_issuer", asset.getIssuer());
        }
        else {
            this.url.setQuery("buying_asset_type", "native");
        }
        return this;
    }
    /**
     * Returns all offers selling an asset.
     * @see [Offers](https://developers.stellar.org/api/resources/offers/list/)
     * @see Asset
     * @param {Asset} asset For example: `new Asset('EUR','GDGQVOKHW4VEJRU2TETD6DBRKEO5ERCNF353LW5WBFW3JJWQ2BRQ6KDD')`
     * @returns {OfferCallBuilder} current OfferCallBuilder instance
     */
    selling(asset) {
        if (!asset.isNative()) {
            this.url.setQuery("selling_asset_type", asset.getAssetType());
            this.url.setQuery("selling_asset_code", asset.getCode());
            this.url.setQuery("selling_asset_issuer", asset.getIssuer());
        }
        else {
            this.url.setQuery("selling_asset_type", "native");
        }
        return this;
    }
    /**
     * This endpoint filters offers where the given account is sponsoring the offer entry.
     * @see [Offers](https://developers.stellar.org/api/resources/offers/list/)
     * @param {string} id For example: `GDGQVOKHW4VEJRU2TETD6DBRKEO5ERCNF353LW5WBFW3JJWQ2BRQ6KDD`
     * @returns {OfferCallBuilder} current OfferCallBuilder instance
     */
    sponsor(id) {
        this.url.setQuery("sponsor", id);
        return this;
    }
    /**
     * This endpoint filters offers where the given account is the seller.
     *
     * @see [Offers](https://developers.stellar.org/api/resources/offers/list/)
     * @param {string} seller For example: `GDGQVOKHW4VEJRU2TETD6DBRKEO5ERCNF353LW5WBFW3JJWQ2BRQ6KDD`
     * @returns {OfferCallBuilder} current OfferCallBuilder instance
     */
    seller(seller) {
        this.url.setQuery("seller", seller);
        return this;
    }
}
//# sourceMappingURL=offer_call_builder.js.map