UNPKG

@fleupold/dex-contracts

Version:

Contracts for dFusion multi-token batch auction exchange

78 lines (77 loc) 1.62 kB
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[]; }