Socket
Socket
Sign inDemoInstall

@0x/mesh-rpc-client

Package Overview
Dependencies
265
Maintainers
9
Versions
50
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 7.0.4-beta-0xv3 to 7.1.0-beta

2

lib/src/index.d.ts
export { WSClient } from './ws_client';
export { ClientConfig, WSOpts, OrderEventEndState, OrderEventPayload, OrderEvent, OrderInfo, AcceptedOrderInfo, RejectedKind, RejectedCode, RejectedStatus, RejectedOrderInfo, ValidationResults, GetOrdersResponse, GetStatsResponse, } from './types';
export { SignedOrder } from '@0x/types';
export { BigNumber } from './configured_bignumber';
export { BigNumber } from '@0x/utils';

@@ -9,3 +9,3 @@ "use strict";

exports.RejectedCode = types_1.RejectedCode;
var configured_bignumber_1 = require("./configured_bignumber");
exports.BigNumber = configured_bignumber_1.BigNumber;
var utils_1 = require("@0x/utils");
exports.BigNumber = utils_1.BigNumber;
import { SignedOrder } from '@0x/types';
import { BigNumber } from './configured_bignumber';
import { BigNumber } from '@0x/utils';
/**

@@ -24,3 +24,3 @@ * WebSocketClient configs

* clientConfig: The client configs documented here: https://github.com/theturtle32/WebSocket-Node/blob/master/docs/WebSocketClient.md
* reconnectAfter: time in milliseconds after which to attempt to reconnect to WS server after an error occurred (default: 5000)
* reconnectDelay: time in milliseconds after which to attempt to reconnect to WS server after an error occurred (default: 5000)
*/

@@ -32,3 +32,3 @@ export interface WSOpts {

clientConfig?: ClientConfig;
reconnectAfter?: number;
reconnectDelay?: number;
}

