@parifi/synthetix-sdk-ts
Version:
A Typescript SDK for interactions with the Synthetix protocol
138 lines (135 loc) • 3.58 kB
text/typescript
import { Address } from 'viem';
type PayDebtAndWithdraw = {
accountId?: bigint;
collateralIdOrName: number | string;
collateralAmount: number;
receiver: Address;
minToReceive: number;
path?: string;
collateral: Address;
};
interface MarketSummary {
marketId?: number;
marketName?: string;
feedId?: string;
skew?: number;
size?: number;
maxOpenInterest?: number;
interestRate?: number;
indexPrice?: number;
currentFundingRate?: number;
currentFundingVelocity?: number;
}
interface MarketMetadata {
marketName: string;
symbol: string;
feedId?: string;
}
interface MarketData {
marketId?: number;
marketName?: string;
symbol?: string;
feedId?: string;
skew?: number;
size?: number;
maxOpenInterest?: number;
interestRate?: number;
currentFundingRate?: number;
currentFundingVelocity?: number;
indexPrice?: number;
skewScale?: number;
maxFundingVelocity?: number;
makerFee?: number;
takerFee?: number;
maxMarketValue?: number;
}
interface SpotMarketData {
marketId: number;
contractAddress: string;
marketName?: string;
symbol?: string;
feedId?: string;
settlementStrategy?: SettlementStrategy;
}
interface SettlementStrategy {
marketId?: number;
strategyType?: number;
settlementDelay?: number;
settlementWindowDuration?: number;
priceVerificationContract?: string;
feedId?: string;
settlementReward?: number;
disabled?: boolean;
commitmentPriceDelay?: number;
}
interface FundingParameters {
marketId?: number;
skewScale?: number;
maxFundingVelocity?: number;
}
interface OrderFees {
marketId?: number;
makerFeeRatio?: number;
takerFeeRatio?: number;
}
interface MaxMarketValue {
marketId?: number;
maxMarketValue?: number;
}
interface OrderData {
marketId: number;
commitmentTime: number;
accountId: bigint;
sizeDelta: number;
settlementStrategyId: number;
acceptablePrice: number;
trackingCode: string;
referrer: string;
settlementStrategy?: SettlementStrategy;
}
interface CollateralData {
totalCollateralValue: number;
collateralBalances: Record<string, number>;
debt: number;
availableMargin: number;
withdrawableMargin: number;
initialMarginRequirement: number;
maintenanceMarginRequirement: number;
maxLiquidationReward: number;
}
interface OpenPositionData {
accountId: bigint;
marketId: number;
marketName: string;
totalPnl: number;
accruedFunding: number;
positionSize: number;
owedInterest: number;
}
interface OrderQuote {
orderSize: number;
indexPrice: number;
orderFees: number;
settlementRewardCost: number;
fillPrice: number;
requiredMargin?: number;
}
interface SettlementStrategyResponse {
strategyType?: number;
settlementDelay?: bigint;
settlementWindowDuration?: bigint;
priceVerificationContract?: string;
feedId?: string;
settlementReward?: bigint;
disabled?: boolean;
commitmentPriceDelay?: bigint;
}
interface MarketSummaryResponse {
skew: bigint;
size: bigint;
maxOpenInterest: bigint;
currentFundingRate: bigint;
currentFundingVelocity: bigint;
indexPrice: bigint;
}
export type { CollateralData, FundingParameters, MarketData, MarketMetadata, MarketSummary, MarketSummaryResponse, MaxMarketValue, OpenPositionData, OrderData, OrderFees, OrderQuote, PayDebtAndWithdraw, SettlementStrategy, SettlementStrategyResponse, SpotMarketData };