Initial Commit

This commit is contained in:
2026-02-23 09:49:45 +00:00
commit d25ed7cb9d
12 changed files with 1805 additions and 0 deletions

53
src/filter.d.ts vendored Normal file
View File

@@ -0,0 +1,53 @@
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;
}