UNPKG

tronsave-sdk

Version:

TypeScript SDK for Tronsave API to manage TRON blockchain resources

147 lines (145 loc) 5.5 kB
import { SDKConfig } from "./types/common"; import { ITronsaveSDK } from "./TronsaveSDK.i"; import { OrderOptionParams, OrderInfoParams, BuyResourceResponse } from "./types/buyResource"; import { EstimateBuyResourceResponse } from "./types/estimateBuyResource"; import { ExtendRequestParams } from "./types/extendRequest"; import { ExtendRequestResponse } from "./types/extendRequest"; import { GetExtendableDelegatesParams } from "./types/getExtendableDelegates"; import { GetExtendableDelegatesResponse } from "./types/getExtendableDelegates"; import { GetUserInfoResponse } from "./types/getUserInfo"; import { OrderResponse, OrdersResponse } from "./types/order"; import { OrderBookQuery, OrderBookResponse } from "./types/orderBook"; /** * Main SDK class for interacting with the Tronsave API */ export declare class TronsaveSDK implements ITronsaveSDK { private baseUrl; private apiKey?; /** * Initialize the SDK with configuration * @param config SDK configuration options */ constructor(config?: SDKConfig); /** * Helper method to perform fetch with timeout and error handling */ private Fetch; /** * Buy resource with standard parameters * @param orderInfo Buy resource order info - {@link OrderInfoParams} * @param options Optional: Options for the buy resource - {@link OrderOptionParams} * @returns information about the order - {@link BuyResourceResponse} * @example * const { orderId } = await tronsaveSDK.buyResource( { receiver: "TRx...Jhd", resourceType: "ENERGY", unitPrice: 'MEDIUM', durationSec: 259200, resourceAmount: 32000, }, { allowPartialFill: true, maxPriceAccepted: 100, } ); */ buyResource(orderInfo: OrderInfoParams, options?: OrderOptionParams, isSmartMatching?: boolean): Promise<BuyResourceResponse>; /** * Estimate buy resource with standard parameters * @param orderInfo Buy resource order info - {@link OrderInfoParams} * @param options Optional: Options for the buy resource - {@link OrderOptionParams} * @returns estimated data - {@link EstimateBuyResourceResponse} * * @example * const { unitPrice, durationSec, estimateTrx, availableResource } = await tronsaveSDK.estimateBuyResource( { receiver: "TRx...Jhd", resourceType: "ENERGY", unitPrice: 'MEDIUM', durationSec: 259200, resourceAmount: 32000, }, { allowPartialFill: true, maxPriceAccepted: 100, } ); */ estimateBuyResource(orderInfo: OrderInfoParams, options?: OrderOptionParams): Promise<EstimateBuyResourceResponse>; /** * Extend request with standard parameters * @param extendRequestData - {@link ExtendRequestParams} * @returns information about the order - {@link ExtendRequestResponse} * * @example * const { orderId } = await tronsaveSDK.extendRequest( { receiver: "TRx...Jhd", extendData: [{ delegator: "TRx...Jfv", extendTo: 1715222400, isExtend: true, extraAmount: 0, }] } ); */ extendRequest(extendRequestData: ExtendRequestParams): Promise<ExtendRequestResponse>; /** * Get extendable delegates * @param request - {@link GetExtendableDelegatesParams} * @returns information about the extendable delegates - {@link GetExtendableDelegatesResponse} * * @example * const extendableDelegates = await tronsaveSDK.getExtendableDelegates({ receiver: "TRx...Jhd", extendTo: 1715222400, resourceType: "ENERGY", maxPriceAccepted: 100, }); * */ getExtendableDelegates(request: GetExtendableDelegatesParams): Promise<GetExtendableDelegatesResponse>; /** * Get user info by Api key * @returns Information about the internal account - {@link GetUserInfoResponse} * * @example * const userInfo = await tronsaveSDK.getUserInfo(); */ getUserInfo(): Promise<GetUserInfoResponse>; /** * Get order details by Api key * @param orderId Order id * @returns Order details - {@link OrderResponse} * * @example * const order = await tronsaveSDK.getOrder("67ce9ea9dede...8fa2e058"); */ getOrder(orderId: string): Promise<OrderResponse>; /** * Get orders history * @param page - Page number. Default is 0, * @param limit - Limit number. Default is 10, Maximum is 50 * @returns Orders - {@link OrdersResponse} * * @example * const orders = await tronsaveSDK.getOrders(1, 10); */ getOrders(page?: number, limit?: number): Promise<OrdersResponse>; /** * Get order book * @param query Optional: query parameters - {@link OrderBookQuery} * @returns Order book data - {@link OrderBookResponse} * * @example * const orderBook = await getOrderBook({ * resourceType: 'ENERGY', * address: 'TRx...Jhd', * minDelegateAmount: 32000, * durationSec: 900 * }); */ getOrderBook(query?: OrderBookQuery): Promise<OrderBookResponse>; }