@reptilianhq/chain-data-contract 0.10.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/README.md +123 -0
- package/chain-data-operations.graphql +98 -0
- package/chain-data-persisted-manifest.json +78 -0
- package/chain-data-schema.graphql +561 -0
- package/dist/index.d.ts +131 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/operations.generated.d.ts +169 -0
- package/dist/operations.generated.d.ts.map +1 -0
- package/dist/operations.generated.js +181 -0
- package/dist/operations.generated.js.map +1 -0
- package/dist/replay-fixtures.d.ts +114 -0
- package/dist/replay-fixtures.d.ts.map +1 -0
- package/dist/replay-fixtures.js +130 -0
- package/dist/replay-fixtures.js.map +1 -0
- package/dist/types.generated.d.ts +1052 -0
- package/dist/types.generated.d.ts.map +1 -0
- package/dist/types.generated.js +2 -0
- package/dist/types.generated.js.map +1 -0
- package/package.json +52 -0
- package/src/index.ts +188 -0
- package/src/operations.generated.ts +187 -0
- package/src/replay-fixtures.ts +200 -0
- package/src/types.generated.ts +149 -0
|
@@ -0,0 +1,561 @@
|
|
|
1
|
+
"""
|
|
2
|
+
An EVM address normalized to lowercase by the gateway.
|
|
3
|
+
"""
|
|
4
|
+
scalar Address
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
An opaque cursor returned by pageInfo. Consumers must return it unchanged.
|
|
8
|
+
"""
|
|
9
|
+
scalar Cursor
|
|
10
|
+
|
|
11
|
+
"""
|
|
12
|
+
An exact quote-token amount serialized as { wei: String!, decimal: String! }.
|
|
13
|
+
The legacy `wei` key contains exact raw base units for the identified quote
|
|
14
|
+
asset, including non-18-decimal ERC-20 assets. Never coerce either value to a
|
|
15
|
+
JavaScript number.
|
|
16
|
+
"""
|
|
17
|
+
scalar ExactQuoteAmount
|
|
18
|
+
|
|
19
|
+
"""
|
|
20
|
+
An exact launch-token amount serialized as { raw: String!, decimal: String! }.
|
|
21
|
+
Never coerce raw or decimal values to a JavaScript number.
|
|
22
|
+
"""
|
|
23
|
+
scalar ExactTokenAmount
|
|
24
|
+
|
|
25
|
+
"""
|
|
26
|
+
An exact decimal string. Consumers choose display precision at the UI boundary.
|
|
27
|
+
"""
|
|
28
|
+
scalar Decimal
|
|
29
|
+
|
|
30
|
+
"""An exact amount denominated in one explicit ERC-20 quote asset."""
|
|
31
|
+
type ExactAssetAmount {
|
|
32
|
+
token: Address!
|
|
33
|
+
symbol: String
|
|
34
|
+
raw: String!
|
|
35
|
+
decimals: Int
|
|
36
|
+
decimal: Decimal
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type QuoteAssetVolume {
|
|
40
|
+
amount: ExactAssetAmount!
|
|
41
|
+
tradeCount: Int!
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
enum PonsLifecyclePhase {
|
|
45
|
+
bonding
|
|
46
|
+
swept
|
|
47
|
+
pool_created
|
|
48
|
+
rescued
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
type PonsLaunchState {
|
|
52
|
+
lifecyclePhase: PonsLifecyclePhase!
|
|
53
|
+
curve: Address!
|
|
54
|
+
launchConfigId: String!
|
|
55
|
+
configSupply: ExactTokenAmount!
|
|
56
|
+
phantomQuote: ExactAssetAmount!
|
|
57
|
+
configEnabledAtLaunchBlock: Boolean!
|
|
58
|
+
graduationThreshold: ExactAssetAmount!
|
|
59
|
+
curveFeeBps: Int!
|
|
60
|
+
creatorTaxBps: Int!
|
|
61
|
+
buybackEnabled: Boolean!
|
|
62
|
+
buybackController: Address
|
|
63
|
+
poolFeePips: Int!
|
|
64
|
+
tickSpacing: Int!
|
|
65
|
+
creatorFeeRecipient: Address!
|
|
66
|
+
protocolFeeRecipient: Address!
|
|
67
|
+
protocolFeeShareBps: Int!
|
|
68
|
+
buybackBurnBps: Int!
|
|
69
|
+
hookFeeBps: Int!
|
|
70
|
+
maxInternalPriceImpactBps: Int!
|
|
71
|
+
sweptQuote: ExactAssetAmount!
|
|
72
|
+
sweptTokens: ExactTokenAmount!
|
|
73
|
+
sweptAt: String
|
|
74
|
+
poolPositionId: String
|
|
75
|
+
rescueRecipient: Address
|
|
76
|
+
rescueQuote: ExactAssetAmount
|
|
77
|
+
rescueTokens: ExactTokenAmount
|
|
78
|
+
lastUpdatedBlock: String!
|
|
79
|
+
lastUpdatedAt: String!
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
enum LaunchPhase {
|
|
83
|
+
BONDING
|
|
84
|
+
GRADUATED
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
enum PriceVenue {
|
|
88
|
+
CANONICAL
|
|
89
|
+
ALL
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
enum IndexedLaunchPhase {
|
|
93
|
+
bonding
|
|
94
|
+
graduated
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
enum TradeVenue {
|
|
98
|
+
curve
|
|
99
|
+
amm
|
|
100
|
+
lb
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
enum TradeSide {
|
|
104
|
+
buy
|
|
105
|
+
sell
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
type PageInfo {
|
|
109
|
+
endCursor: Cursor
|
|
110
|
+
hasNextPage: Boolean!
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
type LaunchSummary {
|
|
114
|
+
id: ID!
|
|
115
|
+
provider: LaunchProvider!
|
|
116
|
+
pons: PonsLaunchState
|
|
117
|
+
token: Address!
|
|
118
|
+
quoteToken: Address!
|
|
119
|
+
name: String
|
|
120
|
+
symbol: String
|
|
121
|
+
creator: Address!
|
|
122
|
+
creatorBps: Int!
|
|
123
|
+
curveFeeBps: Int!
|
|
124
|
+
payoutWallet: Address!
|
|
125
|
+
metadataURI: String!
|
|
126
|
+
phase: IndexedLaunchPhase!
|
|
127
|
+
pool: Address
|
|
128
|
+
amountRaisedQuote: ExactQuoteAmount!
|
|
129
|
+
amountRaisedQuoteAsset: ExactAssetAmount!
|
|
130
|
+
raiseThresholdQuote: ExactQuoteAmount!
|
|
131
|
+
raiseThresholdQuoteAsset: ExactAssetAmount!
|
|
132
|
+
curveProgressPct: Decimal
|
|
133
|
+
holderCount: Int!
|
|
134
|
+
holderCountPartial: Boolean!
|
|
135
|
+
volume24hQuote: ExactQuoteAmount!
|
|
136
|
+
volume24hQuoteAsset: ExactAssetAmount!
|
|
137
|
+
anchoredVolume24hQuote: ExactQuoteAmount!
|
|
138
|
+
anchoredVolume24hQuoteAsset: ExactAssetAmount!
|
|
139
|
+
volume24hHoldingsAnchored: Boolean!
|
|
140
|
+
volume24hPartial: Boolean!
|
|
141
|
+
volumeWindowSeconds: Int!
|
|
142
|
+
totalCanonicalVolumeQuote: ExactQuoteAmount!
|
|
143
|
+
totalCanonicalVolumeQuoteAsset: ExactAssetAmount!
|
|
144
|
+
volumeByQuoteAsset: [QuoteAssetVolume!]!
|
|
145
|
+
lbVolumeByQuoteAsset: [QuoteAssetVolume!]!
|
|
146
|
+
"""Legacy 18-decimal projection. Use lbVolumeByQuoteAsset for LB accounting."""
|
|
147
|
+
totalLbVolumeQuote: ExactQuoteAmount!
|
|
148
|
+
tradeCount: Int!
|
|
149
|
+
lastCanonicalPrice: Decimal
|
|
150
|
+
lastCanonicalPriceBlock: Int
|
|
151
|
+
createdBlock: Int!
|
|
152
|
+
createdTimestamp: Int!
|
|
153
|
+
graduatedBlock: Int
|
|
154
|
+
graduatedTimestamp: Int
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
enum LaunchProvider {
|
|
158
|
+
launchonblock
|
|
159
|
+
pons
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
type LaunchConnection {
|
|
163
|
+
nodes: [LaunchSummary!]!
|
|
164
|
+
pageInfo: PageInfo!
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
type LaunchPool {
|
|
168
|
+
address: Address!
|
|
169
|
+
poolType: String!
|
|
170
|
+
token0: Address!
|
|
171
|
+
token1: Address!
|
|
172
|
+
quoteIsToken1: Boolean!
|
|
173
|
+
quoteToken: Address!
|
|
174
|
+
ignoredForRouting: Boolean!
|
|
175
|
+
binStep: String
|
|
176
|
+
reserveToken: ExactTokenAmount
|
|
177
|
+
reserveQuote: ExactQuoteAmount
|
|
178
|
+
tvlQuote: ExactQuoteAmount
|
|
179
|
+
reserveQuoteAsset: ExactAssetAmount
|
|
180
|
+
tvlQuoteAsset: ExactAssetAmount
|
|
181
|
+
reserveSource: String!
|
|
182
|
+
createdBlock: Int!
|
|
183
|
+
lastUpdatedBlock: Int!
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
enum ExternalMarketProtocol {
|
|
187
|
+
uniswap_v2
|
|
188
|
+
uniswap_v3
|
|
189
|
+
uniswap_v4
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
"""A Uniswap market whose token0 or token1 is a launch from this exact deployment."""
|
|
193
|
+
type LaunchExternalMarket {
|
|
194
|
+
id: ID!
|
|
195
|
+
protocol: ExternalMarketProtocol!
|
|
196
|
+
"""The v2/v3 factory or v4 PoolManager that emitted the creation event."""
|
|
197
|
+
venueAddress: Address!
|
|
198
|
+
"""The pair/pool contract for v2/v3. V4 pools live inside PoolManager and have no address."""
|
|
199
|
+
poolAddress: Address
|
|
200
|
+
"""The bytes32 PoolId for v4. Null for address-identified v2/v3 markets."""
|
|
201
|
+
poolId: String
|
|
202
|
+
token0: Address!
|
|
203
|
+
token1: Address!
|
|
204
|
+
feePips: Int
|
|
205
|
+
tickSpacing: Int
|
|
206
|
+
hooks: Address
|
|
207
|
+
createdBlock: Int!
|
|
208
|
+
createdTransactionHash: String!
|
|
209
|
+
createdLogIndex: Int!
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
type LaunchTrade {
|
|
213
|
+
id: ID!
|
|
214
|
+
venue: TradeVenue!
|
|
215
|
+
side: TradeSide!
|
|
216
|
+
sender: Address!
|
|
217
|
+
recipient: Address!
|
|
218
|
+
attributedWallet: Address
|
|
219
|
+
quoteToken: Address!
|
|
220
|
+
quoteAmount: ExactQuoteAmount!
|
|
221
|
+
quoteAmountAsset: ExactAssetAmount!
|
|
222
|
+
tokenAmount: ExactTokenAmount!
|
|
223
|
+
price: Decimal
|
|
224
|
+
blockNumber: Int!
|
|
225
|
+
blockTimestamp: Int!
|
|
226
|
+
transactionHash: String!
|
|
227
|
+
logIndex: Int!
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
type LaunchFeeEvent {
|
|
231
|
+
id: ID!
|
|
232
|
+
kind: String!
|
|
233
|
+
economicType: String!
|
|
234
|
+
pair: Address
|
|
235
|
+
quoteToken: Address!
|
|
236
|
+
creatorTokenAmount: ExactTokenAmount!
|
|
237
|
+
creatorQuoteAmount: ExactQuoteAmount!
|
|
238
|
+
creatorQuoteAmountAsset: ExactAssetAmount!
|
|
239
|
+
protocolTokenAmount: ExactTokenAmount!
|
|
240
|
+
protocolQuoteAmount: ExactQuoteAmount!
|
|
241
|
+
protocolQuoteAmountAsset: ExactAssetAmount!
|
|
242
|
+
payoutAmount: ExactQuoteAmount!
|
|
243
|
+
payoutStatus: String
|
|
244
|
+
blockNumber: Int!
|
|
245
|
+
blockTimestamp: Int!
|
|
246
|
+
transactionHash: String!
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
type SupplySlice {
|
|
250
|
+
amount: ExactTokenAmount!
|
|
251
|
+
"""Floor(amount * 10_000 / originalSupply). Exact raw amounts remain authoritative."""
|
|
252
|
+
basisPoints: Int!
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
type SupplyDistribution {
|
|
256
|
+
originalSupply: ExactTokenAmount!
|
|
257
|
+
bondingCurveCustody: SupplySlice!
|
|
258
|
+
graduationPoolLiquidity: SupplySlice!
|
|
259
|
+
lbLiquidity: SupplySlice!
|
|
260
|
+
"""Pool token custody excluded from tradable reserves, including accrued protocol fees."""
|
|
261
|
+
poolNonLiquidityCustody: SupplySlice!
|
|
262
|
+
lockedDead: SupplySlice!
|
|
263
|
+
"""Known Launchpad/Router custody outside the active bonding-curve inventory."""
|
|
264
|
+
otherProtocolCustody: SupplySlice!
|
|
265
|
+
"""All supply outside known protocol and dead-address custody."""
|
|
266
|
+
userHeld: SupplySlice!
|
|
267
|
+
reconciled: Boolean!
|
|
268
|
+
partial: Boolean!
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
type LaunchDetail {
|
|
272
|
+
id: ID!
|
|
273
|
+
provider: LaunchProvider!
|
|
274
|
+
pons: PonsLaunchState
|
|
275
|
+
token: Address!
|
|
276
|
+
quoteToken: Address!
|
|
277
|
+
name: String
|
|
278
|
+
symbol: String
|
|
279
|
+
creator: Address!
|
|
280
|
+
creatorBps: Int!
|
|
281
|
+
curveFeeBps: Int!
|
|
282
|
+
payoutWallet: Address!
|
|
283
|
+
metadataURI: String!
|
|
284
|
+
phase: IndexedLaunchPhase!
|
|
285
|
+
pool: Address
|
|
286
|
+
amountRaisedQuote: ExactQuoteAmount!
|
|
287
|
+
amountRaisedQuoteAsset: ExactAssetAmount!
|
|
288
|
+
raiseThresholdQuote: ExactQuoteAmount!
|
|
289
|
+
raiseThresholdQuoteAsset: ExactAssetAmount!
|
|
290
|
+
curveProgressPct: Decimal
|
|
291
|
+
holderCount: Int!
|
|
292
|
+
holderCountPartial: Boolean!
|
|
293
|
+
volume24hQuote: ExactQuoteAmount!
|
|
294
|
+
volume24hQuoteAsset: ExactAssetAmount!
|
|
295
|
+
anchoredVolume24hQuote: ExactQuoteAmount!
|
|
296
|
+
anchoredVolume24hQuoteAsset: ExactAssetAmount!
|
|
297
|
+
volume24hHoldingsAnchored: Boolean!
|
|
298
|
+
volume24hPartial: Boolean!
|
|
299
|
+
volumeWindowSeconds: Int!
|
|
300
|
+
totalCanonicalVolumeQuote: ExactQuoteAmount!
|
|
301
|
+
totalCanonicalVolumeQuoteAsset: ExactAssetAmount!
|
|
302
|
+
volumeByQuoteAsset: [QuoteAssetVolume!]!
|
|
303
|
+
lbVolumeByQuoteAsset: [QuoteAssetVolume!]!
|
|
304
|
+
"""Legacy 18-decimal projection. Use lbVolumeByQuoteAsset for LB accounting."""
|
|
305
|
+
totalLbVolumeQuote: ExactQuoteAmount!
|
|
306
|
+
tradeCount: Int!
|
|
307
|
+
lastCanonicalPrice: Decimal
|
|
308
|
+
lastCanonicalPriceBlock: Int
|
|
309
|
+
createdBlock: Int!
|
|
310
|
+
createdTimestamp: Int!
|
|
311
|
+
graduatedBlock: Int
|
|
312
|
+
graduatedTimestamp: Int
|
|
313
|
+
pools: [LaunchPool!]!
|
|
314
|
+
poolsPartial: Boolean!
|
|
315
|
+
externalMarkets: [LaunchExternalMarket!]!
|
|
316
|
+
externalMarketsPartial: Boolean!
|
|
317
|
+
supplyDistribution: SupplyDistribution!
|
|
318
|
+
recentTrades: [LaunchTrade!]!
|
|
319
|
+
fees: [LaunchFeeEvent!]!
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
type TrendingLaunch {
|
|
323
|
+
token: Address!
|
|
324
|
+
name: String
|
|
325
|
+
symbol: String
|
|
326
|
+
phase: IndexedLaunchPhase!
|
|
327
|
+
lastCanonicalPrice: Decimal
|
|
328
|
+
recentVolumeQuote: ExactQuoteAmount!
|
|
329
|
+
rankVolumeQuote: ExactQuoteAmount!
|
|
330
|
+
retainedValueQuote: ExactQuoteAmount
|
|
331
|
+
holdingsAnchored: Boolean!
|
|
332
|
+
distinctTraders: Int!
|
|
333
|
+
recentTrades: Int!
|
|
334
|
+
changePct: Decimal!
|
|
335
|
+
windowSeconds: Int!
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
type TrendingLaunchResult {
|
|
339
|
+
nodes: [TrendingLaunch!]!
|
|
340
|
+
partial: Boolean!
|
|
341
|
+
minDistinctTraders: Int!
|
|
342
|
+
maxTraderPct: Int!
|
|
343
|
+
holdingsMultiple: Int!
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
type LaunchPricePoint {
|
|
347
|
+
cursor: Cursor!
|
|
348
|
+
timestamp: Int!
|
|
349
|
+
blockNumber: Int!
|
|
350
|
+
price: Decimal
|
|
351
|
+
volumeQuote: ExactQuoteAmount!
|
|
352
|
+
volumeQuoteAsset: ExactAssetAmount!
|
|
353
|
+
venue: TradeVenue!
|
|
354
|
+
side: TradeSide!
|
|
355
|
+
transactionHash: String!
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
type LaunchPriceSeriesConnection {
|
|
359
|
+
nodes: [LaunchPricePoint!]!
|
|
360
|
+
pageInfo: PageInfo!
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
type WalletLaunchPosition {
|
|
364
|
+
"""CAIP-style chain-local token identity used by portfolio observation consumers."""
|
|
365
|
+
tokenIdentity: ID!
|
|
366
|
+
token: Address!
|
|
367
|
+
name: String
|
|
368
|
+
symbol: String
|
|
369
|
+
decimals: Int
|
|
370
|
+
phase: IndexedLaunchPhase!
|
|
371
|
+
balance: ExactTokenAmount!
|
|
372
|
+
"""Exact display amount when token decimals are known."""
|
|
373
|
+
amountDisplay: Decimal
|
|
374
|
+
tokenBalance: String!
|
|
375
|
+
"""Exact quote asset used by this launch and all quote-denominated position fields."""
|
|
376
|
+
quoteToken: Address!
|
|
377
|
+
valueQuote: ExactQuoteAmount!
|
|
378
|
+
valueQuoteAsset: ExactAssetAmount!
|
|
379
|
+
investedQuote: ExactQuoteAmount!
|
|
380
|
+
investedQuoteAsset: ExactAssetAmount!
|
|
381
|
+
proceedsQuote: ExactQuoteAmount!
|
|
382
|
+
proceedsQuoteAsset: ExactAssetAmount!
|
|
383
|
+
pnlQuote: ExactQuoteAmount!
|
|
384
|
+
pnlQuoteAsset: ExactAssetAmount!
|
|
385
|
+
lastCanonicalPrice: Decimal
|
|
386
|
+
"""Exact ERC-20 quote asset for lastCanonicalPrice; null when price is unavailable."""
|
|
387
|
+
lastCanonicalPriceQuoteToken: Address
|
|
388
|
+
"""Display quote units per display token unit, normalized with both ERC-20 decimal scales."""
|
|
389
|
+
lastCanonicalUnitPrice: Decimal
|
|
390
|
+
lastCanonicalPriceBlock: String
|
|
391
|
+
"""Timestamp of the exact canonical trade that produced lastCanonicalPrice."""
|
|
392
|
+
lastCanonicalPriceObservedAt: String
|
|
393
|
+
"""Deterministic watermark of the indexed wallet balance row."""
|
|
394
|
+
sourceWatermark: String!
|
|
395
|
+
observedAtBlock: String!
|
|
396
|
+
observedAt: String!
|
|
397
|
+
buyCount: Int!
|
|
398
|
+
sellCount: Int!
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
type WalletLaunchPositionTotals {
|
|
402
|
+
"""Legacy wrapped-native-only totals. Null when the portfolio contains another quote asset."""
|
|
403
|
+
valueQuote: ExactQuoteAmount!
|
|
404
|
+
investedQuote: ExactQuoteAmount!
|
|
405
|
+
proceedsQuote: ExactQuoteAmount!
|
|
406
|
+
pnlQuote: ExactQuoteAmount!
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
type WalletLaunchPositionAssetTotals {
|
|
410
|
+
quoteToken: Address!
|
|
411
|
+
valueQuoteAsset: ExactAssetAmount!
|
|
412
|
+
investedQuoteAsset: ExactAssetAmount!
|
|
413
|
+
proceedsQuoteAsset: ExactAssetAmount!
|
|
414
|
+
pnlQuoteAsset: ExactAssetAmount!
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
"""Indexer checkpoint observed by the gateway while capturing one bounded page."""
|
|
418
|
+
type PortfolioObservationWatermark {
|
|
419
|
+
sourceWatermark: String!
|
|
420
|
+
observedAtBlock: String!
|
|
421
|
+
observedAt: String!
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
type WalletLaunchPositionResult {
|
|
425
|
+
wallet: Address!
|
|
426
|
+
partial: Boolean!
|
|
427
|
+
observationWatermark: PortfolioObservationWatermark
|
|
428
|
+
positions: [WalletLaunchPosition!]!
|
|
429
|
+
pageInfo: PageInfo!
|
|
430
|
+
"""Legacy wrapped-native totals, withheld for partial scans or portfolios containing another quote asset."""
|
|
431
|
+
totals: WalletLaunchPositionTotals
|
|
432
|
+
"""Complete totals grouped by exact quote asset; null when the totals scan is partial."""
|
|
433
|
+
totalsByQuoteAsset: [WalletLaunchPositionAssetTotals!]
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
"""An LB pair indexed from the configured factory, whether or not either token belongs to the configured launchpad deployment."""
|
|
437
|
+
type LiquidityBookPair {
|
|
438
|
+
address: Address!
|
|
439
|
+
token0: Address!
|
|
440
|
+
token1: Address!
|
|
441
|
+
binStep: String!
|
|
442
|
+
activeBinId: String
|
|
443
|
+
createdBlock: String!
|
|
444
|
+
lastUpdatedBlock: String!
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
"""Event-folded ERC-1155 receipt ownership for one wallet in one LB pair."""
|
|
448
|
+
type LiquidityBookPosition {
|
|
449
|
+
poolAddress: Address!
|
|
450
|
+
walletAddress: Address!
|
|
451
|
+
activeBinCount: String!
|
|
452
|
+
totalReceiptBalance: String!
|
|
453
|
+
lastUpdatedBlock: String!
|
|
454
|
+
lastUpdatedBlockHash: String!
|
|
455
|
+
lastUpdatedTimestamp: String!
|
|
456
|
+
lastUpdatedTransactionHash: String!
|
|
457
|
+
pair: LiquidityBookPair
|
|
458
|
+
"""Exact checkpoint-bound underlying assets; null unless every active bin is resolved."""
|
|
459
|
+
underlyingAssets: [PortfolioUnderlyingAsset!]
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
type PortfolioUnderlyingAsset {
|
|
463
|
+
tokenIdentity: ID!
|
|
464
|
+
token: Address!
|
|
465
|
+
decimals: Int!
|
|
466
|
+
amountRaw: String!
|
|
467
|
+
amountDisplay: Decimal!
|
|
468
|
+
lastCanonicalPrice: Decimal
|
|
469
|
+
lastCanonicalPriceQuoteToken: Address
|
|
470
|
+
lastCanonicalUnitPrice: Decimal
|
|
471
|
+
lastCanonicalPriceBlock: String
|
|
472
|
+
lastCanonicalPriceObservedAt: String
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
type WalletLiquidityBookPositionResult {
|
|
476
|
+
wallet: Address!
|
|
477
|
+
partial: Boolean!
|
|
478
|
+
observationWatermark: PortfolioObservationWatermark
|
|
479
|
+
positions: [LiquidityBookPosition!]!
|
|
480
|
+
pageInfo: PageInfo!
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
type LiquidityBookPositionBin {
|
|
484
|
+
cursor: Cursor!
|
|
485
|
+
binId: String!
|
|
486
|
+
receiptBalance: String!
|
|
487
|
+
lastUpdatedBlock: String!
|
|
488
|
+
lastUpdatedBlockHash: String!
|
|
489
|
+
lastUpdatedTimestamp: String!
|
|
490
|
+
lastUpdatedTransactionHash: String!
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
type LiquidityBookPositionDetail {
|
|
494
|
+
position: LiquidityBookPosition!
|
|
495
|
+
bins: [LiquidityBookPositionBin!]!
|
|
496
|
+
binsPageInfo: PageInfo!
|
|
497
|
+
partial: Boolean!
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
type ProtocolStats {
|
|
501
|
+
launched: Int!
|
|
502
|
+
graduated: Int!
|
|
503
|
+
bonding: Int!
|
|
504
|
+
poolCount: Int!
|
|
505
|
+
tradeCount: Int!
|
|
506
|
+
tvlQuote: ExactQuoteAmount
|
|
507
|
+
tvlPartial: Boolean!
|
|
508
|
+
volumePartial: Boolean!
|
|
509
|
+
totalVolumeQuote: ExactQuoteAmount
|
|
510
|
+
curveVolumeQuote: ExactQuoteAmount
|
|
511
|
+
ammVolumeQuote: ExactQuoteAmount
|
|
512
|
+
lbVolumeQuote: ExactQuoteAmount
|
|
513
|
+
volumeByQuoteAsset: [QuoteAssetVolume!]!
|
|
514
|
+
lbVolumeByQuoteAsset: [QuoteAssetVolume!]!
|
|
515
|
+
lastIndexedBlock: Int!
|
|
516
|
+
lastUpdatedTimestamp: Int!
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
type ChainDataFreshness {
|
|
520
|
+
deploymentId: ID!
|
|
521
|
+
healthy: Boolean!
|
|
522
|
+
backfilling: Boolean!
|
|
523
|
+
chainId: Int!
|
|
524
|
+
launchpadAddress: Address!
|
|
525
|
+
startBlock: Int!
|
|
526
|
+
chainHead: Int!
|
|
527
|
+
indexedHead: Int!
|
|
528
|
+
sourceHead: Int!
|
|
529
|
+
blockLag: Int!
|
|
530
|
+
configuredBlockLag: Int!
|
|
531
|
+
lastProcessedAt: String
|
|
532
|
+
hasuraReachable: Boolean!
|
|
533
|
+
rpcReachable: Boolean!
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
enum EthUsdPriceSource {
|
|
537
|
+
WETH_USDG_SPOT
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
type EthUsdPrice {
|
|
541
|
+
price: Decimal!
|
|
542
|
+
source: EthUsdPriceSource!
|
|
543
|
+
observedAt: String!
|
|
544
|
+
observedBlock: String!
|
|
545
|
+
sourceChainId: Int!
|
|
546
|
+
pair: Address!
|
|
547
|
+
reserveTimestamp: Int!
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
type Query {
|
|
551
|
+
launches(deploymentId: ID!, phase: LaunchPhase, first: Int!, after: String): LaunchConnection!
|
|
552
|
+
launch(deploymentId: ID!, token: Address!): LaunchDetail
|
|
553
|
+
trendingLaunches(deploymentId: ID!, first: Int!): TrendingLaunchResult!
|
|
554
|
+
launchPriceSeries(deploymentId: ID!, token: Address!, venue: PriceVenue!, first: Int!, after: String): LaunchPriceSeriesConnection!
|
|
555
|
+
walletLaunchPositions(deploymentId: ID!, wallet: Address!, first: Int!, after: String): WalletLaunchPositionResult!
|
|
556
|
+
walletLiquidityBookPositions(deploymentId: ID!, wallet: Address!, first: Int!, after: String): WalletLiquidityBookPositionResult!
|
|
557
|
+
liquidityBookPosition(deploymentId: ID!, wallet: Address!, pool: Address!, binFirst: Int!, binsAfter: String): LiquidityBookPositionDetail
|
|
558
|
+
protocolStats(deploymentId: ID!): ProtocolStats!
|
|
559
|
+
chainDataFreshness(deploymentId: ID!): ChainDataFreshness!
|
|
560
|
+
ethUsdPrice: EthUsdPrice!
|
|
561
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { ChainDataOperationName as GeneratedOperationName } from './operations.generated.js';
|
|
2
|
+
import type * as Types from './types.generated.js';
|
|
3
|
+
export { ROBINHOOD_TESTNET_GEN9_REPLAY_FIXTURE, assertRobinhoodTestnetGen9Deployment, assertRobinhoodTestnetGen9ReplaySnapshot, type ChainDataReplayDeploymentIdentity, type ChainDataReplaySnapshot, } from './replay-fixtures.js';
|
|
4
|
+
export { CHAIN_DATA_OPERATIONS, CHAIN_DATA_OPERATION_IDS, CHAIN_DATA_PERSISTED_QUERY_MANIFEST, CHAIN_DATA_SCHEMA_SDL, type ChainDataOperationName, type ChainDataPersistedOperation, } from './operations.generated.js';
|
|
5
|
+
export type { ChainDataFreshnessQuery, ChainDataFreshnessQueryVariables, EthUsdPriceQuery, EthUsdPriceQueryVariables, LaunchDetailQuery, LaunchDetailQueryVariables, LaunchFeedQuery, LaunchFeedQueryVariables, LaunchPriceSeriesQuery, LaunchPriceSeriesQueryVariables, LiquidityBookPositionQuery, LiquidityBookPositionQueryVariables, ProtocolStatsQuery, ProtocolStatsQueryVariables, TrendingLaunchesQuery, TrendingLaunchesQueryVariables, WalletLaunchPositionsQuery, WalletLaunchPositionsQueryVariables, PortfolioWalletBalancesQuery, PortfolioWalletBalancesQueryVariables, WalletLiquidityBookPositionsQuery, WalletLiquidityBookPositionsQueryVariables, PortfolioWalletLiquidityPositionsQuery, PortfolioWalletLiquidityPositionsQueryVariables, } from './types.generated.js';
|
|
6
|
+
export type ChainDataLaunchPhaseInput = Types.LaunchPhase;
|
|
7
|
+
export type ChainDataPriceVenueInput = Types.PriceVenue;
|
|
8
|
+
export type ChainDataIndexedLaunchPhase = Types.IndexedLaunchPhase;
|
|
9
|
+
export type ChainDataTradeVenue = Types.TradeVenue;
|
|
10
|
+
export type ChainDataTradeSide = Types.TradeSide;
|
|
11
|
+
export type ChainDataPageInfo = Types.LaunchFeedQuery['launches']['pageInfo'];
|
|
12
|
+
export type ChainDataLaunchSummary = Types.LaunchFeedQuery['launches']['nodes'][number];
|
|
13
|
+
export type ChainDataLaunchConnection = Types.LaunchFeedQuery['launches'];
|
|
14
|
+
export type ChainDataExactQuoteAmount = ChainDataLaunchSummary['amountRaisedQuote'];
|
|
15
|
+
export type ChainDataExactAssetAmount = ChainDataLaunchSummary['lbVolumeByQuoteAsset'][number]['amount'];
|
|
16
|
+
export type ChainDataQuoteAssetVolume = ChainDataLaunchSummary['lbVolumeByQuoteAsset'][number];
|
|
17
|
+
export type ChainDataLaunchDetail = NonNullable<Types.LaunchDetailQuery['launch']>;
|
|
18
|
+
export type ChainDataLaunchPool = ChainDataLaunchDetail['pools'][number];
|
|
19
|
+
export type ChainDataLaunchExternalMarket = ChainDataLaunchDetail['externalMarkets'][number];
|
|
20
|
+
export type ChainDataLaunchTrade = ChainDataLaunchDetail['recentTrades'][number];
|
|
21
|
+
export type ChainDataExactTokenAmount = ChainDataLaunchTrade['tokenAmount'];
|
|
22
|
+
export type ChainDataLaunchFeeEvent = ChainDataLaunchDetail['fees'][number];
|
|
23
|
+
export type ChainDataTrendingResult = Types.TrendingLaunchesQuery['trendingLaunches'];
|
|
24
|
+
export type ChainDataTrendingLaunch = ChainDataTrendingResult['nodes'][number];
|
|
25
|
+
export type ChainDataLaunchPriceSeriesConnection = Types.LaunchPriceSeriesQuery['launchPriceSeries'];
|
|
26
|
+
export type ChainDataLaunchPricePoint = ChainDataLaunchPriceSeriesConnection['nodes'][number];
|
|
27
|
+
export type ChainDataWalletLaunchPositionResult = Types.WalletLaunchPositionsQuery['walletLaunchPositions'];
|
|
28
|
+
export type ChainDataWalletLaunchPosition = ChainDataWalletLaunchPositionResult['positions'][number];
|
|
29
|
+
export type ChainDataWalletLaunchPositionTotals = NonNullable<ChainDataWalletLaunchPositionResult['totals']>;
|
|
30
|
+
export type ChainDataPortfolioWalletBalanceResult = Types.PortfolioWalletBalancesQuery['walletLaunchPositions'];
|
|
31
|
+
export type ChainDataPortfolioWalletBalance = ChainDataPortfolioWalletBalanceResult['positions'][number];
|
|
32
|
+
export type ChainDataWalletLiquidityBookPositionResult = Types.WalletLiquidityBookPositionsQuery['walletLiquidityBookPositions'];
|
|
33
|
+
export type ChainDataLiquidityBookPosition = ChainDataWalletLiquidityBookPositionResult['positions'][number];
|
|
34
|
+
export type ChainDataPortfolioWalletLiquidityPositionResult = Types.PortfolioWalletLiquidityPositionsQuery['walletLiquidityBookPositions'];
|
|
35
|
+
export type ChainDataPortfolioWalletLiquidityPosition = ChainDataPortfolioWalletLiquidityPositionResult['positions'][number];
|
|
36
|
+
export type ChainDataLiquidityBookPositionDetail = NonNullable<Types.LiquidityBookPositionQuery['liquidityBookPosition']>;
|
|
37
|
+
export type ChainDataLiquidityBookPositionBin = ChainDataLiquidityBookPositionDetail['bins'][number];
|
|
38
|
+
export type ChainDataProtocolStats = Types.ProtocolStatsQuery['protocolStats'];
|
|
39
|
+
export type ChainDataFreshness = Types.ChainDataFreshnessQuery['chainDataFreshness'];
|
|
40
|
+
export type ChainDataEthUsdPrice = Types.EthUsdPriceQuery['ethUsdPrice'];
|
|
41
|
+
export interface ChainDataOperationMap {
|
|
42
|
+
LaunchFeed: {
|
|
43
|
+
variables: Types.LaunchFeedQueryVariables;
|
|
44
|
+
data: Types.LaunchFeedQuery;
|
|
45
|
+
};
|
|
46
|
+
LaunchDetail: {
|
|
47
|
+
variables: Types.LaunchDetailQueryVariables;
|
|
48
|
+
data: Types.LaunchDetailQuery;
|
|
49
|
+
};
|
|
50
|
+
TrendingLaunches: {
|
|
51
|
+
variables: Types.TrendingLaunchesQueryVariables;
|
|
52
|
+
data: Types.TrendingLaunchesQuery;
|
|
53
|
+
};
|
|
54
|
+
LaunchPriceSeries: {
|
|
55
|
+
variables: Types.LaunchPriceSeriesQueryVariables;
|
|
56
|
+
data: Types.LaunchPriceSeriesQuery;
|
|
57
|
+
};
|
|
58
|
+
WalletLaunchPositions: {
|
|
59
|
+
variables: Types.WalletLaunchPositionsQueryVariables;
|
|
60
|
+
data: Types.WalletLaunchPositionsQuery;
|
|
61
|
+
};
|
|
62
|
+
PortfolioWalletBalances: {
|
|
63
|
+
variables: Types.PortfolioWalletBalancesQueryVariables;
|
|
64
|
+
data: Types.PortfolioWalletBalancesQuery;
|
|
65
|
+
};
|
|
66
|
+
WalletLiquidityBookPositions: {
|
|
67
|
+
variables: Types.WalletLiquidityBookPositionsQueryVariables;
|
|
68
|
+
data: Types.WalletLiquidityBookPositionsQuery;
|
|
69
|
+
};
|
|
70
|
+
PortfolioWalletLiquidityPositions: {
|
|
71
|
+
variables: Types.PortfolioWalletLiquidityPositionsQueryVariables;
|
|
72
|
+
data: Types.PortfolioWalletLiquidityPositionsQuery;
|
|
73
|
+
};
|
|
74
|
+
LiquidityBookPosition: {
|
|
75
|
+
variables: Types.LiquidityBookPositionQueryVariables;
|
|
76
|
+
data: Types.LiquidityBookPositionQuery;
|
|
77
|
+
};
|
|
78
|
+
ProtocolStats: {
|
|
79
|
+
variables: Types.ProtocolStatsQueryVariables;
|
|
80
|
+
data: Types.ProtocolStatsQuery;
|
|
81
|
+
};
|
|
82
|
+
ChainDataFreshness: {
|
|
83
|
+
variables: Types.ChainDataFreshnessQueryVariables;
|
|
84
|
+
data: Types.ChainDataFreshnessQuery;
|
|
85
|
+
};
|
|
86
|
+
EthUsdPrice: {
|
|
87
|
+
variables: Types.EthUsdPriceQueryVariables;
|
|
88
|
+
data: Types.EthUsdPriceQuery;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export type ChainDataOperationVariables<Name extends GeneratedOperationName> = ChainDataOperationMap[Name]['variables'];
|
|
92
|
+
export type ChainDataOperationData<Name extends GeneratedOperationName> = ChainDataOperationMap[Name]['data'];
|
|
93
|
+
export interface ChainDataGraphqlRequest<Name extends GeneratedOperationName = GeneratedOperationName> {
|
|
94
|
+
operationName: Name;
|
|
95
|
+
query?: string;
|
|
96
|
+
variables: ChainDataOperationVariables<Name>;
|
|
97
|
+
extensions: {
|
|
98
|
+
persistedQuery: {
|
|
99
|
+
version: 1;
|
|
100
|
+
sha256Hash: string;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export type ChainDataErrorCode = 'PERSISTED_QUERY_NOT_FOUND' | 'PERSISTED_QUERY_MISMATCH' | 'UPSTREAM_UNAVAILABLE';
|
|
105
|
+
export interface ChainDataGraphqlError {
|
|
106
|
+
message: string;
|
|
107
|
+
extensions: {
|
|
108
|
+
code: ChainDataErrorCode | string;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export interface ChainDataGraphqlResponse<Name extends GeneratedOperationName = GeneratedOperationName> {
|
|
112
|
+
data?: ChainDataOperationData<Name>;
|
|
113
|
+
errors?: ChainDataGraphqlError[];
|
|
114
|
+
extensions?: {
|
|
115
|
+
cache?: 'hit' | 'miss' | 'stale';
|
|
116
|
+
requestId?: string;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export interface ChainDataPersistedQueryManifest {
|
|
120
|
+
format: 'apollo-persisted-query-manifest';
|
|
121
|
+
version: 1;
|
|
122
|
+
operations: Array<{
|
|
123
|
+
id: string;
|
|
124
|
+
body: string;
|
|
125
|
+
name: GeneratedOperationName;
|
|
126
|
+
type: 'query';
|
|
127
|
+
}>;
|
|
128
|
+
}
|
|
129
|
+
export type ChainDataOperationMapCoversManifest = Exclude<GeneratedOperationName, keyof ChainDataOperationMap> extends never ? Exclude<keyof ChainDataOperationMap, GeneratedOperationName> extends never ? true : never : never;
|
|
130
|
+
export declare const CHAIN_DATA_OPERATION_MAP_COVERS_MANIFEST: ChainDataOperationMapCoversManifest;
|
|
131
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|