Merge pull request #1085 from 0xProject/feature/export-sra-types

[sra-types] Move SRA types from @0xproject/connect to @0xproject/types
This commit is contained in:
Leonid Logvinov
2018-09-25 13:36:47 +02:00
committed by GitHub
17 changed files with 191 additions and 168 deletions

View File

@@ -1,4 +1,5 @@
import { APIOrder, HttpClient, OrderbookResponse } from '@0xproject/connect';
import { HttpClient } from '@0xproject/connect';
import { APIOrder, OrderbookResponse } from '@0xproject/types';
import * as _ from 'lodash';
import {

View File

@@ -1,4 +1,13 @@
[
{
"version": "2.0.3",
"changes": [
{
"note": "Import SRA-related types from @0xproject/types",
"pr": 1085
}
]
},
{
"timestamp": 1537541580,
"version": "2.0.2",

View File

@@ -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,7 +13,14 @@ 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 = /\/+$/;

View File

@@ -1,23 +1,20 @@
export { HttpClient } from './http_client';
export { ordersChannelFactory } from './orders_channel_factory';
export { Client, OrdersChannel, OrdersChannelHandler } from './types';
export {
Client,
OrderConfigRequest,
OrderConfigResponse,
OrdersChannel,
OrdersChannelHandler,
OrdersChannelSubscriptionOpts,
OrderbookRequest,
OrderbookResponse,
OrdersRequestOpts,
PagedRequestOpts,
APIOrder,
AssetPairsRequestOpts,
RequestOpts,
AssetPairsResponse,
FeeRecipientsResponse,
APIOrder,
OrderbookRequest,
OrderbookResponse,
OrderConfigRequest,
OrderConfigResponse,
OrdersChannelSubscriptionOpts,
OrdersRequestOpts,
OrdersResponse,
PagedRequestOpts,
PaginatedCollection,
} from './types';
export { SignedOrder } from '@0xproject/types';
RequestOpts,
SignedOrder,
} from '@0xproject/types';

View File

@@ -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: BigNumber;
takerAssetAmount: BigNumber;
makerAssetData: string;
takerAssetData: string;
exchangeAddress: string;
expirationTimeSeconds: BigNumber;
}
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;

View File

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

View File

@@ -9,7 +9,7 @@ import {
OrderbookResponse,
OrderConfigResponse,
OrdersResponse,
} from '../types';
} from '@0xproject/types';
import { typeConverters } from './type_converters';

View File

@@ -1,7 +1,7 @@
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 {

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
import { FeeRecipientsResponse } from '../../../src/types';
import { FeeRecipientsResponse } from '@0xproject/types';
export const feeRecipientsResponse: FeeRecipientsResponse = {
total: 3,

View File

@@ -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',

View File

@@ -1,6 +1,6 @@
import { BigNumber } from '@0xproject/utils';
import { OrderbookResponse } from '../../../src/types';
import { OrderbookResponse } from '@0xproject/types';
export const orderbookResponse: OrderbookResponse = {
bids: {

View File

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

View File

@@ -5,6 +5,10 @@
{
"note": "Add ObjectMap type",
"pr": 1037
},
{
"note": "Add SRA types from connect",
"pr": 1085
}
]
},

View File

@@ -243,3 +243,131 @@ export enum StatusCodes {
export interface ObjectMap<T> {
[key: string]: T;
}
/**
* 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 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: BigNumber;
takerAssetAmount: BigNumber;
makerAssetData: string;
takerAssetData: string;
exchangeAddress: string;
expirationTimeSeconds: BigNumber;
}
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;
}

View File

@@ -5296,9 +5296,9 @@ ethereumjs-wallet@~0.6.0:
utf8 "^3.0.0"
uuid "^3.3.2"
ethers@3.0.22:
version "3.0.22"
resolved "https://registry.npmjs.org/ethers/-/ethers-3.0.22.tgz#7fab1ea16521705837aa43c15831877b2716b436"
ethers@0xproject/ethers.js#eip-838-reasons, ethers@3.0.22:
version "3.0.18"
resolved "https://codeload.github.com/0xproject/ethers.js/tar.gz/b91342bd200d142af0165d6befddf783c8ae8447"
dependencies:
aes-js "3.0.0"
bn.js "^4.4.0"