UNPKG

@parifi/synthetix-sdk-ts

Version:

A Typescript SDK for interactions with the Synthetix protocol

62 lines (59 loc) 3.63 kB
import { GetPerpsQuote, CommitOrder, ModifyCollateral, PayDebt, CreateIsolateOrder, GrantPermission, GetPermissions, AccountPermissions } from './index.js'; import { MarketSummary, SettlementStrategy, FundingParameters, OrderFees, MaxMarketValue, OrderData, CollateralData, OpenPositionData, OrderQuote, MarketMetadata, MarketData } from '../../perps/interface.js'; import { MarketIdOrName, OverrideParamsWrite, WriteReturnType } from '../commonTypes.js'; import { Call3Value } from '../contractTypes.js'; import 'viem'; import '../../constants/perpsPermissions.js'; type MarketsBy<T> = Map<T, MarketData>; type MarketById = MarketsBy<number>; type MarketByName = MarketsBy<string>; type MarketMeta = Map<number, MarketMetadata>; interface PerpsRepository { marketMetadata: MarketMeta; marketsById: MarketById; marketsByName: MarketByName; marketsBySymbol: MarketByName; isErc7412Enabled: boolean; isMulticollateralEnabled: boolean; disabledMarkets: number[]; initPerps(): Promise<void>; resolveMarket(marketIdOrName: MarketIdOrName): Promise<{ resolvedMarketId: number; resolvedMarketName: string; }>; getAccountIds(address?: string, defaultAccountId?: bigint): Promise<bigint[]>; getMarketSummaries(marketIds: number[]): Promise<MarketSummary[]>; getMarketSummary(marketIdOrName: MarketIdOrName): Promise<MarketSummary>; getSettlementStrategy(settlementId: number, marketIdOrName: MarketIdOrName): Promise<SettlementStrategy>; getSettlementStrategies(marketIds: number[]): Promise<SettlementStrategy[]>; getFundingParameters(marketIds: number[]): Promise<FundingParameters[]>; getOrderFees(marketIds: number[]): Promise<OrderFees[]>; getMaxMarketValues(marketIds: number[]): Promise<MaxMarketValue[]>; getOrder(accountId?: bigint, fetchSettlementStrategy?: boolean): Promise<OrderData>; getMarginInfo(accountId?: bigint): Promise<CollateralData>; getCollateralBalances(accountId?: bigint): Promise<number>; getCanLiquidate(accountId?: bigint): Promise<boolean>; getCanLiquidates(accountIds: bigint[]): Promise<{ accountId: bigint; canLiquidate: boolean; }[]>; getOpenPosition(marketIdOrName: MarketIdOrName, accountId?: bigint): Promise<OpenPositionData>; getOpenPositions(marketIdsOrNames: MarketIdOrName[], accountIds?: bigint): Promise<OpenPositionData[]>; getOpenPositionsMulticall(positions: { accountId: bigint; marketIdOrName: MarketIdOrName; }[]): Promise<OpenPositionData[]>; getQuote(data: GetPerpsQuote): Promise<OrderQuote>; getDebt(accountId?: bigint): Promise<number>; prepareOracleCall(marketIds: number[]): Promise<Call3Value[]>; createAccount(accountId?: bigint, override?: OverrideParamsWrite): Promise<WriteReturnType>; commitOrder(data: CommitOrder, override?: OverrideParamsWrite): Promise<WriteReturnType>; modifyCollateral(data: ModifyCollateral, override?: OverrideParamsWrite): Promise<WriteReturnType>; payDebt(data: PayDebt, override?: OverrideParamsWrite): Promise<WriteReturnType>; liquidate(accountId?: bigint, override?: OverrideParamsWrite): Promise<WriteReturnType | number>; settleOrder(accountId?: bigint, override?: OverrideParamsWrite): Promise<WriteReturnType>; createIsolatedAccountOrder(data: CreateIsolateOrder, override?: OverrideParamsWrite): Promise<WriteReturnType>; grantPermission(data: GrantPermission, override?: OverrideParamsWrite): Promise<WriteReturnType>; getAccountPermissions(data: GetPermissions): Promise<AccountPermissions[]>; } export type { PerpsRepository };