@stryke-xyz/premarket-sdk 1.0.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 (189) hide show
  1. package/dist/abi/AggregationRouterV6.abi.json +1186 -0
  2. package/dist/abi/NativeOrderFactory.abi.json +291 -0
  3. package/dist/abi/NativeOrderImpl.abi.json +381 -0
  4. package/dist/abi/limitOrderProtocol.json +63 -0
  5. package/dist/address.d.ts +13 -0
  6. package/dist/address.js +32 -0
  7. package/dist/api/filler.d.ts +109 -0
  8. package/dist/api/filler.js +289 -0
  9. package/dist/api/index.d.ts +3 -0
  10. package/dist/api/index.js +3 -0
  11. package/dist/api/order-helper.d.ts +59 -0
  12. package/dist/api/order-helper.js +112 -0
  13. package/dist/api/orderbook-api.d.ts +36 -0
  14. package/dist/api/orderbook-api.js +69 -0
  15. package/dist/bps.d.ts +35 -0
  16. package/dist/bps.js +52 -0
  17. package/dist/config/chains.d.ts +50 -0
  18. package/dist/config/chains.js +21 -0
  19. package/dist/config/index.d.ts +25 -0
  20. package/dist/config/index.js +103 -0
  21. package/dist/config/markets.d.ts +53 -0
  22. package/dist/config/markets.js +125 -0
  23. package/dist/constants.d.ts +4 -0
  24. package/dist/constants.js +30 -0
  25. package/dist/index.d.ts +19 -0
  26. package/dist/index.js +21 -0
  27. package/dist/limit-order/amounts.d.ts +14 -0
  28. package/dist/limit-order/amounts.js +19 -0
  29. package/dist/limit-order/eip712/domain.d.ts +10 -0
  30. package/dist/limit-order/eip712/domain.js +18 -0
  31. package/dist/limit-order/eip712/eip712.types.d.ts +23 -0
  32. package/dist/limit-order/eip712/eip712.types.js +1 -0
  33. package/dist/limit-order/eip712/index.d.ts +3 -0
  34. package/dist/limit-order/eip712/index.js +3 -0
  35. package/dist/limit-order/eip712/order-typed-data-builder.d.ts +6 -0
  36. package/dist/limit-order/eip712/order-typed-data-builder.js +25 -0
  37. package/dist/limit-order/extensions/extension-builder.d.ts +35 -0
  38. package/dist/limit-order/extensions/extension-builder.js +83 -0
  39. package/dist/limit-order/extensions/extension.d.ts +45 -0
  40. package/dist/limit-order/extensions/extension.js +108 -0
  41. package/dist/limit-order/extensions/extension.spec.d.ts +1 -0
  42. package/dist/limit-order/extensions/extension.spec.js +17 -0
  43. package/dist/limit-order/extensions/fee-taker/errors.d.ts +2 -0
  44. package/dist/limit-order/extensions/fee-taker/errors.js +2 -0
  45. package/dist/limit-order/extensions/fee-taker/fee-calculator.d.ts +40 -0
  46. package/dist/limit-order/extensions/fee-taker/fee-calculator.js +83 -0
  47. package/dist/limit-order/extensions/fee-taker/fee-calculator.spec.d.ts +1 -0
  48. package/dist/limit-order/extensions/fee-taker/fee-calculator.spec.js +14 -0
  49. package/dist/limit-order/extensions/fee-taker/fee-taker.extension.d.ts +130 -0
  50. package/dist/limit-order/extensions/fee-taker/fee-taker.extension.js +249 -0
  51. package/dist/limit-order/extensions/fee-taker/fee-taker.extension.spec.d.ts +1 -0
  52. package/dist/limit-order/extensions/fee-taker/fee-taker.extension.spec.js +72 -0
  53. package/dist/limit-order/extensions/fee-taker/fees.d.ts +19 -0
  54. package/dist/limit-order/extensions/fee-taker/fees.js +36 -0
  55. package/dist/limit-order/extensions/fee-taker/index.d.ts +7 -0
  56. package/dist/limit-order/extensions/fee-taker/index.js +7 -0
  57. package/dist/limit-order/extensions/fee-taker/integrator-fee.d.ts +13 -0
  58. package/dist/limit-order/extensions/fee-taker/integrator-fee.js +28 -0
  59. package/dist/limit-order/extensions/fee-taker/resolver-fee.d.ts +19 -0
  60. package/dist/limit-order/extensions/fee-taker/resolver-fee.js +28 -0
  61. package/dist/limit-order/extensions/fee-taker/types.d.ts +4 -0
  62. package/dist/limit-order/extensions/fee-taker/types.js +1 -0
  63. package/dist/limit-order/extensions/fee-taker/whitelist-half-address.d.ts +18 -0
  64. package/dist/limit-order/extensions/fee-taker/whitelist-half-address.js +26 -0
  65. package/dist/limit-order/extensions/index.d.ts +3 -0
  66. package/dist/limit-order/extensions/index.js +3 -0
  67. package/dist/limit-order/index.d.ts +10 -0
  68. package/dist/limit-order/index.js +10 -0
  69. package/dist/limit-order/interaction.d.ts +16 -0
  70. package/dist/limit-order/interaction.js +25 -0
  71. package/dist/limit-order/interaction.spec.d.ts +1 -0
  72. package/dist/limit-order/interaction.spec.js +8 -0
  73. package/dist/limit-order/limit-order-with-fee.d.ts +59 -0
  74. package/dist/limit-order/limit-order-with-fee.js +94 -0
  75. package/dist/limit-order/limit-order-with-fee.spec.d.ts +1 -0
  76. package/dist/limit-order/limit-order-with-fee.spec.js +31 -0
  77. package/dist/limit-order/limit-order.d.ts +63 -0
  78. package/dist/limit-order/limit-order.js +211 -0
  79. package/dist/limit-order/limit-order.spec.d.ts +1 -0
  80. package/dist/limit-order/limit-order.spec.js +103 -0
  81. package/dist/limit-order/maker-traits.d.ts +200 -0
  82. package/dist/limit-order/maker-traits.js +309 -0
  83. package/dist/limit-order/maker-traits.spec.d.ts +1 -0
  84. package/dist/limit-order/maker-traits.spec.js +102 -0
  85. package/dist/limit-order/source-track.d.ts +1 -0
  86. package/dist/limit-order/source-track.js +22 -0
  87. package/dist/limit-order/taker-traits.d.ts +141 -0
  88. package/dist/limit-order/taker-traits.js +207 -0
  89. package/dist/limit-order/types.d.ts +24 -0
  90. package/dist/limit-order/types.js +1 -0
  91. package/dist/limit-order/verification.d.ts +16 -0
  92. package/dist/limit-order/verification.js +108 -0
  93. package/dist/limit-order-contract/index.d.ts +4 -0
  94. package/dist/limit-order-contract/index.js +4 -0
  95. package/dist/limit-order-contract/limit-order-contract.d.ts +34 -0
  96. package/dist/limit-order-contract/limit-order-contract.js +79 -0
  97. package/dist/limit-order-contract/native-order-factory.d.ts +10 -0
  98. package/dist/limit-order-contract/native-order-factory.js +22 -0
  99. package/dist/limit-order-contract/native-order-impl.d.ts +10 -0
  100. package/dist/limit-order-contract/native-order-impl.js +24 -0
  101. package/dist/limit-order-contract/proxy-factory.d.ts +20 -0
  102. package/dist/limit-order-contract/proxy-factory.js +32 -0
  103. package/dist/limit-order-contract/proxy-factory.spec.d.ts +1 -0
  104. package/dist/limit-order-contract/proxy-factory.spec.js +16 -0
  105. package/dist/limit-order-contract/types.d.ts +6 -0
  106. package/dist/limit-order-contract/types.js +1 -0
  107. package/dist/ponder/client/index.d.ts +23 -0
  108. package/dist/ponder/client/index.js +44 -0
  109. package/dist/ponder/client/queries/markets.d.ts +30 -0
  110. package/dist/ponder/client/queries/markets.js +200 -0
  111. package/dist/ponder/client/queries/positions.d.ts +13 -0
  112. package/dist/ponder/client/queries/positions.js +406 -0
  113. package/dist/ponder/client/types/history.d.ts +94 -0
  114. package/dist/ponder/client/types/history.js +1 -0
  115. package/dist/ponder/client/types/index.d.ts +5 -0
  116. package/dist/ponder/client/types/index.js +5 -0
  117. package/dist/ponder/client/types/market.d.ts +45 -0
  118. package/dist/ponder/client/types/market.js +1 -0
  119. package/dist/ponder/client/types/position.d.ts +32 -0
  120. package/dist/ponder/client/types/position.js +1 -0
  121. package/dist/ponder/client/types/serializers.d.ts +57 -0
  122. package/dist/ponder/client/types/serializers.js +248 -0
  123. package/dist/ponder/client/types/user.d.ts +5 -0
  124. package/dist/ponder/client/types/user.js +1 -0
  125. package/dist/ponder/client/utils.d.ts +1 -0
  126. package/dist/ponder/client/utils.js +32 -0
  127. package/dist/ponder/generated/index.d.ts +18 -0
  128. package/dist/ponder/generated/index.js +20 -0
  129. package/dist/ponder/generated/runtime/batcher.d.ts +105 -0
  130. package/dist/ponder/generated/runtime/batcher.js +188 -0
  131. package/dist/ponder/generated/runtime/createClient.d.ts +17 -0
  132. package/dist/ponder/generated/runtime/createClient.js +24 -0
  133. package/dist/ponder/generated/runtime/error.d.ts +18 -0
  134. package/dist/ponder/generated/runtime/error.js +15 -0
  135. package/dist/ponder/generated/runtime/fetcher.d.ts +10 -0
  136. package/dist/ponder/generated/runtime/fetcher.js +67 -0
  137. package/dist/ponder/generated/runtime/generateGraphqlOperation.d.ts +30 -0
  138. package/dist/ponder/generated/runtime/generateGraphqlOperation.js +128 -0
  139. package/dist/ponder/generated/runtime/index.d.ts +11 -0
  140. package/dist/ponder/generated/runtime/index.js +10 -0
  141. package/dist/ponder/generated/runtime/linkTypeMap.d.ts +9 -0
  142. package/dist/ponder/generated/runtime/linkTypeMap.js +83 -0
  143. package/dist/ponder/generated/runtime/typeSelection.d.ts +28 -0
  144. package/dist/ponder/generated/runtime/typeSelection.js +3 -0
  145. package/dist/ponder/generated/runtime/types.d.ts +55 -0
  146. package/dist/ponder/generated/runtime/types.js +2 -0
  147. package/dist/ponder/generated/schema.d.ts +3026 -0
  148. package/dist/ponder/generated/schema.js +222 -0
  149. package/dist/ponder/generated/types.d.ts +2393 -0
  150. package/dist/ponder/generated/types.js +6915 -0
  151. package/dist/ponder/index.d.ts +2 -0
  152. package/dist/ponder/index.js +2 -0
  153. package/dist/ponder/types.d.ts +3 -0
  154. package/dist/ponder/types.js +1 -0
  155. package/dist/rfq-order/index.d.ts +1 -0
  156. package/dist/rfq-order/index.js +1 -0
  157. package/dist/rfq-order/rfq-order.d.ts +21 -0
  158. package/dist/rfq-order/rfq-order.js +22 -0
  159. package/dist/rfq-order/rfq-order.spec.d.ts +1 -0
  160. package/dist/rfq-order/rfq-order.spec.js +27 -0
  161. package/dist/shared/index.d.ts +2 -0
  162. package/dist/shared/index.js +2 -0
  163. package/dist/shared/types.d.ts +79 -0
  164. package/dist/shared/types.js +12 -0
  165. package/dist/shared/utils.d.ts +7 -0
  166. package/dist/shared/utils.js +19 -0
  167. package/dist/sync/clients/balance-client.d.ts +41 -0
  168. package/dist/sync/clients/balance-client.js +139 -0
  169. package/dist/sync/clients/base-client.d.ts +47 -0
  170. package/dist/sync/clients/base-client.js +154 -0
  171. package/dist/sync/clients/order-client.d.ts +18 -0
  172. package/dist/sync/clients/order-client.js +151 -0
  173. package/dist/sync/index.d.ts +5 -0
  174. package/dist/sync/index.js +3 -0
  175. package/dist/sync/redis-ws-client.d.ts +18 -0
  176. package/dist/sync/redis-ws-client.js +88 -0
  177. package/dist/sync/types.d.ts +20 -0
  178. package/dist/sync/types.js +1 -0
  179. package/dist/utils/mul-div.d.ts +5 -0
  180. package/dist/utils/mul-div.js +13 -0
  181. package/dist/utils/orderUtils.d.ts +19 -0
  182. package/dist/utils/orderUtils.js +51 -0
  183. package/dist/utils/rand-bigint.d.ts +1 -0
  184. package/dist/utils/rand-bigint.js +13 -0
  185. package/dist/utils/rand-bigint.spec.d.ts +1 -0
  186. package/dist/utils/rand-bigint.spec.js +11 -0
  187. package/dist/validations.d.ts +1 -0
  188. package/dist/validations.js +3 -0
  189. package/package.json +60 -0
