aboutsummaryrefslogtreecommitdiffstats
path: root/packages/connect
diff options
context:
space:
mode:
Diffstat (limited to 'packages/connect')
-rw-r--r--packages/connect/CHANGELOG.json56
-rw-r--r--packages/connect/CHANGELOG.md20
-rw-r--r--packages/connect/package.json20
-rw-r--r--packages/connect/src/http_client.ts20
-rw-r--r--packages/connect/src/index.ts25
-rw-r--r--packages/connect/src/types.ts145
-rw-r--r--packages/connect/src/utils/orders_channel_message_parser.ts2
-rw-r--r--packages/connect/src/utils/relayer_response_json_parsers.ts7
-rw-r--r--packages/connect/src/utils/type_converters.ts28
-rw-r--r--packages/connect/src/ws_orders_channel.ts3
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts2
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts2
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/order_config.ts2
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/orderbook.ts2
-rw-r--r--packages/connect/test/fixtures/standard_relayer_api/orders.ts2
-rw-r--r--packages/connect/test/http_client_test.ts7
-rw-r--r--packages/connect/tsconfig.json3
-rw-r--r--packages/connect/typedoc-tsconfig.json7
18 files changed, 149 insertions, 204 deletions
diff --git a/packages/connect/CHANGELOG.json b/packages/connect/CHANGELOG.json
index 8ccb6afe2..4106be881 100644
--- a/packages/connect/CHANGELOG.json
+++ b/packages/connect/CHANGELOG.json
@@ -1,5 +1,61 @@
[
{
+ "version": "3.0.0",
+ "changes": [
+ {
+ "note": "Change /order_config request to a POST instead of GET",
+ "pr": 1091
+ }
+ ]
+ },
+ {
+ "timestamp": 1537907159,
+ "version": "2.0.4",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "version": "2.0.3",
+ "changes": [
+ {
+ "note": "Import SRA-related types from @0xproject/types",
+ "pr": 1085
+ }
+ ],
+ "timestamp": 1537875740
+ },
+ {
+ "timestamp": 1537541580,
+ "version": "2.0.2",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "timestamp": 1537369748,
+ "version": "2.0.1",
+ "changes": [
+ {
+ "note": "Dependencies updated"
+ }
+ ]
+ },
+ {
+ "version": "2.0.0",
+ "changes": [
+ {
+ "note": "Change `OrderConfigRequest` to use BigNumber instead of string for relevant fields.",
+ "pr": 1058
+ }
+ ],
+ "timestamp": 1536142250
+ },
+ {
"version": "2.0.0-rc.2",
"changes": [
{
diff --git a/packages/connect/CHANGELOG.md b/packages/connect/CHANGELOG.md
index a83d31869..75906ff4e 100644
--- a/packages/connect/CHANGELOG.md
+++ b/packages/connect/CHANGELOG.md
@@ -5,6 +5,26 @@ Edit the package's CHANGELOG.json file only.
CHANGELOG
+## v2.0.4 - _September 25, 2018_
+
+ * Dependencies updated
+
+## v2.0.3 - _September 25, 2018_
+
+ * Import SRA-related types from @0xproject/types (#1085)
+
+## v2.0.2 - _September 21, 2018_
+
+ * Dependencies updated
+
+## v2.0.1 - _September 19, 2018_
+
+ * Dependencies updated
+
+## v2.0.0 - _September 5, 2018_
+
+ * Change `OrderConfigRequest` to use BigNumber instead of string for relevant fields. (#1058)
+
## v2.0.0-rc.2 - _August 27, 2018_
* Dependencies updated
diff --git a/packages/connect/package.json b/packages/connect/package.json
index 15f537c7d..5e1fa81d4 100644
--- a/packages/connect/package.json
+++ b/packages/connect/package.json
@@ -1,6 +1,6 @@
{
"name": "@0xproject/connect",
- "version": "2.0.0-rc.2",
+ "version": "2.0.4",
"engines": {
"node": ">=6.12"
},
@@ -15,8 +15,7 @@
"main": "lib/src/index.js",
"types": "lib/src/index.d.ts",
"scripts": {
- "watch_without_deps": "tsc -w",
- "build": "tsc",
+ "build": "tsc -b",
"clean": "shx rm -rf lib test_temp generated_docs",
"copy_test_fixtures": "copyfiles -u 2 './test/fixtures/**/*.json' ./lib/test/fixtures",
"lint": "tslint --project .",
@@ -26,7 +25,7 @@
"test:coverage": "nyc npm run test --all && yarn coverage:report:lcov",
"coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info",
"test:circleci": "yarn test:coverage",
- "docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --json $JSON_FILE_PATH $PROJECT_FILES"
+ "docs:json": "typedoc --excludePrivate --excludeExternals --target ES5 --tsconfig typedoc-tsconfig.json --json $JSON_FILE_PATH $PROJECT_FILES"
},
"config": {
"postpublish": {
@@ -44,11 +43,12 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/connect/README.md",
"dependencies": {
- "@0xproject/assert": "^1.0.7",
- "@0xproject/json-schemas": "^1.0.1-rc.6",
- "@0xproject/types": "^1.0.1-rc.6",
- "@0xproject/typescript-typings": "^1.0.5",
- "@0xproject/utils": "^1.0.7",
+ "@0xproject/assert": "^1.0.11",
+ "@0xproject/json-schemas": "^1.0.4",
+ "@0xproject/order-utils": "^1.0.5",
+ "@0xproject/types": "^1.1.1",
+ "@0xproject/typescript-typings": "^2.0.2",
+ "@0xproject/utils": "^1.0.11",
"lodash": "^4.17.5",
"query-string": "^5.0.1",
"sinon": "^4.0.0",
@@ -56,7 +56,7 @@
"websocket": "^1.0.25"
},
"devDependencies": {
- "@0xproject/tslint-config": "^1.0.6",
+ "@0xproject/tslint-config": "^1.0.7",
"@types/fetch-mock": "^6.0.3",
"@types/lodash": "4.14.104",
"@types/mocha": "^2.2.42",
diff --git a/packages/connect/src/http_client.ts b/packages/connect/src/http_client.ts
index b90c2c35f..bbd0d2042 100644
--- a/packages/connect/src/http_client.ts
+++ b/packages/connect/src/http_client.ts
@@ -1,19 +1,10 @@
import { assert } from '@0xproject/assert';
import { schemas } from '@0xproject/json-schemas';
-import { SignedOrder } from '@0xproject/types';
-import { fetchAsync } from '@0xproject/utils';
-import * as _ from 'lodash';
-import * as queryString from 'query-string';
-
-import { schemas as clientSchemas } from './schemas/schemas';
import {
APIOrder,
AssetPairsRequestOpts,
AssetPairsResponse,
- Client,
FeeRecipientsResponse,
- HttpRequestOptions,
- HttpRequestType,
OrderbookRequest,
OrderbookResponse,
OrderConfigRequest,
@@ -22,14 +13,21 @@ import {
OrdersResponse,
PagedRequestOpts,
RequestOpts,
-} from './types';
+ SignedOrder,
+} from '@0xproject/types';
+import { fetchAsync } from '@0xproject/utils';
+import * as _ from 'lodash';
+import * as queryString from 'query-string';
+
+import { schemas as clientSchemas } from './schemas/schemas';
+import { Client, HttpRequestOptions, HttpRequestType } from './types';
import { relayerResponseJsonParsers } from './utils/relayer_response_json_parsers';
const TRAILING_SLASHES_REGEX = /\/+$/;
/**
* This class includes all the functionality related to interacting with a set of HTTP endpoints
- * that implement the standard relayer API v0
+ * that implement the standard relayer API v2
*/
export class HttpClient implements Client {
private readonly _apiEndpointUrl: string;
diff --git a/packages/connect/src/index.ts b/packages/connect/src/index.ts
index 0b9cad038..0ec5a0f68 100644
--- a/packages/connect/src/index.ts
+++ b/packages/connect/src/index.ts
@@ -1,23 +1,20 @@
export { HttpClient } from './http_client';
export { ordersChannelFactory } from './orders_channel_factory';
+export { Client, OrdersChannel, OrdersChannelHandler } from './types';
export {
- Client,
+ APIOrder,
+ AssetPairsRequestOpts,
+ AssetPairsResponse,
+ FeeRecipientsResponse,
+ OrderbookRequest,
+ OrderbookResponse,
OrderConfigRequest,
OrderConfigResponse,
- OrdersChannel,
- OrdersChannelHandler,
OrdersChannelSubscriptionOpts,
- OrderbookRequest,
- OrderbookResponse,
OrdersRequestOpts,
- PagedRequestOpts,
- AssetPairsRequestOpts,
- RequestOpts,
- AssetPairsResponse,
- FeeRecipientsResponse,
- APIOrder,
OrdersResponse,
+ PagedRequestOpts,
PaginatedCollection,
-} from './types';
-
-export { SignedOrder } from '@0xproject/types';
+ RequestOpts,
+ SignedOrder,
+} from '@0xproject/types';
diff --git a/packages/connect/src/types.ts b/packages/connect/src/types.ts
index 06ae732a5..4bb0ae534 100644
--- a/packages/connect/src/types.ts
+++ b/packages/connect/src/types.ts
@@ -1,5 +1,18 @@
-import { SignedOrder } from '@0xproject/types';
-import { BigNumber } from '@0xproject/utils';
+import {
+ APIOrder,
+ AssetPairsItem,
+ AssetPairsRequestOpts,
+ FeeRecipientsResponse,
+ OrderbookRequest,
+ OrderbookResponse,
+ OrderConfigRequest,
+ OrderConfigResponse,
+ OrdersChannelSubscriptionOpts,
+ OrdersRequestOpts,
+ PagedRequestOpts,
+ PaginatedCollection,
+ SignedOrder,
+} from '@0xproject/types';
export interface Client {
getAssetPairsAsync: (
@@ -18,140 +31,12 @@ export interface OrdersChannel {
close: () => void;
}
-/**
- * baseAssetData: The address of assetData designated as the baseToken in the currency pair calculation of price
- * quoteAssetData: The address of assetData designated as the quoteToken in the currency pair calculation of price
- * limit: Maximum number of bids and asks in orderbook snapshot
- */
-export interface OrdersChannelSubscriptionOpts {
- baseAssetData: string;
- quoteAssetData: string;
- limit: number;
-}
-
export interface OrdersChannelHandler {
onUpdate: (channel: OrdersChannel, subscriptionOpts: OrdersChannelSubscriptionOpts, orders: APIOrder[]) => void;
onError: (channel: OrdersChannel, err: Error, subscriptionOpts?: OrdersChannelSubscriptionOpts) => void;
onClose: (channel: OrdersChannel) => void;
}
-export type OrdersChannelMessage = UpdateOrdersChannelMessage | UnknownOrdersChannelMessage;
-
-export enum OrdersChannelMessageTypes {
- Update = 'update',
- Unknown = 'unknown',
-}
-
-export interface UpdateOrdersChannelMessage {
- type: OrdersChannelMessageTypes.Update;
- requestId: string;
- payload: APIOrder[];
-}
-
-export interface UnknownOrdersChannelMessage {
- type: OrdersChannelMessageTypes.Unknown;
- requestId: string;
- payload: undefined;
-}
-
-export enum WebsocketConnectionEventType {
- Close = 'close',
- Error = 'error',
- Message = 'message',
-}
-
-export enum WebsocketClientEventType {
- Connect = 'connect',
- ConnectFailed = 'connectFailed',
-}
-
-export type OrdersResponse = PaginatedCollection<APIOrder>;
-
-export interface APIOrder {
- order: SignedOrder;
- metaData: object;
-}
-
-export interface AssetPairsRequestOpts {
- assetDataA?: string;
- assetDataB?: string;
-}
-
-export type AssetPairsResponse = PaginatedCollection<AssetPairsItem>;
-
-export interface AssetPairsItem {
- assetDataA: Asset;
- assetDataB: Asset;
-}
-
-export interface Asset {
- assetData: string;
- minAmount: BigNumber;
- maxAmount: BigNumber;
- precision: number;
-}
-
-export interface OrdersRequestOpts {
- makerAssetProxyId?: string;
- takerAssetProxyId?: string;
- makerAssetAddress?: string;
- takerAssetAddress?: string;
- exchangeAddress?: string;
- senderAddress?: string;
- makerAssetData?: string;
- takerAssetData?: string;
- makerAddress?: string;
- takerAddress?: string;
- traderAddress?: string;
- feeRecipientAddress?: string;
-}
-
-export interface OrderbookRequest {
- baseAssetData: string;
- quoteAssetData: string;
-}
-
-export interface OrderbookResponse {
- bids: PaginatedCollection<APIOrder>;
- asks: PaginatedCollection<APIOrder>;
-}
-
-export interface PaginatedCollection<T> {
- total: number;
- page: number;
- perPage: number;
- records: T[];
-}
-
-export interface OrderConfigRequest {
- makerAddress: string;
- takerAddress: string;
- makerAssetAmount: string;
- takerAssetAmount: string;
- makerAssetData: string;
- takerAssetData: string;
- exchangeAddress: string;
- expirationTimeSeconds: string;
-}
-
-export interface OrderConfigResponse {
- makerFee: BigNumber;
- takerFee: BigNumber;
- feeRecipientAddress: string;
- senderAddress: string;
-}
-
-export type FeeRecipientsResponse = PaginatedCollection<string>;
-
-export interface RequestOpts {
- networkId?: number;
-}
-
-export interface PagedRequestOpts {
- page?: number;
- perPage?: number;
-}
-
export interface HttpRequestOptions {
params?: object;
payload?: object;
diff --git a/packages/connect/src/utils/orders_channel_message_parser.ts b/packages/connect/src/utils/orders_channel_message_parser.ts
index 1b6cda17b..943d7802e 100644
--- a/packages/connect/src/utils/orders_channel_message_parser.ts
+++ b/packages/connect/src/utils/orders_channel_message_parser.ts
@@ -2,7 +2,7 @@ import { assert } from '@0xproject/assert';
import { schemas } from '@0xproject/json-schemas';
import * as _ from 'lodash';
-import { OrdersChannelMessage, OrdersChannelMessageTypes } from '../types';
+import { OrdersChannelMessage, OrdersChannelMessageTypes } from '@0xproject/types';
import { relayerResponseJsonParsers } from './relayer_response_json_parsers';
diff --git a/packages/connect/src/utils/relayer_response_json_parsers.ts b/packages/connect/src/utils/relayer_response_json_parsers.ts
index ebd877b70..356e2dde6 100644
--- a/packages/connect/src/utils/relayer_response_json_parsers.ts
+++ b/packages/connect/src/utils/relayer_response_json_parsers.ts
@@ -1,5 +1,6 @@
import { assert } from '@0xproject/assert';
import { schemas } from '@0xproject/json-schemas';
+import { orderParsingUtils } from '@0xproject/order-utils';
import {
APIOrder,
@@ -8,7 +9,7 @@ import {
OrderbookResponse,
OrderConfigResponse,
OrdersResponse,
-} from '../types';
+} from '@0xproject/types';
import { typeConverters } from './type_converters';
@@ -19,7 +20,7 @@ export const relayerResponseJsonParsers = {
},
parseAssetPairsItemsJson(json: any): AssetPairsItem[] {
return json.map((assetDataPair: any) => {
- return typeConverters.convertStringsFieldsToBigNumbers(assetDataPair, [
+ return orderParsingUtils.convertStringsFieldsToBigNumbers(assetDataPair, [
'assetDataA.minAmount',
'assetDataA.maxAmount',
'assetDataB.minAmount',
@@ -44,6 +45,6 @@ export const relayerResponseJsonParsers = {
},
parseOrderConfigResponseJson(json: any): OrderConfigResponse {
assert.doesConformToSchema('orderConfigResponse', json, schemas.relayerApiOrderConfigResponseSchema);
- return typeConverters.convertStringsFieldsToBigNumbers(json, ['makerFee', 'takerFee']);
+ return orderParsingUtils.convertStringsFieldsToBigNumbers(json, ['makerFee', 'takerFee']);
},
};
diff --git a/packages/connect/src/utils/type_converters.ts b/packages/connect/src/utils/type_converters.ts
index 4b211a0b2..99760cf74 100644
--- a/packages/connect/src/utils/type_converters.ts
+++ b/packages/connect/src/utils/type_converters.ts
@@ -1,7 +1,7 @@
-import { BigNumber } from '@0xproject/utils';
+import { orderParsingUtils } from '@0xproject/order-utils';
import * as _ from 'lodash';
-import { APIOrder } from '../types';
+import { APIOrder } from '@0xproject/types';
export const typeConverters = {
convertOrderbookStringFieldsToBigNumber(orderbook: any): any {
@@ -21,28 +21,6 @@ export const typeConverters = {
};
},
convertAPIOrderStringFieldsToBigNumber(apiOrder: any): APIOrder {
- return { ...apiOrder, order: typeConverters.convertOrderStringFieldsToBigNumber(apiOrder.order) };
- },
- convertOrderStringFieldsToBigNumber(order: any): any {
- return typeConverters.convertStringsFieldsToBigNumbers(order, [
- 'makerAssetAmount',
- 'takerAssetAmount',
- 'makerFee',
- 'takerFee',
- 'expirationTimeSeconds',
- 'salt',
- ]);
- },
- convertStringsFieldsToBigNumbers(obj: any, fields: string[]): any {
- const result = _.assign({}, obj);
- _.each(fields, field => {
- _.update(result, field, (value: string) => {
- if (_.isUndefined(value)) {
- throw new Error(`Could not find field '${field}' while converting string fields to BigNumber.`);
- }
- return new BigNumber(value);
- });
- });
- return result;
+ return { ...apiOrder, order: orderParsingUtils.convertOrderStringFieldsToBigNumber(apiOrder.order) };
},
};
diff --git a/packages/connect/src/ws_orders_channel.ts b/packages/connect/src/ws_orders_channel.ts
index cde4acbc3..bf5e8508d 100644
--- a/packages/connect/src/ws_orders_channel.ts
+++ b/packages/connect/src/ws_orders_channel.ts
@@ -1,8 +1,9 @@
+import { OrdersChannelMessageTypes, OrdersChannelSubscriptionOpts } from '@0xproject/types';
import * as _ from 'lodash';
import { v4 as uuid } from 'uuid';
import * as WebSocket from 'websocket';
-import { OrdersChannel, OrdersChannelHandler, OrdersChannelMessageTypes, OrdersChannelSubscriptionOpts } from './types';
+import { OrdersChannel, OrdersChannelHandler } from './types';
import { assert } from './utils/assert';
import { ordersChannelMessageParser } from './utils/orders_channel_message_parser';
diff --git a/packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts b/packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts
index 5ce703317..27216e421 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/asset_pairs.ts
@@ -1,6 +1,6 @@
import { BigNumber } from '@0xproject/utils';
-import { AssetPairsResponse } from '../../../src/types';
+import { AssetPairsResponse } from '@0xproject/types';
export const assetDataPairsResponse: AssetPairsResponse = {
total: 43,
diff --git a/packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts b/packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts
index e17ffe7a8..6f544e9d3 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/fee_recipients.ts
@@ -1,4 +1,4 @@
-import { FeeRecipientsResponse } from '../../../src/types';
+import { FeeRecipientsResponse } from '@0xproject/types';
export const feeRecipientsResponse: FeeRecipientsResponse = {
total: 3,
diff --git a/packages/connect/test/fixtures/standard_relayer_api/order_config.ts b/packages/connect/test/fixtures/standard_relayer_api/order_config.ts
index 36f01a009..56a4ac550 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/order_config.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/order_config.ts
@@ -1,6 +1,6 @@
import { BigNumber } from '@0xproject/utils';
-import { OrderConfigResponse } from '../../../src/types';
+import { OrderConfigResponse } from '@0xproject/types';
export const orderConfigResponse: OrderConfigResponse = {
senderAddress: '0xa2b31dacf30a9c50ca473337c01d8a201ae33e32',
diff --git a/packages/connect/test/fixtures/standard_relayer_api/orderbook.ts b/packages/connect/test/fixtures/standard_relayer_api/orderbook.ts
index d5f39a51f..21d51da74 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/orderbook.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/orderbook.ts
@@ -1,6 +1,6 @@
import { BigNumber } from '@0xproject/utils';
-import { OrderbookResponse } from '../../../src/types';
+import { OrderbookResponse } from '@0xproject/types';
export const orderbookResponse: OrderbookResponse = {
bids: {
diff --git a/packages/connect/test/fixtures/standard_relayer_api/orders.ts b/packages/connect/test/fixtures/standard_relayer_api/orders.ts
index 01f8974b8..fb85990d0 100644
--- a/packages/connect/test/fixtures/standard_relayer_api/orders.ts
+++ b/packages/connect/test/fixtures/standard_relayer_api/orders.ts
@@ -1,6 +1,6 @@
import { BigNumber } from '@0xproject/utils';
-import { OrdersResponse } from '../../../src/types';
+import { OrdersResponse } from '@0xproject/types';
export const ordersResponse: OrdersResponse = {
total: 984,
diff --git a/packages/connect/test/http_client_test.ts b/packages/connect/test/http_client_test.ts
index 5b564e97b..e9fc9372e 100644
--- a/packages/connect/test/http_client_test.ts
+++ b/packages/connect/test/http_client_test.ts
@@ -1,3 +1,4 @@
+import { BigNumber } from '@0xproject/utils';
import * as chai from 'chai';
import * as chaiAsPromised from 'chai-as-promised';
import * as dirtyChai from 'dirty-chai';
@@ -138,9 +139,9 @@ describe('HttpClient', () => {
const request = {
makerAddress: '0x9e56625509c2f60af937f23b7b532600390e8c8b',
takerAddress: '0xa2b31dacf30a9c50ca473337c01d8a201ae33e32',
- makerAssetAmount: '10000000000000000',
- takerAssetAmount: '20000000000000000',
- expirationTimeSeconds: '1532560590',
+ makerAssetAmount: new BigNumber('10000000000000000'),
+ takerAssetAmount: new BigNumber('20000000000000000'),
+ expirationTimeSeconds: new BigNumber('1532560590'),
makerAssetData: '0xf47261b04c32345ced77393b3530b1eed0f346429d',
takerAssetData: '0x0257179264389b814a946f3e92105513705ca6b990',
exchangeAddress: '0x12459c951127e0c374ff9105dda097662a027093',
diff --git a/packages/connect/tsconfig.json b/packages/connect/tsconfig.json
index e35816553..2ee711adc 100644
--- a/packages/connect/tsconfig.json
+++ b/packages/connect/tsconfig.json
@@ -1,7 +1,8 @@
{
"extends": "../../tsconfig",
"compilerOptions": {
- "outDir": "lib"
+ "outDir": "lib",
+ "rootDir": "."
},
"include": ["./src/**/*", "./test/**/*"]
}
diff --git a/packages/connect/typedoc-tsconfig.json b/packages/connect/typedoc-tsconfig.json
new file mode 100644
index 000000000..c9b0af1ae
--- /dev/null
+++ b/packages/connect/typedoc-tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../typedoc-tsconfig",
+ "compilerOptions": {
+ "outDir": "lib"
+ },
+ "include": ["./src/**/*", "./test/**/*"]
+}