@decibeltrade/sdk 0.2.2 → 0.2.4
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.d.ts +1 -0
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +22 -26
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +37 -43
- 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 +5 -9
- package/dist/read/account-overview/account-overview.types.d.ts +7 -7
- package/dist/read/account-overview/account-overview.types.js +23 -29
- package/dist/read/base-reader.js +5 -9
- package/dist/read/candlesticks/candlesticks.reader.js +8 -12
- package/dist/read/candlesticks/candlesticks.types.js +14 -20
- package/dist/read/delegations/delegations.reader.js +4 -8
- package/dist/read/delegations/delegations.types.js +6 -12
- package/dist/read/index.js +50 -68
- package/dist/read/leaderboard/leaderboard.reader.js +6 -10
- package/dist/read/leaderboard/leaderboard.types.js +10 -13
- package/dist/read/market-contexts/market-contexts.reader.js +4 -8
- package/dist/read/market-contexts/market-contexts.types.js +11 -17
- package/dist/read/market-depth/market-depth.reader.js +9 -13
- package/dist/read/market-depth/market-depth.types.js +8 -14
- package/dist/read/market-prices/market-prices.reader.js +11 -15
- package/dist/read/market-prices/market-prices.types.js +22 -25
- package/dist/read/market-trades/market-trades.reader.js +8 -12
- package/dist/read/market-trades/market-trades.types.js +18 -21
- package/dist/read/markets/markets.reader.js +7 -11
- package/dist/read/markets/markets.types.js +32 -35
- package/dist/read/pagination.types.js +4 -11
- package/dist/read/portfolio-chart/portfolio-chart.reader.js +4 -8
- package/dist/read/portfolio-chart/portfolio-chart.types.js +5 -11
- package/dist/read/types.js +58 -75
- package/dist/read/user-active-twaps/user-active-twaps.reader.js +5 -9
- package/dist/read/user-active-twaps/user-active-twaps.types.js +18 -24
- package/dist/read/user-bulk-orders/user-bulk-orders.reader.js +5 -9
- package/dist/read/user-bulk-orders/user-bulk-orders.types.js +16 -22
- package/dist/read/user-funding-history/user-funding-history.reader.js +5 -9
- package/dist/read/user-funding-history/user-funding-history.types.js +13 -19
- package/dist/read/user-notifications/user-notifications.reader.js +4 -8
- package/dist/read/user-notifications/user-notifications.types.js +19 -25
- package/dist/read/user-open-orders/user-open-orders.reader.js +5 -9
- package/dist/read/user-open-orders/user-open-orders.types.js +27 -33
- package/dist/read/user-order-history/user-order-history.reader.js +5 -9
- package/dist/read/user-order-history/user-order-history.types.js +32 -38
- package/dist/read/user-positions/user-positions.reader.js +5 -9
- package/dist/read/user-positions/user-positions.types.d.ts +13 -13
- package/dist/read/user-positions/user-positions.types.js +21 -27
- package/dist/read/user-subaccounts/user-subaccounts.reader.js +4 -8
- package/dist/read/user-subaccounts/user-subaccounts.types.js +8 -14
- package/dist/read/user-trade-history/user-trade-history.reader.js +5 -9
- package/dist/read/user-trade-history/user-trade-history.types.js +18 -24
- package/dist/read/vaults/vaults.reader.js +6 -10
- package/dist/read/vaults/vaults.types.js +53 -59
- package/dist/read/ws-subscription.d.ts +1 -1
- package/dist/read/ws-subscription.js +12 -19
- package/dist/subaccount-types.js +4 -10
- package/dist/transaction-builder.js +11 -16
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils.d.ts +4 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +46 -49
- package/dist/write.d.ts +2 -2
- package/dist/write.d.ts.map +1 -1
- package/dist/write.js +22 -26
- package/package.json +1 -1
- package/src/read/ws-subscription.ts +2 -2
- package/src/write.ts +3 -3
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const base_reader_1 = require("../base-reader");
|
|
5
|
-
const user_bulk_orders_types_1 = require("./user-bulk-orders.types");
|
|
6
|
-
class UserBulkOrdersReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserBulkOrdersSchema, UserBulkOrdersWsMessageSchema, } from "./user-bulk-orders.types";
|
|
3
|
+
export class UserBulkOrdersReader extends BaseReader {
|
|
7
4
|
/**
|
|
8
5
|
* Get the bulk orders for a given user
|
|
9
6
|
* @param subAddr The subaccount address of the user to get bulk orders for
|
|
@@ -12,7 +9,7 @@ class UserBulkOrdersReader extends base_reader_1.BaseReader {
|
|
|
12
9
|
*/
|
|
13
10
|
async getByAddr({ subAddr, market, fetchOptions }) {
|
|
14
11
|
const response = await this.getRequest({
|
|
15
|
-
schema:
|
|
12
|
+
schema: UserBulkOrdersSchema,
|
|
16
13
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/bulk_orders`,
|
|
17
14
|
queryParams: { user: subAddr, market: market || "all" },
|
|
18
15
|
options: fetchOptions,
|
|
@@ -27,7 +24,6 @@ class UserBulkOrdersReader extends base_reader_1.BaseReader {
|
|
|
27
24
|
*/
|
|
28
25
|
subscribeByAddr(subAddr, onData) {
|
|
29
26
|
const topic = `bulk_orders:${subAddr}`;
|
|
30
|
-
return this.deps.ws.subscribe(topic,
|
|
27
|
+
return this.deps.ws.subscribe(topic, UserBulkOrdersWsMessageSchema, onData);
|
|
31
28
|
}
|
|
32
29
|
}
|
|
33
|
-
exports.UserBulkOrdersReader = UserBulkOrdersReader;
|
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
ask_prices: v4_1.default.array(v4_1.default.number()),
|
|
15
|
-
ask_sizes: v4_1.default.array(v4_1.default.number()),
|
|
16
|
-
cancelled_bid_prices: v4_1.default.array(v4_1.default.number()),
|
|
17
|
-
cancelled_bid_sizes: v4_1.default.array(v4_1.default.number()),
|
|
18
|
-
cancelled_ask_prices: v4_1.default.array(v4_1.default.number()),
|
|
19
|
-
cancelled_ask_sizes: v4_1.default.array(v4_1.default.number()),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export const UserBulkOrderSchema = z.object({
|
|
3
|
+
market: z.string(),
|
|
4
|
+
sequence_number: z.number(),
|
|
5
|
+
previous_seq_num: z.number(),
|
|
6
|
+
bid_prices: z.array(z.number()),
|
|
7
|
+
bid_sizes: z.array(z.number()),
|
|
8
|
+
ask_prices: z.array(z.number()),
|
|
9
|
+
ask_sizes: z.array(z.number()),
|
|
10
|
+
cancelled_bid_prices: z.array(z.number()),
|
|
11
|
+
cancelled_bid_sizes: z.array(z.number()),
|
|
12
|
+
cancelled_ask_prices: z.array(z.number()),
|
|
13
|
+
cancelled_ask_sizes: z.array(z.number()),
|
|
20
14
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
bulk_orders:
|
|
15
|
+
export const UserBulkOrdersSchema = z.array(UserBulkOrderSchema);
|
|
16
|
+
export const UserBulkOrdersWsMessageSchema = z.object({
|
|
17
|
+
bulk_orders: z.array(UserBulkOrderSchema),
|
|
24
18
|
});
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const base_reader_1 = require("../base-reader");
|
|
5
|
-
const user_funding_history_types_1 = require("./user-funding-history.types");
|
|
6
|
-
class UserFundingHistoryReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserFundingHistorySchema, UserFundingHistoryWsMessageSchema, } from "./user-funding-history.types";
|
|
3
|
+
export class UserFundingHistoryReader extends BaseReader {
|
|
7
4
|
/**
|
|
8
5
|
* Get the trade history for a given user
|
|
9
6
|
* @param subAddr The subaccount address of the user to get trade history for
|
|
@@ -12,7 +9,7 @@ class UserFundingHistoryReader extends base_reader_1.BaseReader {
|
|
|
12
9
|
*/
|
|
13
10
|
async getByAddr({ subAddr, limit = 10, fetchOptions }) {
|
|
14
11
|
const response = await this.getRequest({
|
|
15
|
-
schema:
|
|
12
|
+
schema: UserFundingHistorySchema,
|
|
16
13
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/funding_rate_history`,
|
|
17
14
|
queryParams: { user: subAddr, limit: limit.toString() },
|
|
18
15
|
options: fetchOptions,
|
|
@@ -27,7 +24,6 @@ class UserFundingHistoryReader extends base_reader_1.BaseReader {
|
|
|
27
24
|
*/
|
|
28
25
|
subscribeByAddr(subAddr, onData) {
|
|
29
26
|
const topic = `user_funding_rate_history:${subAddr}`;
|
|
30
|
-
return this.deps.ws.subscribe(topic,
|
|
27
|
+
return this.deps.ws.subscribe(topic, UserFundingHistoryWsMessageSchema, onData);
|
|
31
28
|
}
|
|
32
29
|
}
|
|
33
|
-
exports.UserFundingHistoryReader = UserFundingHistoryReader;
|
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
size: v4_1.default.number(),
|
|
12
|
-
is_funding_positive: v4_1.default.boolean(),
|
|
13
|
-
realized_funding_amount: v4_1.default.number(),
|
|
14
|
-
is_rebate: v4_1.default.boolean(),
|
|
15
|
-
fee_amount: v4_1.default.number(),
|
|
16
|
-
transaction_unix_ms: v4_1.default.number(),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export const UserFundingSchema = z.object({
|
|
3
|
+
market: z.string(),
|
|
4
|
+
action: z.string(),
|
|
5
|
+
size: z.number(),
|
|
6
|
+
is_funding_positive: z.boolean(),
|
|
7
|
+
realized_funding_amount: z.number(),
|
|
8
|
+
is_rebate: z.boolean(),
|
|
9
|
+
fee_amount: z.number(),
|
|
10
|
+
transaction_unix_ms: z.number(),
|
|
17
11
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
funding_history:
|
|
12
|
+
export const UserFundingHistorySchema = z.array(UserFundingSchema);
|
|
13
|
+
export const UserFundingHistoryWsMessageSchema = z.object({
|
|
14
|
+
funding_history: UserFundingHistorySchema,
|
|
21
15
|
});
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const base_reader_1 = require("../base-reader");
|
|
5
|
-
const user_notifications_types_1 = require("./user-notifications.types");
|
|
6
|
-
class UserNotificationsReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserNotificationSchema } from "./user-notifications.types";
|
|
3
|
+
export class UserNotificationsReader extends BaseReader {
|
|
7
4
|
/**
|
|
8
5
|
* Subscribe to user positions updates
|
|
9
6
|
* @param subAddr The subaccount address of the user to subscribe to
|
|
@@ -13,7 +10,6 @@ class UserNotificationsReader extends base_reader_1.BaseReader {
|
|
|
13
10
|
*/
|
|
14
11
|
subscribeByAddr(subAddr, onData) {
|
|
15
12
|
const topic = `notifications:${subAddr}`;
|
|
16
|
-
return this.deps.ws.subscribe(topic,
|
|
13
|
+
return this.deps.ws.subscribe(topic, UserNotificationSchema, onData);
|
|
17
14
|
}
|
|
18
15
|
}
|
|
19
|
-
exports.UserNotificationsReader = UserNotificationsReader;
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.UserNotificationSchema = exports.NotificationMetadataSchema = exports.ClientNotificationType = exports.NotificationType = void 0;
|
|
7
|
-
const v4_1 = __importDefault(require("zod/v4"));
|
|
8
|
-
const user_active_twaps_types_1 = require("../user-active-twaps/user-active-twaps.types");
|
|
9
|
-
const user_order_history_types_1 = require("../user-order-history/user-order-history.types");
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
import { UserActiveTwapSchema } from "../user-active-twaps/user-active-twaps.types";
|
|
3
|
+
import { UserOrderSchema } from "../user-order-history/user-order-history.types";
|
|
10
4
|
// from /rust/trading-api-dto/src/notification.rs
|
|
11
|
-
var NotificationType;
|
|
5
|
+
export var NotificationType;
|
|
12
6
|
(function (NotificationType) {
|
|
13
7
|
NotificationType["MarketOrderPlaced"] = "MarketOrderPlaced";
|
|
14
8
|
NotificationType["LimitOrderPlaced"] = "LimitOrderPlaced";
|
|
@@ -34,8 +28,8 @@ var NotificationType;
|
|
|
34
28
|
NotificationType["SlHit"] = "SlHit";
|
|
35
29
|
NotificationType["TpCancelled"] = "TpCancelled";
|
|
36
30
|
NotificationType["SlCancelled"] = "SlCancelled";
|
|
37
|
-
})(NotificationType || (
|
|
38
|
-
var ClientNotificationType;
|
|
31
|
+
})(NotificationType || (NotificationType = {}));
|
|
32
|
+
export var ClientNotificationType;
|
|
39
33
|
(function (ClientNotificationType) {
|
|
40
34
|
ClientNotificationType["TwapPlaced"] = "TwapPlaced";
|
|
41
35
|
ClientNotificationType["OrderCancellationPlaced"] = "OrderCancellationPlaced";
|
|
@@ -44,19 +38,19 @@ var ClientNotificationType;
|
|
|
44
38
|
ClientNotificationType["OrderCancellationErrored"] = "OrderCancellationErrored";
|
|
45
39
|
ClientNotificationType["PositionCancellationErrored"] = "PositionCancellationErrored";
|
|
46
40
|
ClientNotificationType["TwapCancellationErrored"] = "TwapCancellationErrored";
|
|
47
|
-
})(ClientNotificationType || (
|
|
48
|
-
|
|
49
|
-
trigger_price:
|
|
50
|
-
reason:
|
|
51
|
-
amount:
|
|
52
|
-
filled_size:
|
|
41
|
+
})(ClientNotificationType || (ClientNotificationType = {}));
|
|
42
|
+
export const NotificationMetadataSchema = z.object({
|
|
43
|
+
trigger_price: z.number().optional(),
|
|
44
|
+
reason: z.string().optional(),
|
|
45
|
+
amount: z.number().optional(),
|
|
46
|
+
filled_size: z.number().optional(),
|
|
53
47
|
});
|
|
54
|
-
|
|
55
|
-
notification:
|
|
56
|
-
account:
|
|
57
|
-
notification_metadata:
|
|
58
|
-
notification_type:
|
|
59
|
-
order:
|
|
60
|
-
twap:
|
|
48
|
+
export const UserNotificationSchema = z.object({
|
|
49
|
+
notification: z.object({
|
|
50
|
+
account: z.string(),
|
|
51
|
+
notification_metadata: NotificationMetadataSchema.optional(),
|
|
52
|
+
notification_type: z.enum(NotificationType),
|
|
53
|
+
order: UserOrderSchema.optional(),
|
|
54
|
+
twap: UserActiveTwapSchema.optional(),
|
|
61
55
|
}),
|
|
62
56
|
});
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const base_reader_1 = require("../base-reader");
|
|
5
|
-
const user_open_orders_types_1 = require("./user-open-orders.types");
|
|
6
|
-
class UserOpenOrdersReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserOpenOrdersSchema, UserOpenOrdersWsMessageSchema, } from "./user-open-orders.types";
|
|
3
|
+
export class UserOpenOrdersReader extends BaseReader {
|
|
7
4
|
/**
|
|
8
5
|
* Get the open orders for a given user
|
|
9
6
|
* @param subAddr The subaccount address of the user to get open orders for
|
|
@@ -11,7 +8,7 @@ class UserOpenOrdersReader extends base_reader_1.BaseReader {
|
|
|
11
8
|
*/
|
|
12
9
|
async getByAddr({ subAddr, fetchOptions }) {
|
|
13
10
|
const response = await this.getRequest({
|
|
14
|
-
schema:
|
|
11
|
+
schema: UserOpenOrdersSchema,
|
|
15
12
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/open_orders`,
|
|
16
13
|
queryParams: { user: subAddr },
|
|
17
14
|
options: fetchOptions,
|
|
@@ -26,7 +23,6 @@ class UserOpenOrdersReader extends base_reader_1.BaseReader {
|
|
|
26
23
|
*/
|
|
27
24
|
subscribeByAddr(subAddr, onData) {
|
|
28
25
|
const topic = `user_open_orders:${subAddr}`;
|
|
29
|
-
return this.deps.ws.subscribe(topic,
|
|
26
|
+
return this.deps.ws.subscribe(topic, UserOpenOrdersWsMessageSchema, onData);
|
|
30
27
|
}
|
|
31
28
|
}
|
|
32
|
-
exports.UserOpenOrdersReader = UserOpenOrdersReader;
|
|
@@ -1,35 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
sl_trigger_price: v4_1.default.number().nullable(),
|
|
26
|
-
sl_limit_price: v4_1.default.number().nullable(),
|
|
27
|
-
order_type: v4_1.default.string().optional(),
|
|
28
|
-
trigger_condition: v4_1.default.string().optional(),
|
|
29
|
-
order_direction: v4_1.default.string().optional(),
|
|
30
|
-
is_reduce_only: v4_1.default.boolean().optional(),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export const UserOpenOrderSchema = z.object({
|
|
3
|
+
parent: z.string(),
|
|
4
|
+
market: z.string(),
|
|
5
|
+
order_id: z.string(),
|
|
6
|
+
client_order_id: z.string().nullable(),
|
|
7
|
+
orig_size: z.number().nullable(),
|
|
8
|
+
remaining_size: z.number().nullable(),
|
|
9
|
+
size_delta: z.number().nullable(),
|
|
10
|
+
price: z.number().nullable(),
|
|
11
|
+
is_buy: z.boolean(),
|
|
12
|
+
details: z.string(),
|
|
13
|
+
transaction_version: z.number(),
|
|
14
|
+
unix_ms: z.number(),
|
|
15
|
+
tp_order_id: z.string().nullable(),
|
|
16
|
+
tp_trigger_price: z.number().nullable(),
|
|
17
|
+
tp_limit_price: z.number().nullable(),
|
|
18
|
+
sl_order_id: z.string().nullable(),
|
|
19
|
+
sl_trigger_price: z.number().nullable(),
|
|
20
|
+
sl_limit_price: z.number().nullable(),
|
|
21
|
+
order_type: z.string().optional(),
|
|
22
|
+
trigger_condition: z.string().optional(),
|
|
23
|
+
order_direction: z.string().optional(),
|
|
24
|
+
is_reduce_only: z.boolean().optional(),
|
|
31
25
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
orders:
|
|
26
|
+
export const UserOpenOrdersSchema = z.array(UserOpenOrderSchema);
|
|
27
|
+
export const UserOpenOrdersWsMessageSchema = z.object({
|
|
28
|
+
orders: z.array(UserOpenOrderSchema),
|
|
35
29
|
});
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const base_reader_1 = require("../base-reader");
|
|
5
|
-
const user_order_history_types_1 = require("./user-order-history.types");
|
|
6
|
-
class UserOrderHistoryReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserOrdersSchema, UserOrdersWsMessageSchema, } from "./user-order-history.types";
|
|
3
|
+
export class UserOrderHistoryReader extends BaseReader {
|
|
7
4
|
async getByAddr({ subAddr, fetchOptions }) {
|
|
8
5
|
const response = await this.getRequest({
|
|
9
|
-
schema:
|
|
6
|
+
schema: UserOrdersSchema,
|
|
10
7
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/order_history`,
|
|
11
8
|
queryParams: {
|
|
12
9
|
user: subAddr,
|
|
@@ -23,7 +20,6 @@ class UserOrderHistoryReader extends base_reader_1.BaseReader {
|
|
|
23
20
|
*/
|
|
24
21
|
subscribeByAddr(subAddr, onData) {
|
|
25
22
|
const topic = `order_updates:${subAddr}`;
|
|
26
|
-
return this.deps.ws.subscribe(topic,
|
|
23
|
+
return this.deps.ws.subscribe(topic, UserOrdersWsMessageSchema, onData);
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
|
-
exports.UserOrderHistoryReader = UserOrderHistoryReader;
|
|
@@ -1,41 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
tp_limit_price: v4_1.default.number().nullable(),
|
|
28
|
-
sl_order_id: v4_1.default.string().nullable(),
|
|
29
|
-
sl_trigger_price: v4_1.default.number().nullable(),
|
|
30
|
-
sl_limit_price: v4_1.default.number().nullable(),
|
|
31
|
-
transaction_version: v4_1.default.number(),
|
|
32
|
-
unix_ms: v4_1.default.number(),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
import { PaginatedResponseSchema } from "../pagination.types";
|
|
3
|
+
export const UserOrderSchema = z.object({
|
|
4
|
+
parent: z.string(),
|
|
5
|
+
market: z.string(),
|
|
6
|
+
client_order_id: z.string(),
|
|
7
|
+
order_id: z.string(),
|
|
8
|
+
status: z.string(),
|
|
9
|
+
order_type: z.string(),
|
|
10
|
+
trigger_condition: z.string(),
|
|
11
|
+
order_direction: z.string(),
|
|
12
|
+
orig_size: z.number(),
|
|
13
|
+
remaining_size: z.number(),
|
|
14
|
+
size_delta: z.number(),
|
|
15
|
+
price: z.number(),
|
|
16
|
+
is_buy: z.boolean(),
|
|
17
|
+
is_reduce_only: z.boolean(),
|
|
18
|
+
details: z.string(),
|
|
19
|
+
tp_order_id: z.string().nullable(),
|
|
20
|
+
tp_trigger_price: z.number().nullable(),
|
|
21
|
+
tp_limit_price: z.number().nullable(),
|
|
22
|
+
sl_order_id: z.string().nullable(),
|
|
23
|
+
sl_trigger_price: z.number().nullable(),
|
|
24
|
+
sl_limit_price: z.number().nullable(),
|
|
25
|
+
transaction_version: z.number(),
|
|
26
|
+
unix_ms: z.number(),
|
|
33
27
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
order:
|
|
37
|
-
details:
|
|
38
|
-
order:
|
|
39
|
-
status:
|
|
28
|
+
export const UserOrdersSchema = PaginatedResponseSchema(UserOrderSchema);
|
|
29
|
+
export const UserOrdersWsMessageSchema = z.object({
|
|
30
|
+
order: z.object({
|
|
31
|
+
details: z.string(),
|
|
32
|
+
order: UserOrderSchema,
|
|
33
|
+
status: z.string(),
|
|
40
34
|
}),
|
|
41
35
|
});
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const base_reader_1 = require("../base-reader");
|
|
5
|
-
const user_positions_types_1 = require("./user-positions.types");
|
|
6
|
-
class UserPositionsReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserPositionsSchema, UserPositionsWsMessageSchema, } from "./user-positions.types";
|
|
3
|
+
export class UserPositionsReader extends BaseReader {
|
|
7
4
|
/**
|
|
8
5
|
* Get the positions for a given user
|
|
9
6
|
* @param userAddr The address of the user to get positions for
|
|
@@ -20,7 +17,7 @@ class UserPositionsReader extends base_reader_1.BaseReader {
|
|
|
20
17
|
queryParams.set("market_address", marketAddr);
|
|
21
18
|
}
|
|
22
19
|
const response = await this.getRequest({
|
|
23
|
-
schema:
|
|
20
|
+
schema: UserPositionsSchema,
|
|
24
21
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/user_positions`,
|
|
25
22
|
queryParams,
|
|
26
23
|
options: fetchOptions,
|
|
@@ -36,7 +33,6 @@ class UserPositionsReader extends base_reader_1.BaseReader {
|
|
|
36
33
|
*/
|
|
37
34
|
subscribeByAddr(subAddr, onData) {
|
|
38
35
|
const topic = `user_positions:${subAddr}`;
|
|
39
|
-
return this.deps.ws.subscribe(topic,
|
|
36
|
+
return this.deps.ws.subscribe(topic, UserPositionsWsMessageSchema, onData);
|
|
40
37
|
}
|
|
41
38
|
}
|
|
42
|
-
exports.UserPositionsReader = UserPositionsReader;
|
|
@@ -62,17 +62,17 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
62
62
|
market: "market";
|
|
63
63
|
size: "size";
|
|
64
64
|
user: "user";
|
|
65
|
+
user_leverage: "user_leverage";
|
|
66
|
+
entry_price: "entry_price";
|
|
67
|
+
is_isolated: "is_isolated";
|
|
68
|
+
unrealized_funding: "unrealized_funding";
|
|
69
|
+
estimated_liquidation_price: "estimated_liquidation_price";
|
|
65
70
|
tp_order_id: "tp_order_id";
|
|
66
71
|
tp_trigger_price: "tp_trigger_price";
|
|
67
72
|
tp_limit_price: "tp_limit_price";
|
|
68
73
|
sl_order_id: "sl_order_id";
|
|
69
74
|
sl_trigger_price: "sl_trigger_price";
|
|
70
75
|
sl_limit_price: "sl_limit_price";
|
|
71
|
-
user_leverage: "user_leverage";
|
|
72
|
-
entry_price: "entry_price";
|
|
73
|
-
is_isolated: "is_isolated";
|
|
74
|
-
unrealized_funding: "unrealized_funding";
|
|
75
|
-
estimated_liquidation_price: "estimated_liquidation_price";
|
|
76
76
|
has_fixed_sized_tpsls: "has_fixed_sized_tpsls";
|
|
77
77
|
}>;
|
|
78
78
|
catchall: <T extends z.core.SomeType>(schema: T) => z.ZodObject<{
|
|
@@ -160,7 +160,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
160
160
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
161
161
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
162
162
|
}, z.core.$strip>;
|
|
163
|
-
extend: <U extends z.core.$ZodLooseShape & Partial<Record<"market" | "size" | "user" | "
|
|
163
|
+
extend: <U extends z.core.$ZodLooseShape & Partial<Record<"market" | "size" | "user" | "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" | "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 ? {
|
|
164
164
|
market: z.ZodString;
|
|
165
165
|
user: z.ZodString;
|
|
166
166
|
size: z.ZodNumber;
|
|
@@ -193,7 +193,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
193
193
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
194
194
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
195
195
|
} 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>;
|
|
196
|
-
merge: <U extends z.ZodObject>(other: U) => z.ZodObject<(("market" | "size" | "user" | "
|
|
196
|
+
merge: <U extends z.ZodObject>(other: U) => z.ZodObject<(("market" | "size" | "user" | "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 ? {
|
|
197
197
|
market: z.ZodString;
|
|
198
198
|
user: z.ZodString;
|
|
199
199
|
size: z.ZodNumber;
|
|
@@ -226,7 +226,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
226
226
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
227
227
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
228
228
|
} 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"]>;
|
|
229
|
-
pick: <M extends z.core.util.Mask<"market" | "size" | "user" | "
|
|
229
|
+
pick: <M extends z.core.util.Mask<"market" | "size" | "user" | "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<{
|
|
230
230
|
market: z.ZodString;
|
|
231
231
|
user: z.ZodString;
|
|
232
232
|
size: z.ZodNumber;
|
|
@@ -242,8 +242,8 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
242
242
|
sl_trigger_price: z.ZodNullable<z.ZodNumber>;
|
|
243
243
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
244
244
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
245
|
-
}, Extract<"market", keyof M> | Extract<"size", keyof M> | Extract<"user", keyof M> | Extract<"
|
|
246
|
-
omit: <M extends z.core.util.Mask<"market" | "size" | "user" | "
|
|
245
|
+
}, Extract<"market", keyof M> | Extract<"size", keyof M> | Extract<"user", 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>;
|
|
246
|
+
omit: <M extends z.core.util.Mask<"market" | "size" | "user" | "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<{
|
|
247
247
|
market: z.ZodString;
|
|
248
248
|
user: z.ZodString;
|
|
249
249
|
size: z.ZodNumber;
|
|
@@ -259,7 +259,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
259
259
|
sl_trigger_price: z.ZodNullable<z.ZodNumber>;
|
|
260
260
|
sl_limit_price: z.ZodNullable<z.ZodNumber>;
|
|
261
261
|
has_fixed_sized_tpsls: z.ZodBoolean;
|
|
262
|
-
}, Extract<"market", keyof M> | Extract<"size", keyof M> | Extract<"user", keyof M> | Extract<"
|
|
262
|
+
}, Extract<"market", keyof M> | Extract<"size", keyof M> | Extract<"user", 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>;
|
|
263
263
|
partial: {
|
|
264
264
|
(): z.ZodObject<{
|
|
265
265
|
market: z.ZodOptional<z.ZodString>;
|
|
@@ -278,7 +278,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
278
278
|
sl_limit_price: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
279
279
|
has_fixed_sized_tpsls: z.ZodOptional<z.ZodBoolean>;
|
|
280
280
|
}, z.core.$strip>;
|
|
281
|
-
<M extends z.core.util.Mask<"market" | "size" | "user" | "
|
|
281
|
+
<M extends z.core.util.Mask<"market" | "size" | "user" | "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<{
|
|
282
282
|
market: "market" extends infer T ? T extends "market" ? T extends keyof M ? z.ZodOptional<{
|
|
283
283
|
market: z.ZodString;
|
|
284
284
|
user: z.ZodString;
|
|
@@ -794,7 +794,7 @@ export declare const UserPositionWsMessageSchema: z.ZodObject<{
|
|
|
794
794
|
sl_limit_price: z.ZodNonOptional<z.ZodNullable<z.ZodNumber>>;
|
|
795
795
|
has_fixed_sized_tpsls: z.ZodNonOptional<z.ZodBoolean>;
|
|
796
796
|
}, z.core.$strip>;
|
|
797
|
-
<M extends z.core.util.Mask<"market" | "size" | "user" | "
|
|
797
|
+
<M extends z.core.util.Mask<"market" | "size" | "user" | "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<{
|
|
798
798
|
market: "market" extends infer T ? T extends "market" ? T extends keyof M ? z.ZodNonOptional<{
|
|
799
799
|
market: z.ZodString;
|
|
800
800
|
user: z.ZodString;
|
|
@@ -1,30 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.UserPositionsWsMessageSchema = exports.UserPositionWsMessageSchema = exports.UserPositionsSchema = exports.UserPositionSchema = void 0;
|
|
7
|
-
const v4_1 = __importDefault(require("zod/v4"));
|
|
8
|
-
exports.UserPositionSchema = v4_1.default.object({
|
|
9
|
-
market: v4_1.default.string(),
|
|
10
|
-
user: v4_1.default.string(),
|
|
11
|
-
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(),
|
|
12
6
|
// margin: z.number(),
|
|
13
|
-
user_leverage:
|
|
14
|
-
entry_price:
|
|
15
|
-
is_isolated:
|
|
16
|
-
unrealized_funding:
|
|
17
|
-
estimated_liquidation_price:
|
|
18
|
-
tp_order_id:
|
|
19
|
-
tp_trigger_price:
|
|
20
|
-
tp_limit_price:
|
|
21
|
-
sl_order_id:
|
|
22
|
-
sl_trigger_price:
|
|
23
|
-
sl_limit_price:
|
|
24
|
-
has_fixed_sized_tpsls:
|
|
7
|
+
user_leverage: z.number(),
|
|
8
|
+
entry_price: z.number(),
|
|
9
|
+
is_isolated: z.boolean(),
|
|
10
|
+
unrealized_funding: z.number(),
|
|
11
|
+
estimated_liquidation_price: z.number(),
|
|
12
|
+
tp_order_id: z.string().nullable(),
|
|
13
|
+
tp_trigger_price: z.number().nullable(),
|
|
14
|
+
tp_limit_price: z.number().nullable(),
|
|
15
|
+
sl_order_id: z.string().nullable(),
|
|
16
|
+
sl_trigger_price: z.number().nullable(),
|
|
17
|
+
sl_limit_price: z.number().nullable(),
|
|
18
|
+
has_fixed_sized_tpsls: z.boolean(),
|
|
25
19
|
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
positions:
|
|
20
|
+
export const UserPositionsSchema = z.array(UserPositionSchema);
|
|
21
|
+
export const UserPositionWsMessageSchema = z.object(UserPositionSchema);
|
|
22
|
+
export const UserPositionsWsMessageSchema = z.object({
|
|
23
|
+
positions: UserPositionsSchema,
|
|
30
24
|
});
|