54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
export interface SettlementSummary {
|
|
liquidated: boolean;
|
|
inputSats: bigint;
|
|
outputSats: bigint;
|
|
durationInSeconds: number;
|
|
takerLeverage: number;
|
|
makerLeverage: number;
|
|
percentageChange: number;
|
|
oraclePublicKey: string;
|
|
settlementTimestamp: number;
|
|
}
|
|
|
|
export interface InterestingContractResult {
|
|
isInteresting: boolean;
|
|
reason?: string;
|
|
summary: SettlementSummary;
|
|
}
|
|
|
|
export interface InterestingSettlementFilterOptions {
|
|
difficultyFilterExponent?: number;
|
|
difficultyAdjustmentInterval?: number;
|
|
baseLiquidationThresholdSats?: bigint;
|
|
basePercentageThreshold?: number;
|
|
difficultyIncrementRate?: number;
|
|
minDifficultyFilterExponent?: number;
|
|
maxDifficultyFilterExponent?: number;
|
|
}
|
|
|
|
export class InterestingSettlementFilter {
|
|
difficultyFilterExponent: number;
|
|
difficultyIncrementRate: number;
|
|
minDifficultyFilterExponent: number;
|
|
maxDifficultyFilterExponent: number;
|
|
|
|
difficultyAdjustmentInterval: number;
|
|
|
|
baseLiquidationThresholdSats: bigint;
|
|
basePercentageThreshold: number;
|
|
|
|
public constructor(filterOptions?: InterestingSettlementFilterOptions);
|
|
public start(): void;
|
|
public stop(): void;
|
|
public incrementDifficulty(steps?: number): void;
|
|
public decrementDifficulty(steps?: number): void;
|
|
public getContractOutcome(
|
|
contractData: Record<string, unknown>,
|
|
automatedPayoutData: Record<string, unknown>,
|
|
): SettlementSummary;
|
|
public isInterestingSettlement(
|
|
contractData: Record<string, unknown>,
|
|
automatedPayoutData: Record<string, unknown>,
|
|
): InterestingContractResult;
|
|
}
|