aboutsummaryrefslogtreecommitdiffstats
path: root/packages/connect/src
diff options
context:
space:
mode:
authorBrandon Millman <brandon.millman@gmail.com>2018-01-09 08:35:12 +0800
committerBrandon Millman <brandon.millman@gmail.com>2018-01-09 08:35:12 +0800
commit734cf5819aee5d46719d1ca387666bfda6e475bd (patch)
tree264785cb0666e011b49842b47ac4b2408dddaa28 /packages/connect/src
parent9f3acf8e2888b6105062e47664ecd5adaaf3c889 (diff)
parent35e0b6143ab1405259471e1c9c698bfcd869df5a (diff)
downloaddexon-sol-tools-734cf5819aee5d46719d1ca387666bfda6e475bd.tar
dexon-sol-tools-734cf5819aee5d46719d1ca387666bfda6e475bd.tar.gz
dexon-sol-tools-734cf5819aee5d46719d1ca387666bfda6e475bd.tar.bz2
dexon-sol-tools-734cf5819aee5d46719d1ca387666bfda6e475bd.tar.lz
dexon-sol-tools-734cf5819aee5d46719d1ca387666bfda6e475bd.tar.xz
dexon-sol-tools-734cf5819aee5d46719d1ca387666bfda6e475bd.tar.zst
dexon-sol-tools-734cf5819aee5d46719d1ca387666bfda6e475bd.zip
Merge branch 'development' into fix/mutatedInput
* development: Changes to abi-gen after code review Added constructor ABIs to abi-gen Describe #295 in a CHANGELOG Add #302 description to changelog Fix formatting Apply prettier config Install prettier Remove formatting esilnt rules sendTransactionAsync should return txHash string Added Event generation to abi-gen Publish Add dates to CHANGELOG entries Update subproviders CHANGELOG Support both personal_sign and eth_sign Fix Ledger tests given change from `personal_sign` to `eth_sign` Update subprovider to catch correct RPC method Rename guide Update contribution guide Fix broken links in the abi-gen README Fix typing generation for arrays in which types separated by |s
Diffstat (limited to 'packages/connect/src')
-rw-r--r--packages/connect/src/http_client.ts18
-rw-r--r--packages/connect/src/index.ts6
-rw-r--r--packages/connect/src/schemas/relayer_fees_request_schema.ts4
-rw-r--r--packages/connect/src/schemas/relayer_orderbook_request_schema.ts4
-rw-r--r--packages/connect/src/schemas/relayer_orders_request_schema.ts20
-rw-r--r--packages/connect/src/schemas/relayer_token_pairs_request_schema.ts4
-rw-r--r--packages/connect/src/schemas/schemas.ts12
-rw-r--r--packages/connect/src/types.ts25
-rw-r--r--packages/connect/src/utils/orderbook_channel_message_parsers.ts15
-rw-r--r--packages/connect/src/utils/type_converters.ts2
-rw-r--r--packages/connect/src/ws_orderbook_channel.ts28
11 files changed, 73 insertions, 65 deletions
diff --git a/packages/connect/src/http_client.ts b/packages/connect/src/http_client.ts
index da052ba3c..dcaf5d9a9 100644
--- a/packages/connect/src/http_client.ts
+++ b/packages/connect/src/http_client.ts
@@ -1,10 +1,10 @@
-import {assert} from '@0xproject/assert';
-import {schemas} from '@0xproject/json-schemas';
+import { assert } from '@0xproject/assert';
+import { schemas } from '@0xproject/json-schemas';
import 'isomorphic-fetch';
import * as _ from 'lodash';
import * as queryString from 'query-string';
-import {schemas as clientSchemas} from './schemas/schemas';
+import { schemas as clientSchemas } from './schemas/schemas';
import {
Client,
FeesRequest,
@@ -18,7 +18,7 @@ import {
TokenPairsItem,
TokenPairsRequest,
} from './types';
-import {typeConverters} from './utils/type_converters';
+import { typeConverters } from './utils/type_converters';
/**
* This class includes all the functionality related to interacting with a set of HTTP endpoints
@@ -49,8 +49,7 @@ export class HttpClient implements Client {
params: request,
};
const tokenPairs = await this._requestAsync('/token_pairs', HttpRequestType.Get, requestOpts);
- assert.doesConformToSchema(
- 'tokenPairs', tokenPairs, schemas.relayerApiTokenPairsResponseSchema);
+ assert.doesConformToSchema('tokenPairs', tokenPairs, schemas.relayerApiTokenPairsResponseSchema);
_.each(tokenPairs, (tokenPair: object) => {
typeConverters.convertStringsFieldsToBigNumbers(tokenPair, [
'tokenA.minAmount',
@@ -131,8 +130,11 @@ export class HttpClient implements Client {
};
await this._requestAsync('/order', HttpRequestType.Post, requestOpts);
}
- private async _requestAsync(path: string, requestType: HttpRequestType,
- requestOptions?: HttpRequestOptions): Promise<any> {
+ private async _requestAsync(
+ path: string,
+ requestType: HttpRequestType,
+ requestOptions?: HttpRequestOptions,
+ ): Promise<any> {
const params = _.get(requestOptions, 'params');
const payload = _.get(requestOptions, 'payload');
let query = '';
diff --git a/packages/connect/src/index.ts b/packages/connect/src/index.ts
index c0f847d09..b9fc3c568 100644
--- a/packages/connect/src/index.ts
+++ b/packages/connect/src/index.ts
@@ -1,10 +1,10 @@
-import {bigNumberConfigs} from '@0xproject/utils';
+import { bigNumberConfigs } from '@0xproject/utils';
// Customize our BigNumber instances
bigNumberConfigs.configure();
-export {HttpClient} from './http_client';
-export {WebSocketOrderbookChannel} from './ws_orderbook_channel';
+export { HttpClient } from './http_client';
+export { WebSocketOrderbookChannel } from './ws_orderbook_channel';
export {
Client,
ECSignature,
diff --git a/packages/connect/src/schemas/relayer_fees_request_schema.ts b/packages/connect/src/schemas/relayer_fees_request_schema.ts
index 9408c94a0..f20e077ba 100644
--- a/packages/connect/src/schemas/relayer_fees_request_schema.ts
+++ b/packages/connect/src/schemas/relayer_fees_request_schema.ts
@@ -2,7 +2,7 @@ export const relayerOrderBookRequestSchema = {
id: '/RelayerOrderBookRequest',
type: 'object',
properties: {
- baseTokenAddress: {$ref: '/Address'},
- quoteTokenAddress: {$ref: '/Address'},
+ baseTokenAddress: { $ref: '/Address' },
+ quoteTokenAddress: { $ref: '/Address' },
},
};
diff --git a/packages/connect/src/schemas/relayer_orderbook_request_schema.ts b/packages/connect/src/schemas/relayer_orderbook_request_schema.ts
index 9408c94a0..f20e077ba 100644
--- a/packages/connect/src/schemas/relayer_orderbook_request_schema.ts
+++ b/packages/connect/src/schemas/relayer_orderbook_request_schema.ts
@@ -2,7 +2,7 @@ export const relayerOrderBookRequestSchema = {
id: '/RelayerOrderBookRequest',
type: 'object',
properties: {
- baseTokenAddress: {$ref: '/Address'},
- quoteTokenAddress: {$ref: '/Address'},
+ baseTokenAddress: { $ref: '/Address' },
+ quoteTokenAddress: { $ref: '/Address' },
},
};
diff --git a/packages/connect/src/schemas/relayer_orders_request_schema.ts b/packages/connect/src/schemas/relayer_orders_request_schema.ts
index c11bc77be..570238dae 100644
--- a/packages/connect/src/schemas/relayer_orders_request_schema.ts
+++ b/packages/connect/src/schemas/relayer_orders_request_schema.ts
@@ -2,15 +2,15 @@ export const relayerOrdersRequestSchema = {
id: '/RelayerOrdersRequest',
type: 'object',
properties: {
- exchangeContractAddress: {$ref: '/Address'},
- tokenAddress: {$ref: '/Address'},
- makerTokenAddress: {$ref: '/Address'},
- takerTokenAddress: {$ref: '/Address'},
- tokenA: {$ref: '/Address'},
- tokenB: {$ref: '/Address'},
- maker: {$ref: '/Address'},
- taker: {$ref: '/Address'},
- trader: {$ref: '/Address'},
- feeRecipient: {$ref: '/Address'},
+ exchangeContractAddress: { $ref: '/Address' },
+ tokenAddress: { $ref: '/Address' },
+ makerTokenAddress: { $ref: '/Address' },
+ takerTokenAddress: { $ref: '/Address' },
+ tokenA: { $ref: '/Address' },
+ tokenB: { $ref: '/Address' },
+ maker: { $ref: '/Address' },
+ taker: { $ref: '/Address' },
+ trader: { $ref: '/Address' },
+ feeRecipient: { $ref: '/Address' },
},
};
diff --git a/packages/connect/src/schemas/relayer_token_pairs_request_schema.ts b/packages/connect/src/schemas/relayer_token_pairs_request_schema.ts
index 8013e1454..379232204 100644
--- a/packages/connect/src/schemas/relayer_token_pairs_request_schema.ts
+++ b/packages/connect/src/schemas/relayer_token_pairs_request_schema.ts
@@ -2,7 +2,7 @@ export const relayerTokenPairsRequestSchema = {
id: '/RelayerTokenPairsRequest',
type: 'object',
properties: {
- tokenA: {$ref: '/Address'},
- tokenB: {$ref: '/Address'},
+ tokenA: { $ref: '/Address' },
+ tokenB: { $ref: '/Address' },
},
};
diff --git a/packages/connect/src/schemas/schemas.ts b/packages/connect/src/schemas/schemas.ts
index 97ac672bf..288d6969d 100644
--- a/packages/connect/src/schemas/schemas.ts
+++ b/packages/connect/src/schemas/schemas.ts
@@ -1,12 +1,6 @@
-import {
- relayerOrderBookRequestSchema,
-} from './relayer_orderbook_request_schema';
-import {
- relayerOrdersRequestSchema,
-} from './relayer_orders_request_schema';
-import {
- relayerTokenPairsRequestSchema,
-} from './relayer_token_pairs_request_schema';
+import { relayerOrderBookRequestSchema } from './relayer_orderbook_request_schema';
+import { relayerOrdersRequestSchema } from './relayer_orders_request_schema';
+import { relayerTokenPairsRequestSchema } from './relayer_token_pairs_request_schema';
export const schemas = {
relayerOrderBookRequestSchema,
diff --git a/packages/connect/src/types.ts b/packages/connect/src/types.ts
index d02444a3e..1e6139bf9 100644
--- a/packages/connect/src/types.ts
+++ b/packages/connect/src/types.ts
@@ -1,4 +1,4 @@
-import {BigNumber} from 'bignumber.js';
+import { BigNumber } from 'bignumber.js';
// TODO: Consolidate Order, SignedOrder and ECSignature into a shared package instead of duplicating them from 0x.js
export interface Order {
@@ -57,19 +57,24 @@ export interface OrderbookChannelSubscriptionOpts {
}
export interface OrderbookChannelHandler {
- onSnapshot: (channel: OrderbookChannel, subscriptionOpts: OrderbookChannelSubscriptionOpts,
- snapshot: OrderbookResponse) => void;
- onUpdate: (channel: OrderbookChannel, subscriptionOpts: OrderbookChannelSubscriptionOpts,
- order: SignedOrder) => void;
- onError: (channel: OrderbookChannel, subscriptionOpts: OrderbookChannelSubscriptionOpts,
- err: Error) => void;
+ onSnapshot: (
+ channel: OrderbookChannel,
+ subscriptionOpts: OrderbookChannelSubscriptionOpts,
+ snapshot: OrderbookResponse,
+ ) => void;
+ onUpdate: (
+ channel: OrderbookChannel,
+ subscriptionOpts: OrderbookChannelSubscriptionOpts,
+ order: SignedOrder,
+ ) => void;
+ onError: (channel: OrderbookChannel, subscriptionOpts: OrderbookChannelSubscriptionOpts, err: Error) => void;
onClose: (channel: OrderbookChannel, subscriptionOpts: OrderbookChannelSubscriptionOpts) => void;
}
export type OrderbookChannelMessage =
- SnapshotOrderbookChannelMessage |
- UpdateOrderbookChannelMessage |
- UnknownOrderbookChannelMessage;
+ | SnapshotOrderbookChannelMessage
+ | UpdateOrderbookChannelMessage
+ | UnknownOrderbookChannelMessage;
export enum OrderbookChannelMessageTypes {
Snapshot = 'snapshot',
diff --git a/packages/connect/src/utils/orderbook_channel_message_parsers.ts b/packages/connect/src/utils/orderbook_channel_message_parsers.ts
index d9a84cca2..a4f22dc4b 100644
--- a/packages/connect/src/utils/orderbook_channel_message_parsers.ts
+++ b/packages/connect/src/utils/orderbook_channel_message_parsers.ts
@@ -1,13 +1,10 @@
-import {assert} from '@0xproject/assert';
-import {schemas} from '@0xproject/json-schemas';
+import { assert } from '@0xproject/assert';
+import { schemas } from '@0xproject/json-schemas';
import * as _ from 'lodash';
-import {
- OrderbookChannelMessage,
- OrderbookChannelMessageTypes,
-} from '../types';
+import { OrderbookChannelMessage, OrderbookChannelMessageTypes } from '../types';
-import {typeConverters} from './type_converters';
+import { typeConverters } from './type_converters';
export const orderbookChannelMessageParsers = {
parser(utf8Data: string): OrderbookChannelMessage {
@@ -16,13 +13,13 @@ export const orderbookChannelMessageParsers = {
assert.assert(!_.isUndefined(type), `Message is missing a type parameter: ${utf8Data}`);
assert.isString('type', type);
switch (type) {
- case (OrderbookChannelMessageTypes.Snapshot): {
+ case OrderbookChannelMessageTypes.Snapshot: {
assert.doesConformToSchema('message', messageObj, schemas.relayerApiOrderbookChannelSnapshotSchema);
const orderbook = messageObj.payload;
typeConverters.convertOrderbookStringFieldsToBigNumber(orderbook);
return messageObj;
}
- case (OrderbookChannelMessageTypes.Update): {
+ case OrderbookChannelMessageTypes.Update: {
assert.doesConformToSchema('message', messageObj, schemas.relayerApiOrderbookChannelUpdateSchema);
const order = messageObj.payload;
typeConverters.convertOrderStringFieldsToBigNumber(order);
diff --git a/packages/connect/src/utils/type_converters.ts b/packages/connect/src/utils/type_converters.ts
index 28810af1a..ccbc40677 100644
--- a/packages/connect/src/utils/type_converters.ts
+++ b/packages/connect/src/utils/type_converters.ts
@@ -1,4 +1,4 @@
-import {BigNumber} from 'bignumber.js';
+import { BigNumber } from 'bignumber.js';
import * as _ from 'lodash';
// TODO: convert all of these to non-mutating, pure functions
diff --git a/packages/connect/src/ws_orderbook_channel.ts b/packages/connect/src/ws_orderbook_channel.ts
index a669d8094..399f97319 100644
--- a/packages/connect/src/ws_orderbook_channel.ts
+++ b/packages/connect/src/ws_orderbook_channel.ts
@@ -1,5 +1,5 @@
-import {assert} from '@0xproject/assert';
-import {schemas} from '@0xproject/json-schemas';
+import { assert } from '@0xproject/assert';
+import { schemas } from '@0xproject/json-schemas';
import * as _ from 'lodash';
import * as WebSocket from 'websocket';
@@ -11,7 +11,7 @@ import {
WebsocketClientEventType,
WebsocketConnectionEventType,
} from './types';
-import {orderbookChannelMessageParsers} from './utils/orderbook_channel_message_parsers';
+import { orderbookChannelMessageParsers } from './utils/orderbook_channel_message_parsers';
/**
* This class includes all the functionality related to interacting with a websocket endpoint
@@ -41,7 +41,10 @@ export class WebSocketOrderbookChannel implements OrderbookChannel {
*/
public subscribe(subscriptionOpts: OrderbookChannelSubscriptionOpts, handler: OrderbookChannelHandler): void {
assert.doesConformToSchema(
- 'subscriptionOpts', subscriptionOpts, schemas.relayerApiOrderbookChannelSubscribePayload);
+ 'subscriptionOpts',
+ subscriptionOpts,
+ schemas.relayerApiOrderbookChannelSubscribePayload,
+ );
assert.isFunction('handler.onSnapshot', _.get(handler, 'onSnapshot'));
assert.isFunction('handler.onUpdate', _.get(handler, 'onUpdate'));
assert.isFunction('handler.onError', _.get(handler, 'onError'));
@@ -92,25 +95,32 @@ export class WebSocketOrderbookChannel implements OrderbookChannel {
this._client.connect(this._apiEndpointUrl);
}
}
- private _handleWebSocketMessage(requestId: number, subscriptionOpts: OrderbookChannelSubscriptionOpts,
- message: WebSocket.IMessage, handler: OrderbookChannelHandler): void {
+ private _handleWebSocketMessage(
+ requestId: number,
+ subscriptionOpts: OrderbookChannelSubscriptionOpts,
+ message: WebSocket.IMessage,
+ handler: OrderbookChannelHandler,
+ ): void {
if (!_.isUndefined(message.utf8Data)) {
try {
const utf8Data = message.utf8Data;
const parserResult = orderbookChannelMessageParsers.parser(utf8Data);
if (parserResult.requestId === requestId) {
switch (parserResult.type) {
- case (OrderbookChannelMessageTypes.Snapshot): {
+ case OrderbookChannelMessageTypes.Snapshot: {
handler.onSnapshot(this, subscriptionOpts, parserResult.payload);
break;
}
- case (OrderbookChannelMessageTypes.Update): {
+ case OrderbookChannelMessageTypes.Update: {
handler.onUpdate(this, subscriptionOpts, parserResult.payload);
break;
}
default: {
handler.onError(
- this, subscriptionOpts, new Error(`Message has missing a type parameter: ${utf8Data}`));
+ this,
+ subscriptionOpts,
+ new Error(`Message has missing a type parameter: ${utf8Data}`),
+ );
}
}
}