chore: Optional quote report generation (#2687)
This commit is contained in:
parent
a2f0d5eedf
commit
514db24ceb
@ -77,6 +77,10 @@
|
||||
{
|
||||
"note": "Re-worked `Kyber` quotes supporting multiple reserves",
|
||||
"pr": 2683
|
||||
},
|
||||
{
|
||||
"note": "Enable Quote Report to be generated with an option `shouldGenerateQuoteReport`. Default is `false`",
|
||||
"pr": 2687
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -46,6 +46,7 @@ export const DEFAULT_GET_MARKET_ORDERS_OPTS: GetMarketOrdersOpts = {
|
||||
gasSchedule: {},
|
||||
allowFallback: true,
|
||||
shouldBatchBridgeOrders: true,
|
||||
shouldGenerateQuoteReport: false,
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -342,6 +342,7 @@ export class MarketOperationUtils {
|
||||
allowFallback: _opts.allowFallback,
|
||||
shouldBatchBridgeOrders: _opts.shouldBatchBridgeOrders,
|
||||
quoteRequestor: _opts.rfqt ? _opts.rfqt.quoteRequestor : undefined,
|
||||
shouldGenerateQuoteReport: _opts.shouldGenerateQuoteReport,
|
||||
});
|
||||
}
|
||||
|
||||
@ -368,6 +369,7 @@ export class MarketOperationUtils {
|
||||
allowFallback: _opts.allowFallback,
|
||||
shouldBatchBridgeOrders: _opts.shouldBatchBridgeOrders,
|
||||
quoteRequestor: _opts.rfqt ? _opts.rfqt.quoteRequestor : undefined,
|
||||
shouldGenerateQuoteReport: _opts.shouldGenerateQuoteReport,
|
||||
});
|
||||
}
|
||||
|
||||
@ -455,6 +457,7 @@ export class MarketOperationUtils {
|
||||
feeSchedule: _opts.feeSchedule,
|
||||
allowFallback: _opts.allowFallback,
|
||||
shouldBatchBridgeOrders: _opts.shouldBatchBridgeOrders,
|
||||
shouldGenerateQuoteReport: false,
|
||||
},
|
||||
);
|
||||
return optimizedOrders;
|
||||
@ -478,6 +481,7 @@ export class MarketOperationUtils {
|
||||
allowFallback?: boolean;
|
||||
shouldBatchBridgeOrders?: boolean;
|
||||
quoteRequestor?: QuoteRequestor;
|
||||
shouldGenerateQuoteReport?: boolean;
|
||||
},
|
||||
): Promise<OptimizerResult> {
|
||||
const {
|
||||
@ -534,7 +538,8 @@ export class MarketOperationUtils {
|
||||
);
|
||||
if (bestTwoHopQuote && bestTwoHopRate.isGreaterThan(optimalPathRate)) {
|
||||
const twoHopOrders = createOrdersFromTwoHopSample(bestTwoHopQuote, orderOpts);
|
||||
const twoHopQuoteReport = generateQuoteReport(
|
||||
const twoHopQuoteReport = opts.shouldGenerateQuoteReport
|
||||
? generateQuoteReport(
|
||||
side,
|
||||
_.flatten(dexQuotes),
|
||||
twoHopQuotes,
|
||||
@ -542,7 +547,8 @@ export class MarketOperationUtils {
|
||||
orderFillableAmounts,
|
||||
bestTwoHopQuote,
|
||||
opts.quoteRequestor,
|
||||
);
|
||||
)
|
||||
: undefined;
|
||||
return { optimizedOrders: twoHopOrders, quoteReport: twoHopQuoteReport, isTwoHop: true };
|
||||
}
|
||||
|
||||
@ -574,7 +580,8 @@ export class MarketOperationUtils {
|
||||
}
|
||||
}
|
||||
const optimizedOrders = createOrdersFromPath(optimalPath, orderOpts);
|
||||
const quoteReport = generateQuoteReport(
|
||||
const quoteReport = opts.shouldGenerateQuoteReport
|
||||
? generateQuoteReport(
|
||||
side,
|
||||
_.flatten(dexQuotes),
|
||||
twoHopQuotes,
|
||||
@ -582,7 +589,8 @@ export class MarketOperationUtils {
|
||||
orderFillableAmounts,
|
||||
_.flatten(optimizedOrders.map(order => order.fills)),
|
||||
opts.quoteRequestor,
|
||||
);
|
||||
)
|
||||
: undefined;
|
||||
return { optimizedOrders, quoteReport, isTwoHop: false };
|
||||
}
|
||||
|
||||
|
@ -275,6 +275,10 @@ export interface GetMarketOrdersOpts {
|
||||
* order. Defaults to `true`.
|
||||
*/
|
||||
shouldBatchBridgeOrders: boolean;
|
||||
/**
|
||||
* Whether to generate a quote report
|
||||
*/
|
||||
shouldGenerateQuoteReport: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -294,7 +298,7 @@ export interface SourceQuoteOperation<TFillData extends FillData = FillData>
|
||||
export interface OptimizerResult {
|
||||
optimizedOrders: OptimizedMarketOrder[];
|
||||
isTwoHop: boolean;
|
||||
quoteReport: QuoteReport;
|
||||
quoteReport?: QuoteReport;
|
||||
}
|
||||
|
||||
export type MarketDepthSide = Array<Array<DexSample<FillData>>>;
|
||||
|
Loading…
x
Reference in New Issue
Block a user