@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.
- package/dist/abi/AggregationRouterV6.abi.json +1186 -0
- package/dist/abi/NativeOrderFactory.abi.json +291 -0
- package/dist/abi/NativeOrderImpl.abi.json +381 -0
- package/dist/abi/limitOrderProtocol.json +63 -0
- package/dist/address.d.ts +13 -0
- package/dist/address.js +32 -0
- package/dist/api/filler.d.ts +109 -0
- package/dist/api/filler.js +289 -0
- package/dist/api/index.d.ts +3 -0
- package/dist/api/index.js +3 -0
- package/dist/api/order-helper.d.ts +59 -0
- package/dist/api/order-helper.js +112 -0
- package/dist/api/orderbook-api.d.ts +36 -0
- package/dist/api/orderbook-api.js +69 -0
- package/dist/bps.d.ts +35 -0
- package/dist/bps.js +52 -0
- package/dist/config/chains.d.ts +50 -0
- package/dist/config/chains.js +21 -0
- package/dist/config/index.d.ts +25 -0
- package/dist/config/index.js +103 -0
- package/dist/config/markets.d.ts +53 -0
- package/dist/config/markets.js +125 -0
- package/dist/constants.d.ts +4 -0
- package/dist/constants.js +30 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +21 -0
- package/dist/limit-order/amounts.d.ts +14 -0
- package/dist/limit-order/amounts.js +19 -0
- package/dist/limit-order/eip712/domain.d.ts +10 -0
- package/dist/limit-order/eip712/domain.js +18 -0
- package/dist/limit-order/eip712/eip712.types.d.ts +23 -0
- package/dist/limit-order/eip712/eip712.types.js +1 -0
- package/dist/limit-order/eip712/index.d.ts +3 -0
- package/dist/limit-order/eip712/index.js +3 -0
- package/dist/limit-order/eip712/order-typed-data-builder.d.ts +6 -0
- package/dist/limit-order/eip712/order-typed-data-builder.js +25 -0
- package/dist/limit-order/extensions/extension-builder.d.ts +35 -0
- package/dist/limit-order/extensions/extension-builder.js +83 -0
- package/dist/limit-order/extensions/extension.d.ts +45 -0
- package/dist/limit-order/extensions/extension.js +108 -0
- package/dist/limit-order/extensions/extension.spec.d.ts +1 -0
- package/dist/limit-order/extensions/extension.spec.js +17 -0
- package/dist/limit-order/extensions/fee-taker/errors.d.ts +2 -0
- package/dist/limit-order/extensions/fee-taker/errors.js +2 -0
- package/dist/limit-order/extensions/fee-taker/fee-calculator.d.ts +40 -0
- package/dist/limit-order/extensions/fee-taker/fee-calculator.js +83 -0
- package/dist/limit-order/extensions/fee-taker/fee-calculator.spec.d.ts +1 -0
- package/dist/limit-order/extensions/fee-taker/fee-calculator.spec.js +14 -0
- package/dist/limit-order/extensions/fee-taker/fee-taker.extension.d.ts +130 -0
- package/dist/limit-order/extensions/fee-taker/fee-taker.extension.js +249 -0
- package/dist/limit-order/extensions/fee-taker/fee-taker.extension.spec.d.ts +1 -0
- package/dist/limit-order/extensions/fee-taker/fee-taker.extension.spec.js +72 -0
- package/dist/limit-order/extensions/fee-taker/fees.d.ts +19 -0
- package/dist/limit-order/extensions/fee-taker/fees.js +36 -0
- package/dist/limit-order/extensions/fee-taker/index.d.ts +7 -0
- package/dist/limit-order/extensions/fee-taker/index.js +7 -0
- package/dist/limit-order/extensions/fee-taker/integrator-fee.d.ts +13 -0
- package/dist/limit-order/extensions/fee-taker/integrator-fee.js +28 -0
- package/dist/limit-order/extensions/fee-taker/resolver-fee.d.ts +19 -0
- package/dist/limit-order/extensions/fee-taker/resolver-fee.js +28 -0
- package/dist/limit-order/extensions/fee-taker/types.d.ts +4 -0
- package/dist/limit-order/extensions/fee-taker/types.js +1 -0
- package/dist/limit-order/extensions/fee-taker/whitelist-half-address.d.ts +18 -0
- package/dist/limit-order/extensions/fee-taker/whitelist-half-address.js +26 -0
- package/dist/limit-order/extensions/index.d.ts +3 -0
- package/dist/limit-order/extensions/index.js +3 -0
- package/dist/limit-order/index.d.ts +10 -0
- package/dist/limit-order/index.js +10 -0
- package/dist/limit-order/interaction.d.ts +16 -0
- package/dist/limit-order/interaction.js +25 -0
- package/dist/limit-order/interaction.spec.d.ts +1 -0
- package/dist/limit-order/interaction.spec.js +8 -0
- package/dist/limit-order/limit-order-with-fee.d.ts +59 -0
- package/dist/limit-order/limit-order-with-fee.js +94 -0
- package/dist/limit-order/limit-order-with-fee.spec.d.ts +1 -0
- package/dist/limit-order/limit-order-with-fee.spec.js +31 -0
- package/dist/limit-order/limit-order.d.ts +63 -0
- package/dist/limit-order/limit-order.js +211 -0
- package/dist/limit-order/limit-order.spec.d.ts +1 -0
- package/dist/limit-order/limit-order.spec.js +103 -0
- package/dist/limit-order/maker-traits.d.ts +200 -0
- package/dist/limit-order/maker-traits.js +309 -0
- package/dist/limit-order/maker-traits.spec.d.ts +1 -0
- package/dist/limit-order/maker-traits.spec.js +102 -0
- package/dist/limit-order/source-track.d.ts +1 -0
- package/dist/limit-order/source-track.js +22 -0
- package/dist/limit-order/taker-traits.d.ts +141 -0
- package/dist/limit-order/taker-traits.js +207 -0
- package/dist/limit-order/types.d.ts +24 -0
- package/dist/limit-order/types.js +1 -0
- package/dist/limit-order/verification.d.ts +16 -0
- package/dist/limit-order/verification.js +108 -0
- package/dist/limit-order-contract/index.d.ts +4 -0
- package/dist/limit-order-contract/index.js +4 -0
- package/dist/limit-order-contract/limit-order-contract.d.ts +34 -0
- package/dist/limit-order-contract/limit-order-contract.js +79 -0
- package/dist/limit-order-contract/native-order-factory.d.ts +10 -0
- package/dist/limit-order-contract/native-order-factory.js +22 -0
- package/dist/limit-order-contract/native-order-impl.d.ts +10 -0
- package/dist/limit-order-contract/native-order-impl.js +24 -0
- package/dist/limit-order-contract/proxy-factory.d.ts +20 -0
- package/dist/limit-order-contract/proxy-factory.js +32 -0
- package/dist/limit-order-contract/proxy-factory.spec.d.ts +1 -0
- package/dist/limit-order-contract/proxy-factory.spec.js +16 -0
- package/dist/limit-order-contract/types.d.ts +6 -0
- package/dist/limit-order-contract/types.js +1 -0
- package/dist/ponder/client/index.d.ts +23 -0
- package/dist/ponder/client/index.js +44 -0
- package/dist/ponder/client/queries/markets.d.ts +30 -0
- package/dist/ponder/client/queries/markets.js +200 -0
- package/dist/ponder/client/queries/positions.d.ts +13 -0
- package/dist/ponder/client/queries/positions.js +406 -0
- package/dist/ponder/client/types/history.d.ts +94 -0
- package/dist/ponder/client/types/history.js +1 -0
- package/dist/ponder/client/types/index.d.ts +5 -0
- package/dist/ponder/client/types/index.js +5 -0
- package/dist/ponder/client/types/market.d.ts +45 -0
- package/dist/ponder/client/types/market.js +1 -0
- package/dist/ponder/client/types/position.d.ts +32 -0
- package/dist/ponder/client/types/position.js +1 -0
- package/dist/ponder/client/types/serializers.d.ts +57 -0
- package/dist/ponder/client/types/serializers.js +248 -0
- package/dist/ponder/client/types/user.d.ts +5 -0
- package/dist/ponder/client/types/user.js +1 -0
- package/dist/ponder/client/utils.d.ts +1 -0
- package/dist/ponder/client/utils.js +32 -0
- package/dist/ponder/generated/index.d.ts +18 -0
- package/dist/ponder/generated/index.js +20 -0
- package/dist/ponder/generated/runtime/batcher.d.ts +105 -0
- package/dist/ponder/generated/runtime/batcher.js +188 -0
- package/dist/ponder/generated/runtime/createClient.d.ts +17 -0
- package/dist/ponder/generated/runtime/createClient.js +24 -0
- package/dist/ponder/generated/runtime/error.d.ts +18 -0
- package/dist/ponder/generated/runtime/error.js +15 -0
- package/dist/ponder/generated/runtime/fetcher.d.ts +10 -0
- package/dist/ponder/generated/runtime/fetcher.js +67 -0
- package/dist/ponder/generated/runtime/generateGraphqlOperation.d.ts +30 -0
- package/dist/ponder/generated/runtime/generateGraphqlOperation.js +128 -0
- package/dist/ponder/generated/runtime/index.d.ts +11 -0
- package/dist/ponder/generated/runtime/index.js +10 -0
- package/dist/ponder/generated/runtime/linkTypeMap.d.ts +9 -0
- package/dist/ponder/generated/runtime/linkTypeMap.js +83 -0
- package/dist/ponder/generated/runtime/typeSelection.d.ts +28 -0
- package/dist/ponder/generated/runtime/typeSelection.js +3 -0
- package/dist/ponder/generated/runtime/types.d.ts +55 -0
- package/dist/ponder/generated/runtime/types.js +2 -0
- package/dist/ponder/generated/schema.d.ts +3026 -0
- package/dist/ponder/generated/schema.js +222 -0
- package/dist/ponder/generated/types.d.ts +2393 -0
- package/dist/ponder/generated/types.js +6915 -0
- package/dist/ponder/index.d.ts +2 -0
- package/dist/ponder/index.js +2 -0
- package/dist/ponder/types.d.ts +3 -0
- package/dist/ponder/types.js +1 -0
- package/dist/rfq-order/index.d.ts +1 -0
- package/dist/rfq-order/index.js +1 -0
- package/dist/rfq-order/rfq-order.d.ts +21 -0
- package/dist/rfq-order/rfq-order.js +22 -0
- package/dist/rfq-order/rfq-order.spec.d.ts +1 -0
- package/dist/rfq-order/rfq-order.spec.js +27 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.js +2 -0
- package/dist/shared/types.d.ts +79 -0
- package/dist/shared/types.js +12 -0
- package/dist/shared/utils.d.ts +7 -0
- package/dist/shared/utils.js +19 -0
- package/dist/sync/clients/balance-client.d.ts +41 -0
- package/dist/sync/clients/balance-client.js +139 -0
- package/dist/sync/clients/base-client.d.ts +47 -0
- package/dist/sync/clients/base-client.js +154 -0
- package/dist/sync/clients/order-client.d.ts +18 -0
- package/dist/sync/clients/order-client.js +151 -0
- package/dist/sync/index.d.ts +5 -0
- package/dist/sync/index.js +3 -0
- package/dist/sync/redis-ws-client.d.ts +18 -0
- package/dist/sync/redis-ws-client.js +88 -0
- package/dist/sync/types.d.ts +20 -0
- package/dist/sync/types.js +1 -0
- package/dist/utils/mul-div.d.ts +5 -0
- package/dist/utils/mul-div.js +13 -0
- package/dist/utils/orderUtils.d.ts +19 -0
- package/dist/utils/orderUtils.js +51 -0
- package/dist/utils/rand-bigint.d.ts +1 -0
- package/dist/utils/rand-bigint.js +13 -0
- package/dist/utils/rand-bigint.spec.d.ts +1 -0
- package/dist/utils/rand-bigint.spec.js +11 -0
- package/dist/validations.d.ts +1 -0
- package/dist/validations.js +3 -0
- 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,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;
|