Files
SS-Difficulty-Adjustment/src/filter.d.ts
2026-02-23 09:49:45 +00:00

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;
}