@decibeltrade/sdk 0.1.6 → 0.1.7
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/dist/abi/generate-abis.js +9 -44
- package/dist/abi/types.js +1 -2
- package/dist/admin.js +10 -14
- package/dist/base.js +19 -26
- package/dist/constants.js +34 -41
- package/dist/fee-pay.js +1 -4
- package/dist/gas/gas-price-manager.js +3 -7
- package/dist/index.js +10 -26
- package/dist/order-event.types.js +1 -2
- package/dist/order-status.js +16 -23
- package/dist/read/account-overview/account-overview.reader.js +20 -91
- package/dist/read/account-overview/account-overview.types.d.ts +7 -7
- package/dist/read/account-overview/account-overview.types.js +23 -26
- package/dist/read/base-reader.js +5 -9
- package/dist/read/candlesticks/candlesticks.reader.js +24 -95
- package/dist/read/candlesticks/candlesticks.types.js +14 -17
- package/dist/read/delegations/delegations.reader.js +14 -84
- package/dist/read/delegations/delegations.types.js +6 -9
- package/dist/read/index.js +50 -68
- package/dist/read/leaderboard/leaderboard.reader.js +13 -94
- package/dist/read/leaderboard/leaderboard.types.js +10 -13
- package/dist/read/market-contexts/market-contexts.reader.js +16 -83
- package/dist/read/market-contexts/market-contexts.types.js +12 -15
- package/dist/read/market-depth/market-depth.reader.js +29 -101
- package/dist/read/market-depth/market-depth.types.js +8 -11
- package/dist/read/market-prices/market-prices.reader.js +30 -111
- package/dist/read/market-prices/market-prices.types.js +21 -24
- package/dist/read/market-trades/market-trades.reader.js +23 -94
- package/dist/read/market-trades/market-trades.types.js +18 -21
- package/dist/read/markets/markets.reader.js +55 -152
- package/dist/read/markets/markets.types.js +32 -35
- package/dist/read/pagination.types.js +5 -11
- package/dist/read/portfolio-chart/portfolio-chart.reader.js +12 -82
- package/dist/read/portfolio-chart/portfolio-chart.types.js +5 -8
- package/dist/read/types.js +58 -75
- package/dist/read/user-active-twaps/user-active-twaps.reader.js +16 -86
- package/dist/read/user-active-twaps/user-active-twaps.types.js +18 -21
- package/dist/read/user-bulk-orders/user-bulk-orders.reader.js +16 -86
- package/dist/read/user-bulk-orders/user-bulk-orders.types.js +16 -19
- package/dist/read/user-funding-history/user-funding-history.reader.js +16 -86
- package/dist/read/user-funding-history/user-funding-history.types.js +13 -16
- package/dist/read/user-notifications/user-notifications.reader.js +8 -32
- package/dist/read/user-notifications/user-notifications.types.js +19 -22
- package/dist/read/user-open-orders/user-open-orders.reader.js +16 -86
- package/dist/read/user-open-orders/user-open-orders.types.js +27 -30
- package/dist/read/user-order-history/user-order-history.reader.js +18 -88
- package/dist/read/user-order-history/user-order-history.types.js +29 -32
- package/dist/read/user-positions/user-positions.reader.js +24 -95
- package/dist/read/user-positions/user-positions.types.d.ts +15 -15
- package/dist/read/user-positions/user-positions.types.js +22 -25
- package/dist/read/user-subaccounts/user-subaccounts.reader.js +18 -89
- package/dist/read/user-subaccounts/user-subaccounts.types.js +8 -11
- package/dist/read/user-trade-history/user-trade-history.reader.js +16 -86
- package/dist/read/user-trade-history/user-trade-history.types.js +18 -21
- package/dist/read/vaults/vaults.reader.js +45 -150
- package/dist/read/vaults/vaults.types.js +52 -55
- package/dist/read/ws-subscription.js +10 -17
- package/dist/subaccount-types.js +4 -7
- package/dist/transaction-builder.js +15 -23
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils.js +28 -42
- package/dist/write.js +20 -24
- package/package.json +2 -1
- package/tsconfig.json +4 -1
|
@@ -1,98 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
28
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
-
exports.UserPositionsReader = void 0;
|
|
55
|
-
var base_reader_1 = require("../base-reader");
|
|
56
|
-
var user_positions_types_1 = require("./user-positions.types");
|
|
57
|
-
var UserPositionsReader = /** @class */ (function (_super) {
|
|
58
|
-
__extends(UserPositionsReader, _super);
|
|
59
|
-
function UserPositionsReader() {
|
|
60
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
61
|
-
}
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserPositionsSchema, UserPositionsWsMessageSchema, } from "./user-positions.types";
|
|
3
|
+
export class UserPositionsReader extends BaseReader {
|
|
62
4
|
/**
|
|
63
5
|
* Get the positions for a given user
|
|
64
6
|
* @param userAddr The address of the user to get positions for
|
|
65
7
|
* @param includeDeleted Whether to include deleted positions in the response
|
|
66
8
|
* @returns The positions for the given user
|
|
67
9
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
return [4 /*yield*/, this.getRequest({
|
|
84
|
-
schema: user_positions_types_1.UserPositionsSchema,
|
|
85
|
-
url: "".concat(this.deps.config.tradingHttpUrl, "/api/v1/user_positions"),
|
|
86
|
-
queryParams: queryParams,
|
|
87
|
-
options: fetchOptions,
|
|
88
|
-
})];
|
|
89
|
-
case 1:
|
|
90
|
-
response = _e.sent();
|
|
91
|
-
return [2 /*return*/, response.data];
|
|
92
|
-
}
|
|
93
|
-
});
|
|
10
|
+
async getByAddr({ subAddr, marketAddr, includeDeleted = false, limit = 10, fetchOptions, }) {
|
|
11
|
+
const queryParams = new URLSearchParams({
|
|
12
|
+
user: subAddr,
|
|
13
|
+
include_deleted: includeDeleted.toString(),
|
|
14
|
+
limit: limit.toString(),
|
|
15
|
+
});
|
|
16
|
+
if (marketAddr) {
|
|
17
|
+
queryParams.set("market_address", marketAddr);
|
|
18
|
+
}
|
|
19
|
+
const response = await this.getRequest({
|
|
20
|
+
schema: UserPositionsSchema,
|
|
21
|
+
url: `${this.deps.config.tradingHttpUrl}/api/v1/user_positions`,
|
|
22
|
+
queryParams,
|
|
23
|
+
options: fetchOptions,
|
|
94
24
|
});
|
|
95
|
-
|
|
25
|
+
return response.data;
|
|
26
|
+
}
|
|
96
27
|
/**
|
|
97
28
|
* Subscribe to user positions updates
|
|
98
29
|
* @param subAddr The subaccount address of the user to subscribe to
|
|
@@ -100,10 +31,8 @@ var UserPositionsReader = /** @class */ (function (_super) {
|
|
|
100
31
|
* @param onData Callback function for received user positions data
|
|
101
32
|
* @returns A function to unsubscribe from the user positions updates
|
|
102
33
|
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
return this.deps.ws.subscribe(topic,
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
}(base_reader_1.BaseReader));
|
|
109
|
-
exports.UserPositionsReader = UserPositionsReader;
|
|
34
|
+
subscribeByAddr(subAddr, onData) {
|
|
35
|
+
const topic = `user_positions:${subAddr}`;
|
|
36
|
+
return this.deps.ws.subscribe(topic, UserPositionsWsMessageSchema, onData);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -62,21 +62,21 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
62
62
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
63
63
|
};
|
|
64
64
|
keyof: () => z.ZodEnum<{
|
|
65
|
-
size: "size";
|
|
66
65
|
market: "market";
|
|
66
|
+
size: "size";
|
|
67
67
|
user: "user";
|
|
68
|
-
tp_order_id: "tp_order_id";
|
|
69
|
-
tp_trigger_price: "tp_trigger_price";
|
|
70
|
-
tp_limit_price: "tp_limit_price";
|
|
71
|
-
sl_order_id: "sl_order_id";
|
|
72
|
-
sl_trigger_price: "sl_trigger_price";
|
|
73
|
-
sl_limit_price: "sl_limit_price";
|
|
74
68
|
max_allowed_leverage: "max_allowed_leverage";
|
|
75
69
|
user_leverage: "user_leverage";
|
|
76
70
|
entry_price: "entry_price";
|
|
77
71
|
is_isolated: "is_isolated";
|
|
78
72
|
unrealized_funding: "unrealized_funding";
|
|
79
73
|
estimated_liquidation_price: "estimated_liquidation_price";
|
|
74
|
+
tp_order_id: "tp_order_id";
|
|
75
|
+
tp_trigger_price: "tp_trigger_price";
|
|
76
|
+
tp_limit_price: "tp_limit_price";
|
|
77
|
+
sl_order_id: "sl_order_id";
|
|
78
|
+
sl_trigger_price: "sl_trigger_price";
|
|
79
|
+
sl_limit_price: "sl_limit_price";
|
|
80
80
|
has_fixed_sized_tpsls: "has_fixed_sized_tpsls";
|
|
81
81
|
}>;
|
|
82
82
|
catchall: <T extends z.core.SomeType>(schema: T) => z.ZodObject<{
|
|
@@ -169,7 +169,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
169
169
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
170
170
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
171
171
|
}, z.core.$strip>;
|
|
172
|
-
extend: <U extends z.core.$ZodLooseShape & Partial<Record<"
|
|
172
|
+
extend: <U extends z.core.$ZodLooseShape & Partial<Record<"market" | "size" | "user" | "max_allowed_leverage" | "user_leverage" | "entry_price" | "is_isolated" | "unrealized_funding" | "estimated_liquidation_price" | "tp_order_id" | "tp_trigger_price" | "tp_limit_price" | "sl_order_id" | "sl_trigger_price" | "sl_limit_price" | "has_fixed_sized_tpsls", z.core.SomeType>>>(shape: U) => z.ZodObject<(("market" | "size" | "user" | "max_allowed_leverage" | "user_leverage" | "entry_price" | "is_isolated" | "unrealized_funding" | "estimated_liquidation_price" | "tp_order_id" | "tp_trigger_price" | "tp_limit_price" | "sl_order_id" | "sl_trigger_price" | "sl_limit_price" | "has_fixed_sized_tpsls") & keyof U extends never ? {
|
|
173
173
|
market: z.ZodString;
|
|
174
174
|
user: z.ZodString;
|
|
175
175
|
size: z.ZodNumber;
|
|
@@ -204,7 +204,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
204
204
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
205
205
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
206
206
|
} extends infer T_1 extends z.core.util.SomeObject ? { [K in keyof T_1 as K extends keyof U ? never : K]: T_1[K]; } : never) & { [K_1 in keyof U]: U[K_1]; }) extends infer T ? { [k in keyof T]: T[k]; } : never, z.core.$strip>;
|
|
207
|
-
merge: <U extends z.ZodObject>(other: U) => z.ZodObject<(("
|
|
207
|
+
merge: <U extends z.ZodObject>(other: U) => z.ZodObject<(("market" | "size" | "user" | "max_allowed_leverage" | "user_leverage" | "entry_price" | "is_isolated" | "unrealized_funding" | "estimated_liquidation_price" | "tp_order_id" | "tp_trigger_price" | "tp_limit_price" | "sl_order_id" | "sl_trigger_price" | "sl_limit_price" | "has_fixed_sized_tpsls") & keyof U["shape"] extends never ? {
|
|
208
208
|
market: z.ZodString;
|
|
209
209
|
user: z.ZodString;
|
|
210
210
|
size: z.ZodNumber;
|
|
@@ -239,7 +239,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
239
239
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
240
240
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
241
241
|
} extends infer T_1 extends z.core.util.SomeObject ? { [K in keyof T_1 as K extends keyof U["shape"] ? never : K]: T_1[K]; } : never) & (U["shape"] extends infer T_2 extends z.core.util.SomeObject ? { [K_1 in keyof T_2]: T_2[K_1]; } : never)) extends infer T ? { [k in keyof T]: T[k]; } : never, U["_zod"]["config"]>;
|
|
242
|
-
pick: <M extends z.core.util.Mask<"
|
|
242
|
+
pick: <M extends z.core.util.Mask<"market" | "size" | "user" | "max_allowed_leverage" | "user_leverage" | "entry_price" | "is_isolated" | "unrealized_funding" | "estimated_liquidation_price" | "tp_order_id" | "tp_trigger_price" | "tp_limit_price" | "sl_order_id" | "sl_trigger_price" | "sl_limit_price" | "has_fixed_sized_tpsls">>(mask: M) => z.ZodObject<Pick<{
|
|
243
243
|
market: z.ZodString;
|
|
244
244
|
user: z.ZodString;
|
|
245
245
|
size: z.ZodNumber;
|
|
@@ -256,8 +256,8 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
256
256
|
sl_trigger_price: z.ZodNullable<z.ZodNumber>;
|
|
257
257
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
258
258
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
259
|
-
}, Extract<"
|
|
260
|
-
omit: <M extends z.core.util.Mask<"
|
|
259
|
+
}, Extract<"market", keyof M> | Extract<"size", keyof M> | Extract<"user", keyof M> | Extract<"max_allowed_leverage", keyof M> | Extract<"user_leverage", keyof M> | Extract<"entry_price", keyof M> | Extract<"is_isolated", keyof M> | Extract<"unrealized_funding", keyof M> | Extract<"estimated_liquidation_price", keyof M> | Extract<"tp_order_id", keyof M> | Extract<"tp_trigger_price", keyof M> | Extract<"tp_limit_price", keyof M> | Extract<"sl_order_id", keyof M> | Extract<"sl_trigger_price", keyof M> | Extract<"sl_limit_price", keyof M> | Extract<"has_fixed_sized_tpsls", keyof M>> extends infer T ? { [k in keyof T]: T[k]; } : never, z.core.$strip>;
|
|
260
|
+
omit: <M extends z.core.util.Mask<"market" | "size" | "user" | "max_allowed_leverage" | "user_leverage" | "entry_price" | "is_isolated" | "unrealized_funding" | "estimated_liquidation_price" | "tp_order_id" | "tp_trigger_price" | "tp_limit_price" | "sl_order_id" | "sl_trigger_price" | "sl_limit_price" | "has_fixed_sized_tpsls">>(mask: M) => z.ZodObject<Omit<{
|
|
261
261
|
market: z.ZodString;
|
|
262
262
|
user: z.ZodString;
|
|
263
263
|
size: z.ZodNumber;
|
|
@@ -274,7 +274,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
274
274
|
sl_trigger_price: z.ZodNullable<z.ZodNumber>;
|
|
275
275
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
276
276
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
277
|
-
}, Extract<"
|
|
277
|
+
}, Extract<"market", keyof M> | Extract<"size", keyof M> | Extract<"user", keyof M> | Extract<"max_allowed_leverage", keyof M> | Extract<"user_leverage", keyof M> | Extract<"entry_price", keyof M> | Extract<"is_isolated", keyof M> | Extract<"unrealized_funding", keyof M> | Extract<"estimated_liquidation_price", keyof M> | Extract<"tp_order_id", keyof M> | Extract<"tp_trigger_price", keyof M> | Extract<"tp_limit_price", keyof M> | Extract<"sl_order_id", keyof M> | Extract<"sl_trigger_price", keyof M> | Extract<"sl_limit_price", keyof M> | Extract<"has_fixed_sized_tpsls", keyof M>> extends infer T ? { [k in keyof T]: T[k]; } : never, z.core.$strip>;
|
|
278
278
|
partial: {
|
|
279
279
|
(): z.ZodObject<{
|
|
280
280
|
market: z.ZodOptional<z.ZodString>;
|
|
@@ -294,7 +294,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
294
294
|
sl_limit_price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
295
295
|
has_fixed_sized_tpsls: z.ZodOptional<z.ZodBoolean>;
|
|
296
296
|
}, z.core.$strip>;
|
|
297
|
-
<M extends z.core.util.Mask<"
|
|
297
|
+
<M extends z.core.util.Mask<"market" | "size" | "user" | "max_allowed_leverage" | "user_leverage" | "entry_price" | "is_isolated" | "unrealized_funding" | "estimated_liquidation_price" | "tp_order_id" | "tp_trigger_price" | "tp_limit_price" | "sl_order_id" | "sl_trigger_price" | "sl_limit_price" | "has_fixed_sized_tpsls">>(mask: M): z.ZodObject<{
|
|
298
298
|
market: "market" extends infer T ? T extends "market" ? T extends keyof M ? z.ZodOptional<{
|
|
299
299
|
market: z.ZodString;
|
|
300
300
|
user: z.ZodString;
|
|
@@ -876,7 +876,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
876
876
|
sl_limit_price: z.ZodNonOptional<z.ZodNullable<z.ZodNumber>>;
|
|
877
877
|
has_fixed_sized_tpsls: z.ZodNonOptional<z.ZodBoolean>;
|
|
878
878
|
}, z.core.$strip>;
|
|
879
|
-
<M extends z.core.util.Mask<"
|
|
879
|
+
<M extends z.core.util.Mask<"market" | "size" | "user" | "max_allowed_leverage" | "user_leverage" | "entry_price" | "is_isolated" | "unrealized_funding" | "estimated_liquidation_price" | "tp_order_id" | "tp_trigger_price" | "tp_limit_price" | "sl_order_id" | "sl_trigger_price" | "sl_limit_price" | "has_fixed_sized_tpsls">>(mask: M): z.ZodObject<{
|
|
880
880
|
market: "market" extends infer T ? T extends "market" ? T extends keyof M ? z.ZodNonOptional<{
|
|
881
881
|
market: z.ZodString;
|
|
882
882
|
user: z.ZodString;
|
|
@@ -1,28 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
market: v4_1.default.string(),
|
|
7
|
-
user: v4_1.default.string(),
|
|
8
|
-
size: v4_1.default.number(),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export const UserPositionSchema = z.object({
|
|
3
|
+
market: z.string(),
|
|
4
|
+
user: z.string(),
|
|
5
|
+
size: z.number(),
|
|
9
6
|
// margin: z.number(),
|
|
10
|
-
max_allowed_leverage:
|
|
11
|
-
user_leverage:
|
|
12
|
-
entry_price:
|
|
13
|
-
is_isolated:
|
|
14
|
-
unrealized_funding:
|
|
15
|
-
estimated_liquidation_price:
|
|
16
|
-
tp_order_id:
|
|
17
|
-
tp_trigger_price:
|
|
18
|
-
tp_limit_price:
|
|
19
|
-
sl_order_id:
|
|
20
|
-
sl_trigger_price:
|
|
21
|
-
sl_limit_price:
|
|
22
|
-
has_fixed_sized_tpsls:
|
|
7
|
+
max_allowed_leverage: z.number(),
|
|
8
|
+
user_leverage: z.number(),
|
|
9
|
+
entry_price: z.number(),
|
|
10
|
+
is_isolated: z.boolean(),
|
|
11
|
+
unrealized_funding: z.number(),
|
|
12
|
+
estimated_liquidation_price: z.number(),
|
|
13
|
+
tp_order_id: z.string().nullable(),
|
|
14
|
+
tp_trigger_price: z.number().nullable(),
|
|
15
|
+
tp_limit_price: z.number().nullable(),
|
|
16
|
+
sl_order_id: z.string().nullable(),
|
|
17
|
+
sl_trigger_price: z.number().nullable(),
|
|
18
|
+
sl_limit_price: z.number().nullable(),
|
|
19
|
+
has_fixed_sized_tpsls: z.boolean(),
|
|
23
20
|
});
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
positions:
|
|
21
|
+
export const UserPositionsSchema = z.array(UserPositionSchema);
|
|
22
|
+
export const UserPositionWsMessageSchema = z.object(UserPositionSchema);
|
|
23
|
+
export const UserPositionsWsMessageSchema = z.object({
|
|
24
|
+
positions: UserPositionsSchema,
|
|
28
25
|
});
|
|
@@ -1,96 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
28
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
-
exports.UserSubaccountsReader = void 0;
|
|
55
|
-
var base_reader_1 = require("../base-reader");
|
|
56
|
-
var user_subaccounts_types_1 = require("./user-subaccounts.types");
|
|
57
|
-
var UserSubaccountsReader = /** @class */ (function (_super) {
|
|
58
|
-
__extends(UserSubaccountsReader, _super);
|
|
59
|
-
function UserSubaccountsReader() {
|
|
60
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
61
|
-
}
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserSubaccountsSchema } from "./user-subaccounts.types";
|
|
3
|
+
export class UserSubaccountsReader extends BaseReader {
|
|
62
4
|
/**
|
|
63
5
|
* Get the subaccounts for a given user
|
|
64
6
|
* @param ownerAddr The address of the owner to get subaccounts for
|
|
65
7
|
* @param limit The number of subaccounts to get (default: 10)
|
|
66
8
|
* @returns The subaccounts for the given user
|
|
67
9
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return __generator(this, function (_c) {
|
|
75
|
-
switch (_c.label) {
|
|
76
|
-
case 0:
|
|
77
|
-
queryParams = new URLSearchParams({
|
|
78
|
-
owner: ownerAddr,
|
|
79
|
-
// limit: limit.toString(),
|
|
80
|
-
});
|
|
81
|
-
return [4 /*yield*/, this.getRequest({
|
|
82
|
-
schema: user_subaccounts_types_1.UserSubaccountsSchema,
|
|
83
|
-
url: "".concat(this.deps.config.tradingHttpUrl, "/api/v1/subaccounts"), // TODO: update to /user_subaccounts?
|
|
84
|
-
queryParams: queryParams,
|
|
85
|
-
options: fetchOptions,
|
|
86
|
-
})];
|
|
87
|
-
case 1:
|
|
88
|
-
response = _c.sent();
|
|
89
|
-
return [2 /*return*/, response.data];
|
|
90
|
-
}
|
|
91
|
-
});
|
|
10
|
+
async getByAddr({ ownerAddr,
|
|
11
|
+
// limit = 10,
|
|
12
|
+
fetchOptions, }) {
|
|
13
|
+
const queryParams = new URLSearchParams({
|
|
14
|
+
owner: ownerAddr,
|
|
15
|
+
// limit: limit.toString(),
|
|
92
16
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
|
|
17
|
+
const response = await this.getRequest({
|
|
18
|
+
schema: UserSubaccountsSchema,
|
|
19
|
+
url: `${this.deps.config.tradingHttpUrl}/api/v1/subaccounts`, // TODO: update to /user_subaccounts?
|
|
20
|
+
queryParams,
|
|
21
|
+
options: fetchOptions,
|
|
22
|
+
});
|
|
23
|
+
return response.data;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
is_primary: v4_1.default.boolean(),
|
|
9
|
-
is_active: v4_1.default.boolean().optional(),
|
|
10
|
-
custom_label: v4_1.default.string().nullable(),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export const UserSubaccountSchema = z.object({
|
|
3
|
+
subaccount_address: z.string(),
|
|
4
|
+
primary_account_address: z.string(),
|
|
5
|
+
is_primary: z.boolean(),
|
|
6
|
+
is_active: z.boolean().optional(),
|
|
7
|
+
custom_label: z.string().nullable(),
|
|
11
8
|
});
|
|
12
|
-
|
|
9
|
+
export const UserSubaccountsSchema = z.array(UserSubaccountSchema);
|
|
@@ -1,99 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
27
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
28
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
29
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
30
|
-
function step(op) {
|
|
31
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
32
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
33
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
34
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
35
|
-
switch (op[0]) {
|
|
36
|
-
case 0: case 1: t = op; break;
|
|
37
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
38
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
39
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
40
|
-
default:
|
|
41
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
42
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
43
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
44
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
45
|
-
if (t[2]) _.ops.pop();
|
|
46
|
-
_.trys.pop(); continue;
|
|
47
|
-
}
|
|
48
|
-
op = body.call(thisArg, _);
|
|
49
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
50
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
-
exports.UserTradeHistoryReader = void 0;
|
|
55
|
-
var base_reader_1 = require("../base-reader");
|
|
56
|
-
var user_trade_history_types_1 = require("./user-trade-history.types");
|
|
57
|
-
var UserTradeHistoryReader = /** @class */ (function (_super) {
|
|
58
|
-
__extends(UserTradeHistoryReader, _super);
|
|
59
|
-
function UserTradeHistoryReader() {
|
|
60
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
61
|
-
}
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserTradesSchema, UserTradesWsMessageSchema, } from "./user-trade-history.types";
|
|
3
|
+
export class UserTradeHistoryReader extends BaseReader {
|
|
62
4
|
/**
|
|
63
5
|
* Get the trade history for a given user
|
|
64
6
|
* @param subAddr The subaccount address of the user to get trade history for
|
|
65
7
|
* @param limit The number of trades to get (default: 10)
|
|
66
8
|
* @returns The trade history for the given user
|
|
67
9
|
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
case 0: return [4 /*yield*/, this.getRequest({
|
|
75
|
-
schema: user_trade_history_types_1.UserTradesSchema,
|
|
76
|
-
url: "".concat(this.deps.config.tradingHttpUrl, "/api/v1/trade_history"),
|
|
77
|
-
queryParams: { user: subAddr, limit: limit.toString() },
|
|
78
|
-
options: fetchOptions,
|
|
79
|
-
})];
|
|
80
|
-
case 1:
|
|
81
|
-
response = _d.sent();
|
|
82
|
-
return [2 /*return*/, response.data];
|
|
83
|
-
}
|
|
84
|
-
});
|
|
10
|
+
async getByAddr({ subAddr, limit = 10, fetchOptions }) {
|
|
11
|
+
const response = await this.getRequest({
|
|
12
|
+
schema: UserTradesSchema,
|
|
13
|
+
url: `${this.deps.config.tradingHttpUrl}/api/v1/trade_history`,
|
|
14
|
+
queryParams: { user: subAddr, limit: limit.toString() },
|
|
15
|
+
options: fetchOptions,
|
|
85
16
|
});
|
|
86
|
-
|
|
17
|
+
return response.data;
|
|
18
|
+
}
|
|
87
19
|
/**
|
|
88
20
|
* Subscribe to trade history updates
|
|
89
21
|
* @param subAddr The subaccount address of the user to subscribe to
|
|
90
22
|
* @param onData Callback function for received trade history data
|
|
91
23
|
* @returns A function to unsubscribe from the trade history updates
|
|
92
24
|
*/
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
return this.deps.ws.subscribe(topic,
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
}(base_reader_1.BaseReader));
|
|
99
|
-
exports.UserTradeHistoryReader = UserTradeHistoryReader;
|
|
25
|
+
subscribeByAddr(subAddr, onData) {
|
|
26
|
+
const topic = `user_trade_history:${subAddr}`;
|
|
27
|
+
return this.deps.ws.subscribe(topic, UserTradesWsMessageSchema, onData);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
fee_amount: v4_1.default.number(),
|
|
17
|
-
transaction_unix_ms: v4_1.default.number(),
|
|
18
|
-
transaction_version: v4_1.default.number(),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export const UserTradeSchema = z.object({
|
|
3
|
+
account: z.string(),
|
|
4
|
+
market: z.string(),
|
|
5
|
+
action: z.string(),
|
|
6
|
+
size: z.number(),
|
|
7
|
+
price: z.number(),
|
|
8
|
+
is_profit: z.boolean(),
|
|
9
|
+
realized_pnl_amount: z.number(),
|
|
10
|
+
is_funding_positive: z.boolean(),
|
|
11
|
+
realized_funding_amount: z.number(),
|
|
12
|
+
is_rebate: z.boolean(),
|
|
13
|
+
fee_amount: z.number(),
|
|
14
|
+
transaction_unix_ms: z.number(),
|
|
15
|
+
transaction_version: z.number(),
|
|
19
16
|
});
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
trades:
|
|
17
|
+
export const UserTradesSchema = z.array(UserTradeSchema);
|
|
18
|
+
export const UserTradesWsMessageSchema = z.object({
|
|
19
|
+
trades: z.array(UserTradeSchema),
|
|
23
20
|
});
|