@shogun-sdk/money-legos
Version:
Shogun Money Legos: clients and types for quotes, memes, prices, balances, fees, validations, etc.
182 lines • 7.75 kB
JavaScript
import { InfoType } from '../../types/constants.js';
export class GeneralInfoAPI {
constructor(httpApi, symbolConversion, parent) {
Object.defineProperty(this, "httpApi", {
enumerable: true,
configurable: true,
writable: true,
value: httpApi
});
Object.defineProperty(this, "symbolConversion", {
enumerable: true,
configurable: true,
writable: true,
value: symbolConversion
});
Object.defineProperty(this, "parent", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.parent = parent;
}
async getAllMids(rawResponse = false) {
const response = await this.httpApi.makeRequest({ type: InfoType.ALL_MIDS });
if (rawResponse) {
return response;
}
else {
const convertedResponse = {};
for (const [key, value] of Object.entries(response)) {
const convertedKey = await this.symbolConversion.convertSymbol(key);
const convertedValue = parseFloat(value);
convertedResponse[convertedKey] = convertedValue;
}
return convertedResponse;
}
}
async getUserOpenOrders(user, rawResponse = false) {
await this.parent.ensureInitialized();
const response = await this.httpApi.makeRequest({ type: InfoType.OPEN_ORDERS, user: user });
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getFrontendOpenOrders(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({ type: InfoType.FRONTEND_OPEN_ORDERS, user: user }, 20);
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getUserFills(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({ type: InfoType.USER_FILLS, user: user }, 20);
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getUserFillsByTime(user, startTime, endTime, rawResponse = false) {
let params = {
user: user,
startTime: Math.round(startTime),
type: InfoType.USER_FILLS_BY_TIME,
};
if (endTime) {
params.endTime = Math.round(endTime);
}
const response = await this.httpApi.makeRequest(params, 20);
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getUserRateLimit(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({ type: InfoType.USER_RATE_LIMIT, user: user }, 20);
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getOrderStatus(user, oid, rawResponse = false) {
const response = await this.httpApi.makeRequest({ type: InfoType.ORDER_STATUS, user: user, oid: oid });
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getL2Book(coin, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.L2_BOOK,
coin: await this.symbolConversion.convertSymbol(coin, 'reverse'),
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getCandleSnapshot(coin, interval, startTime, endTime, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.CANDLE_SNAPSHOT,
req: {
coin: await this.symbolConversion.convertSymbol(coin, 'reverse'),
interval: interval,
startTime: startTime,
endTime: endTime,
},
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response, ['s']);
}
// Add these methods to src/rest/info/general.ts
async getMaxBuilderFee(user, builder, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.MAX_BUILDER_FEE,
user,
builder,
});
return rawResponse ? response : this.symbolConversion.convertToNumber(response);
}
async getHistoricalOrders(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.HISTORICAL_ORDERS,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getUserTwapSliceFills(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.USER_TWAP_SLICE_FILLS,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getSubAccounts(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.SUB_ACCOUNTS,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getVaultDetails(vaultAddress, user, rawResponse = false) {
const params = {
type: InfoType.VAULT_DETAILS,
vaultAddress,
};
if (user) {
params.user = user;
}
const response = await this.httpApi.makeRequest(params);
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getUserVaultEquities(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.USER_VAULT_EQUITIES,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getUserRole(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.USER_ROLE,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getUserPortfolio(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.PORTFOLIO,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getDelegations(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.DELEGATIONS,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getDelegatorSummary(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.DELEGATOR_SUMMARY,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getDelegatorHistory(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.DELEGATOR_HISTORY,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
async getDelegatorRewards(user, rawResponse = false) {
const response = await this.httpApi.makeRequest({
type: InfoType.DELEGATOR_REWARDS,
user,
});
return rawResponse ? response : await this.symbolConversion.convertResponse(response);
}
}
//# sourceMappingURL=general.js.map