client-aftermath-ts-sdk
Version:
Client Aftermath TypeScript SDK
196 lines • 7.74 kB
TypeScript
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