@parifi/synthetix-sdk-ts
Version:
A Typescript SDK for interactions with the Synthetix protocol
62 lines (59 loc) • 3.64 kB
text/typescript
import { GetPerpsQuote, CommitOrder, ModifyCollateral, PayDebt, CreateIsolateOrder, GrantPermission, GetPermissions, AccountPermissions } from './index.mjs';
import { MarketSummary, SettlementStrategy, FundingParameters, OrderFees, MaxMarketValue, OrderData, CollateralData, OpenPositionData, OrderQuote, MarketMetadata, MarketData } from '../../perps/interface.mjs';
import { MarketIdOrName, OverrideParamsWrite, WriteReturnType } from '../commonTypes.mjs';
import { Call3Value } from '../contractTypes.mjs';
import 'viem';
import '../../constants/perpsPermissions.mjs';
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 };