@1inch/fusion-sdk 0.0.9 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/connector/index.d.ts +1 -0
- package/connector/index.js +1 -0
- package/connector/index.js.map +1 -1
- package/connector/ws/index.d.ts +3 -0
- package/connector/ws/index.js +7 -0
- package/connector/ws/index.js.map +1 -0
- package/connector/ws/types.d.ts +8 -0
- package/connector/ws/types.js +3 -0
- package/connector/ws/types.js.map +1 -0
- package/connector/ws/websocket-client.connector.d.ts +19 -0
- package/connector/ws/websocket-client.connector.js +68 -0
- package/connector/ws/websocket-client.connector.js.map +1 -0
- package/connector/ws/websocket-provider.connector.d.ts +12 -0
- package/connector/ws/websocket-provider.connector.js +3 -0
- package/connector/ws/websocket-provider.connector.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +4 -2
- package/sdk/encoders/cancel-order.encoder.d.ts +2 -0
- package/sdk/encoders/cancel-order.encoder.js +14 -0
- package/sdk/encoders/cancel-order.encoder.js.map +1 -0
- package/sdk/encoders/index.d.ts +1 -0
- package/sdk/encoders/index.js +5 -0
- package/sdk/encoders/index.js.map +1 -0
- package/sdk/index.d.ts +1 -0
- package/sdk/index.js +1 -0
- package/sdk/index.js.map +1 -1
- package/sdk/sdk.d.ts +5 -1
- package/sdk/sdk.js +44 -8
- package/sdk/sdk.js.map +1 -1
- package/sdk/sdk.spec.d.ts +1 -0
- package/sdk/sdk.spec.js +85 -0
- package/sdk/sdk.spec.js.map +1 -0
- package/sdk/types.d.ts +6 -0
- package/ws-api/active-websocket-orders-api.d.ts +12 -0
- package/ws-api/active-websocket-orders-api.js +53 -0
- package/ws-api/active-websocket-orders-api.js.map +1 -0
- package/ws-api/constants.d.ts +2 -0
- package/ws-api/constants.js +11 -0
- package/ws-api/constants.js.map +1 -0
- package/ws-api/index.d.ts +2 -0
- package/ws-api/index.js +6 -0
- package/ws-api/index.js.map +1 -0
- package/ws-api/rpc-websocket-api.d.ts +10 -0
- package/ws-api/rpc-websocket-api.js +30 -0
- package/ws-api/rpc-websocket-api.js.map +1 -0
- package/ws-api/types.d.ts +52 -0
- package/ws-api/types.js +3 -0
- package/ws-api/types.js.map +1 -0
- package/ws-api/url.d.ts +1 -0
- package/ws-api/url.js +11 -0
- package/ws-api/url.js.map +1 -0
- package/ws-api/ws-api.d.ts +20 -0
- package/ws-api/ws-api.js +59 -0
- package/ws-api/ws-api.js.map +1 -0
- package/ws-api/ws.spec.d.ts +1 -0
- package/ws-api/ws.spec.js +522 -0
- package/ws-api/ws.spec.js.map +1 -0
package/README.md
CHANGED
package/connector/index.d.ts
CHANGED
package/connector/index.js
CHANGED
|
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./blockchain/index"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./http/index"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./ws"), exports);
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/connector/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connector/index.ts"],"names":[],"mappings":";;;AAAA,6DAAkC;AAClC,uDAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connector/index.ts"],"names":[],"mappings":";;;AAAA,6DAAkC;AAClC,uDAA4B;AAC5B,+CAAoB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./websocket-client.connector"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./types"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./websocket-provider.connector"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connector/ws/index.ts"],"names":[],"mappings":";;;AAAA,uEAA4C;AAC5C,kDAAuB;AACvB,yEAA8C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WebSocket } from 'ws';
|
|
2
|
+
export declare type AnyFunction = (...args: any[]) => any;
|
|
3
|
+
export declare type AnyFunctionWithThis = (this: WebSocket, ...args: any[]) => void;
|
|
4
|
+
export declare type WsApiConfig = {
|
|
5
|
+
url: string;
|
|
6
|
+
lazyInit?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare type OnMessageCb = (data: any) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/connector/ws/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import WebSocket from 'ws';
|
|
2
|
+
import { AnyFunction, AnyFunctionWithThis, OnMessageCb, WsApiConfig } from './types';
|
|
3
|
+
import { WsProviderConnector } from './websocket-provider.connector';
|
|
4
|
+
export declare class WebsocketClient implements WsProviderConnector {
|
|
5
|
+
readonly ws: WebSocket;
|
|
6
|
+
private readonly url;
|
|
7
|
+
private readonly initialized;
|
|
8
|
+
constructor(config: WsApiConfig);
|
|
9
|
+
init(): void;
|
|
10
|
+
on(event: string, cb: AnyFunctionWithThis): void;
|
|
11
|
+
off(event: string, cb: AnyFunctionWithThis): void;
|
|
12
|
+
onOpen(cb: AnyFunctionWithThis): void;
|
|
13
|
+
send<T>(message: T): void;
|
|
14
|
+
onMessage(cb: OnMessageCb): void;
|
|
15
|
+
onClose(cb: AnyFunction): void;
|
|
16
|
+
onError(cb: AnyFunction): void;
|
|
17
|
+
close(): void;
|
|
18
|
+
private checkInitialized;
|
|
19
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebsocketClient = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ws_1 = tslib_1.__importDefault(require("ws"));
|
|
6
|
+
class WebsocketClient {
|
|
7
|
+
constructor(config) {
|
|
8
|
+
this.url = config.url;
|
|
9
|
+
const lazyInit = config.lazyInit || false;
|
|
10
|
+
if (!lazyInit) {
|
|
11
|
+
this.initialized = true;
|
|
12
|
+
this.ws = new ws_1.default(this.url);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
this.initialized = false;
|
|
16
|
+
}
|
|
17
|
+
init() {
|
|
18
|
+
if (this.initialized) {
|
|
19
|
+
throw new Error('WebSocket is already initialized');
|
|
20
|
+
}
|
|
21
|
+
// @ts-expect-error hack for readonly property
|
|
22
|
+
this.initialized = true;
|
|
23
|
+
// @ts-expect-error hack for readonly property
|
|
24
|
+
this.ws = new ws_1.default(this.url);
|
|
25
|
+
}
|
|
26
|
+
on(event, cb) {
|
|
27
|
+
this.checkInitialized();
|
|
28
|
+
this.ws.on(event, cb);
|
|
29
|
+
}
|
|
30
|
+
off(event, cb) {
|
|
31
|
+
this.checkInitialized();
|
|
32
|
+
this.ws.off(event, cb);
|
|
33
|
+
}
|
|
34
|
+
onOpen(cb) {
|
|
35
|
+
this.on('open', cb);
|
|
36
|
+
}
|
|
37
|
+
send(message) {
|
|
38
|
+
this.checkInitialized();
|
|
39
|
+
const serialized = JSON.stringify(message);
|
|
40
|
+
this.ws.send(serialized);
|
|
41
|
+
}
|
|
42
|
+
onMessage(cb) {
|
|
43
|
+
this.on('message', (data) => {
|
|
44
|
+
const parsedData = JSON.parse(data);
|
|
45
|
+
cb(parsedData);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
onClose(cb) {
|
|
49
|
+
this.on('close', cb);
|
|
50
|
+
}
|
|
51
|
+
onError(cb) {
|
|
52
|
+
this.on('error', cb);
|
|
53
|
+
}
|
|
54
|
+
close() {
|
|
55
|
+
this.checkInitialized();
|
|
56
|
+
this.ws.close();
|
|
57
|
+
}
|
|
58
|
+
checkInitialized() {
|
|
59
|
+
if (!this.initialized) {
|
|
60
|
+
throwInitError();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.WebsocketClient = WebsocketClient;
|
|
65
|
+
function throwInitError() {
|
|
66
|
+
throw new Error('WebSocket is not initialized. Call init() first.');
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=websocket-client.connector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-client.connector.js","sourceRoot":"","sources":["../../../src/connector/ws/websocket-client.connector.ts"],"names":[],"mappings":";;;;AAAA,oDAA0B;AAS1B,MAAa,eAAe;IAOxB,YAAY,MAAmB;QAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;QAErB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAA;QAEzC,IAAI,CAAC,QAAQ,EAAE;YACX,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,IAAI,CAAC,EAAE,GAAG,IAAI,YAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEjC,OAAM;SACT;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;IAC5B,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACtD;QAED,8CAA8C;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;QACvB,8CAA8C;QAC9C,IAAI,CAAC,EAAE,GAAG,IAAI,YAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAED,EAAE,CAAC,KAAa,EAAE,EAAuB;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACzB,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,EAAuB;QACtC,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED,MAAM,CAAC,EAAuB;QAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,IAAI,CAAI,OAAU;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC5B,CAAC;IAED,SAAS,CAAC,EAAe;QACrB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAS,EAAE,EAAE;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEnC,EAAE,CAAC,UAAU,CAAC,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,OAAO,CAAC,EAAe;QACnB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACxB,CAAC;IAED,OAAO,CAAC,EAAe;QACnB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACxB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,cAAc,EAAE,CAAA;SACnB;IACL,CAAC;CACJ;AA/ED,0CA+EC;AAED,SAAS,cAAc;IACnB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;AACvE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnyFunctionWithThis, AnyFunction, OnMessageCb } from './types';
|
|
2
|
+
export interface WsProviderConnector {
|
|
3
|
+
init(): void;
|
|
4
|
+
on(event: string, cb: AnyFunctionWithThis): void;
|
|
5
|
+
off(event: string, cb: AnyFunctionWithThis): void;
|
|
6
|
+
onOpen(cb: AnyFunctionWithThis): void;
|
|
7
|
+
send<T>(message: T): void;
|
|
8
|
+
close(): void;
|
|
9
|
+
onMessage(cb: OnMessageCb): void;
|
|
10
|
+
onClose(cb: AnyFunction): void;
|
|
11
|
+
onError(cb: AnyFunction): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-provider.connector.js","sourceRoot":"","sources":["../../../src/connector/ws/websocket-provider.connector.ts"],"names":[],"mappings":""}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -12,4 +12,5 @@ tslib_1.__exportStar(require("./constants"), exports);
|
|
|
12
12
|
tslib_1.__exportStar(require("./utils"), exports);
|
|
13
13
|
tslib_1.__exportStar(require("./validations"), exports);
|
|
14
14
|
tslib_1.__exportStar(require("./settlement"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./ws-api"), exports);
|
|
15
16
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAAsC;AACtC,+DAAoC;AACpC,+DAAoC;AACpC,8DAAmC;AACnC,qEAA0C;AAC1C,4DAAiC;AACjC,sDAA2B;AAC3B,sDAA2B;AAC3B,kDAAuB;AACvB,wDAA6B;AAC7B,uDAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAAsC;AACtC,+DAAoC;AACpC,+DAAoC;AACpC,8DAAmC;AACnC,qEAA0C;AAC1C,4DAAiC;AACjC,sDAA2B;AAC3B,sDAA2B;AAC3B,kDAAuB;AACvB,wDAA6B;AAC7B,uDAA4B;AAC5B,mDAAwB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1inch/fusion-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.11",
|
|
4
4
|
"description": "1inch Fusion Mode SDK",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "index.js",
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"@ethersproject/bignumber": "^5.1.1",
|
|
31
31
|
"@metamask/eth-sig-util": "^5.0.2",
|
|
32
32
|
"bn.js": "^5.2.1",
|
|
33
|
-
"web3": "^1.8.1"
|
|
33
|
+
"web3": "^1.8.1",
|
|
34
|
+
"ws": "^8.12.1"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@babel/core": "^7.13.16",
|
|
@@ -38,6 +39,7 @@
|
|
|
38
39
|
"@babel/preset-typescript": "^7.13.0",
|
|
39
40
|
"@types/jest": "^26.0.22",
|
|
40
41
|
"@types/prompts": "^2.0.12",
|
|
42
|
+
"@types/ws": "^8.5.4",
|
|
41
43
|
"@typescript-eslint/eslint-plugin": "4",
|
|
42
44
|
"axios": "^1.2.3",
|
|
43
45
|
"babel-jest": "^26.6.3",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeCancelOrder = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const web3_eth_contract_1 = tslib_1.__importDefault(require("web3-eth-contract"));
|
|
6
|
+
const AggregationRouterV5_abi_json_1 = tslib_1.__importDefault(require("../../abi/AggregationRouterV5.abi.json"));
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
8
|
+
// @ts-ignore
|
|
9
|
+
const limitOrderV3 = new web3_eth_contract_1.default(AggregationRouterV5_abi_json_1.default);
|
|
10
|
+
function encodeCancelOrder(params) {
|
|
11
|
+
return limitOrderV3.methods.cancelOrder(params).encodeABI();
|
|
12
|
+
}
|
|
13
|
+
exports.encodeCancelOrder = encodeCancelOrder;
|
|
14
|
+
//# sourceMappingURL=cancel-order.encoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancel-order.encoder.js","sourceRoot":"","sources":["../../../src/sdk/encoders/cancel-order.encoder.ts"],"names":[],"mappings":";;;;AAAA,kFAAwC;AACxC,kHAAoE;AAIpE,6DAA6D;AAC7D,aAAa;AACb,MAAM,YAAY,GAAG,IAAI,2BAAQ,CAAC,sCAA4B,CAAC,CAAA;AAE/D,SAAgB,iBAAiB,CAAC,MAA0B;IACxD,OAAO,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAA;AAC/D,CAAC;AAFD,8CAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './cancel-order.encoder';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sdk/encoders/index.ts"],"names":[],"mappings":";;;AAAA,iEAAsC"}
|
package/sdk/index.d.ts
CHANGED
package/sdk/index.js
CHANGED
|
@@ -3,4 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./sdk"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./types"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./encoders"), exports);
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/sdk/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":";;;AAAA,gDAAqB;AACrB,kDAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":";;;AAAA,gDAAqB;AACrB,kDAAuB;AACvB,qDAA0B"}
|
package/sdk/sdk.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { FusionApi, Quote } from '../api';
|
|
2
|
-
import { FusionSDKConfigParams, OrderInfo, OrderParams, QuoteParams } from './types';
|
|
2
|
+
import { FusionSDKConfigParams, OrderInfo, OrderParams, PreparedOrder, QuoteParams } from './types';
|
|
3
3
|
import { ActiveOrdersRequestParams, ActiveOrdersResponse, OrdersByMakerParams, OrdersByMakerResponse, OrderStatusResponse } from '../api/orders';
|
|
4
|
+
import { FusionOrder } from '../fusion-order';
|
|
4
5
|
export declare class FusionSDK {
|
|
5
6
|
private readonly config;
|
|
6
7
|
readonly api: FusionApi;
|
|
@@ -9,6 +10,9 @@ export declare class FusionSDK {
|
|
|
9
10
|
getOrderStatus(orderHash: string): Promise<OrderStatusResponse>;
|
|
10
11
|
getOrdersByMaker({ limit, page, address }: OrdersByMakerParams): Promise<OrdersByMakerResponse>;
|
|
11
12
|
getQuote(params: QuoteParams): Promise<Quote>;
|
|
13
|
+
createOrder(params: OrderParams): Promise<PreparedOrder>;
|
|
14
|
+
submitOrder(order: FusionOrder, quoteId: string): Promise<OrderInfo>;
|
|
12
15
|
placeOrder(params: OrderParams): Promise<OrderInfo>;
|
|
16
|
+
buildCancelOrderCallData(orderHash: string): Promise<string>;
|
|
13
17
|
private getNonce;
|
|
14
18
|
}
|
package/sdk/sdk.js
CHANGED
|
@@ -8,6 +8,7 @@ const limit_order_1 = require("../limit-order");
|
|
|
8
8
|
const orders_1 = require("../api/orders");
|
|
9
9
|
const nonce_manager_1 = require("../nonce-manager/nonce-manager");
|
|
10
10
|
const types_1 = require("../nonce-manager/types");
|
|
11
|
+
const encoders_1 = require("./encoders");
|
|
11
12
|
class FusionSDK {
|
|
12
13
|
constructor(config) {
|
|
13
14
|
this.config = config;
|
|
@@ -48,11 +49,8 @@ class FusionSDK {
|
|
|
48
49
|
return this.api.getQuote(request);
|
|
49
50
|
});
|
|
50
51
|
}
|
|
51
|
-
|
|
52
|
+
createOrder(params) {
|
|
52
53
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
if (!this.config.blockchainProvider) {
|
|
54
|
-
throw new Error('blockchainProvider has not set to config');
|
|
55
|
-
}
|
|
56
54
|
const quoterRequest = api_1.QuoterRequest.new({
|
|
57
55
|
fromTokenAddress: params.fromTokenAddress,
|
|
58
56
|
toTokenAddress: params.toTokenAddress,
|
|
@@ -73,22 +71,60 @@ class FusionSDK {
|
|
|
73
71
|
permit: params.permit
|
|
74
72
|
});
|
|
75
73
|
const domain = (0, limit_order_1.getLimitOrderV3Domain)(this.config.network);
|
|
76
|
-
const
|
|
74
|
+
const hash = order.getOrderHash(domain);
|
|
75
|
+
return { order, hash, quoteId: quote.quoteId };
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
submitOrder(order, quoteId) {
|
|
79
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
if (!this.config.blockchainProvider) {
|
|
81
|
+
throw new Error('blockchainProvider has not set to config');
|
|
82
|
+
}
|
|
77
83
|
const orderStruct = order.build();
|
|
84
|
+
const domain = (0, limit_order_1.getLimitOrderV3Domain)(this.config.network);
|
|
85
|
+
const signature = yield this.config.blockchainProvider.signTypedData(orderStruct.maker, order.getTypedData(domain));
|
|
78
86
|
const relayerRequest = api_1.RelayerRequest.new({
|
|
79
87
|
order: orderStruct,
|
|
80
88
|
signature,
|
|
81
|
-
quoteId
|
|
89
|
+
quoteId
|
|
82
90
|
});
|
|
83
91
|
yield this.api.submitOrder(relayerRequest);
|
|
84
92
|
return {
|
|
85
|
-
order:
|
|
93
|
+
order: orderStruct,
|
|
86
94
|
signature,
|
|
87
|
-
quoteId
|
|
95
|
+
quoteId,
|
|
88
96
|
orderHash: order.getOrderHash(domain)
|
|
89
97
|
};
|
|
90
98
|
});
|
|
91
99
|
}
|
|
100
|
+
placeOrder(params) {
|
|
101
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
const { order, quoteId } = yield this.createOrder(params);
|
|
103
|
+
return this.submitOrder(order, quoteId);
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
buildCancelOrderCallData(orderHash) {
|
|
107
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
const getOrderRequest = orders_1.OrderStatusRequest.new({ orderHash });
|
|
109
|
+
const orderData = yield this.api.getOrderStatus(getOrderRequest);
|
|
110
|
+
if (!orderData) {
|
|
111
|
+
throw new Error(`Can not get order with the specified orderHash ${orderHash}`);
|
|
112
|
+
}
|
|
113
|
+
const { order } = orderData;
|
|
114
|
+
return (0, encoders_1.encodeCancelOrder)({
|
|
115
|
+
makerAsset: order.makerAsset,
|
|
116
|
+
takerAsset: order.takerAsset,
|
|
117
|
+
maker: order.maker,
|
|
118
|
+
receiver: order.receiver,
|
|
119
|
+
allowedSender: order.allowedSender,
|
|
120
|
+
interactions: order.interactions,
|
|
121
|
+
makingAmount: order.makingAmount,
|
|
122
|
+
takingAmount: order.takingAmount,
|
|
123
|
+
salt: order.salt,
|
|
124
|
+
offsets: order.offsets
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
92
128
|
getNonce(walletAddress, nonce) {
|
|
93
129
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
94
130
|
if (!this.config.blockchainProvider) {
|
package/sdk/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk/sdk.ts"],"names":[],"mappings":";;;;AAAA,gCAAsE;
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/sdk/sdk.spec.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const ts_mockito_1 = require("ts-mockito");
|
|
5
|
+
const connector_1 = require("../connector");
|
|
6
|
+
const sdk_1 = require("./sdk");
|
|
7
|
+
const constants_1 = require("../constants");
|
|
8
|
+
function createHttpProviderFake(mock) {
|
|
9
|
+
const httpProvider = {
|
|
10
|
+
get: jest.fn().mockImplementationOnce(() => {
|
|
11
|
+
return Promise.resolve(mock);
|
|
12
|
+
}),
|
|
13
|
+
post: jest.fn().mockImplementation(() => {
|
|
14
|
+
return Promise.resolve(null);
|
|
15
|
+
})
|
|
16
|
+
};
|
|
17
|
+
return httpProvider;
|
|
18
|
+
}
|
|
19
|
+
describe(__filename, () => {
|
|
20
|
+
let web3Provider;
|
|
21
|
+
let web3ProviderConnector;
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
web3Provider = (0, ts_mockito_1.mock)();
|
|
24
|
+
web3ProviderConnector = new connector_1.Web3ProviderConnector((0, ts_mockito_1.instance)(web3Provider));
|
|
25
|
+
});
|
|
26
|
+
it('returns encoded call data to cancel order', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
27
|
+
const url = 'https://test.com';
|
|
28
|
+
const expected = {
|
|
29
|
+
order: {
|
|
30
|
+
salt: '45144194282371711345892930501725766861375817078109214409479816083205610767025',
|
|
31
|
+
maker: '0x6f250c769001617aff9bdf4b9fd878062e94af83',
|
|
32
|
+
offsets: '970558080243398695134547109586957793750899628853613079895592438595584',
|
|
33
|
+
receiver: '0x0000000000000000000000000000000000000000',
|
|
34
|
+
makerAsset: '0x6eb15148d0ea88433dd8088a3acc515d27e36c1b',
|
|
35
|
+
takerAsset: '0xdac17f958d2ee523a2206206994597c13d831ec7',
|
|
36
|
+
interactions: '0x2cc2878d000063ceb60f0000000000006f250c769001617aff9bdf4b9fd878062e94af83006c00c2fe001800c44c0000000084d99aa569d93a9ca187d83734c8c4a519c4e9b1ffffffff0a',
|
|
37
|
+
makingAmount: '2246481050155000',
|
|
38
|
+
takingAmount: '349837736598',
|
|
39
|
+
allowedSender: '0xa88800cd213da5ae406ce248380802bd53b47647'
|
|
40
|
+
},
|
|
41
|
+
cancelTx: null,
|
|
42
|
+
points: null,
|
|
43
|
+
auctionStartDate: 1674491231,
|
|
44
|
+
auctionDuration: 180,
|
|
45
|
+
initialRateBump: 50484,
|
|
46
|
+
status: 'filled',
|
|
47
|
+
createdAt: '2023-01-23T16:26:38.803Z',
|
|
48
|
+
fromTokenToUsdPrice: '0.01546652159249409068',
|
|
49
|
+
toTokenToUsdPrice: '1.00135361305236370022',
|
|
50
|
+
fills: [
|
|
51
|
+
{
|
|
52
|
+
txHash: '0xcdd81e6860fc038d4fe8549efdf18488154667a2088d471cdaa7d492f24178a1',
|
|
53
|
+
filledMakerAmount: '2246481050155001',
|
|
54
|
+
filledAuctionTakerAmount: '351593117428'
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
isNativeCurrency: false
|
|
58
|
+
};
|
|
59
|
+
const httpProvider = createHttpProviderFake(expected);
|
|
60
|
+
const sdk = new sdk_1.FusionSDK({
|
|
61
|
+
url,
|
|
62
|
+
network: constants_1.NetworkEnum.ETHEREUM,
|
|
63
|
+
httpProvider,
|
|
64
|
+
blockchainProvider: web3ProviderConnector
|
|
65
|
+
});
|
|
66
|
+
const orderHash = `0x1beee023ab933cf5446c298eadadb61c05705f2156ef5b2db36c160b36f31ce4`;
|
|
67
|
+
const callData = yield sdk.buildCancelOrderCallData(orderHash);
|
|
68
|
+
expect(callData).toBe('0x2d9a56f6000000000000000000000000000000000000000000000000000000000000002063ceb55f0000b400c53400000000000000000000000000000000006dc95382b10000000000000000000000006eb15148d0ea88433dd8088a3acc515d27e36c1b000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006f250c769001617aff9bdf4b9fd878062e94af830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a88800cd213da5ae406ce248380802bd53b476470000000000000000000000000000000000000000000000000007fb29a0fd37f80000000000000000000000000000000000000000000000000000005173f43a9600000024000000240000002400000024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000004b2cc2878d000063ceb60f0000000000006f250c769001617aff9bdf4b9fd878062e94af83006c00c2fe001800c44c0000000084d99aa569d93a9ca187d83734c8c4a519c4e9b1ffffffff0a000000000000000000000000000000000000000000');
|
|
69
|
+
}));
|
|
70
|
+
it('throws an exception if order is not get from api', () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
71
|
+
const url = 'https://test.com';
|
|
72
|
+
const expected = undefined;
|
|
73
|
+
const httpProvider = createHttpProviderFake(expected);
|
|
74
|
+
const sdk = new sdk_1.FusionSDK({
|
|
75
|
+
url,
|
|
76
|
+
network: constants_1.NetworkEnum.ETHEREUM,
|
|
77
|
+
httpProvider,
|
|
78
|
+
blockchainProvider: web3ProviderConnector
|
|
79
|
+
});
|
|
80
|
+
const orderHash = `0x1beee023ab933cf5446c298eadadb61c05705f2156ef5b2db36c160b36f31ce4`;
|
|
81
|
+
const promise = sdk.buildCancelOrderCallData(orderHash);
|
|
82
|
+
yield expect(promise).rejects.toThrow('Can not get order with the specified orderHash 0x1beee023ab933cf5446c298eadadb61c05705f2156ef5b2db36c160b36f31ce4');
|
|
83
|
+
}));
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=sdk.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.spec.js","sourceRoot":"","sources":["../../src/sdk/sdk.spec.ts"],"names":[],"mappings":";;;AACA,2CAAyC;AACzC,4CAAyE;AACzE,+BAA+B;AAC/B,4CAAwC;AAExC,SAAS,sBAAsB,CAAI,IAAO;IACtC,MAAM,YAAY,GAA0B;QACxC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,EAAE;YACvC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC,CAAC;QACF,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACpC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC,CAAC;KACL,CAAA;IAED,OAAO,YAAY,CAAA;AACvB,CAAC;AAED,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACtB,IAAI,YAAkB,CAAA;IACtB,IAAI,qBAA4C,CAAA;IAEhD,UAAU,CAAC,GAAG,EAAE;QACZ,YAAY,GAAG,IAAA,iBAAI,GAAQ,CAAA;QAC3B,qBAAqB,GAAG,IAAI,iCAAqB,CAC7C,IAAA,qBAAQ,EAAC,YAAY,CAAC,CACzB,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAS,EAAE;QACvD,MAAM,GAAG,GAAG,kBAAkB,CAAA;QAE9B,MAAM,QAAQ,GAAG;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,+EAA+E;gBACrF,KAAK,EAAE,4CAA4C;gBACnD,OAAO,EACH,uEAAuE;gBAC3E,QAAQ,EAAE,4CAA4C;gBACtD,UAAU,EAAE,4CAA4C;gBACxD,UAAU,EAAE,4CAA4C;gBACxD,YAAY,EACR,0JAA0J;gBAC9J,YAAY,EAAE,kBAAkB;gBAChC,YAAY,EAAE,cAAc;gBAC5B,aAAa,EAAE,4CAA4C;aAC9D;YACD,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,gBAAgB,EAAE,UAAU;YAC5B,eAAe,EAAE,GAAG;YACpB,eAAe,EAAE,KAAK;YACtB,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE,0BAA0B;YACrC,mBAAmB,EAAE,wBAAwB;YAC7C,iBAAiB,EAAE,wBAAwB;YAC3C,KAAK,EAAE;gBACH;oBACI,MAAM,EAAE,oEAAoE;oBAC5E,iBAAiB,EAAE,kBAAkB;oBACrC,wBAAwB,EAAE,cAAc;iBAC3C;aACJ;YACD,gBAAgB,EAAE,KAAK;SAC1B,CAAA;QAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QACrD,MAAM,GAAG,GAAG,IAAI,eAAS,CAAC;YACtB,GAAG;YACH,OAAO,EAAE,uBAAW,CAAC,QAAQ;YAC7B,YAAY;YACZ,kBAAkB,EAAE,qBAAqB;SAC5C,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,oEAAoE,CAAA;QACtF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAA;QAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CACjB,48BAA48B,CAC/8B,CAAA;IACL,CAAC,CAAA,CAAC,CAAA;IAEF,EAAE,CAAC,kDAAkD,EAAE,GAAS,EAAE;QAC9D,MAAM,GAAG,GAAG,kBAAkB,CAAA;QAE9B,MAAM,QAAQ,GAAG,SAAS,CAAA;QAC1B,MAAM,YAAY,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;QACrD,MAAM,GAAG,GAAG,IAAI,eAAS,CAAC;YACtB,GAAG;YACH,OAAO,EAAE,uBAAW,CAAC,QAAQ;YAC7B,YAAY;YACZ,kBAAkB,EAAE,qBAAqB;SAC5C,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,oEAAoE,CAAA;QACtF,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAA;QACvD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CACjC,mHAAmH,CACtH,CAAA;IACL,CAAC,CAAA,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
package/sdk/types.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { NetworkEnum } from '../constants';
|
|
|
3
3
|
import { LimitOrderV3Struct } from '../limit-order';
|
|
4
4
|
import { PresetEnum } from '../api';
|
|
5
5
|
import { OrderNonce } from '../nonce-manager/types';
|
|
6
|
+
import { FusionOrder } from '../fusion-order';
|
|
6
7
|
export declare type FusionSDKConfigParams = {
|
|
7
8
|
url: string;
|
|
8
9
|
network: NetworkEnum;
|
|
@@ -31,4 +32,9 @@ export declare type OrderInfo = {
|
|
|
31
32
|
quoteId: string;
|
|
32
33
|
orderHash: string;
|
|
33
34
|
};
|
|
35
|
+
export declare type PreparedOrder = {
|
|
36
|
+
order: FusionOrder;
|
|
37
|
+
hash: string;
|
|
38
|
+
quoteId: string;
|
|
39
|
+
};
|
|
34
40
|
export declare type Nonce = string | number | undefined;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WsProviderConnector } from '../connector/ws';
|
|
2
|
+
import { OnOrderCb, OnOrderCreatedCb, OnOrderFilledCb, OnOrderFilledPartiallyCb, OnOrderInvalidCb, OnOrderNotEnoughBalanceOrAllowanceCb } from './types';
|
|
3
|
+
export declare class ActiveOrdersWebSocketApi {
|
|
4
|
+
readonly provider: WsProviderConnector;
|
|
5
|
+
constructor(provider: WsProviderConnector);
|
|
6
|
+
onOrder(cb: OnOrderCb): void;
|
|
7
|
+
onOrderCreated(cb: OnOrderCreatedCb): void;
|
|
8
|
+
onOrderInvalid(cb: OnOrderInvalidCb): void;
|
|
9
|
+
onOrderBalanceOrAllowanceChange(cb: OnOrderNotEnoughBalanceOrAllowanceCb): void;
|
|
10
|
+
onOrderFilled(cb: OnOrderFilledCb): void;
|
|
11
|
+
onOrderFilledPartially(cb: OnOrderFilledPartiallyCb): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActiveOrdersWebSocketApi = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
class ActiveOrdersWebSocketApi {
|
|
6
|
+
constructor(provider) {
|
|
7
|
+
this.provider = provider;
|
|
8
|
+
}
|
|
9
|
+
onOrder(cb) {
|
|
10
|
+
this.provider.onMessage((data) => {
|
|
11
|
+
if (constants_1.orderEvents.includes(data.event)) {
|
|
12
|
+
cb(data);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
onOrderCreated(cb) {
|
|
17
|
+
this.provider.onMessage((data) => {
|
|
18
|
+
if (data.event === 'order_created') {
|
|
19
|
+
cb(data);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
onOrderInvalid(cb) {
|
|
24
|
+
this.provider.onMessage((data) => {
|
|
25
|
+
if (data.event === 'order_invalid') {
|
|
26
|
+
cb(data);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
onOrderBalanceOrAllowanceChange(cb) {
|
|
31
|
+
this.provider.onMessage((data) => {
|
|
32
|
+
if (data.event === 'order_balance_or_allowance_change') {
|
|
33
|
+
cb(data);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
onOrderFilled(cb) {
|
|
38
|
+
this.provider.onMessage((data) => {
|
|
39
|
+
if (data.event === 'order_filled') {
|
|
40
|
+
cb(data);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
onOrderFilledPartially(cb) {
|
|
45
|
+
this.provider.onMessage((data) => {
|
|
46
|
+
if (data.event === 'order_filled_partially') {
|
|
47
|
+
cb(data);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.ActiveOrdersWebSocketApi = ActiveOrdersWebSocketApi;
|
|
53
|
+
//# sourceMappingURL=active-websocket-orders-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-websocket-orders-api.js","sourceRoot":"","sources":["../../src/ws-api/active-websocket-orders-api.ts"],"names":[],"mappings":";;;AACA,2CAAuC;AAWvC,MAAa,wBAAwB;IAGjC,YAAY,QAA6B;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAED,OAAO,CAAC,EAAa;QACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAoB,EAAE,EAAE;YAC7C,IAAI,uBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClC,EAAE,CAAC,IAAI,CAAC,CAAA;aACX;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,cAAc,CAAC,EAAoB;QAC/B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAoB,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,EAAE;gBAChC,EAAE,CAAC,IAAI,CAAC,CAAA;aACX;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,cAAc,CAAC,EAAoB;QAC/B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAoB,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,KAAK,KAAK,eAAe,EAAE;gBAChC,EAAE,CAAC,IAAI,CAAC,CAAA;aACX;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,+BAA+B,CAC3B,EAAwC;QAExC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAoB,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,KAAK,KAAK,mCAAmC,EAAE;gBACpD,EAAE,CAAC,IAAI,CAAC,CAAA;aACX;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,aAAa,CAAC,EAAmB;QAC7B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAoB,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,KAAK,KAAK,cAAc,EAAE;gBAC/B,EAAE,CAAC,IAAI,CAAC,CAAA;aACX;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,sBAAsB,CAAC,EAA4B;QAC/C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAoB,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,KAAK,KAAK,wBAAwB,EAAE;gBACzC,EAAE,CAAC,IAAI,CAAC,CAAA;aACX;QACL,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AAxDD,4DAwDC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.orderEvents = void 0;
|
|
4
|
+
exports.orderEvents = [
|
|
5
|
+
'order_created',
|
|
6
|
+
'order_invalid',
|
|
7
|
+
'order_balance_or_allowance_change',
|
|
8
|
+
'order_filled',
|
|
9
|
+
'order_filled_partially'
|
|
10
|
+
];
|
|
11
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/ws-api/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAA8B;IAClD,eAAe;IACf,eAAe;IACf,mCAAmC;IACnC,cAAc;IACd,wBAAwB;CAC3B,CAAA"}
|
package/ws-api/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ws-api/index.ts"],"names":[],"mappings":";;;AAAA,mDAAwB;AACxB,kDAAuB"}
|