refactor more code
This commit is contained in:
@@ -32,7 +32,7 @@ export class CreateOrderUtils {
|
||||
outputToken: string,
|
||||
path: CollapsedFill[],
|
||||
bridgeSlippage: number,
|
||||
liquidityPoolAddress?: string,
|
||||
liquidityProviderAddress?: string,
|
||||
): OptimizedMarketOrder[] {
|
||||
const orders: OptimizedMarketOrder[] = [];
|
||||
for (const fill of path) {
|
||||
@@ -43,7 +43,7 @@ export class CreateOrderUtils {
|
||||
createBridgeOrder(
|
||||
orderDomain,
|
||||
fill,
|
||||
this._getBridgeAddressFromSource(fill.source, liquidityPoolAddress),
|
||||
this._getBridgeAddressFromSource(fill.source, liquidityProviderAddress),
|
||||
outputToken,
|
||||
inputToken,
|
||||
bridgeSlippage,
|
||||
@@ -61,7 +61,7 @@ export class CreateOrderUtils {
|
||||
outputToken: string,
|
||||
path: CollapsedFill[],
|
||||
bridgeSlippage: number,
|
||||
liquidityPoolAddress?: string,
|
||||
liquidityProviderAddress?: string,
|
||||
): OptimizedMarketOrder[] {
|
||||
const orders: OptimizedMarketOrder[] = [];
|
||||
for (const fill of path) {
|
||||
@@ -72,7 +72,7 @@ export class CreateOrderUtils {
|
||||
createBridgeOrder(
|
||||
orderDomain,
|
||||
fill,
|
||||
this._getBridgeAddressFromSource(fill.source, liquidityPoolAddress),
|
||||
this._getBridgeAddressFromSource(fill.source, liquidityProviderAddress),
|
||||
inputToken,
|
||||
outputToken,
|
||||
bridgeSlippage,
|
||||
@@ -84,7 +84,7 @@ export class CreateOrderUtils {
|
||||
return orders;
|
||||
}
|
||||
|
||||
private _getBridgeAddressFromSource(source: ERC20BridgeSource, liquidityPoolAddress?: string): string {
|
||||
private _getBridgeAddressFromSource(source: ERC20BridgeSource, liquidityProviderAddress?: string): string {
|
||||
switch (source) {
|
||||
case ERC20BridgeSource.Eth2Dai:
|
||||
return this._contractAddress.eth2DaiBridge;
|
||||
@@ -97,13 +97,13 @@ export class CreateOrderUtils {
|
||||
case ERC20BridgeSource.CurveUsdcDaiUsdtTusd:
|
||||
return this._contractAddress.curveBridge;
|
||||
case ERC20BridgeSource.LiquidityProvider:
|
||||
if (liquidityPoolAddress === undefined) {
|
||||
if (liquidityProviderAddress === undefined) {
|
||||
throw new Error(
|
||||
'Cannot create a LiquidityProvider order without a LiquidityProvider pool address.',
|
||||
);
|
||||
}
|
||||
assert.isETHAddressHex('liquidityPoolAddress', liquidityPoolAddress);
|
||||
return liquidityPoolAddress;
|
||||
assert.isETHAddressHex('liquidityProviderAddress', liquidityProviderAddress);
|
||||
return liquidityProviderAddress;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ export class MarketOperationUtils {
|
||||
const [makerToken, takerToken] = getOrderTokens(nativeOrders[0]);
|
||||
const [
|
||||
fillableAmounts,
|
||||
liquidityPoolAddress,
|
||||
liquidityProviderAddress,
|
||||
ethToTakerAssetRate,
|
||||
dexQuotes,
|
||||
] = await this._sampler.executeAsync(
|
||||
@@ -209,7 +209,7 @@ export class MarketOperationUtils {
|
||||
dexQuotes,
|
||||
ethToTakerAssetRate,
|
||||
_opts,
|
||||
liquidityPoolAddress,
|
||||
liquidityProviderAddress,
|
||||
);
|
||||
if (!signedOrderWithFillableAmounts) {
|
||||
throw new Error(AggregationError.NoOptimalPath);
|
||||
@@ -286,7 +286,7 @@ export class MarketOperationUtils {
|
||||
dexQuotes: DexSample[][],
|
||||
ethToTakerAssetRate: BigNumber,
|
||||
opts: GetMarketOrdersOpts,
|
||||
liquidityPoolAddress?: string | undefined,
|
||||
liquidityProviderAddress?: string,
|
||||
): OptimizedMarketOrder[] | undefined {
|
||||
const nativeOrdersWithFillableAmounts = createSignedOrdersWithFillableAmounts(
|
||||
nativeOrders,
|
||||
@@ -329,7 +329,7 @@ export class MarketOperationUtils {
|
||||
outputToken,
|
||||
collapsePath(optimalPath, true),
|
||||
opts.bridgeSlippage,
|
||||
liquidityPoolAddress,
|
||||
liquidityProviderAddress,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -431,9 +431,9 @@ describe('DexSampler tests', () => {
|
||||
}
|
||||
|
||||
expect(sellQuotes.length).to.eql(1);
|
||||
const iquidityPoolSellQuotes: DexSample[] = sellQuotes[0];
|
||||
expect(iquidityPoolSellQuotes.length).to.eql(3);
|
||||
for (const quote of iquidityPoolSellQuotes) {
|
||||
const liquidityPoolSellQuotes: DexSample[] = sellQuotes[0];
|
||||
expect(liquidityPoolSellQuotes.length).to.eql(3);
|
||||
for (const quote of liquidityPoolSellQuotes) {
|
||||
expect(quote.source).to.bignumber.eql(ERC20BridgeSource.LiquidityProvider);
|
||||
expect(quote.input.minus(1)).to.bignumber.eql(quote.output);
|
||||
}
|
||||
|
||||
@@ -217,7 +217,7 @@ describe('MarketOperationUtils tests', () => {
|
||||
}
|
||||
|
||||
function getLiquidityProviderFromRegistryAndReturnCallParameters(
|
||||
liquidityPoolAddress: string = NULL_ADDRESS,
|
||||
liquidityProviderAddress: string = NULL_ADDRESS,
|
||||
): [
|
||||
{ registryAddress?: string; takerToken?: string; makerToken?: string },
|
||||
GetLiquidityProviderFromRegistryOperation
|
||||
@@ -231,7 +231,7 @@ describe('MarketOperationUtils tests', () => {
|
||||
callArgs.makerToken = makerToken;
|
||||
callArgs.takerToken = takerToken;
|
||||
callArgs.registryAddress = registryAddress;
|
||||
return liquidityPoolAddress;
|
||||
return liquidityProviderAddress;
|
||||
};
|
||||
return [callArgs, fn];
|
||||
}
|
||||
@@ -877,12 +877,12 @@ describe('MarketOperationUtils tests', () => {
|
||||
|
||||
it('is able to create a order from LiquidityProvider', async () => {
|
||||
const registryAddress = randomAddress();
|
||||
const liquidityPoolAddress = randomAddress();
|
||||
const liquidityProviderAddress = randomAddress();
|
||||
const xAsset = randomAddress();
|
||||
const yAsset = randomAddress();
|
||||
const toSell = Web3Wrapper.toBaseUnitAmount(10, 18);
|
||||
|
||||
const [getSellQuiotesParams, getSellQuotesFn] = callTradeOperationAndRetainLiquidityProviderParams(
|
||||
const [getSellQuotesParams, getSellQuotesFn] = callTradeOperationAndRetainLiquidityProviderParams(
|
||||
createGetMultipleSellQuotesOperationFromRates,
|
||||
{
|
||||
[ERC20BridgeSource.LiquidityProvider]: createDecreasingRates(5),
|
||||
@@ -891,9 +891,9 @@ describe('MarketOperationUtils tests', () => {
|
||||
const [
|
||||
getLiquidityProviderParams,
|
||||
getLiquidityProviderFn,
|
||||
] = getLiquidityProviderFromRegistryAndReturnCallParameters(liquidityPoolAddress);
|
||||
] = getLiquidityProviderFromRegistryAndReturnCallParameters(liquidityProviderAddress);
|
||||
replaceSamplerOps({
|
||||
getOrderFillableTakerAmounts: () => [new BigNumber(0)],
|
||||
getOrderFillableTakerAmounts: () => [constants.ZERO_AMOUNT],
|
||||
getSellQuotes: getSellQuotesFn,
|
||||
getLiquidityProviderFromRegistry: getLiquidityProviderFn,
|
||||
});
|
||||
@@ -915,17 +915,17 @@ describe('MarketOperationUtils tests', () => {
|
||||
{ excludedSources: SELL_SOURCES, numSamples: 4 },
|
||||
);
|
||||
expect(result.length).to.eql(1);
|
||||
expect(result[0].makerAddress).to.eql(liquidityPoolAddress);
|
||||
expect(result[0].makerAddress).to.eql(liquidityProviderAddress);
|
||||
|
||||
// tslint:disable-next-line:no-unnecessary-type-assertion
|
||||
const decodedAssetData = assetDataUtils.decodeAssetDataOrThrow(
|
||||
result[0].makerAssetData,
|
||||
) as ERC20BridgeAssetData;
|
||||
expect(decodedAssetData.assetProxyId).to.eql(AssetProxyId.ERC20Bridge);
|
||||
expect(decodedAssetData.bridgeAddress).to.eql(liquidityPoolAddress);
|
||||
expect(decodedAssetData.bridgeAddress).to.eql(liquidityProviderAddress);
|
||||
expect(result[0].takerAssetAmount).to.bignumber.eql(toSell);
|
||||
expect(getSellQuiotesParams.sources).contains(ERC20BridgeSource.LiquidityProvider);
|
||||
expect(getSellQuiotesParams.liquidityProviderAddress).is.eql(registryAddress);
|
||||
expect(getSellQuotesParams.sources).contains(ERC20BridgeSource.LiquidityProvider);
|
||||
expect(getSellQuotesParams.liquidityProviderAddress).is.eql(registryAddress);
|
||||
expect(getLiquidityProviderParams.registryAddress).is.eql(registryAddress);
|
||||
expect(getLiquidityProviderParams.makerToken).is.eql(xAsset);
|
||||
expect(getLiquidityProviderParams.takerToken).is.eql(yAsset);
|
||||
|
||||
Reference in New Issue
Block a user