@decibeltrade/sdk 0.2.8 → 0.2.9
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 +17 -16
- package/dist/abi/json/netna.json +812 -3
- package/dist/abi/json/testnet.json +1023 -217
- package/dist/admin.d.ts +3 -0
- package/dist/admin.d.ts.map +1 -1
- package/dist/admin.js +22 -3
- package/dist/base.d.ts +4 -0
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +23 -3
- package/dist/constants.d.ts +12 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -10
- package/dist/fee-pay.d.ts +4 -2
- package/dist/fee-pay.d.ts.map +1 -1
- package/dist/fee-pay.js +38 -3
- package/dist/read/candlesticks/candlesticks.types.d.ts +8 -0
- package/dist/read/candlesticks/candlesticks.types.d.ts.map +1 -1
- package/dist/read/candlesticks/candlesticks.types.js +8 -0
- package/dist/read/index.d.ts +2 -0
- package/dist/read/index.d.ts.map +1 -1
- package/dist/read/index.js +4 -1
- package/dist/read/market-trades/market-trades.reader.js +1 -1
- package/dist/read/market-trades/market-trades.types.d.ts +18 -15
- package/dist/read/market-trades/market-trades.types.d.ts.map +1 -1
- package/dist/read/market-trades/market-trades.types.js +4 -1
- package/dist/read/types.d.ts +1 -0
- package/dist/read/types.d.ts.map +1 -1
- package/dist/read/types.js +1 -0
- package/dist/read/user-active-twaps/user-active-twaps.reader.d.ts +1 -1
- package/dist/read/user-active-twaps/user-active-twaps.types.d.ts +15 -3
- package/dist/read/user-active-twaps/user-active-twaps.types.d.ts.map +1 -1
- package/dist/read/user-active-twaps/user-active-twaps.types.js +1 -1
- package/dist/read/user-fund-history/user-fund-history.reader.d.ts +13 -0
- package/dist/read/user-fund-history/user-fund-history.reader.d.ts.map +1 -0
- package/dist/read/user-fund-history/user-fund-history.reader.js +24 -0
- package/dist/read/user-fund-history/user-fund-history.types.d.ts +37 -0
- package/dist/read/user-fund-history/user-fund-history.types.d.ts.map +1 -0
- package/dist/read/user-fund-history/user-fund-history.types.js +13 -0
- package/dist/read/user-funding-history/user-funding-history.reader.d.ts +14 -10
- package/dist/read/user-funding-history/user-funding-history.reader.d.ts.map +1 -1
- package/dist/read/user-funding-history/user-funding-history.reader.js +3 -2
- package/dist/read/user-funding-history/user-funding-history.types.d.ts +15 -11
- package/dist/read/user-funding-history/user-funding-history.types.d.ts.map +1 -1
- package/dist/read/user-funding-history/user-funding-history.types.js +3 -2
- package/dist/read/user-notifications/user-notifications.types.d.ts +7 -2
- package/dist/read/user-notifications/user-notifications.types.d.ts.map +1 -1
- package/dist/read/user-notifications/user-notifications.types.js +1 -0
- package/dist/read/user-open-orders/user-open-orders.reader.d.ts +27 -24
- package/dist/read/user-open-orders/user-open-orders.reader.d.ts.map +1 -1
- package/dist/read/user-open-orders/user-open-orders.reader.js +11 -2
- package/dist/read/user-open-orders/user-open-orders.types.d.ts +32 -25
- package/dist/read/user-open-orders/user-open-orders.types.d.ts.map +1 -1
- package/dist/read/user-open-orders/user-open-orders.types.js +2 -1
- package/dist/read/user-order-history/user-order-history.reader.d.ts +1 -1
- package/dist/read/user-order-history/user-order-history.reader.d.ts.map +1 -1
- package/dist/read/user-order-history/user-order-history.reader.js +11 -4
- package/dist/read/user-order-history/user-order-history.types.d.ts +2 -0
- package/dist/read/user-order-history/user-order-history.types.d.ts.map +1 -1
- package/dist/read/user-trade-history/user-trade-history.reader.d.ts +19 -15
- package/dist/read/user-trade-history/user-trade-history.reader.d.ts.map +1 -1
- package/dist/read/user-trade-history/user-trade-history.reader.js +3 -2
- package/dist/read/user-trade-history/user-trade-history.types.d.ts +39 -17
- package/dist/read/user-trade-history/user-trade-history.types.d.ts.map +1 -1
- package/dist/read/user-trade-history/user-trade-history.types.js +3 -2
- package/dist/read/vaults/vaults.reader.d.ts +31 -3
- package/dist/read/vaults/vaults.reader.d.ts.map +1 -1
- package/dist/read/vaults/vaults.reader.js +32 -0
- package/dist/read/vaults/vaults.types.d.ts +60 -4
- package/dist/read/vaults/vaults.types.d.ts.map +1 -1
- package/dist/read/vaults/vaults.types.js +2 -2
- package/dist/read/ws-subscription.d.ts +2 -1
- package/dist/read/ws-subscription.d.ts.map +1 -1
- package/dist/read/ws-subscription.js +8 -2
- package/dist/release-config.d.ts +2 -6
- package/dist/release-config.d.ts.map +1 -1
- package/dist/release-config.js +9 -10
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils.d.ts +12 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +41 -8
- package/dist/write.d.ts +3 -2
- package/dist/write.d.ts.map +1 -1
- package/dist/write.js +35 -48
- package/package.json +3 -2
- package/readme.md +8 -3
|
@@ -3,11 +3,18 @@ import { BaseRequestArgs } from "../base-reader";
|
|
|
3
3
|
export interface UserTradeHistoryRequestArgs extends BaseRequestArgs {
|
|
4
4
|
subAddr: string;
|
|
5
5
|
limit?: number;
|
|
6
|
+
offset?: number;
|
|
6
7
|
}
|
|
7
8
|
export declare const UserTradeSchema: z.ZodObject<{
|
|
8
9
|
account: z.ZodString;
|
|
9
10
|
market: z.ZodString;
|
|
10
|
-
action: z.
|
|
11
|
+
action: z.ZodEnum<{
|
|
12
|
+
OpenLong: "OpenLong";
|
|
13
|
+
CloseLong: "CloseLong";
|
|
14
|
+
OpenShort: "OpenShort";
|
|
15
|
+
CloseShort: "CloseShort";
|
|
16
|
+
Net: "Net";
|
|
17
|
+
}>;
|
|
11
18
|
size: z.ZodNumber;
|
|
12
19
|
price: z.ZodNumber;
|
|
13
20
|
is_profit: z.ZodBoolean;
|
|
@@ -19,26 +26,41 @@ export declare const UserTradeSchema: z.ZodObject<{
|
|
|
19
26
|
transaction_unix_ms: z.ZodNumber;
|
|
20
27
|
transaction_version: z.ZodNumber;
|
|
21
28
|
}, z.core.$strip>;
|
|
22
|
-
export declare const UserTradesSchema: z.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
29
|
+
export declare const UserTradesSchema: z.ZodObject<{
|
|
30
|
+
items: z.ZodArray<z.ZodObject<{
|
|
31
|
+
account: z.ZodString;
|
|
32
|
+
market: z.ZodString;
|
|
33
|
+
action: z.ZodEnum<{
|
|
34
|
+
OpenLong: "OpenLong";
|
|
35
|
+
CloseLong: "CloseLong";
|
|
36
|
+
OpenShort: "OpenShort";
|
|
37
|
+
CloseShort: "CloseShort";
|
|
38
|
+
Net: "Net";
|
|
39
|
+
}>;
|
|
40
|
+
size: z.ZodNumber;
|
|
41
|
+
price: z.ZodNumber;
|
|
42
|
+
is_profit: z.ZodBoolean;
|
|
43
|
+
realized_pnl_amount: z.ZodNumber;
|
|
44
|
+
is_funding_positive: z.ZodBoolean;
|
|
45
|
+
realized_funding_amount: z.ZodNumber;
|
|
46
|
+
is_rebate: z.ZodBoolean;
|
|
47
|
+
fee_amount: z.ZodNumber;
|
|
48
|
+
transaction_unix_ms: z.ZodNumber;
|
|
49
|
+
transaction_version: z.ZodNumber;
|
|
50
|
+
}, z.core.$strip>>;
|
|
51
|
+
total_count: z.ZodNumber;
|
|
52
|
+
}, z.core.$strip>;
|
|
37
53
|
export declare const UserTradesWsMessageSchema: z.ZodObject<{
|
|
38
54
|
trades: z.ZodArray<z.ZodObject<{
|
|
39
55
|
account: z.ZodString;
|
|
40
56
|
market: z.ZodString;
|
|
41
|
-
action: z.
|
|
57
|
+
action: z.ZodEnum<{
|
|
58
|
+
OpenLong: "OpenLong";
|
|
59
|
+
CloseLong: "CloseLong";
|
|
60
|
+
OpenShort: "OpenShort";
|
|
61
|
+
CloseShort: "CloseShort";
|
|
62
|
+
Net: "Net";
|
|
63
|
+
}>;
|
|
42
64
|
size: z.ZodNumber;
|
|
43
65
|
price: z.ZodNumber;
|
|
44
66
|
is_profit: z.ZodBoolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-trade-history.types.d.ts","sourceRoot":"","sources":["../../../src/read/user-trade-history/user-trade-history.types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"user-trade-history.types.d.ts","sourceRoot":"","sources":["../../../src/read/user-trade-history/user-trade-history.types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;iBAc1B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;iBAA2C,CAAC;AACzE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;iBAEpC,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import z from "zod/v4";
|
|
2
|
+
import { PaginatedResponseSchema } from "../pagination.types";
|
|
2
3
|
export const UserTradeSchema = z.object({
|
|
3
4
|
account: z.string(),
|
|
4
5
|
market: z.string(),
|
|
5
|
-
action: z.
|
|
6
|
+
action: z.enum(["OpenLong", "CloseLong", "OpenShort", "CloseShort", "Net"]),
|
|
6
7
|
size: z.number(),
|
|
7
8
|
price: z.number(),
|
|
8
9
|
is_profit: z.boolean(),
|
|
@@ -14,7 +15,7 @@ export const UserTradeSchema = z.object({
|
|
|
14
15
|
transaction_unix_ms: z.number(),
|
|
15
16
|
transaction_version: z.number(),
|
|
16
17
|
});
|
|
17
|
-
export const UserTradesSchema =
|
|
18
|
+
export const UserTradesSchema = PaginatedResponseSchema(UserTradeSchema);
|
|
18
19
|
export const UserTradesWsMessageSchema = z.object({
|
|
19
20
|
trades: z.array(UserTradeSchema),
|
|
20
21
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseReader } from "../base-reader";
|
|
2
|
-
import { PublicVaultsRequestArgs, UserOwnedVaultsRequestArgs, UserPerformancesOnVaultsRequestArgs } from "./vaults.types";
|
|
2
|
+
import { PublicVaultsRequestArgs, UserOwnedVaultsRequestArgs, UserPerformancesOnVaultsRequestArgs, VaultSharePriceRequestArgs } from "./vaults.types";
|
|
3
3
|
export declare class VaultsReader extends BaseReader {
|
|
4
4
|
/**
|
|
5
5
|
* Get all vaults
|
|
@@ -27,7 +27,6 @@ export declare class VaultsReader extends BaseReader {
|
|
|
27
27
|
depositors: number | null;
|
|
28
28
|
perp_equity: number | null;
|
|
29
29
|
vault_type: "user" | "protocol";
|
|
30
|
-
pnl_history: string[] | null;
|
|
31
30
|
social_links: string[] | null;
|
|
32
31
|
}[];
|
|
33
32
|
total_count: number;
|
|
@@ -60,16 +59,45 @@ export declare class VaultsReader extends BaseReader {
|
|
|
60
59
|
* @returns The user performance
|
|
61
60
|
*/
|
|
62
61
|
getUserPerformancesOnVaults({ fetchOptions, ...args }: UserPerformancesOnVaultsRequestArgs): Promise<{
|
|
63
|
-
|
|
62
|
+
vault: {
|
|
63
|
+
address: string;
|
|
64
|
+
name: string;
|
|
65
|
+
description: string | null;
|
|
66
|
+
manager: string;
|
|
67
|
+
status: string;
|
|
68
|
+
created_at: number;
|
|
69
|
+
tvl: number | null;
|
|
70
|
+
volume: number | null;
|
|
71
|
+
all_time_return: number | null;
|
|
72
|
+
past_month_return: number | null;
|
|
73
|
+
sharpe_ratio: number | null;
|
|
74
|
+
max_drawdown: number | null;
|
|
75
|
+
weekly_win_rate_12w: number | null;
|
|
76
|
+
profit_share: number | null;
|
|
77
|
+
pnl_90d: number | null;
|
|
78
|
+
manager_avg_cash: number | null;
|
|
79
|
+
average_leverage: number | null;
|
|
80
|
+
depositors: number | null;
|
|
81
|
+
perp_equity: number | null;
|
|
82
|
+
vault_type: "user" | "protocol";
|
|
83
|
+
social_links: string[] | null;
|
|
84
|
+
};
|
|
64
85
|
user_address: string;
|
|
65
86
|
net_deposits: number | null;
|
|
66
87
|
current_num_shares: number | null;
|
|
67
88
|
current_value_of_shares: number | null;
|
|
68
89
|
all_time_return: number | null;
|
|
90
|
+
all_time_earned: number | null;
|
|
69
91
|
unrealized_pnl: number | null;
|
|
70
92
|
share_price: number;
|
|
71
93
|
volume: number;
|
|
72
94
|
weekly_win_rate_12w: number | null;
|
|
73
95
|
}[]>;
|
|
96
|
+
/**
|
|
97
|
+
* Get vault share price by calculating NAV / num_shares
|
|
98
|
+
* @param args The arguments containing the vault address
|
|
99
|
+
* @returns The share price of the vault
|
|
100
|
+
*/
|
|
101
|
+
getVaultSharePrice({ ...args }: VaultSharePriceRequestArgs): Promise<number>;
|
|
74
102
|
}
|
|
75
103
|
//# sourceMappingURL=vaults.reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaults.reader.d.ts","sourceRoot":"","sources":["../../../src/read/vaults/vaults.reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAE1B,mCAAmC,
|
|
1
|
+
{"version":3,"file":"vaults.reader.d.ts","sourceRoot":"","sources":["../../../src/read/vaults/vaults.reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAE1B,mCAAmC,EAEnC,0BAA0B,EAE3B,MAAM,gBAAgB,CAAC;AAExB,qBAAa,YAAa,SAAQ,UAAU;IAC1C;;;OAGG;IACG,SAAS,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAE,uBAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBvE;;;;OAIG;IACG,kBAAkB,CAAC,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,EAAE,0BAA0B;;;;;;;;;;;;;;;IAmB9E;;;;OAIG;IACG,2BAA2B,CAAC,EAChC,YAAY,EACZ,GAAG,IAAI,EACR,EAAE,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAetC;;;;OAIG;IACG,kBAAkB,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,0BAA0B;CA8BjE"}
|
|
@@ -63,4 +63,36 @@ export class VaultsReader extends BaseReader {
|
|
|
63
63
|
});
|
|
64
64
|
return response.data;
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Get vault share price by calculating NAV / num_shares
|
|
68
|
+
* @param args The arguments containing the vault address
|
|
69
|
+
* @returns The share price of the vault
|
|
70
|
+
*/
|
|
71
|
+
async getVaultSharePrice({ ...args }) {
|
|
72
|
+
const [nav, numShares] = await Promise.all([
|
|
73
|
+
this.deps.aptos.view({
|
|
74
|
+
payload: {
|
|
75
|
+
function: `${this.deps.config.deployment.package}::vault::get_vault_net_asset_value`,
|
|
76
|
+
typeArguments: [],
|
|
77
|
+
functionArguments: [args.vaultAddress],
|
|
78
|
+
},
|
|
79
|
+
}),
|
|
80
|
+
this.deps.aptos.view({
|
|
81
|
+
payload: {
|
|
82
|
+
function: `${this.deps.config.deployment.package}::vault::get_vault_num_shares`,
|
|
83
|
+
typeArguments: [],
|
|
84
|
+
functionArguments: [args.vaultAddress],
|
|
85
|
+
},
|
|
86
|
+
}),
|
|
87
|
+
]);
|
|
88
|
+
const navValue = BigInt(nav[0]);
|
|
89
|
+
const sharesValue = BigInt(numShares[0]);
|
|
90
|
+
if (Number(sharesValue) === 0) {
|
|
91
|
+
return 1;
|
|
92
|
+
}
|
|
93
|
+
// Calculate share price: NAV / num_shares
|
|
94
|
+
// Using BigInt for precision, then converting to number
|
|
95
|
+
// Note: This may lose precision for very large numbers
|
|
96
|
+
return Number(navValue) / Number(sharesValue);
|
|
97
|
+
}
|
|
66
98
|
}
|
|
@@ -23,6 +23,12 @@ export interface PublicVaultsRequestArgs extends BaseRequestArgs {
|
|
|
23
23
|
export interface UserPerformancesOnVaultsRequestArgs extends BaseRequestArgs {
|
|
24
24
|
ownerAddr: string;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Arguments for fetching vault share price
|
|
28
|
+
*/
|
|
29
|
+
export interface VaultSharePriceRequestArgs extends BaseRequestArgs {
|
|
30
|
+
vaultAddress: string;
|
|
31
|
+
}
|
|
26
32
|
/**
|
|
27
33
|
* Schema for a vault in the protocol
|
|
28
34
|
* Represents both protocol-wide vaults and user-managed vaults
|
|
@@ -51,7 +57,6 @@ export declare const VaultSchema: z.ZodObject<{
|
|
|
51
57
|
user: "user";
|
|
52
58
|
protocol: "protocol";
|
|
53
59
|
}>;
|
|
54
|
-
pnl_history: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
55
60
|
social_links: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
56
61
|
}, z.core.$strip>;
|
|
57
62
|
export declare const VaultsResponseSchema: z.ZodObject<{
|
|
@@ -79,7 +84,6 @@ export declare const VaultsResponseSchema: z.ZodObject<{
|
|
|
79
84
|
user: "user";
|
|
80
85
|
protocol: "protocol";
|
|
81
86
|
}>;
|
|
82
|
-
pnl_history: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
83
87
|
social_links: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
84
88
|
}, z.core.$strip>>;
|
|
85
89
|
total_count: z.ZodNumber;
|
|
@@ -128,24 +132,76 @@ export type UserOwnedVaults = UserOwnedVault[];
|
|
|
128
132
|
* Tracks a user's deposits, shares, returns, and PnL for a specific vault
|
|
129
133
|
*/
|
|
130
134
|
export declare const UserPerformanceOnVaultSchema: z.ZodObject<{
|
|
131
|
-
|
|
135
|
+
vault: z.ZodObject<{
|
|
136
|
+
address: z.ZodString;
|
|
137
|
+
name: z.ZodString;
|
|
138
|
+
description: z.ZodNullable<z.ZodString>;
|
|
139
|
+
manager: z.ZodString;
|
|
140
|
+
status: z.ZodString;
|
|
141
|
+
created_at: z.ZodNumber;
|
|
142
|
+
tvl: z.ZodNullable<z.ZodNumber>;
|
|
143
|
+
volume: z.ZodNullable<z.ZodNumber>;
|
|
144
|
+
all_time_return: z.ZodNullable<z.ZodNumber>;
|
|
145
|
+
past_month_return: z.ZodNullable<z.ZodNumber>;
|
|
146
|
+
sharpe_ratio: z.ZodNullable<z.ZodNumber>;
|
|
147
|
+
max_drawdown: z.ZodNullable<z.ZodNumber>;
|
|
148
|
+
weekly_win_rate_12w: z.ZodNullable<z.ZodNumber>;
|
|
149
|
+
profit_share: z.ZodNullable<z.ZodNumber>;
|
|
150
|
+
pnl_90d: z.ZodNullable<z.ZodNumber>;
|
|
151
|
+
manager_avg_cash: z.ZodNullable<z.ZodNumber>;
|
|
152
|
+
average_leverage: z.ZodNullable<z.ZodNumber>;
|
|
153
|
+
depositors: z.ZodNullable<z.ZodNumber>;
|
|
154
|
+
perp_equity: z.ZodNullable<z.ZodNumber>;
|
|
155
|
+
vault_type: z.ZodEnum<{
|
|
156
|
+
user: "user";
|
|
157
|
+
protocol: "protocol";
|
|
158
|
+
}>;
|
|
159
|
+
social_links: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
160
|
+
}, z.core.$strip>;
|
|
132
161
|
user_address: z.ZodString;
|
|
133
162
|
net_deposits: z.ZodNullable<z.ZodNumber>;
|
|
134
163
|
current_num_shares: z.ZodNullable<z.ZodNumber>;
|
|
135
164
|
current_value_of_shares: z.ZodNullable<z.ZodNumber>;
|
|
136
165
|
all_time_return: z.ZodNullable<z.ZodNumber>;
|
|
166
|
+
all_time_earned: z.ZodNullable<z.ZodNumber>;
|
|
137
167
|
unrealized_pnl: z.ZodNullable<z.ZodNumber>;
|
|
138
168
|
share_price: z.ZodNumber;
|
|
139
169
|
volume: z.ZodNumber;
|
|
140
170
|
weekly_win_rate_12w: z.ZodNullable<z.ZodNumber>;
|
|
141
171
|
}, z.core.$strip>;
|
|
142
172
|
export declare const UserPerformancesOnVaultsResponseSchema: z.ZodArray<z.ZodObject<{
|
|
143
|
-
|
|
173
|
+
vault: z.ZodObject<{
|
|
174
|
+
address: z.ZodString;
|
|
175
|
+
name: z.ZodString;
|
|
176
|
+
description: z.ZodNullable<z.ZodString>;
|
|
177
|
+
manager: z.ZodString;
|
|
178
|
+
status: z.ZodString;
|
|
179
|
+
created_at: z.ZodNumber;
|
|
180
|
+
tvl: z.ZodNullable<z.ZodNumber>;
|
|
181
|
+
volume: z.ZodNullable<z.ZodNumber>;
|
|
182
|
+
all_time_return: z.ZodNullable<z.ZodNumber>;
|
|
183
|
+
past_month_return: z.ZodNullable<z.ZodNumber>;
|
|
184
|
+
sharpe_ratio: z.ZodNullable<z.ZodNumber>;
|
|
185
|
+
max_drawdown: z.ZodNullable<z.ZodNumber>;
|
|
186
|
+
weekly_win_rate_12w: z.ZodNullable<z.ZodNumber>;
|
|
187
|
+
profit_share: z.ZodNullable<z.ZodNumber>;
|
|
188
|
+
pnl_90d: z.ZodNullable<z.ZodNumber>;
|
|
189
|
+
manager_avg_cash: z.ZodNullable<z.ZodNumber>;
|
|
190
|
+
average_leverage: z.ZodNullable<z.ZodNumber>;
|
|
191
|
+
depositors: z.ZodNullable<z.ZodNumber>;
|
|
192
|
+
perp_equity: z.ZodNullable<z.ZodNumber>;
|
|
193
|
+
vault_type: z.ZodEnum<{
|
|
194
|
+
user: "user";
|
|
195
|
+
protocol: "protocol";
|
|
196
|
+
}>;
|
|
197
|
+
social_links: z.ZodNullable<z.ZodArray<z.ZodString>>;
|
|
198
|
+
}, z.core.$strip>;
|
|
144
199
|
user_address: z.ZodString;
|
|
145
200
|
net_deposits: z.ZodNullable<z.ZodNumber>;
|
|
146
201
|
current_num_shares: z.ZodNullable<z.ZodNumber>;
|
|
147
202
|
current_value_of_shares: z.ZodNullable<z.ZodNumber>;
|
|
148
203
|
all_time_return: z.ZodNullable<z.ZodNumber>;
|
|
204
|
+
all_time_earned: z.ZodNullable<z.ZodNumber>;
|
|
149
205
|
unrealized_pnl: z.ZodNullable<z.ZodNumber>;
|
|
150
206
|
share_price: z.ZodNumber;
|
|
151
207
|
volume: z.ZodNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaults.types.d.ts","sourceRoot":"","sources":["../../../src/read/vaults/vaults.types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,eAAe,+BAAgC,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mCAAoC,SAAQ,eAAe;IAC1E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"vaults.types.d.ts","sourceRoot":"","sources":["../../../src/read/vaults/vaults.types.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGjD;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,eAAe,+BAAgC,CAAC;AAC7D,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mCAAoC,SAAQ,eAAe;IAC1E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;iBAsBtB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAW/B,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;iBAAgD,CAAC;AAC3F,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AACpF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYvC,CAAC;AACH,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAwC,CAAC;AAC5F,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,EAAE,CAAC"}
|
|
@@ -26,7 +26,6 @@ export const VaultSchema = z.object({
|
|
|
26
26
|
depositors: z.number().nullable(),
|
|
27
27
|
perp_equity: z.number().nullable(),
|
|
28
28
|
vault_type: z.enum(vaultTypeValues),
|
|
29
|
-
pnl_history: z.array(z.string()).nullable(),
|
|
30
29
|
social_links: z.array(z.string()).nullable(),
|
|
31
30
|
});
|
|
32
31
|
export const VaultsResponseSchema = PaginatedResponseSchema(VaultSchema).extend({
|
|
@@ -55,12 +54,13 @@ export const UserOwnedVaultsResponseSchema = PaginatedResponseSchema(UserOwnedVa
|
|
|
55
54
|
* Tracks a user's deposits, shares, returns, and PnL for a specific vault
|
|
56
55
|
*/
|
|
57
56
|
export const UserPerformanceOnVaultSchema = z.object({
|
|
58
|
-
|
|
57
|
+
vault: VaultSchema,
|
|
59
58
|
user_address: z.string(),
|
|
60
59
|
net_deposits: z.number().nullable(),
|
|
61
60
|
current_num_shares: z.number().nullable(),
|
|
62
61
|
current_value_of_shares: z.number().nullable(),
|
|
63
62
|
all_time_return: z.number().nullable(),
|
|
63
|
+
all_time_earned: z.number().nullable(),
|
|
64
64
|
unrealized_pnl: z.number().nullable(),
|
|
65
65
|
share_price: z.number(),
|
|
66
66
|
volume: z.number(),
|
|
@@ -4,8 +4,9 @@ import { DecibelConfig } from "../constants";
|
|
|
4
4
|
export declare class DecibelWsSubscription {
|
|
5
5
|
#private;
|
|
6
6
|
readonly config: DecibelConfig;
|
|
7
|
+
readonly apiKey?: string | undefined;
|
|
7
8
|
readonly onError?: ((error: ErrorEvent) => void) | undefined;
|
|
8
|
-
constructor(config: DecibelConfig, onError?: ((error: ErrorEvent) => void) | undefined);
|
|
9
|
+
constructor(config: DecibelConfig, apiKey?: string | undefined, onError?: ((error: ErrorEvent) => void) | undefined);
|
|
9
10
|
subscribe<TMessageData>(topic: string, schema: z.ZodType<TMessageData>, onData: (data: TMessageData) => void | Promise<void>): () => void;
|
|
10
11
|
private unsubscribe;
|
|
11
12
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-subscription.d.ts","sourceRoot":"","sources":["../../src/read/ws-subscription.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ws-subscription.d.ts","sourceRoot":"","sources":["../../src/read/ws-subscription.ts"],"names":[],"mappings":"AACA,OAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,qBAAa,qBAAqB;;IAE9B,QAAQ,CAAC,MAAM,EAAE,aAAa;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IACxB,QAAQ,CAAC,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI;gBAFrC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,aAAA;IAqGhD,SAAS,CAAC,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,OAAO,CAAC,WAAW;IAqBnB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAoB7B,KAAK,CAAC,KAAK,EAAE,MAAM;IAYnB,KAAK;IAKL,UAAU;CAGX"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { Network } from "@aptos-labs/ts-sdk";
|
|
1
2
|
import WebSocket from "isomorphic-ws";
|
|
2
3
|
import { bigIntReviver, prettifyMaybeZodError } from "../utils";
|
|
3
4
|
export class DecibelWsSubscription {
|
|
4
5
|
config;
|
|
6
|
+
apiKey;
|
|
5
7
|
onError;
|
|
6
|
-
constructor(config, onError) {
|
|
8
|
+
constructor(config, apiKey, onError) {
|
|
7
9
|
this.config = config;
|
|
10
|
+
this.apiKey = apiKey;
|
|
8
11
|
this.onError = onError;
|
|
9
12
|
}
|
|
10
13
|
#ws = null;
|
|
@@ -39,7 +42,10 @@ export class DecibelWsSubscription {
|
|
|
39
42
|
if (this.#ws) {
|
|
40
43
|
return;
|
|
41
44
|
}
|
|
42
|
-
const
|
|
45
|
+
const isNetna = this.config.network === Network.CUSTOM || this.config.network === Network.NETNA;
|
|
46
|
+
const ws = new WebSocket(this.config.tradingWsUrl,
|
|
47
|
+
// TODO: Remove isNetna once the testnet WS server is updated
|
|
48
|
+
this.apiKey && isNetna ? ["decibel", this.apiKey] : undefined);
|
|
43
49
|
ws.addEventListener("open", () => {
|
|
44
50
|
this.#reconnectAttempts = 0;
|
|
45
51
|
for (const topic of this.#subscriptions.keys()) {
|
package/dist/release-config.d.ts
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
export declare enum CompatVersion {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
V0_2 = "v0.2",// decibel-testnet-release-v0.2
|
|
5
|
-
V0_3 = "v0.3"
|
|
2
|
+
V0_3 = "v0.3",// decibel-testnet-release-v0.3
|
|
3
|
+
V0_4 = "v0.4"
|
|
6
4
|
}
|
|
7
|
-
export type SubaccountVariant = "v0" | "v1" | "v2";
|
|
8
5
|
export interface ReleaseConfig {
|
|
9
6
|
compatVersion: CompatVersion;
|
|
10
|
-
subaccountVariant: SubaccountVariant;
|
|
11
7
|
}
|
|
12
8
|
export declare const PACKAGE: {
|
|
13
9
|
NETNA: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-config.d.ts","sourceRoot":"","sources":["../src/release-config.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;
|
|
1
|
+
{"version":3,"file":"release-config.d.ts","sourceRoot":"","sources":["../src/release-config.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IAMvB,IAAI,SAAS,CAAE,+BAA+B;IAC9C,IAAI,SAAS;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,eAAO,MAAM,OAAO;;;CAGnB,CAAC;AAEF,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAkBzD,eAAO,MAAM,eAAe;;;;;CAK3B,CAAC"}
|
package/dist/release-config.js
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
export var CompatVersion;
|
|
2
2
|
(function (CompatVersion) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
// we can comment out old versions, after new ones have been released.
|
|
4
|
+
// V0_0 = "v0.0", // decibel-testnet-release-v0.0
|
|
5
|
+
// V0_1 = "v0.1", // decibel-testnet-release-v0.1
|
|
6
|
+
// V0_2_PARTIAL = "v0.2.partial", // decibel-testnet-release-v0.2
|
|
7
|
+
// V0_2 = "v0.2", // decibel-release-v0.12
|
|
6
8
|
CompatVersion["V0_3"] = "v0.3";
|
|
9
|
+
CompatVersion["V0_4"] = "v0.4";
|
|
7
10
|
})(CompatVersion || (CompatVersion = {}));
|
|
8
11
|
export const PACKAGE = {
|
|
9
12
|
NETNA: "0xb8a5788314451ce4d2fbbad32e1bad88d4184b73943b7fe5166eab93cf1a5a95",
|
|
10
|
-
TESTNET: "
|
|
13
|
+
TESTNET: "0xd0b2dd565e0f2020d66d581a938e7766b2163db4b8c63410c17578d32b4e9e88",
|
|
11
14
|
};
|
|
12
15
|
export const DEFAULT_COMPAT_VERSION = CompatVersion.V0_3;
|
|
13
16
|
const NETNA_RELEASE_CONFIG = {
|
|
14
|
-
compatVersion:
|
|
15
|
-
subaccountVariant: "v2",
|
|
17
|
+
compatVersion: CompatVersion.V0_3,
|
|
16
18
|
};
|
|
17
19
|
const TESTNET_RELEASE_CONFIG = {
|
|
18
|
-
compatVersion: CompatVersion.
|
|
19
|
-
subaccountVariant: "v2",
|
|
20
|
+
compatVersion: CompatVersion.V0_3,
|
|
20
21
|
};
|
|
21
22
|
const LOCAL_RELEASE_CONFIG = {
|
|
22
23
|
compatVersion: DEFAULT_COMPAT_VERSION,
|
|
23
|
-
subaccountVariant: "v1",
|
|
24
24
|
};
|
|
25
25
|
const DOCKER_RELEASE_CONFIG = {
|
|
26
26
|
compatVersion: DEFAULT_COMPAT_VERSION,
|
|
27
|
-
subaccountVariant: "v1",
|
|
28
27
|
};
|
|
29
28
|
export const RELEASE_CONFIGS = {
|
|
30
29
|
NETNA: NETNA_RELEASE_CONFIG,
|