@pear-protocol/types 2.20.0 → 2.22.0

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.
Files changed (172) hide show
  1. package/dist/bundle.d.ts +1 -0
  2. package/dist/fee/entities.d.ts +1 -0
  3. package/dist/fee/responses.d.ts +26 -0
  4. package/dist/index.js +7355 -3
  5. package/dist/rewards/entities.d.ts +28 -0
  6. package/dist/rewards/payloads.d.ts +7 -0
  7. package/dist/rewards/responses.d.ts +73 -0
  8. package/dist/statistics/queries.d.ts +25 -0
  9. package/dist/statistics/responses.d.ts +120 -0
  10. package/dist/sync/responses.d.ts +1 -0
  11. package/dist/users/entities.d.ts +4 -0
  12. package/dist/users/response.d.ts +3 -0
  13. package/package.json +4 -3
  14. package/dist/auth/api-keys.js +0 -44
  15. package/dist/auth/entities.js +0 -25
  16. package/dist/auth/index.js +0 -4
  17. package/dist/auth/payloads.js +0 -84
  18. package/dist/auth/response.js +0 -82
  19. package/dist/baskets/recommended/entities.js +0 -22
  20. package/dist/baskets/recommended/index.js +0 -2
  21. package/dist/baskets/recommended/responses.js +0 -8
  22. package/dist/baskets/saved/entities.js +0 -23
  23. package/dist/baskets/saved/payloads.js +0 -18
  24. package/dist/baskets/saved/responses.js +0 -14
  25. package/dist/bundle.js +0 -36
  26. package/dist/common/address.js +0 -5
  27. package/dist/common/array.js +0 -17
  28. package/dist/common/client-id.js +0 -5
  29. package/dist/common/hex-string.js +0 -5
  30. package/dist/common/index.js +0 -4
  31. package/dist/common/refinement.js +0 -64
  32. package/dist/common/request.js +0 -24
  33. package/dist/common/response.js +0 -28
  34. package/dist/common/schema.js +0 -18
  35. package/dist/common/trade-legs.js +0 -50
  36. package/dist/connector/index.js +0 -12
  37. package/dist/copy/entities.js +0 -151
  38. package/dist/copy/index.js +0 -5
  39. package/dist/copy/payloads.js +0 -8
  40. package/dist/copy/performance.js +0 -63
  41. package/dist/copy/queries.js +0 -20
  42. package/dist/copy/responses.js +0 -89
  43. package/dist/execution/entities.js +0 -196
  44. package/dist/execution/index.js +0 -3
  45. package/dist/execution/queries.js +0 -18
  46. package/dist/execution/responses.js +0 -12
  47. package/dist/fee/entities.js +0 -34
  48. package/dist/fee/index.js +0 -3
  49. package/dist/fee/queries.js +0 -12
  50. package/dist/fee/responses.js +0 -29
  51. package/dist/fill/entities.js +0 -82
  52. package/dist/fill/index.js +0 -3
  53. package/dist/fill/queries.js +0 -14
  54. package/dist/fill/responses.js +0 -23
  55. package/dist/funding/entities.js +0 -16
  56. package/dist/funding/index.js +0 -3
  57. package/dist/funding/queries.js +0 -8
  58. package/dist/funding/responses.js +0 -11
  59. package/dist/instrument/entities.js +0 -102
  60. package/dist/instrument/index.js +0 -3
  61. package/dist/instrument/queries.js +0 -15
  62. package/dist/instrument/responses.js +0 -20
  63. package/dist/instrument-precision/index.js +0 -56
  64. package/dist/ladder/entities.js +0 -24
  65. package/dist/ladder/index.js +0 -4
  66. package/dist/ladder/payloads.js +0 -96
  67. package/dist/ladder/queries.js +0 -12
  68. package/dist/ladder/responses.js +0 -18
  69. package/dist/leverage/index.js +0 -2
  70. package/dist/leverage/payloads.js +0 -14
  71. package/dist/leverage/response.js +0 -5
  72. package/dist/margin/index.js +0 -2
  73. package/dist/margin/payloads.js +0 -20
  74. package/dist/margin/response.js +0 -11
  75. package/dist/market/entities.js +0 -52
  76. package/dist/market/index.js +0 -4
  77. package/dist/market/payloads.js +0 -11
  78. package/dist/market/queries.js +0 -19
  79. package/dist/market/responses.js +0 -18
  80. package/dist/misc/index.js +0 -2
  81. package/dist/misc/payloads.js +0 -99
  82. package/dist/misc/responses.js +0 -85
  83. package/dist/notification/entities.js +0 -274
  84. package/dist/notification/index.js +0 -4
  85. package/dist/notification/payloads.js +0 -15
  86. package/dist/notification/queries.js +0 -29
  87. package/dist/notification/responses.js +0 -20
  88. package/dist/order/entities.js +0 -81
  89. package/dist/order/index.js +0 -1
  90. package/dist/portfolio/entities.js +0 -77
  91. package/dist/portfolio/index.js +0 -3
  92. package/dist/portfolio/queries.js +0 -34
  93. package/dist/portfolio/responses.js +0 -33
  94. package/dist/position/entities.js +0 -433
  95. package/dist/position/index.js +0 -3
  96. package/dist/position/queries.js +0 -109
  97. package/dist/position/responses.js +0 -41
  98. package/dist/price/entities.js +0 -10
  99. package/dist/price/index.js +0 -3
  100. package/dist/price/queries.js +0 -8
  101. package/dist/price/responses.js +0 -15
  102. package/dist/realtime/channels.js +0 -16
  103. package/dist/realtime/frames.js +0 -140
  104. package/dist/realtime/index.js +0 -6
  105. package/dist/realtime/messages.js +0 -118
  106. package/dist/realtime/public-events.js +0 -92
  107. package/dist/realtime/user-events.js +0 -32
  108. package/dist/realtime/vault-events.js +0 -42
  109. package/dist/rebalance/entities.js +0 -86
  110. package/dist/rebalance/index.js +0 -4
  111. package/dist/rebalance/payloads.js +0 -56
  112. package/dist/rebalance/queries.js +0 -14
  113. package/dist/rebalance/responses.js +0 -41
  114. package/dist/schedule/entities.js +0 -239
  115. package/dist/schedule/index.js +0 -5
  116. package/dist/schedule/payloads.js +0 -85
  117. package/dist/schedule/queries.js +0 -30
  118. package/dist/schedule/randomization.js +0 -15
  119. package/dist/schedule/responses.js +0 -22
  120. package/dist/schedule/twap-config.js +0 -29
  121. package/dist/statistics/entities.js +0 -105
  122. package/dist/statistics/index.js +0 -3
  123. package/dist/statistics/queries.js +0 -93
  124. package/dist/statistics/responses.js +0 -17
  125. package/dist/sync/index.js +0 -2
  126. package/dist/sync/payloads.js +0 -136
  127. package/dist/sync/responses.js +0 -26
  128. package/dist/tca/entities.js +0 -9
  129. package/dist/tca/index.js +0 -3
  130. package/dist/tca/queries.js +0 -14
  131. package/dist/tca/responses.js +0 -126
  132. package/dist/trade/entities.js +0 -101
  133. package/dist/trade/index.js +0 -4
  134. package/dist/trade/payloads.js +0 -84
  135. package/dist/trade/queries.js +0 -9
  136. package/dist/trade/responses.js +0 -25
  137. package/dist/trade-accounts/entities.js +0 -61
  138. package/dist/trade-accounts/index.js +0 -4
  139. package/dist/trade-accounts/payloads.js +0 -132
  140. package/dist/trade-accounts/queries.js +0 -7
  141. package/dist/trade-accounts/response.js +0 -79
  142. package/dist/traders/index.js +0 -2
  143. package/dist/traders/performance.js +0 -21
  144. package/dist/traders/public.js +0 -192
  145. package/dist/trigger/common/index.js +0 -39
  146. package/dist/trigger/entities/conditions.js +0 -174
  147. package/dist/trigger/entities/index.js +0 -257
  148. package/dist/trigger/index.js +0 -9
  149. package/dist/trigger/oracle.js +0 -22
  150. package/dist/trigger/payloads/conditions.js +0 -213
  151. package/dist/trigger/payloads/config.js +0 -3
  152. package/dist/trigger/payloads/index.js +0 -173
  153. package/dist/trigger/queries.js +0 -16
  154. package/dist/trigger/refinement/index.js +0 -2
  155. package/dist/trigger/refinement/static.refinement.js +0 -50
  156. package/dist/trigger/refinement/trailing.refinement.js +0 -83
  157. package/dist/trigger/responses.js +0 -18
  158. package/dist/triggers/entities.js +0 -27
  159. package/dist/triggers/index.js +0 -3
  160. package/dist/triggers/queries.js +0 -10
  161. package/dist/triggers/responses.js +0 -9
  162. package/dist/users/entities.js +0 -45
  163. package/dist/users/index.js +0 -4
  164. package/dist/users/payloads.js +0 -33
  165. package/dist/users/queries.js +0 -8
  166. package/dist/users/response.js +0 -27
  167. package/dist/vaults/entities.js +0 -96
  168. package/dist/vaults/index.js +0 -4
  169. package/dist/vaults/payloads.js +0 -65
  170. package/dist/vaults/queries.js +0 -66
  171. package/dist/vaults/responses.js +0 -368
  172. /package/dist/{baskets/saved/index.js → rewards/index.d.ts} +0 -0
