@fleupold/dex-contracts
Version:
Contracts for dFusion multi-token batch auction exchange
78 lines (77 loc) • 1.62 kB
TypeScript
import BN from "bn.js";
export interface Order {
buyToken: number;
buyAmount: BN;
sellToken: number;
sellAmount: BN;
user: number;
}
export interface Solution {
name?: string;
prices: BN[];
buyVolumes: BN[];
}
export interface TestCaseInput {
name?: string;
deposits?: Deposit[];
orders: Order[];
solutions: Solution[];
}
export interface Deposit {
amount: BN;
token: number;
user: number;
}
export interface Token {
id: number;
price: BN;
conservation: BN;
}
export interface ComputedOrder {
idx: number;
user: number;
buy: BN;
sell: BN;
utility: BN;
disregardedUtility: BN;
}
export interface ExecutedAmount {
buy: BN;
sell: BN;
}
export interface ObjectiveValueComputation {
orderExecutedAmounts: ExecutedAmount[];
orderTokenConservation: BN[][];
tokenConservation: BN[];
utilities: BN[];
disregardedUtilities: BN[];
totalUtility: BN;
totalDisregardedUtility: BN;
burntFees: BN;
result: BN;
}
export interface ComputedSolution {
name?: string;
tokens: Token[];
orders: ComputedOrder[];
objectiveValueComputation: ObjectiveValueComputation;
totalFees: BN;
totalUtility: BN;
burntFees: BN;
objectiveValue: BN;
}
export interface TestCase {
name?: string;
numTokens: number;
deposits: Deposit[];
orders: Order[];
solutions: ComputedSolution[];
}
export interface SolutionSubmission {
objectiveValue: BN;
owners: string[];
touchedorderIds: number[];
volumes: BN[];
prices: BN[];
tokenIdsForPrice: number[];
}