@decibeltrade/sdk 0.1.1
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/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-lint$colon$check.log +5 -0
- package/.turbo/turbo-lint.log +5 -0
- package/decibel_transactions.md +1049 -0
- package/dist/abi/abi-manager.d.ts +13 -0
- package/dist/abi/abi-manager.d.ts.map +1 -0
- package/dist/abi/abi-manager.js +21 -0
- package/dist/abi/abis.json +1322 -0
- package/dist/abi/bytecode-manager.d.ts +57 -0
- package/dist/abi/bytecode-manager.d.ts.map +1 -0
- package/dist/abi/bytecode-manager.js +62 -0
- package/dist/abi/bytecode.json +24 -0
- package/dist/abi/fetch-abis.d.ts +7 -0
- package/dist/abi/fetch-abis.d.ts.map +1 -0
- package/dist/abi/fetch-abis.js +132 -0
- package/dist/abi/fetch-bytecode.d.ts +24 -0
- package/dist/abi/fetch-bytecode.d.ts.map +1 -0
- package/dist/abi/fetch-bytecode.js +123 -0
- package/dist/abi/generate-abis.d.ts +6 -0
- package/dist/abi/generate-abis.d.ts.map +1 -0
- package/dist/abi/generate-abis.js +170 -0
- package/dist/abi/json/netna.json +1323 -0
- package/dist/abi/json/testnet.json +1315 -0
- package/dist/abi/types.d.ts +22 -0
- package/dist/abi/types.d.ts.map +1 -0
- package/dist/abi/types.js +2 -0
- package/dist/admin.d.ts +29 -0
- package/dist/admin.d.ts.map +1 -0
- package/dist/admin.js +203 -0
- package/dist/base.d.ts +42 -0
- package/dist/base.d.ts.map +1 -0
- package/dist/base.js +176 -0
- package/dist/constants.d.ts +41 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +78 -0
- package/dist/fee-pay.d.ts +11 -0
- package/dist/fee-pay.d.ts.map +1 -0
- package/dist/fee-pay.js +30 -0
- package/dist/gas/gas-price-manager.d.ts +35 -0
- package/dist/gas/gas-price-manager.d.ts.map +1 -0
- package/dist/gas/gas-price-manager.js +93 -0
- package/dist/gas-price-manager.d.ts +31 -0
- package/dist/gas-price-manager.d.ts.map +1 -0
- package/dist/gas-price-manager.js +84 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -0
- package/dist/order-event.types.d.ts +55 -0
- package/dist/order-event.types.d.ts.map +1 -0
- package/dist/order-event.types.js +3 -0
- package/dist/order-status.d.ts +43 -0
- package/dist/order-status.d.ts.map +1 -0
- package/dist/order-status.js +86 -0
- package/dist/read/account-overview/account-overview.reader.d.ts +37 -0
- package/dist/read/account-overview/account-overview.reader.d.ts.map +1 -0
- package/dist/read/account-overview/account-overview.reader.js +35 -0
- package/dist/read/account-overview/account-overview.types.d.ts +52 -0
- package/dist/read/account-overview/account-overview.types.d.ts.map +1 -0
- package/dist/read/account-overview/account-overview.types.js +36 -0
- package/dist/read/api-wallets/api-wallets.reader.d.ts +17 -0
- package/dist/read/api-wallets/api-wallets.reader.d.ts.map +1 -0
- package/dist/read/api-wallets/api-wallets.reader.js +27 -0
- package/dist/read/api-wallets/api-wallets.types.d.ts +17 -0
- package/dist/read/api-wallets/api-wallets.types.d.ts.map +1 -0
- package/dist/read/api-wallets/api-wallets.types.js +13 -0
- package/dist/read/base-reader.d.ts +22 -0
- package/dist/read/base-reader.d.ts.map +1 -0
- package/dist/read/base-reader.js +29 -0
- package/dist/read/candlesticks/candlesticks.reader.d.ts +31 -0
- package/dist/read/candlesticks/candlesticks.reader.d.ts.map +1 -0
- package/dist/read/candlesticks/candlesticks.reader.js +43 -0
- package/dist/read/candlesticks/candlesticks.types.d.ts +45 -0
- package/dist/read/candlesticks/candlesticks.types.d.ts.map +1 -0
- package/dist/read/candlesticks/candlesticks.types.js +36 -0
- package/dist/read/delegations/delegations.reader.d.ts +15 -0
- package/dist/read/delegations/delegations.reader.d.ts.map +1 -0
- package/dist/read/delegations/delegations.reader.js +23 -0
- package/dist/read/delegations/delegations.types.d.ts +17 -0
- package/dist/read/delegations/delegations.types.d.ts.map +1 -0
- package/dist/read/delegations/delegations.types.js +13 -0
- package/dist/read/index.d.ts +105 -0
- package/dist/read/index.d.ts.map +1 -0
- package/dist/read/index.js +244 -0
- package/dist/read/leaderboard/leaderboard.reader.d.ts +21 -0
- package/dist/read/leaderboard/leaderboard.reader.d.ts.map +1 -0
- package/dist/read/leaderboard/leaderboard.reader.js +22 -0
- package/dist/read/leaderboard/leaderboard.types.d.ts +27 -0
- package/dist/read/leaderboard/leaderboard.types.d.ts.map +1 -0
- package/dist/read/leaderboard/leaderboard.types.js +14 -0
- package/dist/read/market-contexts/market-contexts.reader.d.ts +22 -0
- package/dist/read/market-contexts/market-contexts.reader.d.ts.map +1 -0
- package/dist/read/market-contexts/market-contexts.reader.js +27 -0
- package/dist/read/market-contexts/market-contexts.types.d.ts +26 -0
- package/dist/read/market-contexts/market-contexts.types.d.ts.map +1 -0
- package/dist/read/market-contexts/market-contexts.types.js +19 -0
- package/dist/read/market-depth/market-depth.reader.d.ts +30 -0
- package/dist/read/market-depth/market-depth.reader.d.ts.map +1 -0
- package/dist/read/market-depth/market-depth.reader.js +46 -0
- package/dist/read/market-depth/market-depth.types.d.ts +20 -0
- package/dist/read/market-depth/market-depth.types.d.ts.map +1 -0
- package/dist/read/market-depth/market-depth.types.js +16 -0
- package/dist/read/market-prices/market-prices.reader.d.ts +44 -0
- package/dist/read/market-prices/market-prices.reader.d.ts.map +1 -0
- package/dist/read/market-prices/market-prices.reader.js +51 -0
- package/dist/read/market-prices/market-prices.types.d.ts +48 -0
- package/dist/read/market-prices/market-prices.types.d.ts.map +1 -0
- package/dist/read/market-prices/market-prices.types.js +26 -0
- package/dist/read/market-trades/market-trades.reader.d.ts +33 -0
- package/dist/read/market-trades/market-trades.reader.d.ts.map +1 -0
- package/dist/read/market-trades/market-trades.reader.js +39 -0
- package/dist/read/market-trades/market-trades.types.d.ts +52 -0
- package/dist/read/market-trades/market-trades.types.d.ts.map +1 -0
- package/dist/read/market-trades/market-trades.types.js +23 -0
- package/dist/read/markets/markets.reader.d.ts +38 -0
- package/dist/read/markets/markets.reader.d.ts.map +1 -0
- package/dist/read/markets/markets.reader.js +80 -0
- package/dist/read/markets/markets.types.d.ts +82 -0
- package/dist/read/markets/markets.types.d.ts.map +1 -0
- package/dist/read/markets/markets.types.js +46 -0
- package/dist/read/pagination.types.d.ts +14 -0
- package/dist/read/pagination.types.d.ts.map +1 -0
- package/dist/read/pagination.types.js +12 -0
- package/dist/read/portfolio-chart/portfolio-chart.reader.d.ts +14 -0
- package/dist/read/portfolio-chart/portfolio-chart.reader.d.ts.map +1 -0
- package/dist/read/portfolio-chart/portfolio-chart.reader.js +21 -0
- package/dist/read/portfolio-chart/portfolio-chart.types.d.ts +14 -0
- package/dist/read/portfolio-chart/portfolio-chart.types.d.ts.map +1 -0
- package/dist/read/portfolio-chart/portfolio-chart.types.js +12 -0
- package/dist/read/public-vaults/public-vaults.reader.d.ts +38 -0
- package/dist/read/public-vaults/public-vaults.reader.d.ts.map +1 -0
- package/dist/read/public-vaults/public-vaults.reader.js +31 -0
- package/dist/read/public-vaults/public-vaults.types.d.ts +62 -0
- package/dist/read/public-vaults/public-vaults.types.d.ts.map +1 -0
- package/dist/read/public-vaults/public-vaults.types.js +33 -0
- package/dist/read/types.d.ts +178 -0
- package/dist/read/types.d.ts.map +1 -0
- package/dist/read/types.js +87 -0
- package/dist/read/user-active-twaps/user-active-twaps.reader.d.ts +31 -0
- package/dist/read/user-active-twaps/user-active-twaps.reader.d.ts.map +1 -0
- package/dist/read/user-active-twaps/user-active-twaps.reader.js +31 -0
- package/dist/read/user-active-twaps/user-active-twaps.types.d.ts +49 -0
- package/dist/read/user-active-twaps/user-active-twaps.types.d.ts.map +1 -0
- package/dist/read/user-active-twaps/user-active-twaps.types.js +25 -0
- package/dist/read/user-bulk-orders/user-bulk-orders.reader.d.ts +31 -0
- package/dist/read/user-bulk-orders/user-bulk-orders.reader.d.ts.map +1 -0
- package/dist/read/user-bulk-orders/user-bulk-orders.reader.js +32 -0
- package/dist/read/user-bulk-orders/user-bulk-orders.types.d.ts +46 -0
- package/dist/read/user-bulk-orders/user-bulk-orders.types.d.ts.map +1 -0
- package/dist/read/user-bulk-orders/user-bulk-orders.types.js +24 -0
- package/dist/read/user-funding-history/user-funding-history.reader.d.ts +28 -0
- package/dist/read/user-funding-history/user-funding-history.reader.d.ts.map +1 -0
- package/dist/read/user-funding-history/user-funding-history.reader.js +32 -0
- package/dist/read/user-funding-history/user-funding-history.types.d.ts +37 -0
- package/dist/read/user-funding-history/user-funding-history.types.d.ts.map +1 -0
- package/dist/read/user-funding-history/user-funding-history.types.js +21 -0
- package/dist/read/user-notifications/user-notifications.reader.d.ts +13 -0
- package/dist/read/user-notifications/user-notifications.reader.d.ts.map +1 -0
- package/dist/read/user-notifications/user-notifications.reader.js +19 -0
- package/dist/read/user-notifications/user-notifications.types.d.ts +49 -0
- package/dist/read/user-notifications/user-notifications.types.d.ts.map +1 -0
- package/dist/read/user-notifications/user-notifications.types.js +18 -0
- package/dist/read/user-open-orders/user-open-orders.reader.d.ts +40 -0
- package/dist/read/user-open-orders/user-open-orders.reader.d.ts.map +1 -0
- package/dist/read/user-open-orders/user-open-orders.reader.js +31 -0
- package/dist/read/user-open-orders/user-open-orders.types.d.ts +76 -0
- package/dist/read/user-open-orders/user-open-orders.types.d.ts.map +1 -0
- package/dist/read/user-open-orders/user-open-orders.types.js +34 -0
- package/dist/read/user-order-history/user-order-history.reader.d.ts +40 -0
- package/dist/read/user-order-history/user-order-history.reader.d.ts.map +1 -0
- package/dist/read/user-order-history/user-order-history.reader.js +28 -0
- package/dist/read/user-order-history/user-order-history.types.d.ts +85 -0
- package/dist/read/user-order-history/user-order-history.types.d.ts.map +1 -0
- package/dist/read/user-order-history/user-order-history.types.js +37 -0
- package/dist/read/user-positions/user-positions.reader.d.ts +37 -0
- package/dist/read/user-positions/user-positions.reader.d.ts.map +1 -0
- package/dist/read/user-positions/user-positions.reader.js +41 -0
- package/dist/read/user-positions/user-positions.types.d.ts +2590 -0
- package/dist/read/user-positions/user-positions.types.d.ts.map +1 -0
- package/dist/read/user-positions/user-positions.types.js +31 -0
- package/dist/read/user-subaccounts/user-subaccounts.reader.d.ts +18 -0
- package/dist/read/user-subaccounts/user-subaccounts.reader.d.ts.map +1 -0
- package/dist/read/user-subaccounts/user-subaccounts.reader.js +28 -0
- package/dist/read/user-subaccounts/user-subaccounts.types.d.ts +21 -0
- package/dist/read/user-subaccounts/user-subaccounts.types.d.ts.map +1 -0
- package/dist/read/user-subaccounts/user-subaccounts.types.js +15 -0
- package/dist/read/user-trade-history/user-trade-history.reader.d.ts +33 -0
- package/dist/read/user-trade-history/user-trade-history.reader.d.ts.map +1 -0
- package/dist/read/user-trade-history/user-trade-history.reader.js +32 -0
- package/dist/read/user-trade-history/user-trade-history.types.d.ts +52 -0
- package/dist/read/user-trade-history/user-trade-history.types.d.ts.map +1 -0
- package/dist/read/user-trade-history/user-trade-history.types.js +26 -0
- package/dist/read/user-vaults/user-vaults.reader.d.ts +26 -0
- package/dist/read/user-vaults/user-vaults.reader.d.ts.map +1 -0
- package/dist/read/user-vaults/user-vaults.reader.js +32 -0
- package/dist/read/user-vaults/user-vaults.types.d.ts +39 -0
- package/dist/read/user-vaults/user-vaults.types.d.ts.map +1 -0
- package/dist/read/user-vaults/user-vaults.types.js +21 -0
- package/dist/read/vault/vault.reader.d.ts +95 -0
- package/dist/read/vault/vault.reader.d.ts.map +1 -0
- package/dist/read/vault/vault.reader.js +168 -0
- package/dist/read/vault/vault.types.d.ts +49 -0
- package/dist/read/vault/vault.types.d.ts.map +1 -0
- package/dist/read/vault/vault.types.js +45 -0
- package/dist/read/vaults/vaults.reader.d.ts +72 -0
- package/dist/read/vaults/vaults.reader.d.ts.map +1 -0
- package/dist/read/vaults/vaults.reader.js +63 -0
- package/dist/read/vaults/vaults.types.d.ts +140 -0
- package/dist/read/vaults/vaults.types.d.ts.map +1 -0
- package/dist/read/vaults/vaults.types.js +71 -0
- package/dist/read/ws-subscription.d.ts +21 -0
- package/dist/read/ws-subscription.d.ts.map +1 -0
- package/dist/read/ws-subscription.js +170 -0
- package/dist/subaccount-types.d.ts +24 -0
- package/dist/subaccount-types.d.ts.map +1 -0
- package/dist/subaccount-types.js +11 -0
- package/dist/transaction-builder.d.ts +14 -0
- package/dist/transaction-builder.d.ts.map +1 -0
- package/dist/transaction-builder.js +40 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils.d.ts +56 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +164 -0
- package/dist/vault-types.d.ts +43 -0
- package/dist/vault-types.d.ts.map +1 -0
- package/dist/vault-types.js +11 -0
- package/dist/write.d.ts +271 -0
- package/dist/write.d.ts.map +1 -0
- package/dist/write.js +485 -0
- package/eslint.config.mjs +25 -0
- package/package.json +39 -0
- package/readme.md +257 -0
- package/sdk_reference.md +876 -0
- package/src/abi/generate-abis.ts +164 -0
- package/src/abi/json/netna.json +1323 -0
- package/src/abi/json/testnet.json +1315 -0
- package/src/abi/types.ts +23 -0
- package/src/admin.ts +284 -0
- package/src/base.ts +218 -0
- package/src/constants.ts +118 -0
- package/src/fee-pay.ts +39 -0
- package/src/gas/gas-price-manager.ts +115 -0
- package/src/index.ts +10 -0
- package/src/order-event.types.ts +65 -0
- package/src/order-status.ts +89 -0
- package/src/read/account-overview/account-overview.reader.ts +43 -0
- package/src/read/account-overview/account-overview.types.ts +45 -0
- package/src/read/base-reader.ts +41 -0
- package/src/read/candlesticks/candlesticks.reader.ts +61 -0
- package/src/read/candlesticks/candlesticks.types.ts +46 -0
- package/src/read/delegations/delegations.reader.ts +22 -0
- package/src/read/delegations/delegations.types.ts +19 -0
- package/src/read/index.ts +271 -0
- package/src/read/leaderboard/leaderboard.reader.ts +21 -0
- package/src/read/leaderboard/leaderboard.types.ts +26 -0
- package/src/read/market-contexts/market-contexts.reader.ts +26 -0
- package/src/read/market-contexts/market-contexts.types.ts +18 -0
- package/src/read/market-depth/market-depth.reader.ts +60 -0
- package/src/read/market-depth/market-depth.types.ts +24 -0
- package/src/read/market-prices/market-prices.reader.ts +61 -0
- package/src/read/market-prices/market-prices.types.ts +38 -0
- package/src/read/market-trades/market-trades.reader.ts +46 -0
- package/src/read/market-trades/market-trades.types.ts +34 -0
- package/src/read/markets/markets.reader.ts +82 -0
- package/src/read/markets/markets.types.ts +54 -0
- package/src/read/pagination.types.ts +18 -0
- package/src/read/portfolio-chart/portfolio-chart.reader.ts +20 -0
- package/src/read/portfolio-chart/portfolio-chart.types.ts +21 -0
- package/src/read/types.ts +129 -0
- package/src/read/user-active-twaps/user-active-twaps.reader.ts +36 -0
- package/src/read/user-active-twaps/user-active-twaps.types.ts +33 -0
- package/src/read/user-bulk-orders/user-bulk-orders.reader.ts +37 -0
- package/src/read/user-bulk-orders/user-bulk-orders.types.ts +32 -0
- package/src/read/user-funding-history/user-funding-history.reader.ts +38 -0
- package/src/read/user-funding-history/user-funding-history.types.ts +29 -0
- package/src/read/user-notifications/user-notifications.reader.ts +17 -0
- package/src/read/user-notifications/user-notifications.types.ts +61 -0
- package/src/read/user-open-orders/user-open-orders.reader.ts +36 -0
- package/src/read/user-open-orders/user-open-orders.types.ts +42 -0
- package/src/read/user-order-history/user-order-history.reader.ts +34 -0
- package/src/read/user-order-history/user-order-history.types.ts +44 -0
- package/src/read/user-positions/user-positions.reader.ts +55 -0
- package/src/read/user-positions/user-positions.types.ts +43 -0
- package/src/read/user-subaccounts/user-subaccounts.reader.ts +30 -0
- package/src/read/user-subaccounts/user-subaccounts.types.ts +21 -0
- package/src/read/user-trade-history/user-trade-history.reader.ts +38 -0
- package/src/read/user-trade-history/user-trade-history.types.ts +33 -0
- package/src/read/vaults/vaults.reader.ts +79 -0
- package/src/read/vaults/vaults.types.ts +106 -0
- package/src/read/ws-subscription.ts +200 -0
- package/src/subaccount-types.ts +31 -0
- package/src/transaction-builder.ts +75 -0
- package/src/utils.ts +255 -0
- package/src/write.ts +965 -0
- package/tsconfig.json +8 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MarketPricesReader = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
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 {
|
|
8
|
+
async getAll() {
|
|
9
|
+
const response = await this.getRequest({
|
|
10
|
+
schema: market_prices_types_1.MarketPricesSchema,
|
|
11
|
+
url: `${this.deps.config.tradingHttpUrl}/api/v1/prices`,
|
|
12
|
+
});
|
|
13
|
+
return response.data;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Get the price data for a given market
|
|
17
|
+
* @param marketName The name of the market to get prices for
|
|
18
|
+
* @returns The price data for the given market
|
|
19
|
+
*/
|
|
20
|
+
async getByName(marketName) {
|
|
21
|
+
const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
22
|
+
const response = await this.getRequest({
|
|
23
|
+
schema: market_prices_types_1.MarketPricesSchema,
|
|
24
|
+
url: `${this.deps.config.tradingHttpUrl}/api/v1/prices`,
|
|
25
|
+
queryParams: { market: marketAddr.toString() },
|
|
26
|
+
});
|
|
27
|
+
return response.data;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Subscribe to price updates for a market
|
|
31
|
+
* @param marketName The name of the market to subscribe to
|
|
32
|
+
* @param onData Callback function for received price data
|
|
33
|
+
* @returns A function to unsubscribe from the oracle price updates
|
|
34
|
+
*/
|
|
35
|
+
subscribeByName(marketName, onData) {
|
|
36
|
+
const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
37
|
+
const topic = `market_price:${marketAddr}`;
|
|
38
|
+
return this.deps.ws.subscribe(topic, market_prices_types_1.MarketPriceWsMessageSchema, onData);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Subscribe to price updates for a market
|
|
42
|
+
* @param marketAddr The address of the market to subscribe to
|
|
43
|
+
* @param onData Callback function for received price data
|
|
44
|
+
* @returns A function to unsubscribe from the oracle price updates
|
|
45
|
+
*/
|
|
46
|
+
subscribeByAddress(marketAddr, onData) {
|
|
47
|
+
const topic = `market_price:${marketAddr}`;
|
|
48
|
+
return this.deps.ws.subscribe(topic, market_prices_types_1.MarketPriceWsMessageSchema, onData);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.MarketPricesReader = MarketPricesReader;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export declare const PricesSchema: z.ZodObject<{
|
|
3
|
+
market: z.ZodString;
|
|
4
|
+
mark_px: z.ZodNumber;
|
|
5
|
+
mid_px: z.ZodNumber;
|
|
6
|
+
oracle_px: z.ZodNumber;
|
|
7
|
+
funding_rate_bps: z.ZodNumber;
|
|
8
|
+
is_funding_positive: z.ZodBoolean;
|
|
9
|
+
open_interest: z.ZodNumber;
|
|
10
|
+
transaction_unix_ms: z.ZodNumber;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export declare const MarketPricesSchema: z.ZodArray<z.ZodObject<{
|
|
13
|
+
market: z.ZodString;
|
|
14
|
+
mark_px: z.ZodNumber;
|
|
15
|
+
mid_px: z.ZodNumber;
|
|
16
|
+
oracle_px: z.ZodNumber;
|
|
17
|
+
funding_rate_bps: z.ZodNumber;
|
|
18
|
+
is_funding_positive: z.ZodBoolean;
|
|
19
|
+
open_interest: z.ZodNumber;
|
|
20
|
+
transaction_unix_ms: z.ZodNumber;
|
|
21
|
+
}, z.core.$strip>>;
|
|
22
|
+
export declare const MarketPriceSchema: z.ZodObject<{
|
|
23
|
+
market: z.ZodString;
|
|
24
|
+
mark_px: z.ZodNumber;
|
|
25
|
+
mid_px: z.ZodNumber;
|
|
26
|
+
oracle_px: z.ZodNumber;
|
|
27
|
+
funding_rate_bps: z.ZodNumber;
|
|
28
|
+
is_funding_positive: z.ZodBoolean;
|
|
29
|
+
open_interest: z.ZodNumber;
|
|
30
|
+
transaction_unix_ms: z.ZodNumber;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
export declare const MarketPriceWsMessageSchema: z.ZodObject<{
|
|
33
|
+
price: z.ZodObject<{
|
|
34
|
+
market: z.ZodString;
|
|
35
|
+
mark_px: z.ZodNumber;
|
|
36
|
+
mid_px: z.ZodNumber;
|
|
37
|
+
oracle_px: z.ZodNumber;
|
|
38
|
+
funding_rate_bps: z.ZodNumber;
|
|
39
|
+
is_funding_positive: z.ZodBoolean;
|
|
40
|
+
open_interest: z.ZodNumber;
|
|
41
|
+
transaction_unix_ms: z.ZodNumber;
|
|
42
|
+
}, z.core.$strip>;
|
|
43
|
+
}, z.core.$strip>;
|
|
44
|
+
export type Prices = z.infer<typeof PricesSchema>;
|
|
45
|
+
export type MarketPrices = z.infer<typeof MarketPricesSchema>;
|
|
46
|
+
export type MarketPrice = z.infer<typeof MarketPriceSchema>;
|
|
47
|
+
export type MarketPriceWsMessage = z.infer<typeof MarketPriceWsMessageSchema>;
|
|
48
|
+
//# sourceMappingURL=market-prices.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market-prices.types.d.ts","sourceRoot":"","sources":["../../../src/read/market-prices/market-prices.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,YAAY;;;;;;;;;iBASvB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;kBAAwB,CAAC;AAExD,eAAO,MAAM,iBAAiB;;;;;;;;;iBAS5B,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAAyC,CAAC;AAEjF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MarketPriceWsMessageSchema = exports.MarketPriceSchema = exports.MarketPricesSchema = exports.PricesSchema = void 0;
|
|
4
|
+
const v4_1 = require("zod/v4");
|
|
5
|
+
exports.PricesSchema = v4_1.z.object({
|
|
6
|
+
market: v4_1.z.string(),
|
|
7
|
+
mark_px: v4_1.z.number(),
|
|
8
|
+
mid_px: v4_1.z.number(),
|
|
9
|
+
oracle_px: v4_1.z.number(),
|
|
10
|
+
funding_rate_bps: v4_1.z.number(),
|
|
11
|
+
is_funding_positive: v4_1.z.boolean(),
|
|
12
|
+
open_interest: v4_1.z.number(),
|
|
13
|
+
transaction_unix_ms: v4_1.z.number(),
|
|
14
|
+
});
|
|
15
|
+
exports.MarketPricesSchema = v4_1.z.array(exports.PricesSchema);
|
|
16
|
+
exports.MarketPriceSchema = v4_1.z.object({
|
|
17
|
+
market: v4_1.z.string(),
|
|
18
|
+
mark_px: v4_1.z.number(),
|
|
19
|
+
mid_px: v4_1.z.number(),
|
|
20
|
+
oracle_px: v4_1.z.number(),
|
|
21
|
+
funding_rate_bps: v4_1.z.number(),
|
|
22
|
+
is_funding_positive: v4_1.z.boolean(),
|
|
23
|
+
open_interest: v4_1.z.number(),
|
|
24
|
+
transaction_unix_ms: v4_1.z.number(),
|
|
25
|
+
});
|
|
26
|
+
exports.MarketPriceWsMessageSchema = v4_1.z.object({ price: exports.MarketPriceSchema });
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { MarketTradeWsMessage } from "./market-trades.types";
|
|
3
|
+
export declare class MarketTradesReader extends BaseReader {
|
|
4
|
+
/**
|
|
5
|
+
* Get the latest market trades for a given market
|
|
6
|
+
* @param marketName The name of the market to get market trades for
|
|
7
|
+
* @param limit The number of market trades to get
|
|
8
|
+
* @returns The market trades for the given market
|
|
9
|
+
*/
|
|
10
|
+
getByName(marketName: string, limit?: number): Promise<{
|
|
11
|
+
account: string;
|
|
12
|
+
market: string;
|
|
13
|
+
action: string;
|
|
14
|
+
size: number;
|
|
15
|
+
price: number;
|
|
16
|
+
is_profit: boolean;
|
|
17
|
+
realized_pnl_amount: number;
|
|
18
|
+
is_funding_positive: boolean;
|
|
19
|
+
realized_funding_amount: number;
|
|
20
|
+
is_rebate: boolean;
|
|
21
|
+
fee_amount: number;
|
|
22
|
+
transaction_unix_ms: number;
|
|
23
|
+
transaction_version: number;
|
|
24
|
+
}[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Subscribe to the latest market trades for a given market
|
|
27
|
+
* @param marketName The name of the market to subscribe to
|
|
28
|
+
* @param onData Callback function for received market trades data
|
|
29
|
+
* @returns A function to unsubscribe from the market trades updates
|
|
30
|
+
*/
|
|
31
|
+
subscribeByName(marketName: string, onData: (data: MarketTradeWsMessage) => void): () => void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=market-trades.reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market-trades.reader.d.ts","sourceRoot":"","sources":["../../../src/read/market-trades/market-trades.reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAEL,oBAAoB,EAErB,MAAM,uBAAuB,CAAC;AAE/B,qBAAa,kBAAmB,SAAQ,UAAU;IAChD;;;;;OAKG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;IAgBlD;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI;CAMjF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MarketTradesReader = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
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 {
|
|
8
|
+
/**
|
|
9
|
+
* Get the latest market trades for a given market
|
|
10
|
+
* @param marketName The name of the market to get market trades for
|
|
11
|
+
* @param limit The number of market trades to get
|
|
12
|
+
* @returns The market trades for the given market
|
|
13
|
+
*/
|
|
14
|
+
async getByName(marketName, limit) {
|
|
15
|
+
const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
16
|
+
const queryParams = new URLSearchParams({ market: marketAddr.toString() });
|
|
17
|
+
if (limit !== undefined) {
|
|
18
|
+
queryParams.set("limit", limit.toString());
|
|
19
|
+
}
|
|
20
|
+
const response = await this.getRequest({
|
|
21
|
+
schema: market_trades_types_1.MarketTradesHistorySchema,
|
|
22
|
+
url: `${this.deps.config.tradingHttpUrl}/api/v1/trades`,
|
|
23
|
+
queryParams,
|
|
24
|
+
});
|
|
25
|
+
return response.data;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Subscribe to the latest market trades for a given market
|
|
29
|
+
* @param marketName The name of the market to subscribe to
|
|
30
|
+
* @param onData Callback function for received market trades data
|
|
31
|
+
* @returns A function to unsubscribe from the market trades updates
|
|
32
|
+
*/
|
|
33
|
+
subscribeByName(marketName, onData) {
|
|
34
|
+
const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
35
|
+
const topic = `trades:${marketAddr}`;
|
|
36
|
+
return this.deps.ws.subscribe(topic, market_trades_types_1.MarketTradeWsMessageSchema, onData);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.MarketTradesReader = MarketTradesReader;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export declare const MarketTradeSchema: z.ZodObject<{
|
|
3
|
+
account: z.ZodString;
|
|
4
|
+
market: z.ZodString;
|
|
5
|
+
action: z.ZodString;
|
|
6
|
+
size: z.ZodNumber;
|
|
7
|
+
price: z.ZodNumber;
|
|
8
|
+
is_profit: z.ZodBoolean;
|
|
9
|
+
realized_pnl_amount: z.ZodNumber;
|
|
10
|
+
is_funding_positive: z.ZodBoolean;
|
|
11
|
+
realized_funding_amount: z.ZodNumber;
|
|
12
|
+
is_rebate: z.ZodBoolean;
|
|
13
|
+
fee_amount: z.ZodNumber;
|
|
14
|
+
transaction_unix_ms: z.ZodNumber;
|
|
15
|
+
transaction_version: z.ZodNumber;
|
|
16
|
+
}, z.core.$strip>;
|
|
17
|
+
export declare const MarketTradesHistorySchema: z.ZodArray<z.ZodObject<{
|
|
18
|
+
account: z.ZodString;
|
|
19
|
+
market: z.ZodString;
|
|
20
|
+
action: z.ZodString;
|
|
21
|
+
size: z.ZodNumber;
|
|
22
|
+
price: z.ZodNumber;
|
|
23
|
+
is_profit: z.ZodBoolean;
|
|
24
|
+
realized_pnl_amount: z.ZodNumber;
|
|
25
|
+
is_funding_positive: z.ZodBoolean;
|
|
26
|
+
realized_funding_amount: z.ZodNumber;
|
|
27
|
+
is_rebate: z.ZodBoolean;
|
|
28
|
+
fee_amount: z.ZodNumber;
|
|
29
|
+
transaction_unix_ms: z.ZodNumber;
|
|
30
|
+
transaction_version: z.ZodNumber;
|
|
31
|
+
}, z.core.$strip>>;
|
|
32
|
+
export declare const MarketTradeWsMessageSchema: z.ZodObject<{
|
|
33
|
+
trades: z.ZodArray<z.ZodObject<{
|
|
34
|
+
account: z.ZodString;
|
|
35
|
+
market: z.ZodString;
|
|
36
|
+
action: z.ZodString;
|
|
37
|
+
size: z.ZodNumber;
|
|
38
|
+
price: z.ZodNumber;
|
|
39
|
+
is_profit: z.ZodBoolean;
|
|
40
|
+
realized_pnl_amount: z.ZodNumber;
|
|
41
|
+
is_funding_positive: z.ZodBoolean;
|
|
42
|
+
realized_funding_amount: z.ZodNumber;
|
|
43
|
+
is_rebate: z.ZodBoolean;
|
|
44
|
+
fee_amount: z.ZodNumber;
|
|
45
|
+
transaction_unix_ms: z.ZodNumber;
|
|
46
|
+
transaction_version: z.ZodNumber;
|
|
47
|
+
}, z.core.$strip>>;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
export type MarketTrade = z.infer<typeof MarketTradeSchema>;
|
|
50
|
+
export type MarketTradesHistory = z.infer<typeof MarketTradesHistorySchema>;
|
|
51
|
+
export type MarketTradeWsMessage = z.infer<typeof MarketTradeWsMessageSchema>;
|
|
52
|
+
//# sourceMappingURL=market-trades.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"market-trades.types.d.ts","sourceRoot":"","sources":["../../../src/read/market-trades/market-trades.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;iBAc5B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;kBAA6B,CAAC;AAEpE,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;iBAErC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MarketTradeWsMessageSchema = exports.MarketTradesHistorySchema = exports.MarketTradeSchema = void 0;
|
|
4
|
+
const v4_1 = require("zod/v4");
|
|
5
|
+
exports.MarketTradeSchema = v4_1.z.object({
|
|
6
|
+
account: v4_1.z.string(),
|
|
7
|
+
market: v4_1.z.string(),
|
|
8
|
+
action: v4_1.z.string(),
|
|
9
|
+
size: v4_1.z.number(),
|
|
10
|
+
price: v4_1.z.number(),
|
|
11
|
+
is_profit: v4_1.z.boolean(),
|
|
12
|
+
realized_pnl_amount: v4_1.z.number(),
|
|
13
|
+
is_funding_positive: v4_1.z.boolean(),
|
|
14
|
+
realized_funding_amount: v4_1.z.number(),
|
|
15
|
+
is_rebate: v4_1.z.boolean(),
|
|
16
|
+
fee_amount: v4_1.z.number(),
|
|
17
|
+
transaction_unix_ms: v4_1.z.number(),
|
|
18
|
+
transaction_version: v4_1.z.number(),
|
|
19
|
+
});
|
|
20
|
+
exports.MarketTradesHistorySchema = v4_1.z.array(exports.MarketTradeSchema);
|
|
21
|
+
exports.MarketTradeWsMessageSchema = v4_1.z.object({
|
|
22
|
+
trades: v4_1.z.array(exports.MarketTradeSchema),
|
|
23
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { PerpMarketConfig } from "./markets.types";
|
|
3
|
+
export declare class MarketsReader extends BaseReader {
|
|
4
|
+
/**
|
|
5
|
+
* Get all of the available markets
|
|
6
|
+
* @returns The list of available markets
|
|
7
|
+
*/
|
|
8
|
+
getAll(): Promise<{
|
|
9
|
+
market_addr: string;
|
|
10
|
+
market_name: string;
|
|
11
|
+
sz_decimals: number;
|
|
12
|
+
px_decimals: number;
|
|
13
|
+
max_leverage: number;
|
|
14
|
+
tick_size: number;
|
|
15
|
+
min_size: number;
|
|
16
|
+
lot_size: number;
|
|
17
|
+
max_open_interest: number;
|
|
18
|
+
mode: "Open" | "ReduceOnly" | "AllowlistOnly" | "Halt" | "Delisting";
|
|
19
|
+
}[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Get the market config for a given market name
|
|
22
|
+
* @param marketName The name of the market to get
|
|
23
|
+
* @returns The market config for the given name
|
|
24
|
+
*/
|
|
25
|
+
getByName(marketName: string): Promise<PerpMarketConfig | null>;
|
|
26
|
+
/**
|
|
27
|
+
* List all of the market addresses
|
|
28
|
+
* @returns The list of market addresses
|
|
29
|
+
*/
|
|
30
|
+
listMarketAddresses(): Promise<string[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Get the name of a market by address
|
|
33
|
+
* @param marketAddr The address of the market
|
|
34
|
+
* @returns The name of the market
|
|
35
|
+
*/
|
|
36
|
+
marketNameByAddress(marketAddr: string): Promise<string>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=markets.reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markets.reader.d.ts","sourceRoot":"","sources":["../../../src/read/markets/markets.reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAA6C,MAAM,iBAAiB,CAAC;AAE9F,qBAAa,aAAc,SAAQ,UAAU;IAC3C;;;OAGG;IACG,MAAM;;;;;;;;;;;;IAmBZ;;;;OAIG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAiBrE;;;OAGG;IACG,mBAAmB;IAWzB;;;;OAIG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM;CAU7C"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MarketsReader = void 0;
|
|
4
|
+
const utils_1 = require("../../utils");
|
|
5
|
+
const base_reader_1 = require("../base-reader");
|
|
6
|
+
const markets_types_1 = require("./markets.types");
|
|
7
|
+
class MarketsReader extends base_reader_1.BaseReader {
|
|
8
|
+
/**
|
|
9
|
+
* Get all of the available markets
|
|
10
|
+
* @returns The list of available markets
|
|
11
|
+
*/
|
|
12
|
+
async getAll() {
|
|
13
|
+
const response = await this.getRequest({
|
|
14
|
+
schema: markets_types_1.PerpMarketsSchema,
|
|
15
|
+
url: `${this.deps.config.tradingHttpUrl}/api/v1/markets`,
|
|
16
|
+
});
|
|
17
|
+
// TODO: Remove once API is fixed and doesn't return duplicate markets
|
|
18
|
+
const seen = new Set();
|
|
19
|
+
const uniqueMarkets = response.data.filter((market) => {
|
|
20
|
+
if (seen.has(market.market_addr)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
seen.add(market.market_addr);
|
|
24
|
+
return true;
|
|
25
|
+
});
|
|
26
|
+
return uniqueMarkets;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get the market config for a given market name
|
|
30
|
+
* @param marketName The name of the market to get
|
|
31
|
+
* @returns The market config for the given name
|
|
32
|
+
*/
|
|
33
|
+
async getByName(marketName) {
|
|
34
|
+
const marketAddr = (0, utils_1.getMarketAddr)(marketName, this.deps.config.deployment.perpEngineGlobal);
|
|
35
|
+
try {
|
|
36
|
+
// TODO: Fix lint error
|
|
37
|
+
// eslint-disable-next-line custom/no-get-account-resource
|
|
38
|
+
const market = await this.deps.aptos.getAccountResource({
|
|
39
|
+
accountAddress: marketAddr,
|
|
40
|
+
resourceType: `${this.deps.config.deployment.package}::perp_market_config::PerpMarketConfig`,
|
|
41
|
+
});
|
|
42
|
+
// TODO: Handle different __variant__ values
|
|
43
|
+
return markets_types_1.PerpMarketConfigSchema.parse(market);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
console.error(e);
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* List all of the market addresses
|
|
52
|
+
* @returns The list of market addresses
|
|
53
|
+
*/
|
|
54
|
+
async listMarketAddresses() {
|
|
55
|
+
const markets = await this.deps.aptos.view({
|
|
56
|
+
payload: {
|
|
57
|
+
function: `${this.deps.config.deployment.package}::perp_engine::list_markets`,
|
|
58
|
+
typeArguments: [],
|
|
59
|
+
functionArguments: [],
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
return markets[0];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get the name of a market by address
|
|
66
|
+
* @param marketAddr The address of the market
|
|
67
|
+
* @returns The name of the market
|
|
68
|
+
*/
|
|
69
|
+
async marketNameByAddress(marketAddr) {
|
|
70
|
+
const name = await this.deps.aptos.view({
|
|
71
|
+
payload: {
|
|
72
|
+
function: `${this.deps.config.deployment.package}::perp_engine::market_name`,
|
|
73
|
+
typeArguments: [],
|
|
74
|
+
functionArguments: [marketAddr],
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
return name[0];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.MarketsReader = MarketsReader;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export declare const MarketModeConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
3
|
+
__variant__: z.ZodLiteral<"Open">;
|
|
4
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
5
|
+
__variant__: z.ZodLiteral<"ReduceOnly">;
|
|
6
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
7
|
+
__variant__: z.ZodLiteral<"AllowlistOnly">;
|
|
8
|
+
allowlist: z.ZodArray<z.ZodString>;
|
|
9
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
10
|
+
__variant__: z.ZodLiteral<"Halt">;
|
|
11
|
+
}, z.core.$strip>]>;
|
|
12
|
+
export declare const PerpMarketConfigSchema: z.ZodObject<{
|
|
13
|
+
__variant__: z.ZodLiteral<"V1">;
|
|
14
|
+
name: z.ZodString;
|
|
15
|
+
sz_precision: z.ZodObject<{
|
|
16
|
+
decimals: z.ZodNumber;
|
|
17
|
+
multiplier: z.ZodString;
|
|
18
|
+
}, z.core.$strip>;
|
|
19
|
+
min_size: z.ZodString;
|
|
20
|
+
lot_size: z.ZodString;
|
|
21
|
+
ticker_size: z.ZodString;
|
|
22
|
+
max_leverage: z.ZodNumber;
|
|
23
|
+
mode: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
24
|
+
__variant__: z.ZodLiteral<"Open">;
|
|
25
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
26
|
+
__variant__: z.ZodLiteral<"ReduceOnly">;
|
|
27
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
28
|
+
__variant__: z.ZodLiteral<"AllowlistOnly">;
|
|
29
|
+
allowlist: z.ZodArray<z.ZodString>;
|
|
30
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
31
|
+
__variant__: z.ZodLiteral<"Halt">;
|
|
32
|
+
}, z.core.$strip>]>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export declare const MarketModeSchema: z.ZodEnum<{
|
|
35
|
+
Open: "Open";
|
|
36
|
+
ReduceOnly: "ReduceOnly";
|
|
37
|
+
AllowlistOnly: "AllowlistOnly";
|
|
38
|
+
Halt: "Halt";
|
|
39
|
+
Delisting: "Delisting";
|
|
40
|
+
}>;
|
|
41
|
+
export declare const PerpMarketSchema: z.ZodObject<{
|
|
42
|
+
market_addr: z.ZodString;
|
|
43
|
+
market_name: z.ZodString;
|
|
44
|
+
sz_decimals: z.ZodNumber;
|
|
45
|
+
px_decimals: z.ZodNumber;
|
|
46
|
+
max_leverage: z.ZodNumber;
|
|
47
|
+
tick_size: z.ZodNumber;
|
|
48
|
+
min_size: z.ZodNumber;
|
|
49
|
+
lot_size: z.ZodNumber;
|
|
50
|
+
max_open_interest: z.ZodNumber;
|
|
51
|
+
mode: z.ZodEnum<{
|
|
52
|
+
Open: "Open";
|
|
53
|
+
ReduceOnly: "ReduceOnly";
|
|
54
|
+
AllowlistOnly: "AllowlistOnly";
|
|
55
|
+
Halt: "Halt";
|
|
56
|
+
Delisting: "Delisting";
|
|
57
|
+
}>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export declare const PerpMarketsSchema: z.ZodArray<z.ZodObject<{
|
|
60
|
+
market_addr: z.ZodString;
|
|
61
|
+
market_name: z.ZodString;
|
|
62
|
+
sz_decimals: z.ZodNumber;
|
|
63
|
+
px_decimals: z.ZodNumber;
|
|
64
|
+
max_leverage: z.ZodNumber;
|
|
65
|
+
tick_size: z.ZodNumber;
|
|
66
|
+
min_size: z.ZodNumber;
|
|
67
|
+
lot_size: z.ZodNumber;
|
|
68
|
+
max_open_interest: z.ZodNumber;
|
|
69
|
+
mode: z.ZodEnum<{
|
|
70
|
+
Open: "Open";
|
|
71
|
+
ReduceOnly: "ReduceOnly";
|
|
72
|
+
AllowlistOnly: "AllowlistOnly";
|
|
73
|
+
Halt: "Halt";
|
|
74
|
+
Delisting: "Delisting";
|
|
75
|
+
}>;
|
|
76
|
+
}, z.core.$strip>>;
|
|
77
|
+
export type MarketModeConfig = z.infer<typeof MarketModeConfigSchema>;
|
|
78
|
+
export type PerpMarketConfig = z.infer<typeof PerpMarketConfigSchema>;
|
|
79
|
+
export type MarketMode = z.infer<typeof MarketModeSchema>;
|
|
80
|
+
export type PerpMarket = z.infer<typeof PerpMarketSchema>;
|
|
81
|
+
export type PerpMarkets = z.infer<typeof PerpMarketsSchema>;
|
|
82
|
+
//# sourceMappingURL=markets.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markets.types.d.ts","sourceRoot":"","sources":["../../../src/read/markets/markets.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;;;;;;;mBAQjC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;iBAYjC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;iBAW3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;kBAA4B,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PerpMarketsSchema = exports.PerpMarketSchema = exports.MarketModeSchema = exports.PerpMarketConfigSchema = exports.MarketModeConfigSchema = void 0;
|
|
4
|
+
const v4_1 = require("zod/v4");
|
|
5
|
+
exports.MarketModeConfigSchema = v4_1.z.discriminatedUnion("__variant__", [
|
|
6
|
+
v4_1.z.object({ __variant__: v4_1.z.literal("Open") }),
|
|
7
|
+
v4_1.z.object({ __variant__: v4_1.z.literal("ReduceOnly") }),
|
|
8
|
+
v4_1.z.object({
|
|
9
|
+
__variant__: v4_1.z.literal("AllowlistOnly"),
|
|
10
|
+
allowlist: v4_1.z.array(v4_1.z.string()),
|
|
11
|
+
}),
|
|
12
|
+
v4_1.z.object({ __variant__: v4_1.z.literal("Halt") }),
|
|
13
|
+
]);
|
|
14
|
+
exports.PerpMarketConfigSchema = v4_1.z.object({
|
|
15
|
+
__variant__: v4_1.z.literal("V1"),
|
|
16
|
+
name: v4_1.z.string(),
|
|
17
|
+
sz_precision: v4_1.z.object({
|
|
18
|
+
decimals: v4_1.z.number(),
|
|
19
|
+
multiplier: v4_1.z.string(),
|
|
20
|
+
}),
|
|
21
|
+
min_size: v4_1.z.string(),
|
|
22
|
+
lot_size: v4_1.z.string(),
|
|
23
|
+
ticker_size: v4_1.z.string(),
|
|
24
|
+
max_leverage: v4_1.z.number(),
|
|
25
|
+
mode: exports.MarketModeConfigSchema,
|
|
26
|
+
});
|
|
27
|
+
exports.MarketModeSchema = v4_1.z.enum([
|
|
28
|
+
"Open",
|
|
29
|
+
"ReduceOnly",
|
|
30
|
+
"AllowlistOnly",
|
|
31
|
+
"Halt",
|
|
32
|
+
"Delisting",
|
|
33
|
+
]);
|
|
34
|
+
exports.PerpMarketSchema = v4_1.z.object({
|
|
35
|
+
market_addr: v4_1.z.string(),
|
|
36
|
+
market_name: v4_1.z.string(),
|
|
37
|
+
sz_decimals: v4_1.z.number(),
|
|
38
|
+
px_decimals: v4_1.z.number(),
|
|
39
|
+
max_leverage: v4_1.z.number(),
|
|
40
|
+
tick_size: v4_1.z.number(),
|
|
41
|
+
min_size: v4_1.z.number(),
|
|
42
|
+
lot_size: v4_1.z.number(),
|
|
43
|
+
max_open_interest: v4_1.z.number(),
|
|
44
|
+
mode: exports.MarketModeSchema,
|
|
45
|
+
});
|
|
46
|
+
exports.PerpMarketsSchema = v4_1.z.array(exports.PerpMarketSchema);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export declare const PaginatedResponseSchema: <T extends z.ZodType>(itemSchema: T) => z.ZodObject<{
|
|
3
|
+
items: z.ZodArray<T>;
|
|
4
|
+
total_count: z.ZodNumber;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export interface PaginatedResponse<T> {
|
|
7
|
+
items: T[];
|
|
8
|
+
total_count: number;
|
|
9
|
+
}
|
|
10
|
+
export interface PageParams {
|
|
11
|
+
limit?: number;
|
|
12
|
+
offset?: number;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=pagination.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.types.d.ts","sourceRoot":"","sources":["../../src/read/pagination.types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,eAAO,MAAM,uBAAuB,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC;;;iBAItE,CAAC;AAEL,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
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(),
|
|
11
|
+
});
|
|
12
|
+
exports.PaginatedResponseSchema = PaginatedResponseSchema;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseReader } from "../base-reader";
|
|
2
|
+
import { PortfolioChartTimeRange, PortfolioChartType } from "./portfolio-chart.types";
|
|
3
|
+
export declare class PortfolioChartReader extends BaseReader {
|
|
4
|
+
/**
|
|
5
|
+
* Get the portfolio chart for a given user
|
|
6
|
+
* @param subAddr The subaccount address to get the account overview for
|
|
7
|
+
* @returns The account overview for the given subaccount address
|
|
8
|
+
*/
|
|
9
|
+
getByAddr(subAddr: string, range: PortfolioChartTimeRange, type: PortfolioChartType): Promise<{
|
|
10
|
+
timestamp: number;
|
|
11
|
+
data_points: number;
|
|
12
|
+
}[]>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=portfolio-chart.reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio-chart.reader.d.ts","sourceRoot":"","sources":["../../../src/read/portfolio-chart/portfolio-chart.reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAEL,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,qBAAa,oBAAqB,SAAQ,UAAU;IAClD;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,kBAAkB;;;;CAS1F"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PortfolioChartReader = void 0;
|
|
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 {
|
|
7
|
+
/**
|
|
8
|
+
* Get the portfolio chart for a given user
|
|
9
|
+
* @param subAddr The subaccount address to get the account overview for
|
|
10
|
+
* @returns The account overview for the given subaccount address
|
|
11
|
+
*/
|
|
12
|
+
async getByAddr(subAddr, range, type) {
|
|
13
|
+
const response = await this.getRequest({
|
|
14
|
+
schema: portfolio_chart_types_1.PortfolioChartSchema,
|
|
15
|
+
url: `${this.deps.config.tradingHttpUrl}/api/v1/portfolio_chart`,
|
|
16
|
+
queryParams: { user: subAddr, range, data_type: type },
|
|
17
|
+
});
|
|
18
|
+
return response.data;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.PortfolioChartReader = PortfolioChartReader;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import z from "zod/v4";
|
|
2
|
+
export declare const PortfolioChartPnlItemSchema: z.ZodObject<{
|
|
3
|
+
timestamp: z.ZodNumber;
|
|
4
|
+
data_points: z.ZodNumber;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export declare const PortfolioChartSchema: z.ZodArray<z.ZodObject<{
|
|
7
|
+
timestamp: z.ZodNumber;
|
|
8
|
+
data_points: z.ZodNumber;
|
|
9
|
+
}, z.core.$strip>>;
|
|
10
|
+
export type PortfolioChartType = "pnl" | "account_value";
|
|
11
|
+
export type PortfolioChartTimeRange = "24h" | "7d" | "30d" | "90d";
|
|
12
|
+
export type PortfolioChartItem = z.infer<typeof PortfolioChartPnlItemSchema>;
|
|
13
|
+
export type PortfolioChart = z.infer<typeof PortfolioChartSchema>;
|
|
14
|
+
//# sourceMappingURL=portfolio-chart.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio-chart.types.d.ts","sourceRoot":"","sources":["../../../src/read/portfolio-chart/portfolio-chart.types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,eAAO,MAAM,2BAA2B;;;iBAGtC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;kBAAuC,CAAC;AAEzE,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,eAAe,CAAC;AACzD,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;AACnE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAC7E,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
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(),
|
|
11
|
+
});
|
|
12
|
+
exports.PortfolioChartSchema = v4_1.default.array(exports.PortfolioChartPnlItemSchema);
|