@@ -1,140 +0,0 @@
1
- import { z } from 'zod';
2
- import { EthereumAddress } from '../common/address';
3
- import { WebsocketChannel } from './channels';
4
- import { PriceUpdatedData, FundingUpdatedData, TradeExecutedData, TriggerTriggeredPublicData } from './public-events';
5
- import { UserEventData, UserEventTopic } from './user-events';
6
- import { PublicVaultInvalidatedData, ManagementVaultInvalidatedData } from './vault-events';
7
-
8
- const FrameRequestId = z.string().optional();
9
- const WebsocketWelcomeFrame = z.object({
10
- type: z.literal("welcome"),
11
- connectionId: z.string(),
12
- heartbeatIntervalMs: z.number(),
13
- resubscribeRequired: z.literal(true)
14
- });
15
- const AuthAckFrame = z.object({
16
- id: FrameRequestId,
17
- type: z.literal("ack"),
18
- method: z.literal("auth"),
19
- ok: z.literal(true)
20
- });
21
- const SubscriptionAckFrame = z.object({
22
- id: FrameRequestId,
23
- type: z.literal("ack"),
24
- method: z.enum([
25
- "subscribe",
26
- "unsubscribe"
27
- ]),
28
- channel: WebsocketChannel,
29
- ok: z.literal(true)
30
- });
31
- const WebsocketAckFrame = z.discriminatedUnion("method", [
32
- AuthAckFrame,
33
- SubscriptionAckFrame
34
- ]);
35
- const WebsocketVaultErrorCode = z.enum([
36
- "FORBIDDEN",
37
- "SUBSCRIPTION_REVOKED"
38
- ]);
39
- const WebsocketRequestErrorCode = z.enum([
40
- "AUTH_EXPIRED",
41
- "CAPACITY_UNAVAILABLE",
42
- "INTERNAL_ERROR",
43
- "INVALID_FRAME",
44
- "INVALID_JSON",
45
- "INVALID_MESSAGE",
46
- "INVALID_SUBSCRIPTION",
47
- "RATE_LIMITED",
48
- "TOO_MANY_SUBSCRIPTIONS",
49
- "UNAUTHENTICATED"
50
- ]);
51
- const WebsocketErrorCode = z.enum([
52
- ...WebsocketRequestErrorCode.options,
53
- ...WebsocketVaultErrorCode.options
54
- ]);
55
- const RequestErrorFrame = z.object({
56
- id: FrameRequestId,
57
- type: z.literal("error"),
58
- code: WebsocketRequestErrorCode,
59
- message: z.string()
60
- });
61
- const VaultErrorFrame = z.object({
62
- id: FrameRequestId,
63
- type: z.literal("error"),
64
- code: WebsocketVaultErrorCode,
65
- message: z.string(),
66
- // Vaults a FORBIDDEN refusal or SUBSCRIPTION_REVOKED notice applies to.
67
- vaults: z.array(EthereumAddress)
68
- });
69
- const WebsocketErrorFrame = z.discriminatedUnion("code", [
70
- RequestErrorFrame,
71
- VaultErrorFrame
72
- ]);
73
- const PriceUpdatedFrame = z.object({
74
- type: z.literal("event"),
75
- channel: z.literal("prices"),
76
- topic: z.literal("price.updated"),
77
- data: PriceUpdatedData
78
- });
79
- const FundingUpdatedFrame = z.object({
80
- type: z.literal("event"),
81
- channel: z.literal("funding"),
82
- topic: z.literal("funding.updated"),
83
- data: FundingUpdatedData
84
- });
85
- const TradeExecutedFrame = z.object({
86
- type: z.literal("event"),
87
- channel: z.literal("trades"),
88
- topic: z.literal("trade.executed"),
89
- data: TradeExecutedData
90
- });
91
- const TriggerTriggeredPublicFrame = z.object({
92
- type: z.literal("event"),
93
- channel: z.literal("trigger_events"),
94
- topic: z.literal("trigger.triggered.public"),
95
- data: TriggerTriggeredPublicData
96
- });
97
- const UserEventFrame = z.object({
98
- type: z.literal("event"),
99
- channel: z.literal("user_events"),
100
- topic: UserEventTopic,
101
- data: UserEventData
102
- });
103
- const VaultEventsInvalidatedFrame = z.object({
104
- type: z.literal("event"),
105
- channel: z.literal("vault_events"),
106
- topic: z.literal("vault.invalidated"),
107
- data: PublicVaultInvalidatedData
108
- });
109
- const VaultManagementInvalidatedFrame = z.object({
110
- type: z.literal("event"),
111
- channel: z.literal("vault_management"),
112
- topic: z.literal("vault.invalidated"),
113
- data: ManagementVaultInvalidatedData
114
- });
115
- const VaultInvalidatedFrame = z.discriminatedUnion("channel", [
116
- VaultEventsInvalidatedFrame,
117
- VaultManagementInvalidatedFrame
118
- ]);
119
- const WebsocketEventFrame = z.discriminatedUnion("topic", [
120
- PriceUpdatedFrame,
121
- FundingUpdatedFrame,
122
- TradeExecutedFrame,
123
- TriggerTriggeredPublicFrame,
124
- UserEventFrame,
125
- VaultInvalidatedFrame
126
- ]);
127
- const WebsocketPongFrame = z.object({
128
- id: FrameRequestId,
129
- type: z.literal("pong"),
130
- timestamp: z.iso.datetime()
131
- });
132
- const WebsocketFrame = z.discriminatedUnion("type", [
133
- WebsocketWelcomeFrame,
134
- WebsocketAckFrame,
135
- WebsocketErrorFrame,
136
- WebsocketEventFrame,
137
- WebsocketPongFrame
138
- ]);
139
-
140
- export { WebsocketAckFrame, WebsocketErrorCode, WebsocketErrorFrame, WebsocketEventFrame, WebsocketFrame, WebsocketPongFrame, WebsocketRequestErrorCode, WebsocketVaultErrorCode, WebsocketWelcomeFrame };
@@ -1,6 +0,0 @@
1
- export * from './channels';
2
- export * from './frames';
3
- export * from './messages';
4
- export * from './public-events';
5
- export * from './user-events';
6
- export * from './vault-events';
@@ -1,118 +0,0 @@
1
- import { z } from 'zod';
2
- import { EthereumAddress } from '../common/address';
3
- import { Connector } from '../connector';
4
- import { WebsocketPublicChannel } from './channels';
5
- import { UserEventTopic } from './user-events';
6
-
7
- const MAX_VAULTS_PER_CONNECTION = 20;
8
- const WebsocketRequestId = z.union([
9
- z.string(),
10
- z.number()
11
- ]).transform(String).optional();
12
- const WebsocketPublicParams = z.object({
13
- connectors: z.array(Connector).optional(),
14
- instrumentIds: z.array(z.string()).optional()
15
- }).strict();
16
- const WebsocketUserEventsParams = z.object({
17
- topics: z.array(UserEventTopic).optional()
18
- }).strict();
19
- const WebsocketTriggerEventsParams = z.object({
20
- connectors: z.array(Connector).optional(),
21
- accountIds: z.array(z.string()).optional()
22
- }).strict();
23
- const WebsocketVaultEventsParams = z.object({
24
- vaults: z.array(EthereumAddress).min(1)
25
- }).strict();
26
- const PingMessage = z.object({
27
- id: WebsocketRequestId,
28
- method: z.literal("ping")
29
- });
30
- const AuthMessage = z.object({
31
- id: WebsocketRequestId,
32
- method: z.literal("auth"),
33
- params: z.object({
34
- accessToken: z.string().min(1)
35
- }).strict()
36
- });
37
- const SubscribePublicMessage = z.object({
38
- id: WebsocketRequestId,
39
- method: z.literal("subscribe"),
40
- channel: WebsocketPublicChannel,
41
- params: WebsocketPublicParams.optional()
42
- });
43
- const SubscribeUserEventsMessage = z.object({
44
- id: WebsocketRequestId,
45
- method: z.literal("subscribe"),
46
- channel: z.literal("user_events"),
47
- params: WebsocketUserEventsParams.optional()
48
- });
49
- const SubscribeTriggerEventsMessage = z.object({
50
- id: WebsocketRequestId,
51
- method: z.literal("subscribe"),
52
- channel: z.literal("trigger_events"),
53
- params: WebsocketTriggerEventsParams.optional()
54
- });
55
- const SubscribeVaultEventsMessage = z.object({
56
- id: WebsocketRequestId,
57
- method: z.literal("subscribe"),
58
- channel: z.literal("vault_events"),
59
- params: WebsocketVaultEventsParams
60
- });
61
- const SubscribeVaultManagementMessage = z.object({
62
- id: WebsocketRequestId,
63
- method: z.literal("subscribe"),
64
- channel: z.literal("vault_management"),
65
- params: WebsocketVaultEventsParams
66
- });
67
- const UnsubscribePublicMessage = z.object({
68
- id: WebsocketRequestId,
69
- method: z.literal("unsubscribe"),
70
- channel: WebsocketPublicChannel,
71
- params: WebsocketPublicParams.optional()
72
- });
73
- const UnsubscribeUserEventsMessage = z.object({
74
- id: WebsocketRequestId,
75
- method: z.literal("unsubscribe"),
76
- channel: z.literal("user_events"),
77
- params: WebsocketUserEventsParams.optional()
78
- });
79
- const UnsubscribeTriggerEventsMessage = z.object({
80
- id: WebsocketRequestId,
81
- method: z.literal("unsubscribe"),
82
- channel: z.literal("trigger_events"),
83
- params: WebsocketTriggerEventsParams.optional()
84
- });
85
- const UnsubscribeVaultEventsMessage = z.object({
86
- id: WebsocketRequestId,
87
- method: z.literal("unsubscribe"),
88
- channel: z.literal("vault_events"),
89
- params: WebsocketVaultEventsParams.optional()
90
- });
91
- const UnsubscribeVaultManagementMessage = z.object({
92
- id: WebsocketRequestId,
93
- method: z.literal("unsubscribe"),
94
- channel: z.literal("vault_management"),
95
- params: WebsocketVaultEventsParams.optional()
96
- });
97
- const SubscribeMessage = z.discriminatedUnion("channel", [
98
- SubscribePublicMessage,
99
- SubscribeUserEventsMessage,
100
- SubscribeTriggerEventsMessage,
101
- SubscribeVaultEventsMessage,
102
- SubscribeVaultManagementMessage
103
- ]);
104
- const UnsubscribeMessage = z.discriminatedUnion("channel", [
105
- UnsubscribePublicMessage,
106
- UnsubscribeUserEventsMessage,
107
- UnsubscribeTriggerEventsMessage,
108
- UnsubscribeVaultEventsMessage,
109
- UnsubscribeVaultManagementMessage
110
- ]);
111
- const WebsocketControlMessage = z.discriminatedUnion("method", [
112
- AuthMessage,
113
- PingMessage,
114
- SubscribeMessage,
115
- UnsubscribeMessage
116
- ]);
117
-
118
- export { MAX_VAULTS_PER_CONNECTION, WebsocketControlMessage, WebsocketPublicParams, WebsocketRequestId, WebsocketTriggerEventsParams, WebsocketUserEventsParams, WebsocketVaultEventsParams };
@@ -1,92 +0,0 @@
1
- import { z } from 'zod';
2
- import { ClientIdCode } from '../common/client-id';
3
- import { Connector } from '../connector';
4
- import { PriceSource } from '../price';
5
- import { TriggerConditionClose, TpSlBracketType } from '../trigger';
6
-
7
- const RealtimePrice = z.object({
8
- // Connector-native instrument id.
9
- id: z.string(),
10
- // The price for the subscribed source (mid or mark).
11
- p: z.string(),
12
- // Best bid, when the venue reports one.
13
- bid: z.string().nullable(),
14
- // Best ask, when the venue reports one.
15
- ask: z.string().nullable(),
16
- // Epoch milliseconds of the tick.
17
- t: z.number()
18
- });
19
- const RealtimeFunding = z.object({
20
- // Connector-native instrument id.
21
- id: z.string(),
22
- // Funding rate.
23
- r: z.string(),
24
- // Epoch milliseconds of the tick.
25
- t: z.number(),
26
- // Next funding time in epoch milliseconds.
27
- nft: z.number()
28
- });
29
- const PublicTradeLeg = z.object({
30
- // SYMBOL-MIGRATION switch-to-id: optional while old producers still drain; becomes required once every producer stamps it.
31
- id: z.string().optional().describe("Connector-native instrument id"),
32
- symbol: z.string(),
33
- side: z.enum([
34
- "BUY",
35
- "SELL"
36
- ]),
37
- reduceOnly: z.boolean(),
38
- quantity: z.string(),
39
- price: z.string()
40
- });
41
- const PriceUpdatedData = z.object({
42
- connector: Connector,
43
- source: PriceSource,
44
- prices: z.record(z.string(), RealtimePrice)
45
- });
46
- const FundingUpdatedData = z.object({
47
- connector: Connector,
48
- funding: z.record(z.string(), RealtimeFunding)
49
- });
50
- const TradeExecutedData = z.object({
51
- connector: Connector,
52
- source: z.enum([
53
- "DIRECT",
54
- "TWAP",
55
- "TRIGGER"
56
- ]),
57
- intent: z.enum([
58
- "OPEN",
59
- "ADJUST",
60
- "CLOSE",
61
- "REVERSE"
62
- ]),
63
- orderType: z.enum([
64
- "MARKET"
65
- ]),
66
- timestamp: z.iso.datetime(),
67
- clientId: ClientIdCode,
68
- legs: z.array(PublicTradeLeg).min(1)
69
- });
70
- const TriggerTriggeredPublicData = z.object({
71
- connector: Connector,
72
- accountId: z.string(),
73
- triggerId: z.string(),
74
- bracketType: z.enum([
75
- "STOP_LOSS",
76
- "TAKE_PROFIT"
77
- ]),
78
- // User-facing bracket semantics; `bracketType` is the crossing encoding (wire-flipped
79
- // for a price bracket on a short watched leg). Always stated.
80
- semanticBracketType: TpSlBracketType,
81
- intent: z.enum([
82
- "OPEN",
83
- "ADJUST",
84
- "CLOSE"
85
- ]),
86
- condition: TriggerConditionClose,
87
- triggerLevel: z.number().nullable(),
88
- timestamp: z.iso.datetime(),
89
- legs: z.array(PublicTradeLeg).min(1)
90
- });
91
-
92
- export { FundingUpdatedData, PriceUpdatedData, PublicTradeLeg, RealtimeFunding, RealtimePrice, TradeExecutedData, TriggerTriggeredPublicData };
@@ -1,32 +0,0 @@
1
- import { z } from 'zod';
2
-
3
- const UserEventTopic = z.enum([
4
- "execution.failed",
5
- "execution.completed",
6
- "position.created",
7
- "position.updated",
8
- "position.closed",
9
- "schedule.created",
10
- "schedule.completed",
11
- "schedule.failed",
12
- "schedule.cancelled",
13
- "ladder.created",
14
- "ladder.updated",
15
- "ladder.cancelled",
16
- "trigger.created",
17
- "trigger.triggered",
18
- "trigger.cancelled",
19
- "trigger.converted",
20
- "rebalance.created",
21
- "rebalance.updated",
22
- "rebalance.executed",
23
- "rebalance.paused",
24
- "rebalance.cancelled",
25
- "notification.created"
26
- ]);
27
- const UserEventData = z.object({
28
- // The changed entity (execution, position, schedule, ladder, trigger, rebalance or notification id).
29
- entityId: z.string()
30
- });
31
-
32
- export { UserEventData, UserEventTopic };
@@ -1,42 +0,0 @@
1
- import { z } from 'zod';
2
- import { EthereumAddress } from '../common/address';
3
-
4
- var __defProp = Object.defineProperty;
5
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
- const PublicVaultDataset = z.enum([
7
- "positions",
8
- "detail",
9
- "nav",
10
- "ledger"
11
- ]);
12
- const ManagementVaultDataset = z.enum([
13
- "orders",
14
- "schedules",
15
- "private_history"
16
- ]);
17
- const VaultDataset = z.enum([
18
- ...PublicVaultDataset.options,
19
- ...ManagementVaultDataset.options
20
- ]);
21
- function isPublicVaultDataset(dataset) {
22
- return PublicVaultDataset.safeParse(dataset).success;
23
- }
24
- __name(isPublicVaultDataset, "isPublicVaultDataset");
25
- const VaultInvalidatedData = z.object({
26
- // The vault whose dataset changed, lowercased.
27
- vaultAddress: EthereumAddress,
28
- // The read model to refetch; its visibility decides which channel carries the notice.
29
- dataset: VaultDataset,
30
- // Unique per emitted invalidation so clients can dedupe redeliveries.
31
- eventId: z.uuid(),
32
- // Epoch milliseconds when realtime emitted the invalidation.
33
- emittedAt: z.number().int().nonnegative()
34
- });
35
- const PublicVaultInvalidatedData = VaultInvalidatedData.extend({
36
- dataset: PublicVaultDataset
37
- });
38
- const ManagementVaultInvalidatedData = VaultInvalidatedData.extend({
39
- dataset: ManagementVaultDataset
40
- });
41
-
42
- export { ManagementVaultDataset, ManagementVaultInvalidatedData, PublicVaultDataset, PublicVaultInvalidatedData, VaultDataset, VaultInvalidatedData, isPublicVaultDataset };
@@ -1,86 +0,0 @@
1
- import { z } from 'zod';
2
- import { UnsignedDecimalString } from '../common/schema';
3
- import { InstrumentId } from '../instrument';
4
-
5
- const AutoRebalanceStatus = z.enum([
6
- "ACTIVE",
7
- "PAUSED"
8
- ]);
9
- const AutoRebalancePausedReason = z.enum([
10
- "USER",
11
- "POSITION_CHANGED",
12
- "REPEATED_FAILURES",
13
- "INVALID_LIVE_BETA_EXPOSURE"
14
- ]);
15
- const AutoRebalanceWeightSource = z.enum([
16
- "INITIAL_WEIGHT",
17
- "LIVE_BETA"
18
- ]);
19
- const AutoRebalanceTimeframe = z.enum([
20
- "1h",
21
- "4h",
22
- "1d"
23
- ]);
24
- const RebalanceEventStatus = z.enum([
25
- "SUCCESS",
26
- "FAILED"
27
- ]);
28
- const WeightMap = z.record(InstrumentId, z.number());
29
- const AutoRebalanceConfigBase = z.object({
30
- id: z.uuid(),
31
- positionId: z.uuid(),
32
- status: AutoRebalanceStatus,
33
- pausedReason: AutoRebalancePausedReason.optional(),
34
- minimumDriftPct: UnsignedDecimalString,
35
- createdAt: z.iso.datetime(),
36
- updatedAt: z.iso.datetime()
37
- });
38
- const AutoRebalanceBetaState = z.discriminatedUnion("state", [
39
- z.object({
40
- state: z.literal("PENDING")
41
- }),
42
- z.object({
43
- state: z.literal("BASELINED"),
44
- // The frozen drift baseline: implied beta of the achieved leg split at entry, re-snapshotted after
45
- // every rebalance.
46
- impliedEntryBeta: UnsignedDecimalString
47
- }),
48
- z.object({
49
- state: z.literal("TRACKING"),
50
- // The frozen drift baseline: implied beta of the achieved leg split at entry, re-snapshotted after
51
- // every rebalance.
52
- impliedEntryBeta: UnsignedDecimalString,
53
- // Kalman beta of the last candle this config processed — the moving side of the drift comparison.
54
- lastDerivedBeta: UnsignedDecimalString,
55
- // Bar time lastDerivedBeta was read at, so a client can judge how fresh that beta is.
56
- lastProcessedBetaTime: z.iso.datetime(),
57
- // How far lastDerivedBeta sits from impliedEntryBeta, as a fraction (0.05 = 5%) directly comparable
58
- // to minimumDriftPct. Derived from the two betas above; absent on a degenerate (zero) baseline.
59
- driftPct: UnsignedDecimalString.optional()
60
- })
61
- ]);
62
- const AutoRebalanceConfig = z.discriminatedUnion("weightSource", [
63
- AutoRebalanceConfigBase.extend({
64
- weightSource: z.literal("INITIAL_WEIGHT")
65
- }),
66
- AutoRebalanceConfigBase.extend({
67
- weightSource: z.literal("LIVE_BETA"),
68
- // Stat-arb bar timeframe selecting which realtime candle feed drives the drift comparison.
69
- timeframe: AutoRebalanceTimeframe,
70
- beta: AutoRebalanceBetaState
71
- })
72
- ]);
73
- const RebalanceEvent = z.object({
74
- id: z.uuid(),
75
- autoRebalanceConfigId: z.uuid(),
76
- positionId: z.uuid(),
77
- weightSource: AutoRebalanceWeightSource,
78
- driftPct: UnsignedDecimalString,
79
- currentWeights: WeightMap,
80
- targetWeights: WeightMap,
81
- status: RebalanceEventStatus,
82
- error: z.string().optional(),
83
- createdAt: z.iso.datetime()
84
- });
85
-
86
- export { AutoRebalanceBetaState, AutoRebalanceConfig, AutoRebalancePausedReason, AutoRebalanceStatus, AutoRebalanceTimeframe, AutoRebalanceWeightSource, RebalanceEvent, RebalanceEventStatus, WeightMap };
@@ -1,4 +0,0 @@
1
- export * from './entities';
2
- export * from './payloads';
3
- export * from './queries';
4
- export * from './responses';
@@ -1,56 +0,0 @@
1
- import { z } from 'zod';
2
- import { ClientIdCode } from '../common/client-id';
3
- import { RefineWeightingSum, RefineUniqueSymbols } from '../common/refinement';
4
- import { UnsignedDecimalString } from '../common/schema';
5
- import { ExecutionOrderType } from '../execution';
6
- import { InstrumentId } from '../instrument';
7
- import { AutoRebalanceTimeframe, AutoRebalanceStatus } from './entities';
8
-
9
- const RebalanceManual = z.object({
10
- orderType: ExecutionOrderType,
11
- weightings: z.array(z.object({
12
- symbol: InstrumentId,
13
- weight: z.number().positive({
14
- message: "Weight must be greater than 0"
15
- }).max(1, {
16
- message: "Weight must be less than 1"
17
- })
18
- })).superRefine(RefineWeightingSum).superRefine(RefineUniqueSymbols).describe("Array of weightings to rebalance the position"),
19
- /**
20
- * Attribution route code (client_ids.code)
21
- */
22
- clientId: ClientIdCode
23
- });
24
- const MinimumDriftPct = UnsignedDecimalString.refine((value) => Number(value) > 0 && Number(value) <= 1, {
25
- message: "minimumDriftPct must be greater than 0 and at most 1"
26
- });
27
- const InitialWeightConfig = z.object({
28
- weightSource: z.literal("INITIAL_WEIGHT"),
29
- minimumDriftPct: MinimumDriftPct
30
- });
31
- const LiveBetaConfig = z.object({
32
- weightSource: z.literal("LIVE_BETA"),
33
- minimumDriftPct: MinimumDriftPct,
34
- timeframe: AutoRebalanceTimeframe
35
- });
36
- const CreateInitialWeight = InitialWeightConfig.extend({
37
- positionId: z.uuid()
38
- });
39
- const CreateLiveBeta = LiveBetaConfig.extend({
40
- positionId: z.uuid()
41
- });
42
- const CreateAutoRebalanceConfig = z.discriminatedUnion("weightSource", [
43
- CreateInitialWeight,
44
- CreateLiveBeta
45
- ]);
46
- const ReplaceAutoRebalanceConfig = z.discriminatedUnion("weightSource", [
47
- InitialWeightConfig,
48
- LiveBetaConfig
49
- ]);
50
- const UpdateAutoRebalanceConfig = z.object({
51
- minimumDriftPct: MinimumDriftPct.optional(),
52
- timeframe: AutoRebalanceTimeframe.optional(),
53
- status: AutoRebalanceStatus.optional()
54
- });
55
-
56
- export { CreateAutoRebalanceConfig, RebalanceManual, ReplaceAutoRebalanceConfig, UpdateAutoRebalanceConfig };
@@ -1,14 +0,0 @@
1
- import { z } from 'zod';
2
- import { normalizeArray, CursorFindParams } from '../common';
3
- import { AutoRebalanceStatus, AutoRebalanceWeightSource } from './entities';
4
-
5
- const StatusArray = z.preprocess((arg) => normalizeArray(arg), z.array(AutoRebalanceStatus));
6
- const WeightSourceArray = z.preprocess((arg) => normalizeArray(arg), z.array(AutoRebalanceWeightSource));
7
- const AutoRebalanceListParams = CursorFindParams.extend({
8
- status: StatusArray.optional(),
9
- weightSource: WeightSourceArray.optional(),
10
- positionId: z.uuid().optional()
11
- });
12
- const RebalanceEventListParams = CursorFindParams.extend({});
13
-
14
- export { AutoRebalanceListParams, RebalanceEventListParams };
@@ -1,41 +0,0 @@
1
- import { z } from 'zod';
2
- import { CursorResponse } from '../common';
3
- import { AutoRebalanceConfig, RebalanceEvent } from './entities';
4
-
5
- const RebalanceManualResponse = z.object({
6
- plan: z.discriminatedUnion("outcome", [
7
- z.object({
8
- outcome: z.literal("full_rebalance")
9
- }),
10
- z.object({
11
- outcome: z.literal("partial_rebalance"),
12
- messages: z.tuple([
13
- z.string()
14
- ]).rest(z.string())
15
- }),
16
- z.object({
17
- outcome: z.literal("no_rebalance"),
18
- messages: z.tuple([
19
- z.string()
20
- ]).rest(z.string())
21
- }),
22
- // `failed` only occurs on background runs (dispatch/cron); MANUAL execution errors throw and surface as HTTP errors instead.
23
- z.object({
24
- outcome: z.literal("failed"),
25
- messages: z.tuple([
26
- z.string()
27
- ]).rest(z.string())
28
- })
29
- ])
30
- });
31
- const AutoRebalanceListResponse = CursorResponse.extend({
32
- items: z.array(AutoRebalanceConfig)
33
- });
34
- const CreateAutoRebalanceResponse = z.object({
35
- config: AutoRebalanceConfig
36
- });
37
- const RebalanceEventListResponse = CursorResponse.extend({
38
- items: z.array(RebalanceEvent)
39
- });
40
-
41
- export { AutoRebalanceListResponse, CreateAutoRebalanceResponse, RebalanceEventListResponse, RebalanceManualResponse };