UNPKG

@whworjs7946/clmsr-v0

Version:

TypeScript SDK for CLMSR market calculations and utilities

72 lines (71 loc) 3.14 kB
import { MarketDistribution, Market, Position, OpenCostResult, IncreaseCostResult, DecreaseProceedsResult, CloseProceedsResult, ClaimResult, QuantityFromCostResult, USDCAmount, Quantity, Tick } from "./types"; export * from "./types"; export { toWAD, toMicroUSDC } from "./utils/math"; /** * CLMSR SDK - 컨트랙트 뷰함수들과 역함수 제공 */ export declare class CLMSRSDK { /** * calculateOpenCost - 새 포지션 열기 비용 계산 */ calculateOpenCost(lowerTick: Tick, upperTick: Tick, quantity: Quantity, distribution: MarketDistribution, market: Market): OpenCostResult; /** * calculateIncreaseCost - 기존 포지션 증가 비용 계산 */ calculateIncreaseCost(position: Position, additionalQuantity: Quantity, distribution: MarketDistribution, market: Market): IncreaseCostResult; /** * Decrease position 비용 계산 */ calculateDecreaseProceeds(position: Position, sellQuantity: Quantity, distribution: MarketDistribution, market: Market): DecreaseProceedsResult; /** * Close position 비용 계산 */ calculateCloseProceeds(position: Position, distribution: MarketDistribution, market: Market): CloseProceedsResult; /** * Claim amount 계산 */ calculateClaim(position: Position, settlementTick: Tick): ClaimResult; /** * Sell position의 예상 수익 계산 * @param position 포지션 정보 * @param sellQuantity 매도할 수량 * @param distribution Current market distribution * @param market Market parameters * @returns 예상 수익 */ calculateSellProceeds(position: Position, sellQuantity: Quantity, distribution: MarketDistribution, market: Market): DecreaseProceedsResult; /** * 주어진 비용으로 살 수 있는 수량 계산 (역산) * @param lowerTick Lower tick bound * @param upperTick Upper tick bound * @param cost 목표 비용 (6 decimals) * @param distribution Current market distribution * @param market Market parameters * @returns 구매 가능한 수량 */ calculateQuantityFromCost(lowerTick: Tick, upperTick: Tick, cost: USDCAmount, distribution: MarketDistribution, market: Market): QuantityFromCostResult; /** * 시장별 최대 수량 한계 검증 (컨트랙트와 동일한 제한) * @param quantity 검증할 수량 (6 decimals) * @param alpha 유동성 파라미터 α (18 decimals WAD) * @throws Error if quantity exceeds market limit */ private _assertQuantityWithinLimit; /** * 내부 헬퍼: 매도 수익 계산 (코드 중복 제거) * @param lowerTick Lower tick bound * @param upperTick Upper tick bound * @param sellQuantity 매도할 수량 * @param positionQuantity 현재 포지션 수량 (검증용) * @param distribution Current market distribution * @param market Market parameters * @returns 매도 수익 */ private _calcSellProceeds; private validateTickRange; private getAffectedSum; } /** * Create CLMSR SDK instance */ export declare function createCLMSRSDK(): CLMSRSDK;