@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,200 @@
|
|
|
1
|
+
export interface ChainDataReplayDeploymentIdentity {
|
|
2
|
+
deploymentId: string;
|
|
3
|
+
chainId: number;
|
|
4
|
+
launchpadAddress: string;
|
|
5
|
+
startBlock: number;
|
|
6
|
+
replayStartBlock: number;
|
|
7
|
+
generation: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface ChainDataReplaySnapshot {
|
|
11
|
+
deployment: ChainDataReplayDeploymentIdentity;
|
|
12
|
+
observation: {
|
|
13
|
+
indexedHead: number;
|
|
14
|
+
};
|
|
15
|
+
launch: {
|
|
16
|
+
token: string;
|
|
17
|
+
symbol: string;
|
|
18
|
+
holderCount: number;
|
|
19
|
+
holderCountPartial: boolean;
|
|
20
|
+
totalCanonicalVolumeQuoteWei: string;
|
|
21
|
+
anchoredVolume24hQuoteWei: string;
|
|
22
|
+
};
|
|
23
|
+
pools: ReadonlyArray<{
|
|
24
|
+
address: string;
|
|
25
|
+
poolType: string;
|
|
26
|
+
token0: string;
|
|
27
|
+
token1: string;
|
|
28
|
+
createdBlock: number;
|
|
29
|
+
}>;
|
|
30
|
+
trades: ReadonlyArray<{
|
|
31
|
+
transactionHash: string;
|
|
32
|
+
venue: string;
|
|
33
|
+
blockNumber: number;
|
|
34
|
+
logIndex: number;
|
|
35
|
+
}>;
|
|
36
|
+
ranking: {
|
|
37
|
+
token: string;
|
|
38
|
+
recentVolumeQuoteWei: string;
|
|
39
|
+
rankVolumeQuoteWei: string;
|
|
40
|
+
retainedValueQuoteWei: string;
|
|
41
|
+
holdingsAnchored: boolean;
|
|
42
|
+
partial: boolean;
|
|
43
|
+
};
|
|
44
|
+
excludedHolderAddresses: readonly string[];
|
|
45
|
+
excludedRankingAddresses: readonly string[];
|
|
46
|
+
unregisteredLbPoolCount: number;
|
|
47
|
+
unregisteredLbTradeCount: number;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* One replay boundary shared by Foundation readers and Launchpad SDK consumers.
|
|
52
|
+
* The protocol SDK's current transaction release is intentionally not pinned
|
|
53
|
+
* here: write deployments may advance independently of this read projection.
|
|
54
|
+
*/
|
|
55
|
+
export const ROBINHOOD_TESTNET_GEN9_REPLAY_FIXTURE = {
|
|
56
|
+
fixtureVersion: 1,
|
|
57
|
+
id: 'robinhood-testnet-gen9-gudtek-v1',
|
|
58
|
+
consumers: {
|
|
59
|
+
foundationSdk: '@reptilianhq/foundation-graphql',
|
|
60
|
+
protocolSdk: '@reptilianhq/launch-on-block-sdk',
|
|
61
|
+
identityRule: 'Bind readDeployment.deploymentId once when constructing the Foundation client; it is injected into every public query and remains independent from the protocol transaction deployment.',
|
|
62
|
+
},
|
|
63
|
+
readDeployment: {
|
|
64
|
+
deploymentId: '46630:launchpad:0x6993320e82ac53f75eda8a5051ce437c6f3584c5:91383760',
|
|
65
|
+
chainId: 46_630,
|
|
66
|
+
launchpadAddress: '0x6993320e82ac53f75eda8a5051ce437c6f3584c5',
|
|
67
|
+
startBlock: 91_383_760,
|
|
68
|
+
replayStartBlock: 91_151_034,
|
|
69
|
+
generation: 'gen-9',
|
|
70
|
+
},
|
|
71
|
+
observation: {
|
|
72
|
+
indexedHead: 91_856_981,
|
|
73
|
+
capturedAt: '2026-07-21T01:53:21.087Z',
|
|
74
|
+
evidence: 'docs/CHAIN_DATA_GEN9_REPLAY_FIXTURE.md',
|
|
75
|
+
},
|
|
76
|
+
representative: {
|
|
77
|
+
launch: {
|
|
78
|
+
token: '0xe5e103d9fcdbd6dc6e7ba44827866bc97278b10c',
|
|
79
|
+
symbol: 'GUDTEK',
|
|
80
|
+
holderCountBeforeLbExclusion: 5,
|
|
81
|
+
holderCountAfterLbExclusion: 4,
|
|
82
|
+
totalCanonicalVolumeQuoteWei: '1331592281784499382',
|
|
83
|
+
anchoredVolume24hQuoteWeiUpperBound: '697451709626310783',
|
|
84
|
+
},
|
|
85
|
+
registeredLbPool: {
|
|
86
|
+
address: '0xb2c34457c4a268588353cbc51a625d39c908e9b4',
|
|
87
|
+
poolType: 'lb',
|
|
88
|
+
token0: '0xe5e103d9fcdbd6dc6e7ba44827866bc97278b10c',
|
|
89
|
+
token1: '0x7943e237c7f95da44e0301572d358911207852fa',
|
|
90
|
+
createdBlock: 91_697_231,
|
|
91
|
+
},
|
|
92
|
+
canonicalTrade: {
|
|
93
|
+
transactionHash: '0x9bad168d0c9694c1d56f4878caf670af167c237c1548fdef214651cb2e6fd8be',
|
|
94
|
+
venue: 'amm',
|
|
95
|
+
blockNumber: 91_698_566,
|
|
96
|
+
logIndex: 6,
|
|
97
|
+
},
|
|
98
|
+
ranking: {
|
|
99
|
+
recentVolumeQuoteWei: '1331592281784499382',
|
|
100
|
+
rankVolumeQuoteWei: '544537530692296134',
|
|
101
|
+
retainedValueQuoteWei: '225945722850564826',
|
|
102
|
+
holdingsAnchored: true,
|
|
103
|
+
partial: false,
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
expectations: {
|
|
107
|
+
countOnlyRegisteredLbActivity: true,
|
|
108
|
+
excludeEveryLbPairFromHolderCount: true,
|
|
109
|
+
excludeEveryLbPairFromRetainedRanking: true,
|
|
110
|
+
publicQueriesRequireDeploymentId: true,
|
|
111
|
+
},
|
|
112
|
+
} as const;
|
|
113
|
+
|
|
114
|
+
function normalize(value: string): string {
|
|
115
|
+
return value.toLowerCase();
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function fail(field: string, expected: unknown, actual: unknown): never {
|
|
119
|
+
throw new Error(`Replay fixture mismatch for ${field}: expected ${String(expected)}, received ${String(actual)}`);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
function expectEqual(field: string, actual: unknown, expected: unknown): void {
|
|
123
|
+
if (actual !== expected) fail(field, expected, actual);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
function expectAddress(field: string, actual: string, expected: string): void {
|
|
127
|
+
if (normalize(actual) !== normalize(expected)) fail(field, expected, actual);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function expectAddressIncluded(field: string, actual: readonly string[], expected: string): void {
|
|
131
|
+
if (!actual.some((value) => normalize(value) === normalize(expected))) {
|
|
132
|
+
fail(field, `an entry matching ${expected}`, actual.join(', '));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export function assertRobinhoodTestnetGen9Deployment(
|
|
137
|
+
actual: ChainDataReplayDeploymentIdentity,
|
|
138
|
+
): void {
|
|
139
|
+
const expected = ROBINHOOD_TESTNET_GEN9_REPLAY_FIXTURE.readDeployment;
|
|
140
|
+
expectEqual('deployment.deploymentId', actual.deploymentId, expected.deploymentId);
|
|
141
|
+
expectEqual('deployment.chainId', actual.chainId, expected.chainId);
|
|
142
|
+
expectAddress('deployment.launchpadAddress', actual.launchpadAddress, expected.launchpadAddress);
|
|
143
|
+
expectEqual('deployment.startBlock', actual.startBlock, expected.startBlock);
|
|
144
|
+
expectEqual('deployment.replayStartBlock', actual.replayStartBlock, expected.replayStartBlock);
|
|
145
|
+
expectEqual('deployment.generation', actual.generation, expected.generation);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/** Validate a normalized, observation-block-pinned recount produced by either SDK integration. */
|
|
149
|
+
export function assertRobinhoodTestnetGen9ReplaySnapshot(actual: ChainDataReplaySnapshot): void {
|
|
150
|
+
const fixture = ROBINHOOD_TESTNET_GEN9_REPLAY_FIXTURE;
|
|
151
|
+
const expected = fixture.representative;
|
|
152
|
+
assertRobinhoodTestnetGen9Deployment(actual.deployment);
|
|
153
|
+
expectEqual('observation.indexedHead', actual.observation.indexedHead, fixture.observation.indexedHead);
|
|
154
|
+
|
|
155
|
+
expectAddress('launch.token', actual.launch.token, expected.launch.token);
|
|
156
|
+
expectEqual('launch.symbol', actual.launch.symbol, expected.launch.symbol);
|
|
157
|
+
expectEqual('launch.holderCount', actual.launch.holderCount, expected.launch.holderCountAfterLbExclusion);
|
|
158
|
+
expectEqual('launch.holderCountPartial', actual.launch.holderCountPartial, false);
|
|
159
|
+
expectEqual(
|
|
160
|
+
'launch.totalCanonicalVolumeQuoteWei',
|
|
161
|
+
actual.launch.totalCanonicalVolumeQuoteWei,
|
|
162
|
+
expected.launch.totalCanonicalVolumeQuoteWei,
|
|
163
|
+
);
|
|
164
|
+
if (BigInt(actual.launch.anchoredVolume24hQuoteWei) > BigInt(expected.launch.anchoredVolume24hQuoteWeiUpperBound)) {
|
|
165
|
+
fail(
|
|
166
|
+
'launch.anchoredVolume24hQuoteWei',
|
|
167
|
+
`at most ${expected.launch.anchoredVolume24hQuoteWeiUpperBound}`,
|
|
168
|
+
actual.launch.anchoredVolume24hQuoteWei,
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const pool = actual.pools.find((candidate) => (
|
|
173
|
+
normalize(candidate.address) === normalize(expected.registeredLbPool.address)
|
|
174
|
+
));
|
|
175
|
+
if (!pool) fail('pools', expected.registeredLbPool.address, 'missing');
|
|
176
|
+
expectEqual('registeredLbPool.poolType', pool.poolType, expected.registeredLbPool.poolType);
|
|
177
|
+
expectAddress('registeredLbPool.token0', pool.token0, expected.registeredLbPool.token0);
|
|
178
|
+
expectAddress('registeredLbPool.token1', pool.token1, expected.registeredLbPool.token1);
|
|
179
|
+
expectEqual('registeredLbPool.createdBlock', pool.createdBlock, expected.registeredLbPool.createdBlock);
|
|
180
|
+
|
|
181
|
+
const trade = actual.trades.find((candidate) => (
|
|
182
|
+
normalize(candidate.transactionHash) === normalize(expected.canonicalTrade.transactionHash)
|
|
183
|
+
));
|
|
184
|
+
if (!trade) fail('trades', expected.canonicalTrade.transactionHash, 'missing');
|
|
185
|
+
expectEqual('canonicalTrade.venue', trade.venue, expected.canonicalTrade.venue);
|
|
186
|
+
expectEqual('canonicalTrade.blockNumber', trade.blockNumber, expected.canonicalTrade.blockNumber);
|
|
187
|
+
expectEqual('canonicalTrade.logIndex', trade.logIndex, expected.canonicalTrade.logIndex);
|
|
188
|
+
|
|
189
|
+
expectAddress('ranking.token', actual.ranking.token, expected.launch.token);
|
|
190
|
+
expectEqual('ranking.recentVolumeQuoteWei', actual.ranking.recentVolumeQuoteWei, expected.ranking.recentVolumeQuoteWei);
|
|
191
|
+
expectEqual('ranking.rankVolumeQuoteWei', actual.ranking.rankVolumeQuoteWei, expected.ranking.rankVolumeQuoteWei);
|
|
192
|
+
expectEqual('ranking.retainedValueQuoteWei', actual.ranking.retainedValueQuoteWei, expected.ranking.retainedValueQuoteWei);
|
|
193
|
+
expectEqual('ranking.holdingsAnchored', actual.ranking.holdingsAnchored, expected.ranking.holdingsAnchored);
|
|
194
|
+
expectEqual('ranking.partial', actual.ranking.partial, expected.ranking.partial);
|
|
195
|
+
|
|
196
|
+
expectAddressIncluded('excludedHolderAddresses', actual.excludedHolderAddresses, expected.registeredLbPool.address);
|
|
197
|
+
expectAddressIncluded('excludedRankingAddresses', actual.excludedRankingAddresses, expected.registeredLbPool.address);
|
|
198
|
+
expectEqual('unregisteredLbPoolCount', actual.unregisteredLbPoolCount, 0);
|
|
199
|
+
expectEqual('unregisteredLbTradeCount', actual.unregisteredLbTradeCount, 0);
|
|
200
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/** Internal type. DO NOT USE DIRECTLY. */
|
|
2
|
+
type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
|
|
3
|
+
/** Internal type. DO NOT USE DIRECTLY. */
|
|
4
|
+
export type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };
|
|
5
|
+
export type EthUsdPriceSource =
|
|
6
|
+
| 'WETH_USDG_SPOT';
|
|
7
|
+
|
|
8
|
+
export type ExternalMarketProtocol =
|
|
9
|
+
| 'uniswap_v2'
|
|
10
|
+
| 'uniswap_v3'
|
|
11
|
+
| 'uniswap_v4';
|
|
12
|
+
|
|
13
|
+
export type IndexedLaunchPhase =
|
|
14
|
+
| 'bonding'
|
|
15
|
+
| 'graduated';
|
|
16
|
+
|
|
17
|
+
export type LaunchPhase =
|
|
18
|
+
| 'BONDING'
|
|
19
|
+
| 'GRADUATED';
|
|
20
|
+
|
|
21
|
+
export type LaunchProvider =
|
|
22
|
+
| 'launchonblock'
|
|
23
|
+
| 'pons';
|
|
24
|
+
|
|
25
|
+
export type PonsLifecyclePhase =
|
|
26
|
+
| 'bonding'
|
|
27
|
+
| 'pool_created'
|
|
28
|
+
| 'rescued'
|
|
29
|
+
| 'swept';
|
|
30
|
+
|
|
31
|
+
export type PriceVenue =
|
|
32
|
+
| 'ALL'
|
|
33
|
+
| 'CANONICAL';
|
|
34
|
+
|
|
35
|
+
export type TradeSide =
|
|
36
|
+
| 'buy'
|
|
37
|
+
| 'sell';
|
|
38
|
+
|
|
39
|
+
export type TradeVenue =
|
|
40
|
+
| 'amm'
|
|
41
|
+
| 'curve'
|
|
42
|
+
| 'lb';
|
|
43
|
+
|
|
44
|
+
export type LaunchFeedQueryVariables = Exact<{
|
|
45
|
+
deploymentId: string | number;
|
|
46
|
+
phase?: LaunchPhase | null | undefined;
|
|
47
|
+
first: number;
|
|
48
|
+
after?: string | null | undefined;
|
|
49
|
+
}>;
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
export type LaunchFeedQuery = { launches: { nodes: Array<{ id: string, provider: LaunchProvider, token: string, quoteToken: string, name: string | null, symbol: string | null, creator: string, creatorBps: number, curveFeeBps: number, payoutWallet: string, metadataURI: string, phase: IndexedLaunchPhase, pool: string | null, amountRaisedQuote: { wei: string; decimal: string }, raiseThresholdQuote: { wei: string; decimal: string }, curveProgressPct: string | null, holderCount: number, holderCountPartial: boolean, volume24hQuote: { wei: string; decimal: string }, anchoredVolume24hQuote: { wei: string; decimal: string }, volume24hHoldingsAnchored: boolean, volume24hPartial: boolean, volumeWindowSeconds: number, totalCanonicalVolumeQuote: { wei: string; decimal: string }, totalLbVolumeQuote: { wei: string; decimal: string }, tradeCount: number, lastCanonicalPrice: string | null, lastCanonicalPriceBlock: number | null, createdBlock: number, createdTimestamp: number, graduatedBlock: number | null, graduatedTimestamp: number | null, pons: { lifecyclePhase: PonsLifecyclePhase, curve: string, launchConfigId: string, configSupply: { raw: string; decimal: string }, configEnabledAtLaunchBlock: boolean, curveFeeBps: number, creatorTaxBps: number, buybackEnabled: boolean, buybackController: string | null, poolFeePips: number, tickSpacing: number, creatorFeeRecipient: string, protocolFeeRecipient: string, protocolFeeShareBps: number, buybackBurnBps: number, hookFeeBps: number, maxInternalPriceImpactBps: number, sweptTokens: { raw: string; decimal: string }, sweptAt: string | null, poolPositionId: string | null, rescueRecipient: string | null, rescueTokens: { raw: string; decimal: string } | null, lastUpdatedBlock: string, lastUpdatedAt: string, phantomQuote: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, graduationThreshold: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, sweptQuote: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, rescueQuote: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } | null } | null, amountRaisedQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, raiseThresholdQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, volume24hQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, anchoredVolume24hQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, totalCanonicalVolumeQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, volumeByQuoteAsset: Array<{ tradeCount: number, amount: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }>, lbVolumeByQuoteAsset: Array<{ tradeCount: number, amount: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }> }>, pageInfo: { endCursor: string | null, hasNextPage: boolean } } };
|
|
53
|
+
|
|
54
|
+
export type LaunchDetailQueryVariables = Exact<{
|
|
55
|
+
deploymentId: string | number;
|
|
56
|
+
token: string;
|
|
57
|
+
}>;
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
export type LaunchDetailQuery = { launch: { id: string, provider: LaunchProvider, token: string, quoteToken: string, name: string | null, symbol: string | null, creator: string, creatorBps: number, curveFeeBps: number, payoutWallet: string, metadataURI: string, phase: IndexedLaunchPhase, pool: string | null, amountRaisedQuote: { wei: string; decimal: string }, raiseThresholdQuote: { wei: string; decimal: string }, curveProgressPct: string | null, holderCount: number, holderCountPartial: boolean, volume24hQuote: { wei: string; decimal: string }, anchoredVolume24hQuote: { wei: string; decimal: string }, volume24hHoldingsAnchored: boolean, volume24hPartial: boolean, volumeWindowSeconds: number, totalCanonicalVolumeQuote: { wei: string; decimal: string }, totalLbVolumeQuote: { wei: string; decimal: string }, tradeCount: number, lastCanonicalPrice: string | null, lastCanonicalPriceBlock: number | null, createdBlock: number, createdTimestamp: number, graduatedBlock: number | null, graduatedTimestamp: number | null, poolsPartial: boolean, externalMarketsPartial: boolean, pons: { lifecyclePhase: PonsLifecyclePhase, curve: string, launchConfigId: string, configSupply: { raw: string; decimal: string }, configEnabledAtLaunchBlock: boolean, curveFeeBps: number, creatorTaxBps: number, buybackEnabled: boolean, buybackController: string | null, poolFeePips: number, tickSpacing: number, creatorFeeRecipient: string, protocolFeeRecipient: string, protocolFeeShareBps: number, buybackBurnBps: number, hookFeeBps: number, maxInternalPriceImpactBps: number, sweptTokens: { raw: string; decimal: string }, sweptAt: string | null, poolPositionId: string | null, rescueRecipient: string | null, rescueTokens: { raw: string; decimal: string } | null, lastUpdatedBlock: string, lastUpdatedAt: string, phantomQuote: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, graduationThreshold: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, sweptQuote: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, rescueQuote: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } | null } | null, amountRaisedQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, raiseThresholdQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, volume24hQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, anchoredVolume24hQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, totalCanonicalVolumeQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, volumeByQuoteAsset: Array<{ tradeCount: number, amount: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }>, lbVolumeByQuoteAsset: Array<{ tradeCount: number, amount: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }>, pools: Array<{ address: string, poolType: string, token0: string, token1: string, quoteIsToken1: boolean, quoteToken: string, ignoredForRouting: boolean, binStep: string | null, reserveToken: { raw: string; decimal: string } | null, reserveQuote: { wei: string; decimal: string } | null, tvlQuote: { wei: string; decimal: string } | null, reserveSource: string, createdBlock: number, lastUpdatedBlock: number, reserveQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } | null, tvlQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } | null }>, externalMarkets: Array<{ id: string, protocol: ExternalMarketProtocol, venueAddress: string, poolAddress: string | null, poolId: string | null, token0: string, token1: string, feePips: number | null, tickSpacing: number | null, hooks: string | null, createdBlock: number, createdTransactionHash: string, createdLogIndex: number }>, supplyDistribution: { originalSupply: { raw: string; decimal: string }, reconciled: boolean, partial: boolean, bondingCurveCustody: { amount: { raw: string; decimal: string }, basisPoints: number }, graduationPoolLiquidity: { amount: { raw: string; decimal: string }, basisPoints: number }, lbLiquidity: { amount: { raw: string; decimal: string }, basisPoints: number }, poolNonLiquidityCustody: { amount: { raw: string; decimal: string }, basisPoints: number }, lockedDead: { amount: { raw: string; decimal: string }, basisPoints: number }, otherProtocolCustody: { amount: { raw: string; decimal: string }, basisPoints: number }, userHeld: { amount: { raw: string; decimal: string }, basisPoints: number } }, recentTrades: Array<{ id: string, venue: TradeVenue, side: TradeSide, sender: string, recipient: string, attributedWallet: string | null, quoteToken: string, quoteAmount: { wei: string; decimal: string }, tokenAmount: { raw: string; decimal: string }, price: string | null, blockNumber: number, blockTimestamp: number, transactionHash: string, logIndex: number, quoteAmountAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }>, fees: Array<{ id: string, kind: string, economicType: string, pair: string | null, quoteToken: string, creatorTokenAmount: { raw: string; decimal: string }, creatorQuoteAmount: { wei: string; decimal: string }, protocolTokenAmount: { raw: string; decimal: string }, protocolQuoteAmount: { wei: string; decimal: string }, payoutAmount: { wei: string; decimal: string }, payoutStatus: string | null, blockNumber: number, blockTimestamp: number, transactionHash: string, creatorQuoteAmountAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, protocolQuoteAmountAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }> } | null };
|
|
61
|
+
|
|
62
|
+
export type TrendingLaunchesQueryVariables = Exact<{
|
|
63
|
+
deploymentId: string | number;
|
|
64
|
+
first: number;
|
|
65
|
+
}>;
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
export type TrendingLaunchesQuery = { trendingLaunches: { partial: boolean, minDistinctTraders: number, maxTraderPct: number, holdingsMultiple: number, nodes: Array<{ token: string, name: string | null, symbol: string | null, phase: IndexedLaunchPhase, lastCanonicalPrice: string | null, recentVolumeQuote: { wei: string; decimal: string }, rankVolumeQuote: { wei: string; decimal: string }, retainedValueQuote: { wei: string; decimal: string } | null, holdingsAnchored: boolean, distinctTraders: number, recentTrades: number, changePct: string, windowSeconds: number }> } };
|
|
69
|
+
|
|
70
|
+
export type LaunchPriceSeriesQueryVariables = Exact<{
|
|
71
|
+
deploymentId: string | number;
|
|
72
|
+
token: string;
|
|
73
|
+
venue: PriceVenue;
|
|
74
|
+
first: number;
|
|
75
|
+
after?: string | null | undefined;
|
|
76
|
+
}>;
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
export type LaunchPriceSeriesQuery = { launchPriceSeries: { nodes: Array<{ cursor: string, timestamp: number, blockNumber: number, price: string | null, volumeQuote: { wei: string; decimal: string }, venue: TradeVenue, side: TradeSide, transactionHash: string, volumeQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }>, pageInfo: { endCursor: string | null, hasNextPage: boolean } } };
|
|
80
|
+
|
|
81
|
+
export type WalletLaunchPositionsQueryVariables = Exact<{
|
|
82
|
+
deploymentId: string | number;
|
|
83
|
+
wallet: string;
|
|
84
|
+
first: number;
|
|
85
|
+
after?: string | null | undefined;
|
|
86
|
+
}>;
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
export type WalletLaunchPositionsQuery = { walletLaunchPositions: { wallet: string, partial: boolean, positions: Array<{ token: string, name: string | null, symbol: string | null, phase: IndexedLaunchPhase, balance: { raw: string; decimal: string }, tokenBalance: string, quoteToken: string, valueQuote: { wei: string; decimal: string }, investedQuote: { wei: string; decimal: string }, proceedsQuote: { wei: string; decimal: string }, pnlQuote: { wei: string; decimal: string }, lastCanonicalPrice: string | null, buyCount: number, sellCount: number, valueQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, investedQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, proceedsQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, pnlQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }>, pageInfo: { endCursor: string | null, hasNextPage: boolean }, totals: { valueQuote: { wei: string; decimal: string }, investedQuote: { wei: string; decimal: string }, proceedsQuote: { wei: string; decimal: string }, pnlQuote: { wei: string; decimal: string } } | null, totalsByQuoteAsset: Array<{ quoteToken: string, valueQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, investedQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, proceedsQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, pnlQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }> | null } };
|
|
90
|
+
|
|
91
|
+
export type PortfolioWalletBalancesQueryVariables = Exact<{
|
|
92
|
+
deploymentId: string | number;
|
|
93
|
+
wallet: string;
|
|
94
|
+
first: number;
|
|
95
|
+
after?: string | null | undefined;
|
|
96
|
+
}>;
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
export type PortfolioWalletBalancesQuery = { walletLaunchPositions: { wallet: string, partial: boolean, observationWatermark: { sourceWatermark: string, observedAtBlock: string, observedAt: string } | null, positions: Array<{ tokenIdentity: string, token: string, name: string | null, symbol: string | null, decimals: number | null, amountDisplay: string | null, tokenBalance: string, quoteToken: string, sourceWatermark: string, observedAtBlock: string, observedAt: string, lastCanonicalPrice: string | null, lastCanonicalPriceQuoteToken: string | null, lastCanonicalUnitPrice: string | null, lastCanonicalPriceBlock: string | null, lastCanonicalPriceObservedAt: string | null, valueQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, investedQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, proceedsQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null }, pnlQuoteAsset: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }>, pageInfo: { endCursor: string | null, hasNextPage: boolean } } };
|
|
100
|
+
|
|
101
|
+
export type WalletLiquidityBookPositionsQueryVariables = Exact<{
|
|
102
|
+
deploymentId: string | number;
|
|
103
|
+
wallet: string;
|
|
104
|
+
first: number;
|
|
105
|
+
after?: string | null | undefined;
|
|
106
|
+
}>;
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
export type WalletLiquidityBookPositionsQuery = { walletLiquidityBookPositions: { wallet: string, partial: boolean, positions: Array<{ poolAddress: string, walletAddress: string, activeBinCount: string, totalReceiptBalance: string, lastUpdatedBlock: string, lastUpdatedBlockHash: string, lastUpdatedTimestamp: string, lastUpdatedTransactionHash: string, pair: { address: string, token0: string, token1: string, binStep: string, activeBinId: string | null, createdBlock: string, lastUpdatedBlock: string } | null }>, pageInfo: { endCursor: string | null, hasNextPage: boolean } } };
|
|
110
|
+
|
|
111
|
+
export type PortfolioWalletLiquidityPositionsQueryVariables = Exact<{
|
|
112
|
+
deploymentId: string | number;
|
|
113
|
+
wallet: string;
|
|
114
|
+
first: number;
|
|
115
|
+
after?: string | null | undefined;
|
|
116
|
+
}>;
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
export type PortfolioWalletLiquidityPositionsQuery = { walletLiquidityBookPositions: { wallet: string, partial: boolean, observationWatermark: { sourceWatermark: string, observedAtBlock: string, observedAt: string } | null, positions: Array<{ poolAddress: string, walletAddress: string, activeBinCount: string, totalReceiptBalance: string, lastUpdatedBlock: string, lastUpdatedBlockHash: string, lastUpdatedTimestamp: string, lastUpdatedTransactionHash: string, pair: { address: string, token0: string, token1: string, binStep: string, activeBinId: string | null, createdBlock: string, lastUpdatedBlock: string } | null, underlyingAssets: Array<{ tokenIdentity: string, token: string, decimals: number, amountRaw: string, amountDisplay: string, lastCanonicalPrice: string | null, lastCanonicalPriceQuoteToken: string | null, lastCanonicalUnitPrice: string | null, lastCanonicalPriceBlock: string | null, lastCanonicalPriceObservedAt: string | null }> | null }>, pageInfo: { endCursor: string | null, hasNextPage: boolean } } };
|
|
120
|
+
|
|
121
|
+
export type LiquidityBookPositionQueryVariables = Exact<{
|
|
122
|
+
deploymentId: string | number;
|
|
123
|
+
wallet: string;
|
|
124
|
+
pool: string;
|
|
125
|
+
binFirst: number;
|
|
126
|
+
binsAfter?: string | null | undefined;
|
|
127
|
+
}>;
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
export type LiquidityBookPositionQuery = { liquidityBookPosition: { partial: boolean, position: { poolAddress: string, walletAddress: string, activeBinCount: string, totalReceiptBalance: string, lastUpdatedBlock: string, lastUpdatedBlockHash: string, lastUpdatedTimestamp: string, lastUpdatedTransactionHash: string, pair: { address: string, token0: string, token1: string, binStep: string, activeBinId: string | null, createdBlock: string, lastUpdatedBlock: string } | null }, bins: Array<{ cursor: string, binId: string, receiptBalance: string, lastUpdatedBlock: string, lastUpdatedBlockHash: string, lastUpdatedTimestamp: string, lastUpdatedTransactionHash: string }>, binsPageInfo: { endCursor: string | null, hasNextPage: boolean } } | null };
|
|
131
|
+
|
|
132
|
+
export type ProtocolStatsQueryVariables = Exact<{
|
|
133
|
+
deploymentId: string | number;
|
|
134
|
+
}>;
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
export type ProtocolStatsQuery = { protocolStats: { launched: number, graduated: number, bonding: number, poolCount: number, tradeCount: number, tvlQuote: { wei: string; decimal: string } | null, tvlPartial: boolean, volumePartial: boolean, totalVolumeQuote: { wei: string; decimal: string } | null, curveVolumeQuote: { wei: string; decimal: string } | null, ammVolumeQuote: { wei: string; decimal: string } | null, lbVolumeQuote: { wei: string; decimal: string } | null, lastIndexedBlock: number, lastUpdatedTimestamp: number, volumeByQuoteAsset: Array<{ tradeCount: number, amount: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }>, lbVolumeByQuoteAsset: Array<{ tradeCount: number, amount: { token: string, symbol: string | null, raw: string, decimals: number | null, decimal: string | null } }> } };
|
|
138
|
+
|
|
139
|
+
export type ChainDataFreshnessQueryVariables = Exact<{
|
|
140
|
+
deploymentId: string | number;
|
|
141
|
+
}>;
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
export type ChainDataFreshnessQuery = { chainDataFreshness: { deploymentId: string, healthy: boolean, backfilling: boolean, chainId: number, launchpadAddress: string, startBlock: number, chainHead: number, indexedHead: number, sourceHead: number, blockLag: number, configuredBlockLag: number, lastProcessedAt: string | null, hasuraReachable: boolean, rpcReachable: boolean } };
|
|
145
|
+
|
|
146
|
+
export type EthUsdPriceQueryVariables = Exact<{ [key: string]: never; }>;
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
export type EthUsdPriceQuery = { ethUsdPrice: { price: string, source: EthUsdPriceSource, observedAt: string, observedBlock: string, sourceChainId: number, pair: string, reserveTimestamp: number } };
|