@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,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const base_reader_1 = require("../base-reader");
|
|
6
|
-
const market_prices_types_1 = require("./market-prices.types");
|
|
7
|
-
class MarketPricesReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { getMarketAddr } from "../../utils";
|
|
2
|
+
import { BaseReader } from "../base-reader";
|
|
3
|
+
import { AllMarketPricesWsMessageSchema, MarketPricesSchema, MarketPriceWsMessageSchema, } from "./market-prices.types";
|
|
4
|
+
export class MarketPricesReader extends BaseReader {
|
|
8
5
|
async getAll({ fetchOptions } = {}) {
|
|
9
6
|
const response = await this.getRequest({
|
|
10
|
-
schema:
|
|
7
|
+
schema: MarketPricesSchema,
|
|
11
8
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/prices`,
|
|
12
9
|
options: fetchOptions,
|
|
13
10
|
});
|
|
@@ -19,9 +16,9 @@ class MarketPricesReader extends base_reader_1.BaseReader {
|
|
|
19
16
|
* @returns The price data for the given market
|
|
20
17
|
*/
|
|
21
18
|
async getByName({ marketName, fetchOptions }) {
|
|
22
|
-
const marketAddr =
|
|
19
|
+
const marketAddr = getMarketAddr(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
23
20
|
const response = await this.getRequest({
|
|
24
|
-
schema:
|
|
21
|
+
schema: MarketPricesSchema,
|
|
25
22
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/prices`,
|
|
26
23
|
queryParams: { market: marketAddr.toString() },
|
|
27
24
|
options: fetchOptions,
|
|
@@ -35,9 +32,9 @@ class MarketPricesReader extends base_reader_1.BaseReader {
|
|
|
35
32
|
* @returns A function to unsubscribe from the oracle price updates
|
|
36
33
|
*/
|
|
37
34
|
subscribeByName(marketName, onData) {
|
|
38
|
-
const marketAddr =
|
|
35
|
+
const marketAddr = getMarketAddr(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
39
36
|
const topic = `market_price:${marketAddr}`;
|
|
40
|
-
return this.deps.ws.subscribe(topic,
|
|
37
|
+
return this.deps.ws.subscribe(topic, MarketPriceWsMessageSchema, onData);
|
|
41
38
|
}
|
|
42
39
|
/**
|
|
43
40
|
* Subscribe to price updates for a market
|
|
@@ -47,7 +44,7 @@ class MarketPricesReader extends base_reader_1.BaseReader {
|
|
|
47
44
|
*/
|
|
48
45
|
subscribeByAddress(marketAddr, onData) {
|
|
49
46
|
const topic = `market_price:${marketAddr}`;
|
|
50
|
-
return this.deps.ws.subscribe(topic,
|
|
47
|
+
return this.deps.ws.subscribe(topic, MarketPriceWsMessageSchema, onData);
|
|
51
48
|
}
|
|
52
49
|
/**
|
|
53
50
|
* Subscribe to price updates for all markets
|
|
@@ -56,7 +53,6 @@ class MarketPricesReader extends base_reader_1.BaseReader {
|
|
|
56
53
|
*/
|
|
57
54
|
subscribeAll(onData) {
|
|
58
55
|
const topic = `all_market_prices`;
|
|
59
|
-
return this.deps.ws.subscribe(topic,
|
|
56
|
+
return this.deps.ws.subscribe(topic, AllMarketPricesWsMessageSchema, onData);
|
|
60
57
|
}
|
|
61
58
|
}
|
|
62
|
-
exports.MarketPricesReader = MarketPricesReader;
|
|
@@ -1,27 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
is_funding_positive: v4_1.z.boolean(),
|
|
12
|
-
open_interest: v4_1.z.number(),
|
|
13
|
-
transaction_unix_ms: v4_1.z.number(),
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export const PricesSchema = z.object({
|
|
3
|
+
market: z.string(),
|
|
4
|
+
mark_px: z.number(),
|
|
5
|
+
mid_px: z.number(),
|
|
6
|
+
oracle_px: z.number(),
|
|
7
|
+
funding_rate_bps: z.number(),
|
|
8
|
+
is_funding_positive: z.boolean(),
|
|
9
|
+
open_interest: z.number(),
|
|
10
|
+
transaction_unix_ms: z.number(),
|
|
14
11
|
});
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
market:
|
|
18
|
-
mark_px:
|
|
19
|
-
mid_px:
|
|
20
|
-
oracle_px:
|
|
21
|
-
funding_rate_bps:
|
|
22
|
-
is_funding_positive:
|
|
23
|
-
open_interest:
|
|
24
|
-
transaction_unix_ms:
|
|
12
|
+
export const MarketPricesSchema = z.array(PricesSchema);
|
|
13
|
+
export const MarketPriceSchema = z.object({
|
|
14
|
+
market: z.string(),
|
|
15
|
+
mark_px: z.number(),
|
|
16
|
+
mid_px: z.number(),
|
|
17
|
+
oracle_px: z.number(),
|
|
18
|
+
funding_rate_bps: z.number(),
|
|
19
|
+
is_funding_positive: z.boolean(),
|
|
20
|
+
open_interest: z.number(),
|
|
21
|
+
transaction_unix_ms: z.number(),
|
|
25
22
|
});
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
export const MarketPriceWsMessageSchema = z.object({ price: MarketPriceSchema });
|
|
24
|
+
export const AllMarketPricesWsMessageSchema = z.object({ prices: MarketPricesSchema });
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const base_reader_1 = require("../base-reader");
|
|
6
|
-
const market_trades_types_1 = require("./market-trades.types");
|
|
7
|
-
class MarketTradesReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { getMarketAddr } from "../../utils";
|
|
2
|
+
import { BaseReader } from "../base-reader";
|
|
3
|
+
import { MarketTradesHistorySchema, MarketTradeWsMessageSchema, } from "./market-trades.types";
|
|
4
|
+
export class MarketTradesReader extends BaseReader {
|
|
8
5
|
/**
|
|
9
6
|
* Get the latest market trades for a given market
|
|
10
7
|
* @param marketName The name of the market to get market trades for
|
|
@@ -12,13 +9,13 @@ class MarketTradesReader extends base_reader_1.BaseReader {
|
|
|
12
9
|
* @returns The market trades for the given market
|
|
13
10
|
*/
|
|
14
11
|
async getByName({ marketName, limit, fetchOptions }) {
|
|
15
|
-
const marketAddr =
|
|
12
|
+
const marketAddr = getMarketAddr(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
16
13
|
const queryParams = new URLSearchParams({ market: marketAddr.toString() });
|
|
17
14
|
if (limit !== undefined) {
|
|
18
15
|
queryParams.set("limit", limit.toString());
|
|
19
16
|
}
|
|
20
17
|
const response = await this.getRequest({
|
|
21
|
-
schema:
|
|
18
|
+
schema: MarketTradesHistorySchema,
|
|
22
19
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/trades`,
|
|
23
20
|
queryParams,
|
|
24
21
|
options: fetchOptions,
|
|
@@ -32,9 +29,8 @@ class MarketTradesReader extends base_reader_1.BaseReader {
|
|
|
32
29
|
* @returns A function to unsubscribe from the market trades updates
|
|
33
30
|
*/
|
|
34
31
|
subscribeByName(marketName, onData) {
|
|
35
|
-
const marketAddr =
|
|
32
|
+
const marketAddr = getMarketAddr(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
36
33
|
const topic = `trades:${marketAddr}`;
|
|
37
|
-
return this.deps.ws.subscribe(topic,
|
|
34
|
+
return this.deps.ws.subscribe(topic, MarketTradeWsMessageSchema, onData);
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
|
-
exports.MarketTradesReader = MarketTradesReader;
|
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
fee_amount: v4_1.z.number(),
|
|
17
|
-
transaction_unix_ms: v4_1.z.number(),
|
|
18
|
-
transaction_version: v4_1.z.number(),
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export const MarketTradeSchema = 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 MarketTradesHistorySchema = z.array(MarketTradeSchema);
|
|
18
|
+
export const MarketTradeWsMessageSchema = z.object({
|
|
19
|
+
trades: z.array(MarketTradeSchema),
|
|
23
20
|
});
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const base_reader_1 = require("../base-reader");
|
|
6
|
-
const markets_types_1 = require("./markets.types");
|
|
7
|
-
class MarketsReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { getMarketAddr } from "../../utils";
|
|
2
|
+
import { BaseReader } from "../base-reader";
|
|
3
|
+
import { PerpMarketConfigSchema, PerpMarketsSchema } from "./markets.types";
|
|
4
|
+
export class MarketsReader extends BaseReader {
|
|
8
5
|
/**
|
|
9
6
|
* Get all of the available markets
|
|
10
7
|
* @returns The list of available markets
|
|
11
8
|
*/
|
|
12
9
|
async getAll({ fetchOptions } = {}) {
|
|
13
10
|
const response = await this.getRequest({
|
|
14
|
-
schema:
|
|
11
|
+
schema: PerpMarketsSchema,
|
|
15
12
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/markets`,
|
|
16
13
|
options: fetchOptions,
|
|
17
14
|
});
|
|
@@ -32,7 +29,7 @@ class MarketsReader extends base_reader_1.BaseReader {
|
|
|
32
29
|
* @returns The market config for the given name
|
|
33
30
|
*/
|
|
34
31
|
async getByName(marketName) {
|
|
35
|
-
const marketAddr =
|
|
32
|
+
const marketAddr = getMarketAddr(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
36
33
|
try {
|
|
37
34
|
// TODO: Fix lint error
|
|
38
35
|
// eslint-disable-next-line custom/no-get-account-resource
|
|
@@ -41,7 +38,7 @@ class MarketsReader extends base_reader_1.BaseReader {
|
|
|
41
38
|
resourceType: `${this.deps.config.deployment.package}::perp_market_config::PerpMarketConfig`,
|
|
42
39
|
});
|
|
43
40
|
// TODO: Handle different __variant__ values
|
|
44
|
-
return
|
|
41
|
+
return PerpMarketConfigSchema.parse(market);
|
|
45
42
|
}
|
|
46
43
|
catch (e) {
|
|
47
44
|
console.error(e);
|
|
@@ -78,4 +75,3 @@ class MarketsReader extends base_reader_1.BaseReader {
|
|
|
78
75
|
return name[0];
|
|
79
76
|
}
|
|
80
77
|
}
|
|
81
|
-
exports.MarketsReader = MarketsReader;
|
|
@@ -1,46 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
v4_1.z.object({
|
|
9
|
-
__variant__: v4_1.z.literal("AllowlistOnly"),
|
|
10
|
-
allowlist: v4_1.z.array(v4_1.z.string()),
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export const MarketModeConfigSchema = z.discriminatedUnion("__variant__", [
|
|
3
|
+
z.object({ __variant__: z.literal("Open") }),
|
|
4
|
+
z.object({ __variant__: z.literal("ReduceOnly") }),
|
|
5
|
+
z.object({
|
|
6
|
+
__variant__: z.literal("AllowlistOnly"),
|
|
7
|
+
allowlist: z.array(z.string()),
|
|
11
8
|
}),
|
|
12
|
-
|
|
9
|
+
z.object({ __variant__: z.literal("Halt") }),
|
|
13
10
|
]);
|
|
14
|
-
|
|
15
|
-
__variant__:
|
|
16
|
-
name:
|
|
17
|
-
sz_precision:
|
|
18
|
-
decimals:
|
|
19
|
-
multiplier:
|
|
11
|
+
export const PerpMarketConfigSchema = z.object({
|
|
12
|
+
__variant__: z.literal("V1"),
|
|
13
|
+
name: z.string(),
|
|
14
|
+
sz_precision: z.object({
|
|
15
|
+
decimals: z.number(),
|
|
16
|
+
multiplier: z.string(),
|
|
20
17
|
}),
|
|
21
|
-
min_size:
|
|
22
|
-
lot_size:
|
|
23
|
-
ticker_size:
|
|
24
|
-
max_leverage:
|
|
25
|
-
mode:
|
|
18
|
+
min_size: z.string(),
|
|
19
|
+
lot_size: z.string(),
|
|
20
|
+
ticker_size: z.string(),
|
|
21
|
+
max_leverage: z.number(),
|
|
22
|
+
mode: MarketModeConfigSchema,
|
|
26
23
|
});
|
|
27
|
-
|
|
24
|
+
export const MarketModeSchema = z.enum([
|
|
28
25
|
"Open",
|
|
29
26
|
"ReduceOnly",
|
|
30
27
|
"AllowlistOnly",
|
|
31
28
|
"Halt",
|
|
32
29
|
"Delisting",
|
|
33
30
|
]);
|
|
34
|
-
|
|
35
|
-
market_addr:
|
|
36
|
-
market_name:
|
|
37
|
-
sz_decimals:
|
|
38
|
-
px_decimals:
|
|
39
|
-
max_leverage:
|
|
40
|
-
tick_size:
|
|
41
|
-
min_size:
|
|
42
|
-
lot_size:
|
|
43
|
-
max_open_interest:
|
|
44
|
-
mode:
|
|
31
|
+
export const PerpMarketSchema = z.object({
|
|
32
|
+
market_addr: z.string(),
|
|
33
|
+
market_name: z.string(),
|
|
34
|
+
sz_decimals: z.number(),
|
|
35
|
+
px_decimals: z.number(),
|
|
36
|
+
max_leverage: z.number(),
|
|
37
|
+
tick_size: z.number(),
|
|
38
|
+
min_size: z.number(),
|
|
39
|
+
lot_size: z.number(),
|
|
40
|
+
max_open_interest: z.number(),
|
|
41
|
+
mode: MarketModeSchema,
|
|
45
42
|
});
|
|
46
|
-
|
|
43
|
+
export const PerpMarketsSchema = z.array(PerpMarketSchema);
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.PaginatedResponseSchema = void 0;
|
|
7
|
-
const v4_1 = __importDefault(require("zod/v4"));
|
|
8
|
-
const PaginatedResponseSchema = (itemSchema) => v4_1.default.object({
|
|
9
|
-
items: v4_1.default.array(itemSchema),
|
|
10
|
-
total_count: v4_1.default.number(),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export const PaginatedResponseSchema = (itemSchema) => z.object({
|
|
3
|
+
items: z.array(itemSchema),
|
|
4
|
+
total_count: z.number(),
|
|
11
5
|
});
|
|
12
|
-
exports.PaginatedResponseSchema = PaginatedResponseSchema;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const base_reader_1 = require("../base-reader");
|
|
5
|
-
const portfolio_chart_types_1 = require("./portfolio-chart.types");
|
|
6
|
-
class PortfolioChartReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { PortfolioChartSchema } from "./portfolio-chart.types";
|
|
3
|
+
export class PortfolioChartReader extends BaseReader {
|
|
7
4
|
/**
|
|
8
5
|
* Get the portfolio chart for a given user
|
|
9
6
|
* @param subAddr The subaccount address to get the account overview for
|
|
@@ -11,7 +8,7 @@ class PortfolioChartReader extends base_reader_1.BaseReader {
|
|
|
11
8
|
*/
|
|
12
9
|
async getByAddr({ subAddr, range, type, fetchOptions }) {
|
|
13
10
|
const response = await this.getRequest({
|
|
14
|
-
schema:
|
|
11
|
+
schema: PortfolioChartSchema,
|
|
15
12
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/portfolio_chart`,
|
|
16
13
|
queryParams: { user: subAddr, range, data_type: type },
|
|
17
14
|
options: fetchOptions,
|
|
@@ -19,4 +16,3 @@ class PortfolioChartReader extends base_reader_1.BaseReader {
|
|
|
19
16
|
return response.data;
|
|
20
17
|
}
|
|
21
18
|
}
|
|
22
|
-
exports.PortfolioChartReader = PortfolioChartReader;
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.PortfolioChartSchema = exports.PortfolioChartPnlItemSchema = void 0;
|
|
7
|
-
const v4_1 = __importDefault(require("zod/v4"));
|
|
8
|
-
exports.PortfolioChartPnlItemSchema = v4_1.default.object({
|
|
9
|
-
timestamp: v4_1.default.number(),
|
|
10
|
-
data_points: v4_1.default.number(),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export const PortfolioChartPnlItemSchema = z.object({
|
|
3
|
+
timestamp: z.number(),
|
|
4
|
+
data_points: z.number(),
|
|
11
5
|
});
|
|
12
|
-
|
|
6
|
+
export const PortfolioChartSchema = z.array(PortfolioChartPnlItemSchema);
|
package/dist/read/types.js
CHANGED
|
@@ -1,87 +1,70 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.GlobalAccountsState = exports.GlobalAccountsStateV1 = exports.CollateralBalanceSheet = exports.LiquidationConfigV1 = exports.CrossedPosition = exports.PerpPosition = void 0;
|
|
18
|
-
const v4_1 = require("zod/v4");
|
|
1
|
+
import { z } from "zod/v4";
|
|
19
2
|
// Export all types from readers
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
size:
|
|
43
|
-
sz_decimals:
|
|
44
|
-
entry_px:
|
|
45
|
-
max_leverage:
|
|
46
|
-
is_long:
|
|
47
|
-
token_type:
|
|
3
|
+
export * from "./account-overview/account-overview.types";
|
|
4
|
+
export * from "./candlesticks/candlesticks.types";
|
|
5
|
+
export * from "./delegations/delegations.types";
|
|
6
|
+
export * from "./leaderboard/leaderboard.types";
|
|
7
|
+
export * from "./market-contexts/market-contexts.types";
|
|
8
|
+
export * from "./market-depth/market-depth.types";
|
|
9
|
+
export * from "./market-prices/market-prices.types";
|
|
10
|
+
export * from "./market-trades/market-trades.types";
|
|
11
|
+
export * from "./markets/markets.types";
|
|
12
|
+
export * from "./pagination.types";
|
|
13
|
+
export * from "./portfolio-chart/portfolio-chart.types";
|
|
14
|
+
export * from "./user-active-twaps/user-active-twaps.types";
|
|
15
|
+
export * from "./user-bulk-orders/user-bulk-orders.types";
|
|
16
|
+
export * from "./user-funding-history/user-funding-history.types";
|
|
17
|
+
export * from "./user-notifications/user-notifications.types";
|
|
18
|
+
export * from "./user-open-orders/user-open-orders.types";
|
|
19
|
+
export * from "./user-order-history/user-order-history.types";
|
|
20
|
+
export * from "./user-positions/user-positions.types";
|
|
21
|
+
export * from "./user-subaccounts/user-subaccounts.types";
|
|
22
|
+
export * from "./user-trade-history/user-trade-history.types";
|
|
23
|
+
export * from "./vaults/vaults.types";
|
|
24
|
+
export const PerpPosition = z.object({
|
|
25
|
+
size: z.number(),
|
|
26
|
+
sz_decimals: z.number(),
|
|
27
|
+
entry_px: z.number(),
|
|
28
|
+
max_leverage: z.number(),
|
|
29
|
+
is_long: z.boolean(),
|
|
30
|
+
token_type: z.string(),
|
|
48
31
|
});
|
|
49
|
-
|
|
50
|
-
positions:
|
|
32
|
+
export const CrossedPosition = z.object({
|
|
33
|
+
positions: z.array(PerpPosition),
|
|
51
34
|
});
|
|
52
|
-
|
|
53
|
-
__variant__:
|
|
54
|
-
backstop_liquidator:
|
|
55
|
-
backstop_margin_maintenance_divisor:
|
|
56
|
-
backstop_margin_maintenance_multiplier:
|
|
57
|
-
maintenance_margin_leverage_divisor:
|
|
58
|
-
maintenance_margin_leverage_multiplier:
|
|
35
|
+
export const LiquidationConfigV1 = z.object({
|
|
36
|
+
__variant__: z.literal("V1"),
|
|
37
|
+
backstop_liquidator: z.string(),
|
|
38
|
+
backstop_margin_maintenance_divisor: z.string(),
|
|
39
|
+
backstop_margin_maintenance_multiplier: z.string(),
|
|
40
|
+
maintenance_margin_leverage_divisor: z.string(),
|
|
41
|
+
maintenance_margin_leverage_multiplier: z.string(),
|
|
59
42
|
});
|
|
60
|
-
|
|
61
|
-
asset_type:
|
|
62
|
-
inner:
|
|
43
|
+
export const CollateralBalanceSheet = z.object({
|
|
44
|
+
asset_type: z.object({
|
|
45
|
+
inner: z.string(),
|
|
63
46
|
}),
|
|
64
|
-
asset_precision:
|
|
65
|
-
decimals:
|
|
66
|
-
multiplier:
|
|
47
|
+
asset_precision: z.object({
|
|
48
|
+
decimals: z.number(),
|
|
49
|
+
multiplier: z.string(),
|
|
67
50
|
}),
|
|
68
|
-
balance_precision:
|
|
69
|
-
decimals:
|
|
70
|
-
multiplier:
|
|
51
|
+
balance_precision: z.object({
|
|
52
|
+
decimals: z.number(),
|
|
53
|
+
multiplier: z.string(),
|
|
71
54
|
}),
|
|
72
|
-
balance_table:
|
|
73
|
-
handle:
|
|
55
|
+
balance_table: z.object({
|
|
56
|
+
handle: z.string(),
|
|
74
57
|
}),
|
|
75
|
-
store:
|
|
76
|
-
inner:
|
|
58
|
+
store: z.object({
|
|
59
|
+
inner: z.string(),
|
|
77
60
|
}),
|
|
78
|
-
store_extend_ref:
|
|
79
|
-
self:
|
|
61
|
+
store_extend_ref: z.object({
|
|
62
|
+
self: z.string(),
|
|
80
63
|
}),
|
|
81
64
|
});
|
|
82
|
-
|
|
83
|
-
__variant__:
|
|
84
|
-
collateral:
|
|
85
|
-
liquidation_config:
|
|
65
|
+
export const GlobalAccountsStateV1 = z.object({
|
|
66
|
+
__variant__: z.string(),
|
|
67
|
+
collateral: CollateralBalanceSheet,
|
|
68
|
+
liquidation_config: LiquidationConfigV1,
|
|
86
69
|
});
|
|
87
|
-
|
|
70
|
+
export const GlobalAccountsState = GlobalAccountsStateV1;
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const base_reader_1 = require("../base-reader");
|
|
5
|
-
const user_active_twaps_types_1 = require("./user-active-twaps.types");
|
|
6
|
-
class UserActiveTwapsReader extends base_reader_1.BaseReader {
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { UserActiveTwapsSchema, UserActiveTwapsWsMessageSchema, } from "./user-active-twaps.types";
|
|
3
|
+
export class UserActiveTwapsReader extends BaseReader {
|
|
7
4
|
/**
|
|
8
5
|
* Get the active twaps for a given user
|
|
9
6
|
* @param subAddr The subaccount address of the user to get active twaps for
|
|
@@ -11,7 +8,7 @@ class UserActiveTwapsReader extends base_reader_1.BaseReader {
|
|
|
11
8
|
*/
|
|
12
9
|
async getByAddr({ subAddr, fetchOptions }) {
|
|
13
10
|
const response = await this.getRequest({
|
|
14
|
-
schema:
|
|
11
|
+
schema: UserActiveTwapsSchema,
|
|
15
12
|
url: `${this.deps.config.tradingHttpUrl}/api/v1/active_twaps`,
|
|
16
13
|
queryParams: { user: subAddr },
|
|
17
14
|
options: fetchOptions,
|
|
@@ -26,7 +23,6 @@ class UserActiveTwapsReader extends base_reader_1.BaseReader {
|
|
|
26
23
|
*/
|
|
27
24
|
subscribeByAddr(subAddr, onData) {
|
|
28
25
|
const topic = `user_active_twaps:${subAddr}`;
|
|
29
|
-
return this.deps.ws.subscribe(topic,
|
|
26
|
+
return this.deps.ws.subscribe(topic, UserActiveTwapsWsMessageSchema, onData);
|
|
30
27
|
}
|
|
31
28
|
}
|
|
32
|
-
exports.UserActiveTwapsReader = UserActiveTwapsReader;
|
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
duration_s: v4_1.default.number(),
|
|
17
|
-
orig_size: v4_1.default.number(),
|
|
18
|
-
remaining_size: v4_1.default.number(),
|
|
19
|
-
status: v4_1.default.string(),
|
|
20
|
-
transaction_unix_ms: v4_1.default.number(),
|
|
21
|
-
transaction_version: v4_1.default.number(),
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export const UserActiveTwapSchema = z.object({
|
|
3
|
+
market: z.string(),
|
|
4
|
+
is_buy: z.boolean(),
|
|
5
|
+
order_id: z.string(),
|
|
6
|
+
client_order_id: z.string().nullable().optional(),
|
|
7
|
+
is_reduce_only: z.boolean(),
|
|
8
|
+
start_unix_ms: z.number(),
|
|
9
|
+
frequency_s: z.number(),
|
|
10
|
+
duration_s: z.number(),
|
|
11
|
+
orig_size: z.number(),
|
|
12
|
+
remaining_size: z.number(),
|
|
13
|
+
status: z.string(),
|
|
14
|
+
transaction_unix_ms: z.number(),
|
|
15
|
+
transaction_version: z.number(),
|
|
22
16
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
twaps:
|
|
17
|
+
export const UserActiveTwapsSchema = z.array(UserActiveTwapSchema);
|
|
18
|
+
export const UserActiveTwapsWsMessageSchema = z.object({
|
|
19
|
+
twaps: z.array(UserActiveTwapSchema),
|
|
26
20
|
});
|