UNPKG

client-aftermath-ts-sdk

Version:
196 lines 7.74 kB
import { Caller } from "../../general/utils/caller"; import { ApiPerpetualsPreviewOrderBody, Balance, PerpetualsAccountCap, PerpetualsAccountObject, PerpetualsMarketId, PerpetualsOrderId, PerpetualsOrderSide, PerpetualsPosition, SdkPerpetualsLimitOrderInputs, SdkPerpetualsMarketOrderInputs, SdkPerpetualsSLTPOrderInputs, SuiAddress, ObjectId, PerpetualsOrderData, CoinDecimal, Percentage, ObjectVersion, ApiDataWithCursorBody, Timestamp, PerpetualsAccountCollateralChangesWithCursor, PerpetualsAccountTradesWithCursor, ApiPerpetualsSetPositionLeverageBody, ApiPerpetualsPreviewCancelOrdersBody, PackageId, ApiPerpetualsPreviewReduceOrdersBody, CallerConfig } from "../../types"; import { PerpetualsMarket } from "./perpetualsMarket"; import { Transaction } from "@mysten/sui/transactions"; export declare class PerpetualsAccount extends Caller { readonly account: PerpetualsAccountObject; readonly accountCap: PerpetualsAccountCap; private static readonly constants; constructor(account: PerpetualsAccountObject, accountCap: PerpetualsAccountCap, config?: CallerConfig); getDepositCollateralTx(inputs: { packageId: PackageId; walletAddress: SuiAddress; amount: Balance; isSponsoredTx?: boolean; }): Promise<Transaction>; getWithdrawCollateralTx(inputs: { walletAddress: SuiAddress; amount: Balance; }): Promise<Transaction>; getAllocateCollateralTx(inputs: { walletAddress: SuiAddress; market: PerpetualsMarket; amount: Balance; }): Promise<Transaction>; getDeallocateCollateralTx(inputs: { walletAddress: SuiAddress; market: PerpetualsMarket; amount: Balance; }): Promise<Transaction>; getTransferCollateralTx(inputs: { walletAddress: SuiAddress; amount: Balance; toAccountCapId: ObjectId; }): Promise<Transaction>; getPlaceMarketOrderTx(inputs: SdkPerpetualsMarketOrderInputs): Promise<Transaction>; getPlaceLimitOrderTx(inputs: SdkPerpetualsLimitOrderInputs): Promise<Transaction>; getPlaceSLTPOrder(inputs: SdkPerpetualsSLTPOrderInputs): Promise<Transaction>; getCancelOrderTx(inputs: { packageId: PackageId; walletAddress: SuiAddress; marketId: PerpetualsMarketId; marketInitialSharedVersion: ObjectVersion; basePriceFeedId: ObjectId; collateralPriceFeedId: ObjectId; side: PerpetualsOrderSide; orderId: PerpetualsOrderId; collateralChange: Balance; }): Promise<Transaction>; getCancelOrdersTx(inputs: { walletAddress: SuiAddress; orderDatas: { packageId: PackageId; marketId: PerpetualsMarketId; marketInitialSharedVersion: ObjectVersion; basePriceFeedId: ObjectId; collateralPriceFeedId: ObjectId; side: PerpetualsOrderSide; orderId: PerpetualsOrderId; collateralChange: Balance; }[]; }): Promise<Transaction>; getReduceOrdersTx(inputs: { walletAddress: SuiAddress; market: PerpetualsMarket; collateralChange: Balance; orderDatas: { orderId: PerpetualsOrderId; sizeToSubtract: bigint; }[]; }): Promise<Transaction>; getClosePositionTx(inputs: { size: bigint; walletAddress: SuiAddress; market: PerpetualsMarket; orderDatas: PerpetualsOrderData[]; indexPrice: number; collateralPrice: number; }): Promise<Transaction>; setPositionLeverage(inputs: ApiPerpetualsSetPositionLeverageBody): Promise<boolean>; getPositionLeverages(inputs: { marketIds: PerpetualsMarketId[]; }): Promise<number[]>; setPositionLeverageMessageToSign(inputs: { marketId: PerpetualsMarketId; leverage: number; }): { account_id: number; market_id: PerpetualsMarketId; leverage: number; }; getOrderPreview(inputs: Omit<ApiPerpetualsPreviewOrderBody, "accountId" | "collateralCoinType" | "accountCapId">, abortSignal?: AbortSignal): Promise<{ error: string; } | { positionAfterOrder: PerpetualsPosition; priceSlippage: number; percentSlippage: Percentage; filledSize: number; filledSizeUsd: number; postedSize: number; postedSizeUsd: number; collateralChange: Balance; executionPrice: number; }>; getCancelOrdersPreview(inputs: Omit<ApiPerpetualsPreviewCancelOrdersBody, "accountId" | "collateralCoinType">): Promise<{ marketIdsToPositionAfterCancelOrders: Record<PerpetualsMarketId, PerpetualsPosition>; collateralChange: Balance; } | { error: string; }>; getReduceOrdersPreview(inputs: Omit<ApiPerpetualsPreviewReduceOrdersBody, "accountId" | "collateralCoinType" | "orderIds" | "sizesToSubtract"> & { orderDatas: { orderId: PerpetualsOrderId; sizeToSubtract: bigint; }[]; }): Promise<{ positionAfterReduceOrders: PerpetualsPosition; collateralChange: Balance; } | { error: string; }>; getOrderDatas(): Promise<PerpetualsOrderData[]>; getCollateralHistory(inputs: ApiDataWithCursorBody<Timestamp>): Promise<PerpetualsAccountCollateralChangesWithCursor>; getOrderHistory(inputs: ApiDataWithCursorBody<Timestamp>): Promise<PerpetualsAccountTradesWithCursor>; calcFreeCollateralForPosition: (inputs: { market: PerpetualsMarket; indexPrice: number; collateralPrice: number; position?: PerpetualsPosition; }) => number; calcMarginRatioAndLeverageForPosition: (inputs: { market: PerpetualsMarket; indexPrice: number; collateralPrice: number; position?: PerpetualsPosition; }) => { marginRatio: number; leverage: number; }; calcUnrealizedFundings: (inputs: { markets: PerpetualsMarket[]; }) => number; calcUnrealizedFundingsForPosition: (inputs: { market: PerpetualsMarket; position?: PerpetualsPosition; }) => number; calcPnLAndMarginForPosition: (inputs: { market: PerpetualsMarket; indexPrice: number; position?: PerpetualsPosition; }) => { pnl: number; minInitialMargin: number; minMaintenanceMargin: number; netAbsBaseValue: number; }; calcLiquidationPriceForPosition: (inputs: { market: PerpetualsMarket; indexPrice: number; collateralPrice: number; position?: PerpetualsPosition; }) => number; calcFreeMarginUsdForPosition: (inputs: { market: PerpetualsMarket; indexPrice: number; collateralPrice: number; position?: PerpetualsPosition; }) => number; calcAccountState: (inputs: { markets: PerpetualsMarket[]; indexPrices: number[]; collateralPrice: number; }) => { accountEquity: number; totalPnL: number; totalFunding: number; totalCollateralAllocated: number; }; positionForMarketId(inputs: { marketId: PerpetualsMarketId; }): PerpetualsPosition | undefined; collateral(): number; collateralDecimals(): CoinDecimal; collateralBalance(): Balance; closePositionTxInputs: (inputs: { size: bigint; walletAddress: SuiAddress; market: PerpetualsMarket; orderDatas: PerpetualsOrderData[]; indexPrice: number; collateralPrice: number; }) => SdkPerpetualsMarketOrderInputs; emptyPosition: (inputs: { market: PerpetualsMarket; }) => PerpetualsPosition; } //# sourceMappingURL=perpetualsAccount.d.ts.map