@stellar/stellar-sdk
Version:
A library for working with the Stellar network, including communication with the Horizon and Soroban RPC servers.
75 lines (71 loc) • 2.73 kB
JavaScript
'use strict';
var call_builder = require('./call_builder.js');
class TradesCallBuilder extends call_builder.CallBuilder {
constructor(serverUrl, httpClient) {
super(serverUrl, httpClient, "trades");
this.setPath("trades");
}
/**
* Filter trades for a specific asset pair (orderbook)
* @param base - asset
* @param counter - asset
* @returns current TradesCallBuilder instance
*/
forAssetPair(base, counter) {
const baseIssuer = base.getIssuer();
if (!base.isNative() && baseIssuer !== void 0) {
this.url.searchParams.set("base_asset_type", base.getAssetType());
this.url.searchParams.set("base_asset_code", base.getCode());
this.url.searchParams.set("base_asset_issuer", baseIssuer);
} else {
this.url.searchParams.set("base_asset_type", "native");
}
const counterIssuer = counter.getIssuer();
if (!counter.isNative() && counterIssuer !== void 0) {
this.url.searchParams.set("counter_asset_type", counter.getAssetType());
this.url.searchParams.set("counter_asset_code", counter.getCode());
this.url.searchParams.set("counter_asset_issuer", counterIssuer);
} else {
this.url.searchParams.set("counter_asset_type", "native");
}
return this;
}
/**
* Filter trades for a specific offer
* @param offerId - ID of the offer
* @returns current TradesCallBuilder instance
*/
forOffer(offerId) {
this.url.searchParams.set("offer_id", offerId);
return this;
}
/**
* Filter trades by a specific type.
* @param tradeType - the trade type to filter by.
* @returns current TradesCallBuilder instance.
*/
forType(tradeType) {
this.url.searchParams.set("trade_type", tradeType);
return this;
}
/**
* Filter trades for a specific account
* @see {@link https://developers.stellar.org/docs/data/horizon/api-reference/resources/get-trades-by-account-id | Trades for Account}
* @param accountId - For example: `GBYTR4MC5JAX4ALGUBJD7EIKZVM7CUGWKXIUJMRSMK573XH2O7VAK3SR`
* @returns current TradesCallBuilder instance
*/
forAccount(accountId) {
return this.forEndpoint("accounts", accountId);
}
/**
* Filter trades for a specific liquidity pool
* @see {@link https://developers.stellar.org/docs/data/horizon/api-reference/resources/retrieve-related-trades | Trades for Liquidity Pool}
* @param liquidityPoolId - For example: `3b476aff8a406a6ec3b61d5c038009cef85f2ddfaf616822dc4fec92845149b4`
* @returns current TradesCallBuilder instance
*/
forLiquidityPool(liquidityPoolId) {
return this.forEndpoint("liquidity_pools", liquidityPoolId);
}
}
exports.TradesCallBuilder = TradesCallBuilder;
//# sourceMappingURL=trades_call_builder.js.map