@@ -247,2 +247,3 @@ export interface StringifiedSignedOrder {

export interface RawOrderEvent {
timestamp: string;
orderHash: string;

@@ -255,2 +256,3 @@ signedOrder: StringifiedSignedOrder;

export interface OrderEvent {
timestampMs: number;
orderHash: string;

@@ -329,6 +331,12 @@ signedOrder: SignedOrder;

}
export interface GetOrdersResponse {
export interface RawGetOrdersResponse {
snapshotID: string;
snapshotTimestamp: string;
ordersInfos: RawAcceptedOrderInfo[];
}
export interface GetOrdersResponse {
snapshotID: string;
snapshotTimestamp: number;
ordersInfos: OrderInfo[];
}
export interface WSMessage {

@@ -335,0 +343,0 @@ type: string;

import { SignedOrder } from '@0x/types';
import { GetStatsResponse, OrderEvent, OrderInfo, ValidationResults, WSOpts } from './types';
import { GetOrdersResponse, GetStatsResponse, OrderEvent, ValidationResults, WSOpts } from './types';
/**

@@ -13,4 +13,3 @@ * This class includes all the functionality related to interacting with a Mesh JSON RPC

private static _convertRawOrderInfos;
private static _convertStringsFieldsToBigNumbers;
private static _convertOrderStringFieldsToBigNumber;
private static _convertRawGetOrdersResponse;
private static _convertStringifiedContractEvents;

@@ -38,6 +37,14 @@ /**

* @param perPage number of signedOrders to fetch per paginated request
* @returns all orders, their hash and their fillableTakerAssetAmount
* @returns the snapshotID, snapshotTimestamp and all orders, their hashes and fillableTakerAssetAmounts
*/
getOrdersAsync(perPage?: number): Promise<OrderInfo[]>;
getOrdersAsync(perPage?: number): Promise<GetOrdersResponse>;
/**
* Get page of 0x signed orders stored on the Mesh node at the specified snapshot
* @param page Page index at which to retrieve orders
* @param perPage number of signedOrders to fetch per paginated request
* @param snapshotID The DB snapshot at which to fetch orders. If omitted, a new snapshot is created
* @returns the snapshotID, snapshotTimestamp and all orders, their hashes and fillableTakerAssetAmounts
*/
getOrdersForPageAsync(page: number, perPage?: number, snapshotID?: string): Promise<GetOrdersResponse>;
/**
* Subscribe to the 'orders' topic and receive order events from Mesh. This method returns a

@@ -44,0 +51,0 @@ * subscriptionId that can be used to `unsubscribe()` from this subscription.

"use strict";
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {

@@ -70,6 +59,7 @@ return new (P || (P = Promise))(function (resolve, reject) {

var assert_1 = require("@0x/assert");
var Web3Providers = require("@0x/web3-providers-fork");
var order_utils_1 = require("@0x/order-utils");
var utils_1 = require("@0x/utils");
var uuid_1 = require("uuid");
var Web3Providers = require("web3-providers");
var WebSocket = require("websocket");
var configured_bignumber_1 = require("./configured_bignumber");
var types_1 = require("./types");

@@ -79,2 +69,3 @@ var CLOSE_REASON_NO_HEARTBEAT = 3001;

var DEFAULT_RECONNECT_AFTER_MS = 5000;
var DEFAULT_RPC_REQUEST_TIMEOUT = 30000;
var DEFAULT_WS_OPTS = {

@@ -86,3 +77,4 @@ clientConfig: {

},
reconnectAfter: DEFAULT_RECONNECT_AFTER_MS,
timeout: DEFAULT_RPC_REQUEST_TIMEOUT,
reconnectDelay: DEFAULT_RECONNECT_AFTER_MS,
};

@@ -102,4 +94,4 @@ /**

this._subscriptionIdToMeshSpecificId = {};
if (wsOpts !== undefined && wsOpts.reconnectAfter === undefined) {
wsOpts.reconnectAfter = DEFAULT_RECONNECT_AFTER_MS;
if (wsOpts !== undefined && wsOpts.reconnectDelay === undefined) {
wsOpts.reconnectDelay = DEFAULT_RECONNECT_AFTER_MS;
}

@@ -116,4 +108,4 @@ this._wsProvider = new Web3Providers.WebsocketProvider(url, wsOpts !== undefined ? wsOpts : DEFAULT_WS_OPTS);

orderHash: rawAcceptedOrderInfo.orderHash,
signedOrder: WSClient._convertOrderStringFieldsToBigNumber(rawAcceptedOrderInfo.signedOrder),
fillableTakerAssetAmount: new configured_bignumber_1.BigNumber(rawAcceptedOrderInfo.fillableTakerAssetAmount),
signedOrder: order_utils_1.orderParsingUtils.convertOrderStringFieldsToBigNumber(rawAcceptedOrderInfo.signedOrder),
fillableTakerAssetAmount: new utils_1.BigNumber(rawAcceptedOrderInfo.fillableTakerAssetAmount),
isNew: rawAcceptedOrderInfo.isNew,

@@ -130,4 +122,4 @@ };

orderHash: rawOrderInfo.orderHash,
signedOrder: WSClient._convertOrderStringFieldsToBigNumber(rawOrderInfo.signedOrder),
fillableTakerAssetAmount: new configured_bignumber_1.BigNumber(rawOrderInfo.fillableTakerAssetAmount),
signedOrder: order_utils_1.orderParsingUtils.convertOrderStringFieldsToBigNumber(rawOrderInfo.signedOrder),
fillableTakerAssetAmount: new utils_1.BigNumber(rawOrderInfo.fillableTakerAssetAmount),
};

@@ -138,22 +130,10 @@ orderInfos.push(orderInfo);

};
WSClient._convertStringsFieldsToBigNumbers = function (obj, fields) {
var result = __assign({}, obj);
fields.forEach(function (field) {
if (result[field] === undefined) {
throw new Error("Could not find field '" + field + "' while converting string fields to BigNumber.");
}
result[field] = new configured_bignumber_1.BigNumber(result[field]);
});
return result;
WSClient._convertRawGetOrdersResponse = function (rawGetOrdersResponse) {
return {
snapshotID: rawGetOrdersResponse.snapshotID,
// tslint:disable-next-line:custom-no-magic-numbers
snapshotTimestamp: Math.round(new Date(rawGetOrdersResponse.snapshotTimestamp).getTime() / 1000),
ordersInfos: WSClient._convertRawOrderInfos(rawGetOrdersResponse.ordersInfos),
};
};
WSClient._convertOrderStringFieldsToBigNumber = function (order) {
return WSClient._convertStringsFieldsToBigNumbers(order, [
'makerAssetAmount',
'takerAssetAmount',
'makerFee',
'takerFee',
'expirationTimeSeconds',
'salt',
]);
};
WSClient._convertStringifiedContractEvents = function (rawContractEvents) {

@@ -174,3 +154,3 @@ var contractEvents = [];

to: erc20TransferEvent.to,
value: new configured_bignumber_1.BigNumber(erc20TransferEvent.value),
value: new utils_1.BigNumber(erc20TransferEvent.value),
};

@@ -183,3 +163,3 @@ break;

spender: erc20ApprovalEvent.spender,
value: new configured_bignumber_1.BigNumber(erc20ApprovalEvent.value),
value: new utils_1.BigNumber(erc20ApprovalEvent.value),
};

@@ -192,3 +172,3 @@ break;

to: erc721TransferEvent.to,
tokenId: new configured_bignumber_1.BigNumber(erc721TransferEvent.tokenId),
tokenId: new utils_1.BigNumber(erc721TransferEvent.tokenId),
};

@@ -201,3 +181,3 @@ break;

approved: erc721ApprovalEvent.approved,
tokenId: new configured_bignumber_1.BigNumber(erc721ApprovalEvent.tokenId),
tokenId: new utils_1.BigNumber(erc721ApprovalEvent.tokenId),
};

@@ -217,4 +197,4 @@ break;

to: erc1155TransferSingleEvent.to,
id: new configured_bignumber_1.BigNumber(erc1155TransferSingleEvent.id),
value: new configured_bignumber_1.BigNumber(erc1155TransferSingleEvent.value),
id: new utils_1.BigNumber(erc1155TransferSingleEvent.id),
value: new utils_1.BigNumber(erc1155TransferSingleEvent.value),
};

@@ -226,7 +206,7 @@ break;

erc1155TransferBatchEvent.ids.forEach(function (id) {
ids_1.push(new configured_bignumber_1.BigNumber(id));
ids_1.push(new utils_1.BigNumber(id));
});
var values_1 = [];
erc1155TransferBatchEvent.values.forEach(function (value) {
values_1.push(new configured_bignumber_1.BigNumber(value));
values_1.push(new utils_1.BigNumber(value));
});

@@ -248,6 +228,6 @@ parameters = {

feeRecipientAddress: exchangeFillEvent.feeRecipientAddress,
makerAssetFilledAmount: new configured_bignumber_1.BigNumber(exchangeFillEvent.makerAssetFilledAmount),
takerAssetFilledAmount: new configured_bignumber_1.BigNumber(exchangeFillEvent.takerAssetFilledAmount),
makerFeePaid: new configured_bignumber_1.BigNumber(exchangeFillEvent.makerFeePaid),
takerFeePaid: new configured_bignumber_1.BigNumber(exchangeFillEvent.takerFeePaid),
makerAssetFilledAmount: new utils_1.BigNumber(exchangeFillEvent.makerAssetFilledAmount),
takerAssetFilledAmount: new utils_1.BigNumber(exchangeFillEvent.takerAssetFilledAmount),
makerFeePaid: new utils_1.BigNumber(exchangeFillEvent.makerFeePaid),
takerFeePaid: new utils_1.BigNumber(exchangeFillEvent.takerFeePaid),
orderHash: exchangeFillEvent.orderHash,

@@ -266,3 +246,3 @@ makerAssetData: exchangeFillEvent.makerAssetData,

senderAddress: exchangeCancelUpToEvent.senderAddress,
orderEpoch: new configured_bignumber_1.BigNumber(exchangeCancelUpToEvent.orderEpoch),
orderEpoch: new utils_1.BigNumber(exchangeCancelUpToEvent.orderEpoch),
};

@@ -274,3 +254,3 @@ break;

owner: wethDepositEvent.owner,
value: new configured_bignumber_1.BigNumber(wethDepositEvent.value),
value: new utils_1.BigNumber(wethDepositEvent.value),
};

@@ -282,3 +262,3 @@ break;

owner: wethWithdrawalEvent.owner,
value: new configured_bignumber_1.BigNumber(wethWithdrawalEvent.value),
value: new utils_1.BigNumber(wethWithdrawalEvent.value),
};

@@ -333,3 +313,3 @@ break;

orderHash: rawRejectedOrderInfo.orderHash,
signedOrder: WSClient._convertOrderStringFieldsToBigNumber(rawRejectedOrderInfo.signedOrder),
signedOrder: order_utils_1.orderParsingUtils.convertOrderStringFieldsToBigNumber(rawRejectedOrderInfo.signedOrder),
kind: rawRejectedOrderInfo.kind,

@@ -361,3 +341,3 @@ status: rawRejectedOrderInfo.status,

* @param perPage number of signedOrders to fetch per paginated request
* @returns all orders, their hash and their fillableTakerAssetAmount
* @returns the snapshotID, snapshotTimestamp and all orders, their hashes and fillableTakerAssetAmounts
*/

@@ -367,3 +347,3 @@ WSClient.prototype.getOrdersAsync = function (perPage) {

return __awaiter(this, void 0, void 0, function () {
var snapshotID, page, getOrdersResponse, ordersInfos, rawOrderInfos, orderInfos;
var snapshotID, page, getOrdersResponse, ordersInfos, allOrderInfos;
return __generator(this, function (_a) {

@@ -374,7 +354,3 @@ switch (_a.label) {

page = 0;
return [4 /*yield*/, this._wsProvider.send('mesh_getOrders', [
page,
perPage,
snapshotID,
])];
return [4 /*yield*/, this.getOrdersForPageAsync(page, perPage, snapshotID)];
case 1:

@@ -384,17 +360,22 @@ getOrdersResponse = _a.sent();

ordersInfos = getOrdersResponse.ordersInfos;
rawOrderInfos = [];
allOrderInfos = [];
_a.label = 2;
case 2:
rawOrderInfos = __spread(rawOrderInfos, ordersInfos);
allOrderInfos = __spread(allOrderInfos, ordersInfos);
page++;
return [4 /*yield*/, this._wsProvider.send('mesh_getOrders', [page, perPage, snapshotID])];
return [4 /*yield*/, this.getOrdersForPageAsync(page, perPage, snapshotID)];
case 3:
ordersInfos = (_a.sent()).ordersInfos;
getOrdersResponse = _a.sent();
ordersInfos = getOrdersResponse.ordersInfos;
_a.label = 4;
case 4:
if (Object.keys(ordersInfos).length > 0) return [3 /*break*/, 2];
if (ordersInfos.length > 0) return [3 /*break*/, 2];
_a.label = 5;
case 5:
orderInfos = WSClient._convertRawOrderInfos(rawOrderInfos);
return [2 /*return*/, orderInfos];
getOrdersResponse = {
snapshotID: snapshotID,
snapshotTimestamp: getOrdersResponse.snapshotTimestamp,
ordersInfos: allOrderInfos,
};
return [2 /*return*/, getOrdersResponse];
}

@@ -405,2 +386,30 @@ });

/**
* Get page of 0x signed orders stored on the Mesh node at the specified snapshot
* @param page Page index at which to retrieve orders
* @param perPage number of signedOrders to fetch per paginated request
* @param snapshotID The DB snapshot at which to fetch orders. If omitted, a new snapshot is created
* @returns the snapshotID, snapshotTimestamp and all orders, their hashes and fillableTakerAssetAmounts
*/
WSClient.prototype.getOrdersForPageAsync = function (page, perPage, snapshotID) {
if (perPage === void 0) { perPage = 200; }
return __awaiter(this, void 0, void 0, function () {
var finalSnapshotID, rawGetOrdersResponse, getOrdersResponse;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
finalSnapshotID = snapshotID === undefined ? '' : snapshotID;
return [4 /*yield*/, this._wsProvider.send('mesh_getOrders', [
page,
perPage,
finalSnapshotID,
])];
case 1:
rawGetOrdersResponse = _a.sent();
getOrdersResponse = WSClient._convertRawGetOrdersResponse(rawGetOrdersResponse);
return [2 /*return*/, getOrdersResponse];
}
});
});
};
/**
* Subscribe to the 'orders' topic and receive order events from Mesh. This method returns a

@@ -430,6 +439,7 @@ * subscriptionId that can be used to `unsubscribe()` from this subscription.

var orderEvent = {
timestampMs: new Date(rawOrderEvent.timestamp).getTime(),
orderHash: rawOrderEvent.orderHash,
signedOrder: WSClient._convertOrderStringFieldsToBigNumber(rawOrderEvent.signedOrder),
signedOrder: order_utils_1.orderParsingUtils.convertOrderStringFieldsToBigNumber(rawOrderEvent.signedOrder),
endState: rawOrderEvent.endState,
fillableTakerAssetAmount: new configured_bignumber_1.BigNumber(rawOrderEvent.fillableTakerAssetAmount),
fillableTakerAssetAmount: new utils_1.BigNumber(rawOrderEvent.fillableTakerAssetAmount),
contractEvents: WSClient._convertStringifiedContractEvents(rawOrderEvent.contractEvents),

@@ -436,0 +446,0 @@ };

{
"name": "@0x/mesh-rpc-client",
"version": "7.0.4-beta-0xv3",
"version": "7.1.0-beta",
"engines": {

@@ -8,10 +8,3 @@ "node": ">=6.12"

"description": "A Javascript library for interacting with the Mesh JSON RPC API over WebSockets",
"keywords": [
"p2p",
"mesh",
"0xproject",
"ethereum",
"tokens",
"exchange"
],
"keywords": ["p2p", "mesh", "0xproject", "ethereum", "tokens", "exchange"],
"main": "lib/src/index.js",

@@ -41,19 +34,18 @@ "types": "lib/src/index.d.ts",

"dependencies": {
"@0x/assert": "2.2.0-beta.2",
"@0x/types": "2.5.0-beta.2",
"@0x/typescript-typings": "4.4.0-beta.2",
"@0x/web3-providers-fork": "0.0.7",
"bignumber.js": "~9.0.0",
"detect-node": "2.0.3",
"@0x/assert": "^2.1.2",
"@0x/order-utils": "^8.2.4",
"@0x/types": "^2.4.1",
"@0x/typescript-typings": "^4.2.4",
"@0x/utils": "^4.4.2",
"uuid": "^3.3.2",
"web3-providers": "^2.0.0-alpha.1",
"websocket": "^1.0.29"
},
"devDependencies": {
"@0x/dev-utils": "^2.4.0-beta.2",
"@0x/dev-utils": "^2.2.6",
"@0x/ts-doc-gen": "^0.0.13",
"@0x/tslint-config": "^3.1.0-beta.2",
"@0x/tslint-config": "^3.0.1",
"@types/mocha": "^2.2.42",
"@types/uuid": "^3.4.3",
"@types/websocket": "^0.0.40",
"@types/detect-node": "2.0.0",
"chai": "^4.0.1",

@@ -60,0 +52,0 @@ "chai-as-promised": "^7.1.0",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc