Merge branch 'development' into feat/asset-swapper/rfqt-indicative-without-takerAddress

This commit is contained in:
F. Eugene Aumson 2020-08-31 12:11:00 -04:00
commit db0f3a8780
No known key found for this signature in database
GPG Key ID: 23E6737B1374A24A
4 changed files with 36 additions and 19 deletions

View File

@ -81,6 +81,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
}
]
},

View File

@ -46,6 +46,7 @@ export const DEFAULT_GET_MARKET_ORDERS_OPTS: GetMarketOrdersOpts = {
gasSchedule: {},
allowFallback: true,
shouldBatchBridgeOrders: true,
shouldGenerateQuoteReport: false,
};
/**

View File

@ -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,15 +538,17 @@ export class MarketOperationUtils {
);
if (bestTwoHopQuote && bestTwoHopRate.isGreaterThan(optimalPathRate)) {
const twoHopOrders = createOrdersFromTwoHopSample(bestTwoHopQuote, orderOpts);
const twoHopQuoteReport = generateQuoteReport(
side,
_.flatten(dexQuotes),
twoHopQuotes,
nativeOrders,
orderFillableAmounts,
bestTwoHopQuote,
opts.quoteRequestor,
);
const twoHopQuoteReport = opts.shouldGenerateQuoteReport
? generateQuoteReport(
side,
_.flatten(dexQuotes),
twoHopQuotes,
nativeOrders,
orderFillableAmounts,
bestTwoHopQuote,
opts.quoteRequestor,
)
: undefined;
return { optimizedOrders: twoHopOrders, quoteReport: twoHopQuoteReport, isTwoHop: true };
}
@ -574,15 +580,17 @@ export class MarketOperationUtils {
}
}
const optimizedOrders = createOrdersFromPath(optimalPath, orderOpts);
const quoteReport = generateQuoteReport(
side,
_.flatten(dexQuotes),
twoHopQuotes,
nativeOrders,
orderFillableAmounts,
_.flatten(optimizedOrders.map(order => order.fills)),
opts.quoteRequestor,
);
const quoteReport = opts.shouldGenerateQuoteReport
? generateQuoteReport(
side,
_.flatten(dexQuotes),
twoHopQuotes,
nativeOrders,
orderFillableAmounts,
_.flatten(optimizedOrders.map(order => order.fills)),
opts.quoteRequestor,
)
: undefined;
return { optimizedOrders, quoteReport, isTwoHop: false };
}

View File

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