tronsave-sdk
Version:
TypeScript SDK for Tronsave API to manage TRON blockchain resources
147 lines (145 loc) • 5.5 kB
TypeScript
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>;
}