Merge pull request #2582 from 0xProject/feat/asset-swapper/use-quote-server
asset-swapper: Use @0x/quote-server, not local typedefs; and adapt to renamed taker request parameters
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { tokenUtils } from '@0x/dev-utils';
|
||||
import { assetDataUtils } from '@0x/order-utils';
|
||||
import { TakerRequest } from '@0x/quote-server';
|
||||
import { StatusCodes } from '@0x/types';
|
||||
import { BigNumber } from '@0x/utils';
|
||||
import * as chai from 'chai';
|
||||
@@ -35,11 +36,11 @@ describe('QuoteRequestor', async () => {
|
||||
// Set up RFQT responses
|
||||
// tslint:disable-next-line:array-type
|
||||
const mockedRequests: MockedRfqtFirmQuoteResponse[] = [];
|
||||
const expectedParams = {
|
||||
sellToken: takerToken,
|
||||
buyToken: makerToken,
|
||||
sellAmount: '10000',
|
||||
buyAmount: undefined,
|
||||
const expectedParams: TakerRequest = {
|
||||
sellTokenAddress: takerToken,
|
||||
buyTokenAddress: makerToken,
|
||||
sellAmountBaseUnits: new BigNumber('10000'),
|
||||
buyAmountBaseUnits: undefined,
|
||||
takerAddress,
|
||||
};
|
||||
// Successful response
|
||||
@@ -54,7 +55,7 @@ describe('QuoteRequestor', async () => {
|
||||
endpoint: 'https://1337.0.0.1',
|
||||
requestApiKey: apiKey,
|
||||
requestParams: expectedParams,
|
||||
responseData: successfulOrder1,
|
||||
responseData: { signedOrder: successfulOrder1 },
|
||||
responseCode: StatusCodes.Success,
|
||||
});
|
||||
// Test out a bad response code, ensure it doesnt cause throw
|
||||
@@ -73,6 +74,14 @@ describe('QuoteRequestor', async () => {
|
||||
responseData: { makerAssetData: '123' },
|
||||
responseCode: StatusCodes.Success,
|
||||
});
|
||||
// ensure that a non-JSON response doesn't throw an error when trying to parse
|
||||
mockedRequests.push({
|
||||
endpoint: 'https://421.1.0.1',
|
||||
requestApiKey: apiKey,
|
||||
requestParams: expectedParams,
|
||||
responseData: 'this is not JSON!',
|
||||
responseCode: StatusCodes.Success,
|
||||
});
|
||||
// A successful response code and valid order, but for wrong maker asset data
|
||||
const wrongMakerAssetDataOrder = testOrderFactory.generateTestSignedOrder({
|
||||
makerAssetData: assetDataUtils.encodeERC20AssetData(otherToken1),
|
||||
@@ -83,7 +92,7 @@ describe('QuoteRequestor', async () => {
|
||||
endpoint: 'https://422.0.0.1',
|
||||
requestApiKey: apiKey,
|
||||
requestParams: expectedParams,
|
||||
responseData: wrongMakerAssetDataOrder,
|
||||
responseData: { signedOrder: wrongMakerAssetDataOrder },
|
||||
responseCode: StatusCodes.Success,
|
||||
});
|
||||
// A successful response code and valid order, but for wrong taker asset data
|
||||
@@ -96,7 +105,7 @@ describe('QuoteRequestor', async () => {
|
||||
endpoint: 'https://423.0.0.1',
|
||||
requestApiKey: apiKey,
|
||||
requestParams: expectedParams,
|
||||
responseData: wrongTakerAssetDataOrder,
|
||||
responseData: { signedOrder: wrongTakerAssetDataOrder },
|
||||
responseCode: StatusCodes.Success,
|
||||
});
|
||||
// A successful response code and good order but its unsigned
|
||||
@@ -111,7 +120,7 @@ describe('QuoteRequestor', async () => {
|
||||
endpoint: 'https://424.0.0.1',
|
||||
requestApiKey: apiKey,
|
||||
requestParams: expectedParams,
|
||||
responseData: unsignedOrder,
|
||||
responseData: { signedOrder: unsignedOrder },
|
||||
responseCode: StatusCodes.Success,
|
||||
});
|
||||
// A successful response code and good order but for the wrong takerAddress
|
||||
@@ -126,7 +135,7 @@ describe('QuoteRequestor', async () => {
|
||||
endpoint: 'https://425.0.0.1',
|
||||
requestApiKey: apiKey,
|
||||
requestParams: expectedParams,
|
||||
responseData: orderWithNullTaker,
|
||||
responseData: { signedOrder: orderWithNullTaker },
|
||||
responseCode: StatusCodes.Success,
|
||||
});
|
||||
|
||||
@@ -141,7 +150,7 @@ describe('QuoteRequestor', async () => {
|
||||
endpoint: 'https://37.0.0.1',
|
||||
requestApiKey: apiKey,
|
||||
requestParams: expectedParams,
|
||||
responseData: successfulOrder2,
|
||||
responseData: { signedOrder: successfulOrder2 },
|
||||
responseCode: StatusCodes.Success,
|
||||
});
|
||||
|
||||
@@ -150,6 +159,7 @@ describe('QuoteRequestor', async () => {
|
||||
'https://1337.0.0.1': [[makerToken, takerToken]],
|
||||
'https://420.0.0.1': [[makerToken, takerToken]],
|
||||
'https://421.0.0.1': [[makerToken, takerToken]],
|
||||
'https://421.1.0.1': [[makerToken, takerToken]],
|
||||
'https://422.0.0.1': [[makerToken, takerToken]],
|
||||
'https://423.0.0.1': [[makerToken, takerToken]],
|
||||
'https://424.0.0.1': [[makerToken, takerToken]],
|
||||
@@ -169,7 +179,9 @@ describe('QuoteRequestor', async () => {
|
||||
intentOnFilling: true,
|
||||
},
|
||||
);
|
||||
expect(resp.sort()).to.eql([successfulOrder1, successfulOrder2].sort());
|
||||
expect(resp.sort()).to.eql(
|
||||
[{ signedOrder: successfulOrder1 }, { signedOrder: successfulOrder2 }].sort(),
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -181,19 +193,19 @@ describe('QuoteRequestor', async () => {
|
||||
// Set up RFQT responses
|
||||
// tslint:disable-next-line:array-type
|
||||
const mockedRequests: MockedRfqtIndicativeQuoteResponse[] = [];
|
||||
const expectedParams = {
|
||||
sellToken: takerToken,
|
||||
buyToken: makerToken,
|
||||
sellAmount: '10000',
|
||||
buyAmount: undefined,
|
||||
const expectedParams: TakerRequest = {
|
||||
sellTokenAddress: takerToken,
|
||||
buyTokenAddress: makerToken,
|
||||
sellAmountBaseUnits: new BigNumber('10000'),
|
||||
buyAmountBaseUnits: undefined,
|
||||
takerAddress,
|
||||
};
|
||||
// Successful response
|
||||
const successfulQuote1 = {
|
||||
makerAssetData,
|
||||
takerAssetData,
|
||||
makerAssetAmount: new BigNumber(expectedParams.sellAmount),
|
||||
takerAssetAmount: new BigNumber(expectedParams.sellAmount),
|
||||
makerAssetAmount: new BigNumber(expectedParams.sellAmountBaseUnits),
|
||||
takerAssetAmount: new BigNumber(expectedParams.sellAmountBaseUnits),
|
||||
expirationTimeSeconds: makeThreeMinuteExpiry(),
|
||||
};
|
||||
mockedRequests.push({
|
||||
@@ -275,19 +287,19 @@ describe('QuoteRequestor', async () => {
|
||||
// Set up RFQT responses
|
||||
// tslint:disable-next-line:array-type
|
||||
const mockedRequests: MockedRfqtIndicativeQuoteResponse[] = [];
|
||||
const expectedParams = {
|
||||
sellToken: takerToken,
|
||||
buyToken: makerToken,
|
||||
buyAmount: '10000',
|
||||
sellAmount: undefined,
|
||||
const expectedParams: TakerRequest = {
|
||||
sellTokenAddress: takerToken,
|
||||
buyTokenAddress: makerToken,
|
||||
buyAmountBaseUnits: new BigNumber('10000'),
|
||||
sellAmountBaseUnits: undefined,
|
||||
takerAddress,
|
||||
};
|
||||
// Successful response
|
||||
const successfulQuote1 = {
|
||||
makerAssetData,
|
||||
takerAssetData,
|
||||
makerAssetAmount: new BigNumber(expectedParams.buyAmount),
|
||||
takerAssetAmount: new BigNumber(expectedParams.buyAmount),
|
||||
makerAssetAmount: new BigNumber(expectedParams.buyAmountBaseUnits),
|
||||
takerAssetAmount: new BigNumber(expectedParams.buyAmountBaseUnits),
|
||||
expirationTimeSeconds: makeThreeMinuteExpiry(),
|
||||
};
|
||||
mockedRequests.push({
|
||||
|
||||
Reference in New Issue
Block a user