@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
package/README.md
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# `@reptilianhq/chain-data-contract`
|
|
2
|
+
|
|
3
|
+
Versioned GraphQL contract shared by Reptilian API and read-only consumers of
|
|
4
|
+
the Reptilian chain-data gateway. The package contains no credentials or
|
|
5
|
+
transport policy.
|
|
6
|
+
|
|
7
|
+
It exports:
|
|
8
|
+
|
|
9
|
+
- the public schema SDL;
|
|
10
|
+
- the approved operation documents, names, and SHA-256 persisted-query IDs;
|
|
11
|
+
- the Apollo persisted-query manifest;
|
|
12
|
+
- TypeScript variable and result types generated from every approved operation.
|
|
13
|
+
- the versioned Robinhood testnet gen-9 replay fixture and its normalized
|
|
14
|
+
recount validators.
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import {
|
|
18
|
+
CHAIN_DATA_OPERATION_IDS,
|
|
19
|
+
type ChainDataOperationData,
|
|
20
|
+
type ChainDataOperationVariables,
|
|
21
|
+
} from '@reptilianhq/chain-data-contract';
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
The raw artifacts are also available through the `./schema.graphql`,
|
|
25
|
+
`./operations.graphql`, and `./persisted-manifest.json` package exports.
|
|
26
|
+
Consumers should pin an exact version and upgrade atomically with the Reptilian
|
|
27
|
+
API. Publishing a new version does not activate it in any consumer.
|
|
28
|
+
|
|
29
|
+
Quote values are asset-aware across Pons curves, AMMs, LB pools, fees, launch
|
|
30
|
+
summaries, and wallet positions. Prefer `ExactAssetAmount`,
|
|
31
|
+
`volumeByQuoteAsset`, and `totalsByQuoteAsset`: they preserve the quote-token
|
|
32
|
+
address, raw integer, and ERC-20 decimals. Legacy `ExactQuoteAmount` fields are
|
|
33
|
+
retained for older consumers, but callers must use the adjacent quote-token
|
|
34
|
+
identity before interpreting them. Legacy protocol and wallet totals are
|
|
35
|
+
wrapped-native-only and are withheld when they would mix unlike assets.
|
|
36
|
+
Prices are null when quote-token decimals cannot be established safely.
|
|
37
|
+
|
|
38
|
+
Pons launch summaries include a provider-specific `pons` object containing the
|
|
39
|
+
exact factory lifecycle, immutable launch configuration, fee policy, creator
|
|
40
|
+
recipient, buyback terms, sweep evidence, graduated position ID, and rescue
|
|
41
|
+
evidence. Current reserves, claimable balances, and vesting availability remain
|
|
42
|
+
block-pinned RPC authority rather than inferred historical state.
|
|
43
|
+
|
|
44
|
+
`LaunchDetail.supplyDistribution` exposes exact, non-overlapping original-supply custody slices.
|
|
45
|
+
Consumers must treat raw amounts as authoritative and require `reconciled=true` with `partial=false`
|
|
46
|
+
before presenting the result as complete. The gateway fences its custody query between two identical
|
|
47
|
+
indexer checkpoints; an advancing or changed snapshot is deliberately returned as partial.
|
|
48
|
+
|
|
49
|
+
`LaunchDetail.externalMarkets` lists launch-scoped Uniswap v2, v3, and v4 market identities and their
|
|
50
|
+
creation evidence. These records prove initialization only: they are separate from canonical `pools`,
|
|
51
|
+
do not contribute to TVL or price, and carry an explicit partial flag during indexer cutovers.
|
|
52
|
+
|
|
53
|
+
During the coordinated 0.3 to 0.4 rollout, the gateway accepts the legacy 0.3 `LaunchDetail` persisted
|
|
54
|
+
hash but dispatches it through the current resolver. Its JSON is therefore the backward-compatible
|
|
55
|
+
superset shape and can include `supplyDistribution`; legacy clients must tolerate unrequested fields.
|
|
56
|
+
|
|
57
|
+
## Replay fixture
|
|
58
|
+
|
|
59
|
+
The `./replay-fixtures` export pins the reviewed gen-9 read deployment,
|
|
60
|
+
historical observation boundary, and representative GUDTEK launch, registered
|
|
61
|
+
LB pool, trade, holder recount, and retained-ranking evidence:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
import {
|
|
65
|
+
ROBINHOOD_TESTNET_GEN9_REPLAY_FIXTURE,
|
|
66
|
+
assertRobinhoodTestnetGen9ReplaySnapshot,
|
|
67
|
+
} from '@reptilianhq/chain-data-contract/replay-fixtures';
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Adapters in either SDK normalize replay results to `ChainDataReplaySnapshot`
|
|
71
|
+
and call the assertion before accepting recount evidence. The assertion
|
|
72
|
+
requires the corrected holder count, explicit LB-pair exclusion from holders
|
|
73
|
+
and ranking, zero unregistered LB activity, and representative exact values.
|
|
74
|
+
|
|
75
|
+
The fixture pins the reviewed read `deploymentId`; it deliberately does not
|
|
76
|
+
pin the Launchpad SDK transaction release. Write deployments can advance
|
|
77
|
+
independently. The eleven launch/indexer operations require
|
|
78
|
+
`readDeployment.deploymentId`; the chain-data client binds it once at
|
|
79
|
+
construction instead of deriving it from the transaction target. The
|
|
80
|
+
deployment-independent `EthUsdPrice` operation reads the reviewed Robinhood
|
|
81
|
+
mainnet WETH/USDG pair and takes no variables.
|
|
82
|
+
|
|
83
|
+
`WalletLiquidityBookPositions` and `LiquidityBookPosition` expose factory-indexed
|
|
84
|
+
LB receipt ownership without joining through `Launch`. This intentionally
|
|
85
|
+
supports live pairs imported from other launchpads. Position discovery is
|
|
86
|
+
paginated by pair and detail bins are paginated separately.
|
|
87
|
+
|
|
88
|
+
`PortfolioWalletBalances` adds stable token identities plus exact amount and
|
|
89
|
+
source-watermark fields for native portfolio capture.
|
|
90
|
+
`PortfolioWalletLiquidityPositions` is a separately bounded receipt-position
|
|
91
|
+
feed. It does not claim that LB receipt balances are underlying-token amounts,
|
|
92
|
+
and the package intentionally publishes no lending operation until the indexer
|
|
93
|
+
can distinguish unsupported coverage from a wallet with zero positions.
|
|
94
|
+
|
|
95
|
+
The package is published publicly to npm from this repository. Consumers pin
|
|
96
|
+
an exact version; no registry configuration or credential is required to
|
|
97
|
+
install it.
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npm install @reptilianhq/chain-data-contract@0.10.0
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Versions published before 0.10.0 remain in the ReptilianHQ GitHub Packages
|
|
104
|
+
version history but are no longer the install path for new consumers.
|
|
105
|
+
|
|
106
|
+
## Development
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
pnpm --filter @reptilianhq/chain-data-contract generate
|
|
110
|
+
pnpm --filter @reptilianhq/chain-data-contract check
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Edit `chain-data-schema.graphql` and `chain-data-operations.json`, regenerate,
|
|
114
|
+
and commit the generated operation document, manifest, persisted-operation
|
|
115
|
+
module, and GraphQL Code Generator result types together.
|
|
116
|
+
|
|
117
|
+
## Publishing
|
|
118
|
+
|
|
119
|
+
Merging a version change to `main` runs the release workflow from those exact
|
|
120
|
+
reviewed bytes. It verifies main ancestry, creates or confirms the immutable
|
|
121
|
+
`chain-data-contract-v<version>` tag, checks the package, and publishes it to
|
|
122
|
+
the public npm registry via OIDC trusted publishing — no long-lived npm
|
|
123
|
+
token is stored in this repository.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
query LaunchFeed($deploymentId: ID!, $phase: LaunchPhase, $first: Int!, $after: String) {
|
|
2
|
+
launches(deploymentId: $deploymentId, phase: $phase, first: $first, after: $after) {
|
|
3
|
+
nodes { id provider pons { lifecyclePhase curve launchConfigId configSupply phantomQuote { token symbol raw decimals decimal } configEnabledAtLaunchBlock graduationThreshold { token symbol raw decimals decimal } curveFeeBps creatorTaxBps buybackEnabled buybackController poolFeePips tickSpacing creatorFeeRecipient protocolFeeRecipient protocolFeeShareBps buybackBurnBps hookFeeBps maxInternalPriceImpactBps sweptQuote { token symbol raw decimals decimal } sweptTokens sweptAt poolPositionId rescueRecipient rescueQuote { token symbol raw decimals decimal } rescueTokens lastUpdatedBlock lastUpdatedAt } token quoteToken name symbol creator creatorBps curveFeeBps payoutWallet metadataURI phase pool amountRaisedQuote amountRaisedQuoteAsset { token symbol raw decimals decimal } raiseThresholdQuote raiseThresholdQuoteAsset { token symbol raw decimals decimal } curveProgressPct holderCount holderCountPartial volume24hQuote volume24hQuoteAsset { token symbol raw decimals decimal } anchoredVolume24hQuote anchoredVolume24hQuoteAsset { token symbol raw decimals decimal } volume24hHoldingsAnchored volume24hPartial volumeWindowSeconds totalCanonicalVolumeQuote totalCanonicalVolumeQuoteAsset { token symbol raw decimals decimal } volumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } lbVolumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } totalLbVolumeQuote tradeCount lastCanonicalPrice lastCanonicalPriceBlock createdBlock createdTimestamp graduatedBlock graduatedTimestamp }
|
|
4
|
+
pageInfo { endCursor hasNextPage }
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
query LaunchDetail($deploymentId: ID!, $token: Address!) {
|
|
9
|
+
launch(deploymentId: $deploymentId, token: $token) {
|
|
10
|
+
id provider pons { lifecyclePhase curve launchConfigId configSupply phantomQuote { token symbol raw decimals decimal } configEnabledAtLaunchBlock graduationThreshold { token symbol raw decimals decimal } curveFeeBps creatorTaxBps buybackEnabled buybackController poolFeePips tickSpacing creatorFeeRecipient protocolFeeRecipient protocolFeeShareBps buybackBurnBps hookFeeBps maxInternalPriceImpactBps sweptQuote { token symbol raw decimals decimal } sweptTokens sweptAt poolPositionId rescueRecipient rescueQuote { token symbol raw decimals decimal } rescueTokens lastUpdatedBlock lastUpdatedAt } token quoteToken name symbol creator creatorBps curveFeeBps payoutWallet metadataURI phase pool amountRaisedQuote amountRaisedQuoteAsset { token symbol raw decimals decimal } raiseThresholdQuote raiseThresholdQuoteAsset { token symbol raw decimals decimal } curveProgressPct holderCount holderCountPartial volume24hQuote volume24hQuoteAsset { token symbol raw decimals decimal } anchoredVolume24hQuote anchoredVolume24hQuoteAsset { token symbol raw decimals decimal } volume24hHoldingsAnchored volume24hPartial volumeWindowSeconds totalCanonicalVolumeQuote totalCanonicalVolumeQuoteAsset { token symbol raw decimals decimal } volumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } lbVolumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } totalLbVolumeQuote tradeCount lastCanonicalPrice lastCanonicalPriceBlock createdBlock createdTimestamp graduatedBlock graduatedTimestamp
|
|
11
|
+
pools { address poolType token0 token1 quoteIsToken1 quoteToken ignoredForRouting binStep reserveToken reserveQuote tvlQuote reserveQuoteAsset { token symbol raw decimals decimal } tvlQuoteAsset { token symbol raw decimals decimal } reserveSource createdBlock lastUpdatedBlock }
|
|
12
|
+
poolsPartial
|
|
13
|
+
externalMarkets { id protocol venueAddress poolAddress poolId token0 token1 feePips tickSpacing hooks createdBlock createdTransactionHash createdLogIndex }
|
|
14
|
+
externalMarketsPartial
|
|
15
|
+
supplyDistribution {
|
|
16
|
+
originalSupply
|
|
17
|
+
bondingCurveCustody { amount basisPoints }
|
|
18
|
+
graduationPoolLiquidity { amount basisPoints }
|
|
19
|
+
lbLiquidity { amount basisPoints }
|
|
20
|
+
poolNonLiquidityCustody { amount basisPoints }
|
|
21
|
+
lockedDead { amount basisPoints }
|
|
22
|
+
otherProtocolCustody { amount basisPoints }
|
|
23
|
+
userHeld { amount basisPoints }
|
|
24
|
+
reconciled partial
|
|
25
|
+
}
|
|
26
|
+
recentTrades { id venue side sender recipient attributedWallet quoteToken quoteAmount quoteAmountAsset { token symbol raw decimals decimal } tokenAmount price blockNumber blockTimestamp transactionHash logIndex }
|
|
27
|
+
fees { id kind economicType pair quoteToken creatorTokenAmount creatorQuoteAmount creatorQuoteAmountAsset { token symbol raw decimals decimal } protocolTokenAmount protocolQuoteAmount protocolQuoteAmountAsset { token symbol raw decimals decimal } payoutAmount payoutStatus blockNumber blockTimestamp transactionHash }
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
query TrendingLaunches($deploymentId: ID!, $first: Int!) {
|
|
32
|
+
trendingLaunches(deploymentId: $deploymentId, first: $first) {
|
|
33
|
+
nodes { token name symbol phase lastCanonicalPrice recentVolumeQuote rankVolumeQuote retainedValueQuote holdingsAnchored distinctTraders recentTrades changePct windowSeconds }
|
|
34
|
+
partial minDistinctTraders maxTraderPct holdingsMultiple
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
query LaunchPriceSeries($deploymentId: ID!, $token: Address!, $venue: PriceVenue!, $first: Int!, $after: String) {
|
|
39
|
+
launchPriceSeries(deploymentId: $deploymentId, token: $token, venue: $venue, first: $first, after: $after) {
|
|
40
|
+
nodes { cursor timestamp blockNumber price volumeQuote volumeQuoteAsset { token symbol raw decimals decimal } venue side transactionHash }
|
|
41
|
+
pageInfo { endCursor hasNextPage }
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
query WalletLaunchPositions($deploymentId: ID!, $wallet: Address!, $first: Int!, $after: String) {
|
|
46
|
+
walletLaunchPositions(deploymentId: $deploymentId, wallet: $wallet, first: $first, after: $after) {
|
|
47
|
+
wallet partial
|
|
48
|
+
positions { token name symbol phase balance tokenBalance quoteToken valueQuote valueQuoteAsset { token symbol raw decimals decimal } investedQuote investedQuoteAsset { token symbol raw decimals decimal } proceedsQuote proceedsQuoteAsset { token symbol raw decimals decimal } pnlQuote pnlQuoteAsset { token symbol raw decimals decimal } lastCanonicalPrice buyCount sellCount }
|
|
49
|
+
pageInfo { endCursor hasNextPage }
|
|
50
|
+
totals { valueQuote investedQuote proceedsQuote pnlQuote }
|
|
51
|
+
totalsByQuoteAsset { quoteToken valueQuoteAsset { token symbol raw decimals decimal } investedQuoteAsset { token symbol raw decimals decimal } proceedsQuoteAsset { token symbol raw decimals decimal } pnlQuoteAsset { token symbol raw decimals decimal } }
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
query PortfolioWalletBalances($deploymentId: ID!, $wallet: Address!, $first: Int!, $after: String) {
|
|
56
|
+
walletLaunchPositions(deploymentId: $deploymentId, wallet: $wallet, first: $first, after: $after) {
|
|
57
|
+
wallet partial observationWatermark { sourceWatermark observedAtBlock observedAt }
|
|
58
|
+
positions { tokenIdentity token name symbol decimals amountDisplay tokenBalance quoteToken valueQuoteAsset { token symbol raw decimals decimal } investedQuoteAsset { token symbol raw decimals decimal } proceedsQuoteAsset { token symbol raw decimals decimal } pnlQuoteAsset { token symbol raw decimals decimal } sourceWatermark observedAtBlock observedAt lastCanonicalPrice lastCanonicalPriceQuoteToken lastCanonicalUnitPrice lastCanonicalPriceBlock lastCanonicalPriceObservedAt }
|
|
59
|
+
pageInfo { endCursor hasNextPage }
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
query WalletLiquidityBookPositions($deploymentId: ID!, $wallet: Address!, $first: Int!, $after: String) {
|
|
64
|
+
walletLiquidityBookPositions(deploymentId: $deploymentId, wallet: $wallet, first: $first, after: $after) {
|
|
65
|
+
wallet partial
|
|
66
|
+
positions { poolAddress walletAddress activeBinCount totalReceiptBalance lastUpdatedBlock lastUpdatedBlockHash lastUpdatedTimestamp lastUpdatedTransactionHash pair { address token0 token1 binStep activeBinId createdBlock lastUpdatedBlock } }
|
|
67
|
+
pageInfo { endCursor hasNextPage }
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
query PortfolioWalletLiquidityPositions($deploymentId: ID!, $wallet: Address!, $first: Int!, $after: String) {
|
|
72
|
+
walletLiquidityBookPositions(deploymentId: $deploymentId, wallet: $wallet, first: $first, after: $after) {
|
|
73
|
+
wallet partial observationWatermark { sourceWatermark observedAtBlock observedAt }
|
|
74
|
+
positions { poolAddress walletAddress activeBinCount totalReceiptBalance lastUpdatedBlock lastUpdatedBlockHash lastUpdatedTimestamp lastUpdatedTransactionHash pair { address token0 token1 binStep activeBinId createdBlock lastUpdatedBlock } underlyingAssets { tokenIdentity token decimals amountRaw amountDisplay lastCanonicalPrice lastCanonicalPriceQuoteToken lastCanonicalUnitPrice lastCanonicalPriceBlock lastCanonicalPriceObservedAt } }
|
|
75
|
+
pageInfo { endCursor hasNextPage }
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
query LiquidityBookPosition($deploymentId: ID!, $wallet: Address!, $pool: Address!, $binFirst: Int!, $binsAfter: String) {
|
|
80
|
+
liquidityBookPosition(deploymentId: $deploymentId, wallet: $wallet, pool: $pool, binFirst: $binFirst, binsAfter: $binsAfter) {
|
|
81
|
+
position { poolAddress walletAddress activeBinCount totalReceiptBalance lastUpdatedBlock lastUpdatedBlockHash lastUpdatedTimestamp lastUpdatedTransactionHash pair { address token0 token1 binStep activeBinId createdBlock lastUpdatedBlock } }
|
|
82
|
+
bins { cursor binId receiptBalance lastUpdatedBlock lastUpdatedBlockHash lastUpdatedTimestamp lastUpdatedTransactionHash }
|
|
83
|
+
binsPageInfo { endCursor hasNextPage }
|
|
84
|
+
partial
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
query ProtocolStats($deploymentId: ID!) {
|
|
89
|
+
protocolStats(deploymentId: $deploymentId) { launched graduated bonding poolCount tradeCount tvlQuote tvlPartial volumePartial totalVolumeQuote curveVolumeQuote ammVolumeQuote lbVolumeQuote volumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } lbVolumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } lastIndexedBlock lastUpdatedTimestamp }
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
query ChainDataFreshness($deploymentId: ID!) {
|
|
93
|
+
chainDataFreshness(deploymentId: $deploymentId) { deploymentId healthy backfilling chainId launchpadAddress startBlock chainHead indexedHead sourceHead blockLag configuredBlockLag lastProcessedAt hasuraReachable rpcReachable }
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
query EthUsdPrice {
|
|
97
|
+
ethUsdPrice { price source observedAt observedBlock sourceChainId pair reserveTimestamp }
|
|
98
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": "apollo-persisted-query-manifest",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"operations": [
|
|
5
|
+
{
|
|
6
|
+
"id": "e75e122a30258551085c248eabc2a526a6ce0761bba550fdc5d64fb50f7da1f3",
|
|
7
|
+
"body": "query LaunchFeed($deploymentId: ID!, $phase: LaunchPhase, $first: Int!, $after: String) {\n launches(deploymentId: $deploymentId, phase: $phase, first: $first, after: $after) {\n nodes { id provider pons { lifecyclePhase curve launchConfigId configSupply phantomQuote { token symbol raw decimals decimal } configEnabledAtLaunchBlock graduationThreshold { token symbol raw decimals decimal } curveFeeBps creatorTaxBps buybackEnabled buybackController poolFeePips tickSpacing creatorFeeRecipient protocolFeeRecipient protocolFeeShareBps buybackBurnBps hookFeeBps maxInternalPriceImpactBps sweptQuote { token symbol raw decimals decimal } sweptTokens sweptAt poolPositionId rescueRecipient rescueQuote { token symbol raw decimals decimal } rescueTokens lastUpdatedBlock lastUpdatedAt } token quoteToken name symbol creator creatorBps curveFeeBps payoutWallet metadataURI phase pool amountRaisedQuote amountRaisedQuoteAsset { token symbol raw decimals decimal } raiseThresholdQuote raiseThresholdQuoteAsset { token symbol raw decimals decimal } curveProgressPct holderCount holderCountPartial volume24hQuote volume24hQuoteAsset { token symbol raw decimals decimal } anchoredVolume24hQuote anchoredVolume24hQuoteAsset { token symbol raw decimals decimal } volume24hHoldingsAnchored volume24hPartial volumeWindowSeconds totalCanonicalVolumeQuote totalCanonicalVolumeQuoteAsset { token symbol raw decimals decimal } volumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } lbVolumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } totalLbVolumeQuote tradeCount lastCanonicalPrice lastCanonicalPriceBlock createdBlock createdTimestamp graduatedBlock graduatedTimestamp }\n pageInfo { endCursor hasNextPage }\n }\n}",
|
|
8
|
+
"name": "LaunchFeed",
|
|
9
|
+
"type": "query"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "55d8759a6dc2a12d3804ce913326d435eaa0b253dbf2ca399870e962e02211d8",
|
|
13
|
+
"body": "query LaunchDetail($deploymentId: ID!, $token: Address!) {\n launch(deploymentId: $deploymentId, token: $token) {\n id provider pons { lifecyclePhase curve launchConfigId configSupply phantomQuote { token symbol raw decimals decimal } configEnabledAtLaunchBlock graduationThreshold { token symbol raw decimals decimal } curveFeeBps creatorTaxBps buybackEnabled buybackController poolFeePips tickSpacing creatorFeeRecipient protocolFeeRecipient protocolFeeShareBps buybackBurnBps hookFeeBps maxInternalPriceImpactBps sweptQuote { token symbol raw decimals decimal } sweptTokens sweptAt poolPositionId rescueRecipient rescueQuote { token symbol raw decimals decimal } rescueTokens lastUpdatedBlock lastUpdatedAt } token quoteToken name symbol creator creatorBps curveFeeBps payoutWallet metadataURI phase pool amountRaisedQuote amountRaisedQuoteAsset { token symbol raw decimals decimal } raiseThresholdQuote raiseThresholdQuoteAsset { token symbol raw decimals decimal } curveProgressPct holderCount holderCountPartial volume24hQuote volume24hQuoteAsset { token symbol raw decimals decimal } anchoredVolume24hQuote anchoredVolume24hQuoteAsset { token symbol raw decimals decimal } volume24hHoldingsAnchored volume24hPartial volumeWindowSeconds totalCanonicalVolumeQuote totalCanonicalVolumeQuoteAsset { token symbol raw decimals decimal } volumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } lbVolumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } totalLbVolumeQuote tradeCount lastCanonicalPrice lastCanonicalPriceBlock createdBlock createdTimestamp graduatedBlock graduatedTimestamp\n pools { address poolType token0 token1 quoteIsToken1 quoteToken ignoredForRouting binStep reserveToken reserveQuote tvlQuote reserveQuoteAsset { token symbol raw decimals decimal } tvlQuoteAsset { token symbol raw decimals decimal } reserveSource createdBlock lastUpdatedBlock }\n poolsPartial\n externalMarkets { id protocol venueAddress poolAddress poolId token0 token1 feePips tickSpacing hooks createdBlock createdTransactionHash createdLogIndex }\n externalMarketsPartial\n supplyDistribution {\n originalSupply\n bondingCurveCustody { amount basisPoints }\n graduationPoolLiquidity { amount basisPoints }\n lbLiquidity { amount basisPoints }\n poolNonLiquidityCustody { amount basisPoints }\n lockedDead { amount basisPoints }\n otherProtocolCustody { amount basisPoints }\n userHeld { amount basisPoints }\n reconciled partial\n }\n recentTrades { id venue side sender recipient attributedWallet quoteToken quoteAmount quoteAmountAsset { token symbol raw decimals decimal } tokenAmount price blockNumber blockTimestamp transactionHash logIndex }\n fees { id kind economicType pair quoteToken creatorTokenAmount creatorQuoteAmount creatorQuoteAmountAsset { token symbol raw decimals decimal } protocolTokenAmount protocolQuoteAmount protocolQuoteAmountAsset { token symbol raw decimals decimal } payoutAmount payoutStatus blockNumber blockTimestamp transactionHash }\n }\n}",
|
|
14
|
+
"name": "LaunchDetail",
|
|
15
|
+
"type": "query"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "bfa72f926cea11d12dd6564dbcbab7d34e1ffd0d59130cc9caf26d45873cfcc9",
|
|
19
|
+
"body": "query TrendingLaunches($deploymentId: ID!, $first: Int!) {\n trendingLaunches(deploymentId: $deploymentId, first: $first) {\n nodes { token name symbol phase lastCanonicalPrice recentVolumeQuote rankVolumeQuote retainedValueQuote holdingsAnchored distinctTraders recentTrades changePct windowSeconds }\n partial minDistinctTraders maxTraderPct holdingsMultiple\n }\n}",
|
|
20
|
+
"name": "TrendingLaunches",
|
|
21
|
+
"type": "query"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"id": "424748eceb7edfb4b64fb28e33c29ee9b517f2c9b026b0050ec18778354c5d70",
|
|
25
|
+
"body": "query LaunchPriceSeries($deploymentId: ID!, $token: Address!, $venue: PriceVenue!, $first: Int!, $after: String) {\n launchPriceSeries(deploymentId: $deploymentId, token: $token, venue: $venue, first: $first, after: $after) {\n nodes { cursor timestamp blockNumber price volumeQuote volumeQuoteAsset { token symbol raw decimals decimal } venue side transactionHash }\n pageInfo { endCursor hasNextPage }\n }\n}",
|
|
26
|
+
"name": "LaunchPriceSeries",
|
|
27
|
+
"type": "query"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "50296690ad4968a8e1fbef342268eb0907ca753b8fd4ab464e5d6c5339e2e800",
|
|
31
|
+
"body": "query WalletLaunchPositions($deploymentId: ID!, $wallet: Address!, $first: Int!, $after: String) {\n walletLaunchPositions(deploymentId: $deploymentId, wallet: $wallet, first: $first, after: $after) {\n wallet partial\n positions { token name symbol phase balance tokenBalance quoteToken valueQuote valueQuoteAsset { token symbol raw decimals decimal } investedQuote investedQuoteAsset { token symbol raw decimals decimal } proceedsQuote proceedsQuoteAsset { token symbol raw decimals decimal } pnlQuote pnlQuoteAsset { token symbol raw decimals decimal } lastCanonicalPrice buyCount sellCount }\n pageInfo { endCursor hasNextPage }\n totals { valueQuote investedQuote proceedsQuote pnlQuote }\n totalsByQuoteAsset { quoteToken valueQuoteAsset { token symbol raw decimals decimal } investedQuoteAsset { token symbol raw decimals decimal } proceedsQuoteAsset { token symbol raw decimals decimal } pnlQuoteAsset { token symbol raw decimals decimal } }\n }\n}",
|
|
32
|
+
"name": "WalletLaunchPositions",
|
|
33
|
+
"type": "query"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "d7a6d20786eef66ddd1211cf97f2e2eba2e445784dc6893ed6f6c4a5d4b511e5",
|
|
37
|
+
"body": "query PortfolioWalletBalances($deploymentId: ID!, $wallet: Address!, $first: Int!, $after: String) {\n walletLaunchPositions(deploymentId: $deploymentId, wallet: $wallet, first: $first, after: $after) {\n wallet partial observationWatermark { sourceWatermark observedAtBlock observedAt }\n positions { tokenIdentity token name symbol decimals amountDisplay tokenBalance quoteToken valueQuoteAsset { token symbol raw decimals decimal } investedQuoteAsset { token symbol raw decimals decimal } proceedsQuoteAsset { token symbol raw decimals decimal } pnlQuoteAsset { token symbol raw decimals decimal } sourceWatermark observedAtBlock observedAt lastCanonicalPrice lastCanonicalPriceQuoteToken lastCanonicalUnitPrice lastCanonicalPriceBlock lastCanonicalPriceObservedAt }\n pageInfo { endCursor hasNextPage }\n }\n}",
|
|
38
|
+
"name": "PortfolioWalletBalances",
|
|
39
|
+
"type": "query"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "7aac47e7b94c774421ebdbe4f24130ba885f23384a51892c043b75020b05e358",
|
|
43
|
+
"body": "query WalletLiquidityBookPositions($deploymentId: ID!, $wallet: Address!, $first: Int!, $after: String) {\n walletLiquidityBookPositions(deploymentId: $deploymentId, wallet: $wallet, first: $first, after: $after) {\n wallet partial\n positions { poolAddress walletAddress activeBinCount totalReceiptBalance lastUpdatedBlock lastUpdatedBlockHash lastUpdatedTimestamp lastUpdatedTransactionHash pair { address token0 token1 binStep activeBinId createdBlock lastUpdatedBlock } }\n pageInfo { endCursor hasNextPage }\n }\n}",
|
|
44
|
+
"name": "WalletLiquidityBookPositions",
|
|
45
|
+
"type": "query"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "f41113a529249e6a0a2eceeda185a443ac920b569c36fbfb56cf17eac086da83",
|
|
49
|
+
"body": "query PortfolioWalletLiquidityPositions($deploymentId: ID!, $wallet: Address!, $first: Int!, $after: String) {\n walletLiquidityBookPositions(deploymentId: $deploymentId, wallet: $wallet, first: $first, after: $after) {\n wallet partial observationWatermark { sourceWatermark observedAtBlock observedAt }\n positions { poolAddress walletAddress activeBinCount totalReceiptBalance lastUpdatedBlock lastUpdatedBlockHash lastUpdatedTimestamp lastUpdatedTransactionHash pair { address token0 token1 binStep activeBinId createdBlock lastUpdatedBlock } underlyingAssets { tokenIdentity token decimals amountRaw amountDisplay lastCanonicalPrice lastCanonicalPriceQuoteToken lastCanonicalUnitPrice lastCanonicalPriceBlock lastCanonicalPriceObservedAt } }\n pageInfo { endCursor hasNextPage }\n }\n}",
|
|
50
|
+
"name": "PortfolioWalletLiquidityPositions",
|
|
51
|
+
"type": "query"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "26099c27439338395b45046b0cc5a0604ab5c8deaab7b4154bd1eb6b68b55056",
|
|
55
|
+
"body": "query LiquidityBookPosition($deploymentId: ID!, $wallet: Address!, $pool: Address!, $binFirst: Int!, $binsAfter: String) {\n liquidityBookPosition(deploymentId: $deploymentId, wallet: $wallet, pool: $pool, binFirst: $binFirst, binsAfter: $binsAfter) {\n position { poolAddress walletAddress activeBinCount totalReceiptBalance lastUpdatedBlock lastUpdatedBlockHash lastUpdatedTimestamp lastUpdatedTransactionHash pair { address token0 token1 binStep activeBinId createdBlock lastUpdatedBlock } }\n bins { cursor binId receiptBalance lastUpdatedBlock lastUpdatedBlockHash lastUpdatedTimestamp lastUpdatedTransactionHash }\n binsPageInfo { endCursor hasNextPage }\n partial\n }\n}",
|
|
56
|
+
"name": "LiquidityBookPosition",
|
|
57
|
+
"type": "query"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "24199d4d890dd8496286e4bc4853310f5a3f0dfdf0edce06cf21977db8d5c36f",
|
|
61
|
+
"body": "query ProtocolStats($deploymentId: ID!) {\n protocolStats(deploymentId: $deploymentId) { launched graduated bonding poolCount tradeCount tvlQuote tvlPartial volumePartial totalVolumeQuote curveVolumeQuote ammVolumeQuote lbVolumeQuote volumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } lbVolumeByQuoteAsset { amount { token symbol raw decimals decimal } tradeCount } lastIndexedBlock lastUpdatedTimestamp }\n}",
|
|
62
|
+
"name": "ProtocolStats",
|
|
63
|
+
"type": "query"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "8eaf5642951345717c009269cc38880998cc4d17c05fd7bff3a78ee37cea1596",
|
|
67
|
+
"body": "query ChainDataFreshness($deploymentId: ID!) {\n chainDataFreshness(deploymentId: $deploymentId) { deploymentId healthy backfilling chainId launchpadAddress startBlock chainHead indexedHead sourceHead blockLag configuredBlockLag lastProcessedAt hasuraReachable rpcReachable }\n}",
|
|
68
|
+
"name": "ChainDataFreshness",
|
|
69
|
+
"type": "query"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "0bfa48cc75fef63d384cfa839d346943c14850cb6fdcbe49be6d8bc03d366369",
|
|
73
|
+
"body": "query EthUsdPrice {\n ethUsdPrice { price source observedAt observedBlock sourceChainId pair reserveTimestamp }\n}",
|
|
74
|
+
"name": "EthUsdPrice",
|
|
75
|
+
"type": "query"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
}
|