@@ -0,0 +1,406 @@
1
+ import { convertBigIntFields } from "../utils.js";
2
+ import { serializeCollateralPosition, serializeOptionPosition, serializeUserHistories, } from "../types/serializers.js";
3
+ export async function getUserCollateralPositions(client, userAddress, marketId) {
4
+ const result = await client.query({
5
+ user: {
6
+ __args: { id: userAddress.toLowerCase() },
7
+ collateralPositions: {
8
+ __args: { where: { optionMarketId: marketId }, limit: 1000 },
9
+ items: {
10
+ id: true,
11
+ optionId: true,
12
+ optionMarketId: true,
13
+ totalCollateral: true,
14
+ optionsMinted: true,
15
+ optionsExercised: true,
16
+ premiumEarned: true,
17
+ fee: true,
18
+ settled: true,
19
+ updatedAt: true,
20
+ updatedAtBlock: true,
21
+ optionMarket: {
22
+ id: true,
23
+ callToken: true,
24
+ putToken: true,
25
+ expiry: true,
26
+ maxTTL: true,
27
+ strategy: {
28
+ id: true,
29
+ finalFDV: true,
30
+ deadline: true,
31
+ bandPrecision: true,
32
+ collateralPerBandPrecision: true,
33
+ premiumRate: true,
34
+ depositFeeRate: true,
35
+ purchaseFeeRate: true,
36
+ settlementFeeRate: true,
37
+ collateralToken: true,
38
+ },
39
+ collateralToken: true,
40
+ totalCollateral: true,
41
+ totalCollateralAmount: true,
42
+ protocolFees: true,
43
+ },
44
+ optionParams: {
45
+ id: true,
46
+ marketId: true,
47
+ strikeLowerLimit: true,
48
+ strikeUpperLimit: true,
49
+ isPut: true,
50
+ collateralPerShare: true,
51
+ },
52
+ },
53
+ },
54
+ },
55
+ });
56
+ const positions = result.user?.collateralPositions?.items || [];
57
+ const converted = convertBigIntFields(positions);
58
+ if (!Array.isArray(converted)) {
59
+ throw new Error("Expected array of positions");
60
+ }
61
+ return converted.map((item) => serializeCollateralPosition(item));
62
+ }
63
+ export async function getUserOptionPositions(client, userAddress, marketId) {
64
+ const result = await client.query({
65
+ user: {
66
+ __args: { id: userAddress.toLowerCase() },
67
+ optionsPositions: {
68
+ __args: { where: { optionMarketId: marketId }, limit: 1000 },
69
+ items: {
70
+ id: true,
71
+ tokenId: true,
72
+ address: true,
73
+ optionId: true,
74
+ optionMarketId: true,
75
+ premium: true,
76
+ fee: true,
77
+ profit: true,
78
+ amount: true,
79
+ averagePrice: true,
80
+ updatedAt: true,
81
+ updatedAtBlock: true,
82
+ optionMarket: {
83
+ id: true,
84
+ callToken: true,
85
+ putToken: true,
86
+ expiry: true,
87
+ maxTTL: true,
88
+ strategy: {
89
+ id: true,
90
+ finalFDV: true,
91
+ deadline: true,
92
+ bandPrecision: true,
93
+ collateralPerBandPrecision: true,
94
+ premiumRate: true,
95
+ depositFeeRate: true,
96
+ purchaseFeeRate: true,
97
+ settlementFeeRate: true,
98
+ collateralToken: true,
99
+ },
100
+ collateralToken: true,
101
+ totalCollateral: true,
102
+ totalCollateralAmount: true,
103
+ protocolFees: true,
104
+ },
105
+ optionParams: {
106
+ id: true,
107
+ marketId: true,
108
+ strikeLowerLimit: true,
109
+ strikeUpperLimit: true,
110
+ isPut: true,
111
+ collateralPerShare: true,
112
+ },
113
+ },
114
+ },
115
+ },
116
+ });
117
+ const positions = result.user?.optionsPositions?.items || [];
118
+ const converted = convertBigIntFields(positions);
119
+ if (!Array.isArray(converted)) {
120
+ throw new Error("Expected array of positions");
121
+ }
122
+ return converted.map((item) => serializeOptionPosition(item));
123
+ }
124
+ /**
125
+ * Get all user option positions across all markets
126
+ */
127
+ export async function getAllUserOptionPositions(client, userAddress) {
128
+ const result = await client.query({
129
+ user: {
130
+ __args: { id: userAddress.toLowerCase() },
131
+ optionsPositions: {
132
+ __args: { limit: 1000 },
133
+ items: {
134
+ id: true,
135
+ tokenId: true,
136
+ address: true,
137
+ optionId: true,
138
+ optionMarketId: true,
139
+ premium: true,
140
+ fee: true,
141
+ profit: true,
142
+ amount: true,
143
+ averagePrice: true,
144
+ updatedAt: true,
145
+ updatedAtBlock: true,
146
+ optionMarket: {
147
+ id: true,
148
+ callToken: true,
149
+ putToken: true,
150
+ expiry: true,
151
+ maxTTL: true,
152
+ strategy: {
153
+ id: true,
154
+ finalFDV: true,
155
+ deadline: true,
156
+ bandPrecision: true,
157
+ collateralPerBandPrecision: true,
158
+ premiumRate: true,
159
+ depositFeeRate: true,
160
+ purchaseFeeRate: true,
161
+ settlementFeeRate: true,
162
+ collateralToken: true,
163
+ },
164
+ collateralToken: true,
165
+ totalCollateral: true,
166
+ totalCollateralAmount: true,
167
+ protocolFees: true,
168
+ },
169
+ optionParams: {
170
+ id: true,
171
+ marketId: true,
172
+ strikeLowerLimit: true,
173
+ strikeUpperLimit: true,
174
+ isPut: true,
175
+ collateralPerShare: true,
176
+ },
177
+ },
178
+ },
179
+ },
180
+ });
181
+ const positions = result.user?.optionsPositions?.items || [];
182
+ const converted = convertBigIntFields(positions);
183
+ if (!Array.isArray(converted)) {
184
+ throw new Error("Expected array of positions");
185
+ }
186
+ return converted.map((item) => serializeOptionPosition(item));
187
+ }
188
+ /**
189
+ * Get all user collateral positions across all markets
190
+ */
191
+ export async function getAllUserCollateralPositions(client, userAddress) {
192
+ const result = await client.query({
193
+ user: {
194
+ __args: { id: userAddress.toLowerCase() },
195
+ collateralPositions: {
196
+ __args: { limit: 1000 },
197
+ items: {
198
+ id: true,
199
+ optionId: true,
200
+ optionMarketId: true,
201
+ totalCollateral: true,
202
+ optionsMinted: true,
203
+ optionsExercised: true,
204
+ premiumEarned: true,
205
+ fee: true,
206
+ settled: true,
207
+ updatedAt: true,
208
+ updatedAtBlock: true,
209
+ optionMarket: {
210
+ id: true,
211
+ callToken: true,
212
+ putToken: true,
213
+ expiry: true,
214
+ maxTTL: true,
215
+ strategy: {
216
+ id: true,
217
+ finalFDV: true,
218
+ deadline: true,
219
+ bandPrecision: true,
220
+ collateralPerBandPrecision: true,
221
+ premiumRate: true,
222
+ depositFeeRate: true,
223
+ purchaseFeeRate: true,
224
+ settlementFeeRate: true,
225
+ collateralToken: true,
226
+ },
227
+ collateralToken: true,
228
+ totalCollateral: true,
229
+ totalCollateralAmount: true,
230
+ protocolFees: true,
231
+ },
232
+ optionParams: {
233
+ id: true,
234
+ marketId: true,
235
+ strikeLowerLimit: true,
236
+ strikeUpperLimit: true,
237
+ isPut: true,
238
+ collateralPerShare: true,
239
+ },
240
+ },
241
+ },
242
+ },
243
+ });
244
+ const positions = result.user?.collateralPositions?.items || [];
245
+ const converted = convertBigIntFields(positions);
246
+ if (!Array.isArray(converted)) {
247
+ throw new Error("Expected array of positions");
248
+ }
249
+ return converted.map((item) => serializeCollateralPosition(item));
250
+ }
251
+ export async function getUserHistories(client, userAddress, marketId) {
252
+ const lowerAddress = userAddress.toLowerCase();
253
+ try {
254
+ const result = await client.query({
255
+ depositHistorys: {
256
+ __args: {
257
+ where: { marketId: marketId, receiver: lowerAddress },
258
+ limit: 1000,
259
+ },
260
+ items: {
261
+ id: true,
262
+ optionId: true,
263
+ marketId: true,
264
+ receiver: true,
265
+ amount: true,
266
+ collateralAmount: true,
267
+ fee: true,
268
+ transactionHash: true,
269
+ blockNumber: true,
270
+ timestamp: true,
271
+ },
272
+ },
273
+ transferDepositHistorys: {
274
+ __args: {
275
+ where: { marketId: marketId, receiver: lowerAddress },
276
+ limit: 1000,
277
+ },
278
+ items: {
279
+ id: true,
280
+ optionId: true,
281
+ marketId: true,
282
+ amount: true,
283
+ collateralAmount: true,
284
+ fee: true,
285
+ transactionHash: true,
286
+ blockNumber: true,
287
+ timestamp: true,
288
+ },
289
+ },
290
+ purchaseHistorys: {
291
+ __args: {
292
+ where: { marketId: marketId, purchaser: lowerAddress },
293
+ limit: 1000,
294
+ },
295
+ items: {
296
+ id: true,
297
+ optionId: true,
298
+ purchaser: true,
299
+ amount: true,
300
+ premiumAmount: true,
301
+ fee: true,
302
+ optionShares: true,
303
+ sharesUtilized: true,
304
+ transactionHash: true,
305
+ blockNumber: true,
306
+ timestamp: true,
307
+ },
308
+ },
309
+ transferPositionHistorys: {
310
+ __args: {
311
+ where: { marketId: marketId, purchaser: lowerAddress },
312
+ limit: 1000,
313
+ },
314
+ items: {
315
+ id: true,
316
+ optionId: true,
317
+ purchaser: true,
318
+ amount: true,
319
+ premiumAmount: true,
320
+ fee: true,
321
+ optionShares: true,
322
+ sharesUtilized: true,
323
+ transactionHash: true,
324
+ blockNumber: true,
325
+ timestamp: true,
326
+ },
327
+ },
328
+ exerciseHistorys: {
329
+ __args: {
330
+ where: { marketId: marketId, exerciser: lowerAddress },
331
+ limit: 1000,
332
+ },
333
+ items: {
334
+ id: true,
335
+ optionId: true,
336
+ exerciser: true,
337
+ amount: true,
338
+ profitAmount: true,
339
+ fee: true,
340
+ optionTokensBurnt: true,
341
+ sharesUnutilized: true,
342
+ makerLoss: true,
343
+ purchaserProfit: true,
344
+ transactionHash: true,
345
+ blockNumber: true,
346
+ timestamp: true,
347
+ },
348
+ },
349
+ unwindHistorys: {
350
+ __args: {
351
+ where: { marketId: marketId, receiver: lowerAddress },
352
+ limit: 1000,
353
+ },
354
+ items: {
355
+ id: true,
356
+ optionId: true,
357
+ marketId: true,
358
+ amount: true,
359
+ collateralTokensToReturn: true,
360
+ collateralSharesToBurn: true,
361
+ optionSharesToBurn: true,
362
+ transactionHash: true,
363
+ blockNumber: true,
364
+ timestamp: true,
365
+ },
366
+ },
367
+ settlementHistorys: {
368
+ __args: {
369
+ where: { marketId: marketId, user: lowerAddress },
370
+ limit: 1000,
371
+ },
372
+ items: {
373
+ id: true,
374
+ optionId: true,
375
+ marketId: true,
376
+ totalCollateralSettled: true,
377
+ transactionHash: true,
378
+ blockNumber: true,
379
+ timestamp: true,
380
+ },
381
+ },
382
+ });
383
+ const converted = convertBigIntFields({
384
+ depositHistory: result.depositHistorys?.items || [],
385
+ transferDepositHistory: result.transferDepositHistorys?.items || [],
386
+ purchaseHistory: result.purchaseHistorys?.items || [],
387
+ transferPositionHistory: result.transferPositionHistorys?.items || [],
388
+ exerciseHistory: result.exerciseHistorys?.items || [],
389
+ unwindHistory: result.unwindHistorys?.items || [],
390
+ settlementHistory: result.settlementHistorys?.items || [],
391
+ });
392
+ return serializeUserHistories(converted);
393
+ }
394
+ catch (error) {
395
+ console.error(error);
396
+ return {
397
+ depositHistory: [],
398
+ transferDepositHistory: [],
399
+ purchaseHistory: [],
400
+ transferPositionHistory: [],
401
+ exerciseHistory: [],
402
+ unwindHistory: [],
403
+ settlementHistory: [],
404
+ };
405
+ }
406
+ }
@@ -0,0 +1,94 @@
1
+ export interface DepositHistory {
2
+ id: string;
3
+ optionId: string;
4
+ marketId: bigint;
5
+ receiver: `0x${string}`;
6
+ amount: bigint;
7
+ collateralAmount: bigint;
8
+ fee: bigint;
9
+ transactionHash: `0x${string}`;
10
+ blockNumber: bigint;
11
+ timestamp: bigint;
12
+ }
13
+ export interface TransferDepositHistory {
14
+ id: string;
15
+ optionId: string;
16
+ marketId: bigint;
17
+ amount: bigint;
18
+ collateralAmount: bigint;
19
+ fee: bigint;
20
+ transactionHash: `0x${string}`;
21
+ blockNumber: bigint;
22
+ timestamp: bigint;
23
+ }
24
+ export interface PurchaseHistory {
25
+ id: string;
26
+ optionId: string;
27
+ purchaser: `0x${string}`;
28
+ amount: bigint;
29
+ premiumAmount: bigint;
30
+ fee: bigint;
31
+ optionShares: bigint;
32
+ sharesUtilized: bigint;
33
+ transactionHash: `0x${string}`;
34
+ blockNumber: bigint;
35
+ timestamp: bigint;
36
+ }
37
+ export interface TransferPositionHistory {
38
+ id: string;
39
+ optionId: string;
40
+ purchaser: `0x${string}`;
41
+ amount: bigint;
42
+ premiumAmount: bigint;
43
+ fee: bigint;
44
+ optionShares: bigint;
45
+ sharesUtilized: bigint;
46
+ transactionHash: `0x${string}`;
47
+ blockNumber: bigint;
48
+ timestamp: bigint;
49
+ }
50
+ export interface ExerciseHistory {
51
+ id: string;
52
+ optionId: string;
53
+ exerciser: `0x${string}`;
54
+ amount: bigint;
55
+ profitAmount: bigint;
56
+ fee: bigint;
57
+ optionTokensBurnt: bigint;
58
+ sharesUnutilized: bigint;
59
+ makerLoss: bigint | null;
60
+ purchaserProfit: bigint | null;
61
+ transactionHash: `0x${string}`;
62
+ blockNumber: bigint;
63
+ timestamp: bigint;
64
+ }
65
+ export interface UnwindHistory {
66
+ id: string;
67
+ optionId: string;
68
+ marketId: bigint;
69
+ amount: bigint;
70
+ collateralTokensToReturn: bigint;
71
+ collateralSharesToBurn: bigint;
72
+ optionSharesToBurn: bigint;
73
+ transactionHash: `0x${string}`;
74
+ blockNumber: bigint;
75
+ timestamp: bigint;
76
+ }
77
+ export interface SettlementHistory {
78
+ id: string;
79
+ optionId: string;
80
+ optionMarketId: string;
81
+ totalCollateralSettled: bigint;
82
+ transactionHash: `0x${string}`;
83
+ blockNumber: bigint;
84
+ timestamp: bigint;
85
+ }
86
+ export interface UserHistories {
87
+ depositHistory: DepositHistory[];
88
+ transferDepositHistory: TransferDepositHistory[];
89
+ purchaseHistory: PurchaseHistory[];
90
+ transferPositionHistory: TransferPositionHistory[];
91
+ exerciseHistory: ExerciseHistory[];
92
+ unwindHistory: UnwindHistory[];
93
+ settlementHistory: SettlementHistory[];
94
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export * from "./market.js";
2
+ export * from "./position.js";
3
+ export * from "./history.js";
4
+ export * from "./user.js";
5
+ export * from "./serializers.js";
@@ -0,0 +1,5 @@
1
+ export * from "./market.js";
2
+ export * from "./position.js";
3
+ export * from "./history.js";
4
+ export * from "./user.js";
5
+ export * from "./serializers.js";
@@ -0,0 +1,45 @@
1
+ export interface MarketStrategy {
2
+ id: string;
3
+ finalFDV: bigint;
4
+ deadline: bigint;
5
+ bandPrecision: bigint;
6
+ collateralPerBandPrecision: bigint;
7
+ premiumRate: bigint;
8
+ depositFeeRate: bigint;
9
+ purchaseFeeRate: bigint;
10
+ settlementFeeRate: bigint;
11
+ collateralToken: `0x${string}`;
12
+ }
13
+ export interface OptionMarket {
14
+ id: string;
15
+ callToken: `0x${string}`;
16
+ putToken: `0x${string}`;
17
+ expiry: bigint;
18
+ maxTTL: bigint;
19
+ strategy: MarketStrategy;
20
+ collateralToken: `0x${string}`;
21
+ totalCollateral: bigint;
22
+ totalCollateralAmount: bigint;
23
+ protocolFees: bigint;
24
+ }
25
+ export interface HourlyVolume {
26
+ id: string;
27
+ marketId: bigint;
28
+ optionId: string;
29
+ hourTimestamp: bigint;
30
+ depositVolume: bigint;
31
+ tradeVolume: bigint;
32
+ unwindVolume: bigint;
33
+ withdrawVolume: bigint;
34
+ exerciseVolume: bigint;
35
+ totalVolume: bigint;
36
+ tradeCount: number;
37
+ }
38
+ export interface OptionParams {
39
+ id: string;
40
+ marketId: bigint;
41
+ strikeLowerLimit: bigint;
42
+ strikeUpperLimit: bigint;
43
+ isPut: boolean;
44
+ collateralPerShare?: bigint;
45
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ import type { OptionMarket, OptionParams } from "./market.js";
2
+ export interface CollateralPosition {
3
+ id: string;
4
+ optionId: string;
5
+ optionMarketId: string;
6
+ totalCollateral: bigint;
7
+ optionsMinted: bigint;
8
+ optionsExercised: bigint;
9
+ premiumEarned: bigint;
10
+ fee: bigint;
11
+ settled: boolean;
12
+ updatedAt: bigint;
13
+ updatedAtBlock: bigint;
14
+ optionMarket?: OptionMarket;
15
+ optionParams?: OptionParams;
16
+ }
17
+ export interface OptionPosition {
18
+ id: string;
19
+ tokenId: bigint;
20
+ address: `0x${string}`;
21
+ optionId: string;
22
+ optionMarketId: string;
23
+ premium: bigint;
24
+ fee: bigint;
25
+ profit: bigint;
26
+ amount: bigint;
27
+ averagePrice: bigint;
28
+ updatedAt: bigint;
29
+ updatedAtBlock: bigint;
30
+ optionMarket?: OptionMarket;
31
+ optionParams?: OptionParams;
32
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
1
+ import type { MarketStrategy, OptionMarket, OptionParams, HourlyVolume, CollateralPosition, OptionPosition, DepositHistory, TransferDepositHistory, PurchaseHistory, TransferPositionHistory, ExerciseHistory, UnwindHistory, SettlementHistory, UserHistories } from "./index.js";
2
+ /**
3
+ * Serialize raw GraphQL query result into MarketStrategy type
4
+ */
5
+ export declare function serializeMarketStrategy(data: any): MarketStrategy;
6
+ /**
7
+ * Serialize raw GraphQL query result into OptionParams type
8
+ */
9
+ export declare function serializeOptionParams(data: any): OptionParams;
10
+ /**
11
+ * Serialize raw GraphQL query result into OptionMarket type
12
+ */
13
+ export declare function serializeOptionMarket(data: any): OptionMarket;
14
+ /**
15
+ * Serialize raw GraphQL query result into HourlyVolume type
16
+ */
17
+ export declare function serializeHourlyVolume(data: any): HourlyVolume;
18
+ /**
19
+ * Serialize raw GraphQL query result into CollateralPosition type
20
+ */
21
+ export declare function serializeCollateralPosition(data: any): CollateralPosition;
22
+ /**
23
+ * Serialize raw GraphQL query result into OptionPosition type
24
+ */
25
+ export declare function serializeOptionPosition(data: any): OptionPosition;
26
+ /**
27
+ * Serialize raw GraphQL query result into DepositHistory type
28
+ */
29
+ export declare function serializeDepositHistory(data: any): DepositHistory;
30
+ /**
31
+ * Serialize raw GraphQL query result into TransferDepositHistory type
32
+ */
33
+ export declare function serializeTransferDepositHistory(data: any): TransferDepositHistory;
34
+ /**
35
+ * Serialize raw GraphQL query result into PurchaseHistory type
36
+ */
37
+ export declare function serializePurchaseHistory(data: any): PurchaseHistory;
38
+ /**
39
+ * Serialize raw GraphQL query result into TransferPositionHistory type
40
+ */
41
+ export declare function serializeTransferPositionHistory(data: any): TransferPositionHistory;
42
+ /**
43
+ * Serialize raw GraphQL query result into ExerciseHistory type
44
+ */
45
+ export declare function serializeExerciseHistory(data: any): ExerciseHistory;
46
+ /**
47
+ * Serialize raw GraphQL query result into UnwindHistory type
48
+ */
49
+ export declare function serializeUnwindHistory(data: any): UnwindHistory;
50
+ /**
51
+ * Serialize raw GraphQL query result into SettlementHistory type
52
+ */
53
+ export declare function serializeSettlementHistory(data: any): SettlementHistory;
54
+ /**
55
+ * Serialize raw GraphQL query result into UserHistories type
56
+ */
57
+ export declare function serializeUserHistories(data: any): UserHistories;