tapimo 0.4.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.d.ts +7403 -6127
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +4 -0
- package/dist/App.js.map +1 -1
- package/dist/Scope.d.ts +18 -1
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +24 -3
- package/dist/Scope.js.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +115 -115
- package/dist/apps/data/App.d.ts +1838 -1534
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +135 -44
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/{FundingRouteProviders.d.ts → FundingQuoteProviders.d.ts} +7 -7
- package/dist/apps/data/{FundingRouteProviders.d.ts.map → FundingQuoteProviders.d.ts.map} +1 -1
- package/dist/apps/data/{FundingRouteProviders.js → FundingQuoteProviders.js} +36 -91
- package/dist/apps/data/FundingQuoteProviders.js.map +1 -0
- package/dist/apps/data/index.d.ts +1 -1
- package/dist/apps/data/index.js +1 -1
- package/dist/apps/data/routes/activities.d.ts +242 -242
- package/dist/apps/data/routes/addresses.d.ts +227 -227
- package/dist/apps/data/routes/balances.d.ts +12 -12
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +67 -149
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +125 -126
- package/dist/apps/data/routes/blocks.d.ts.map +1 -1
- package/dist/apps/data/routes/blocks.js +3 -5
- package/dist/apps/data/routes/blocks.js.map +1 -1
- package/dist/apps/data/routes/coingecko.d.ts +55 -54
- package/dist/apps/data/routes/coingecko.d.ts.map +1 -1
- package/dist/apps/data/routes/coingecko.js +3 -8
- package/dist/apps/data/routes/coingecko.js.map +1 -1
- package/dist/apps/data/routes/funding.d.ts +207 -388
- package/dist/apps/data/routes/funding.d.ts.map +1 -1
- package/dist/apps/data/routes/funding.js +143 -221
- package/dist/apps/data/routes/funding.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts.map +1 -1
- package/dist/apps/data/routes/rpc.js +86 -16
- package/dist/apps/data/routes/rpc.js.map +1 -1
- package/dist/apps/data/routes/tokenlist.d.ts +33 -33
- package/dist/apps/data/routes/transactions.d.ts +281 -281
- package/dist/apps/data/routes/transfers.d.ts +58 -58
- package/dist/apps/data/routes/verified-tokens.d.ts +86 -86
- package/dist/apps/data/routes/webhooks.d.ts +340 -0
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +13 -1
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/index.d.ts +1 -1
- package/dist/apps/index.js +1 -1
- package/dist/apps/management/App.d.ts +1090 -108
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +4 -0
- package/dist/apps/management/App.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +118 -118
- package/dist/apps/management/routes/api-keys.js +2 -2
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +207 -207
- package/dist/apps/management/routes/invite-links.d.ts +1100 -0
- package/dist/apps/management/routes/invite-links.d.ts.map +1 -0
- package/dist/apps/management/routes/invite-links.js +411 -0
- package/dist/apps/management/routes/invite-links.js.map +1 -0
- package/dist/apps/management/routes/me.d.ts +17 -17
- package/dist/apps/management/routes/members.d.ts +71 -71
- package/dist/apps/management/routes/orgs.d.ts +12 -12
- package/dist/apps/management/routes/projects.d.ts +70 -70
- package/dist/apps/management/routes/scopes.d.ts +11 -11
- package/dist/apps/management/routes/scopes.d.ts.map +1 -1
- package/dist/apps/management/routes/scopes.js +2 -2
- package/dist/apps/management/routes/scopes.js.map +1 -1
- package/dist/apps/management/routes/usage.d.ts +75 -75
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +42 -4
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/db/Db.d.ts +3 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +57 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +31 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +31 -0
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/inviteLinks.d.ts +42 -0
- package/dist/db/tables/inviteLinks.d.ts.map +1 -0
- package/dist/db/tables/inviteLinks.js +148 -0
- package/dist/db/tables/inviteLinks.js.map +1 -0
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +2 -0
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/handlers/relay.d.ts.map +1 -1
- package/dist/handlers/relay.js +13 -3
- package/dist/handlers/relay.js.map +1 -1
- package/dist/internal/Auth.d.ts +9 -1
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +130 -10
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/EdgeCache.d.ts +3 -1
- package/dist/internal/EdgeCache.d.ts.map +1 -1
- package/dist/internal/EdgeCache.js +17 -2
- package/dist/internal/EdgeCache.js.map +1 -1
- package/dist/internal/{FundingRoutes.d.ts → FundingQuotes.d.ts} +185 -428
- package/dist/internal/FundingQuotes.d.ts.map +1 -0
- package/dist/internal/{FundingRoutes.js → FundingQuotes.js} +93 -218
- package/dist/internal/FundingQuotes.js.map +1 -0
- package/dist/internal/Viem.d.ts +3 -1
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +11 -2
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/dist/internal/index.js +1 -1
- package/package.json +1 -1
- package/src/ApiKeys.test.ts +23 -0
- package/src/App.test-d.ts +2 -0
- package/src/App.ts +6 -0
- package/src/Client.test-d.ts +20 -11
- package/src/Scope.test.ts +1 -0
- package/src/Scope.ts +30 -4
- package/src/apps/data/App.test.ts +354 -0
- package/src/apps/data/App.ts +159 -52
- package/src/apps/data/FundingQuoteProviders.test.ts +151 -0
- package/src/apps/data/{FundingRouteProviders.ts → FundingQuoteProviders.ts} +40 -101
- package/src/apps/data/index.ts +1 -1
- package/src/apps/data/routes/balances.test.ts +64 -18
- package/src/apps/data/routes/balances.ts +76 -177
- package/src/apps/data/routes/blocks.ts +3 -5
- package/src/apps/data/routes/coingecko.ts +3 -8
- package/src/apps/data/routes/funding.test.ts +151 -206
- package/src/apps/data/routes/funding.ts +156 -291
- package/src/apps/data/routes/indexer.test.ts +97 -1
- package/src/apps/data/routes/rpc.test.ts +219 -0
- package/src/apps/data/routes/rpc.ts +92 -17
- package/src/apps/data/routes/webhooks.test.ts +21 -0
- package/src/apps/data/routes/webhooks.ts +13 -1
- package/src/apps/index.ts +1 -1
- package/src/apps/management/App.ts +4 -0
- package/src/apps/management/routes/api-keys.test.ts +47 -3
- package/src/apps/management/routes/api-keys.ts +2 -2
- package/src/apps/management/routes/invite-links.test.ts +385 -0
- package/src/apps/management/routes/invite-links.ts +570 -0
- package/src/apps/management/routes/scopes.test.ts +3 -2
- package/src/apps/management/routes/scopes.ts +4 -2
- package/src/apps/relay/App.test.ts +324 -4
- package/src/apps/relay/App.ts +40 -4
- package/src/db/Db.ts +65 -0
- package/src/db/Schema.ts +39 -0
- package/src/db/tables/inviteLinks.ts +187 -0
- package/src/db/tables/organizations.ts +2 -0
- package/src/handlers/relay.ts +16 -4
- package/src/internal/Auth.test.ts +132 -22
- package/src/internal/Auth.ts +171 -14
- package/src/internal/EdgeCache.test.ts +24 -3
- package/src/internal/EdgeCache.ts +18 -2
- package/src/internal/FundingQuotes.test.ts +174 -0
- package/src/internal/{FundingRoutes.ts → FundingQuotes.ts} +153 -312
- package/src/internal/Viem.ts +14 -5
- package/src/internal/index.test.ts +1 -1
- package/src/internal/index.ts +1 -1
- package/dist/apps/data/FundingRouteProviders.js.map +0 -1
- package/dist/internal/FundingRoutes.d.ts.map +0 -1
- package/dist/internal/FundingRoutes.js.map +0 -1
- package/src/apps/data/FundingRouteProviders.test.ts +0 -225
- package/src/internal/FundingRoutes.test.ts +0 -213
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Hono } from 'hono';
|
|
2
|
-
import {
|
|
2
|
+
import { Value as core_Value } from 'ox';
|
|
3
3
|
import { Actions } from 'viem/tempo';
|
|
4
4
|
import * as z from 'zod/mini';
|
|
5
5
|
import * as Auth from '../../../internal/Auth.js';
|
|
@@ -9,15 +9,13 @@ import * as OpenApi from '../../../internal/OpenApi.js';
|
|
|
9
9
|
import * as Response from '../../../internal/Response.js';
|
|
10
10
|
import * as Schema from '../../../internal/Schema.js';
|
|
11
11
|
import * as Timing from '../../../internal/Timing.js';
|
|
12
|
-
import * as Value from '../../../internal/Value.js';
|
|
13
12
|
import * as VerifiedTokens from '../../../internal/VerifiedTokens.js';
|
|
14
13
|
import * as FeeAmm from './fee-amm.js';
|
|
15
14
|
import * as Tokens from './tokens.js';
|
|
16
15
|
// TIP-20 tokens are minted by the TIP-20 factory and live at deterministic
|
|
17
16
|
// `0x20c0…`-prefixed addresses (e.g. pathUSD `0x20c0…0000`). The indexer's
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
// non-TIP-20 tokens (which have no resolvable TIP-20 metadata) out of results.
|
|
17
|
+
// balance sources include every Transfer-emitting contract, so discovery
|
|
18
|
+
// filters on this prefix to keep non-TIP-20 tokens out of results.
|
|
21
19
|
const tip20AddressPrefix = '0x20c0';
|
|
22
20
|
/** Zod schemas owned by the balance handlers. */
|
|
23
21
|
export var schema;
|
|
@@ -155,19 +153,6 @@ export function addresses() {
|
|
|
155
153
|
throw cause;
|
|
156
154
|
return undefined;
|
|
157
155
|
});
|
|
158
|
-
// `totalCount` (the number of matching holdings) is opt-in and shares
|
|
159
|
-
// the page's filters; run it concurrently with the page. Best-effort: a
|
|
160
|
-
// count failure omits `meta` rather than failing the page.
|
|
161
|
-
const countPromise = query.include.includes('totalCount')
|
|
162
|
-
? countAddressBalances(c, {
|
|
163
|
-
address,
|
|
164
|
-
chainId,
|
|
165
|
-
currency: query.currency,
|
|
166
|
-
feeEligible,
|
|
167
|
-
feeTokens,
|
|
168
|
-
verified,
|
|
169
|
-
}).catch(() => undefined)
|
|
170
|
-
: undefined;
|
|
171
156
|
const balances = await getAddressBalances(c, {
|
|
172
157
|
address,
|
|
173
158
|
chainId,
|
|
@@ -175,15 +160,12 @@ export function addresses() {
|
|
|
175
160
|
cursor: query.cursor,
|
|
176
161
|
feeEligible,
|
|
177
162
|
feeTokens,
|
|
163
|
+
includeTotalCount: query.include.includes('totalCount'),
|
|
178
164
|
limit: query.limit,
|
|
179
165
|
page: query.page,
|
|
180
166
|
verified,
|
|
181
167
|
});
|
|
182
|
-
|
|
183
|
-
return c.json(Response.validated(schema.getAddressBalances.Response, {
|
|
184
|
-
...balances,
|
|
185
|
-
...(meta ? { meta } : {}),
|
|
186
|
-
}), 200);
|
|
168
|
+
return c.json(Response.validated(schema.getAddressBalances.Response, balances), 200);
|
|
187
169
|
}
|
|
188
170
|
catch (cause) {
|
|
189
171
|
return Response.upstream(c, cause);
|
|
@@ -191,17 +173,10 @@ export function addresses() {
|
|
|
191
173
|
});
|
|
192
174
|
}
|
|
193
175
|
async function getAddressBalances(c, options) {
|
|
194
|
-
const { address, chainId, currency, feeEligible, feeTokens, limit, verified } = options;
|
|
176
|
+
const { address, chainId, currency, feeEligible, feeTokens, includeTotalCount, limit, verified } = options;
|
|
195
177
|
const tidx = c.get('getTidx')(chainId);
|
|
196
|
-
// Keyset pagination on `(balance, token)`: balance is descending and `token`
|
|
197
|
-
// is a stable tiebreaker for the many holdings sharing a balance. A malformed
|
|
198
|
-
// cursor falls back to the head page. Note: because `balance` is mutable, this
|
|
199
|
-
// is best-effort across balance changes (the inherent limit of ranking feeds).
|
|
200
178
|
const cursor = options.cursor ? Cursor.decode(options.cursor, ['uint', 'address']) : undefined;
|
|
201
|
-
|
|
202
|
-
// the head page, so it shares the head's SQL and cache entries; deeper pages
|
|
203
|
-
// translate to a SQL OFFSET of `(page - 1) * limit` rows.
|
|
204
|
-
const offset = options.page !== undefined && options.page > 1 ? (options.page - 1) * limit : undefined;
|
|
179
|
+
const offset = options.page !== undefined && options.page > 1 ? (options.page - 1) * limit : 0;
|
|
205
180
|
// Build the optional `token IN (…)` restriction before hitting TIDX. The
|
|
206
181
|
// verified/`currency` filter and the `feeEligible` filter each contribute a set
|
|
207
182
|
// of allowed addresses (`currency` matched case-insensitively so callers can
|
|
@@ -213,90 +188,48 @@ async function getAddressBalances(c, options) {
|
|
|
213
188
|
const allowed = allowedTokens({ currency, feeEligible, feeTokens, snapshot, verified });
|
|
214
189
|
const tokenFilter = allowed?.map((address) => `'${address}'`);
|
|
215
190
|
if (tokenFilter?.length === 0)
|
|
216
|
-
return {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
// snapshot refresh — see the indexer's `address_holder_deltas` MV). The
|
|
223
|
-
// `holder` equality prunes the view by its leading sort key, so this stays
|
|
224
|
-
// a bounded read per request. Fetch one extra row to detect `hasMore`
|
|
225
|
-
// without a separate count query. `startsWith` restricts results to TIP-20
|
|
226
|
-
// tokens (see `tip20AddressPrefix`) before pagination, so `hasMore`/page
|
|
227
|
-
// sizes stay correct and every returned token has resolvable metadata. The
|
|
228
|
-
// inline query is cast to `string` so TIDX treats it as a dynamic
|
|
229
|
-
// ClickHouse query that needs no event signature for the
|
|
230
|
-
// `address_balances` view.
|
|
231
|
-
//
|
|
232
|
-
// Let upstream failures propagate: this is a dedicated endpoint, so a
|
|
233
|
-
// failure should surface as the declared `502` rather than masquerade as
|
|
234
|
-
// an address holding zero tokens.
|
|
235
|
-
const keyset = cursor !== undefined
|
|
236
|
-
? ` AND ${Cursor.keyset([
|
|
237
|
-
{ literal: Cursor.literal(cursor[0], 'uint'), name: 'balance', order: 'desc' },
|
|
238
|
-
{ literal: Cursor.literal(cursor[1], 'address'), name: 'token', order: 'asc' },
|
|
239
|
-
])}`
|
|
240
|
-
: '';
|
|
191
|
+
return {
|
|
192
|
+
data: [],
|
|
193
|
+
...(includeTotalCount ? { meta: { totalCount: 0, totalCountCapped: false } } : {}),
|
|
194
|
+
nextCursor: null,
|
|
195
|
+
};
|
|
196
|
+
const holdings = await Timing.time(c, 'balances_discovery', async () => {
|
|
241
197
|
const tokenIn = tokenFilter ? ` AND token IN (${tokenFilter.join(', ')})` : '';
|
|
242
198
|
const result = await tidx.fetch({
|
|
243
199
|
chainId,
|
|
244
200
|
engine: 'clickhouse',
|
|
245
|
-
//
|
|
246
|
-
//
|
|
247
|
-
// row's exact balance, so any rounding would re-include the cursor
|
|
248
|
-
// row on the next page. Alias is `balance_str` (not `balance`)
|
|
249
|
-
// because TIDX rejects expression aliases that shadow the source
|
|
250
|
-
// column (422).
|
|
201
|
+
// Discovery tolerates stale and reorged rows: RPC removes candidates
|
|
202
|
+
// with no current balance, so avoid the cost of `FINAL` and aggregation.
|
|
251
203
|
query: `
|
|
252
|
-
SELECT token
|
|
253
|
-
FROM
|
|
254
|
-
WHERE holder = '${address}' AND startsWith(token, '${tip20AddressPrefix}')
|
|
255
|
-
ORDER BY balance DESC, token ASC
|
|
256
|
-
LIMIT ${limit + 1}${offset !== undefined ? ` OFFSET ${offset}` : ''}
|
|
204
|
+
SELECT DISTINCT token
|
|
205
|
+
FROM address_holder_deltas
|
|
206
|
+
WHERE holder = '${address}' AND startsWith(token, '${tip20AddressPrefix}')${tokenIn}
|
|
257
207
|
`,
|
|
258
208
|
});
|
|
259
|
-
|
|
260
|
-
const page = Cursor.paginate({
|
|
261
|
-
rows: result.rows,
|
|
262
|
-
limit,
|
|
263
|
-
key: (row) => {
|
|
264
|
-
const balance = Value.toIntegerString(row['balance_str']);
|
|
265
|
-
const token = Schema.Address.safeParse(row['token']);
|
|
266
|
-
return balance !== undefined && token.success ? [balance, token.data] : undefined;
|
|
267
|
-
},
|
|
268
|
-
});
|
|
269
|
-
const data = [];
|
|
270
|
-
for (const row of page.rows) {
|
|
209
|
+
return result.rows.flatMap((row) => {
|
|
271
210
|
const token = Schema.Address.safeParse(row['token']);
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
data.push({ address: token.data, amount });
|
|
275
|
-
}
|
|
276
|
-
return { data, nextCursor: page.nextCursor };
|
|
211
|
+
return token.success ? [{ address: token.data }] : [];
|
|
212
|
+
});
|
|
277
213
|
});
|
|
278
|
-
if (holdings.
|
|
279
|
-
return {
|
|
214
|
+
if (holdings.length === 0)
|
|
215
|
+
return {
|
|
216
|
+
data: [],
|
|
217
|
+
...(includeTotalCount ? { meta: { totalCount: 0, totalCountCapped: false } } : {}),
|
|
218
|
+
nextCursor: null,
|
|
219
|
+
};
|
|
280
220
|
const client = c.get('getClient')(chainId);
|
|
281
|
-
// TODO: remove once https://github.com/tempoxyz/tidx/commit/2f37b44172d381fd00234ef23f79ed1e1d69c470 deployed.
|
|
282
221
|
const corrected = await Timing.time(c, 'balances_rpc', async () => {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
continue;
|
|
295
|
-
}
|
|
296
|
-
if (result.result === 0n)
|
|
297
|
-
continue;
|
|
298
|
-
rows.push({ address: holding.address, amount: result.result.toString() });
|
|
299
|
-
}
|
|
222
|
+
// Concurrent reads enter viem's shared batch window and become one
|
|
223
|
+
// deployless multicall. A failed read fails the request rather than serving
|
|
224
|
+
// a stale or partial balance page.
|
|
225
|
+
const results = await Promise.all(holdings.map(async (holding) => {
|
|
226
|
+
const { amount } = await Actions.token.getBalance(client, {
|
|
227
|
+
account: address,
|
|
228
|
+
token: holding.address,
|
|
229
|
+
});
|
|
230
|
+
return amount === 0n ? undefined : { address: holding.address, amount: amount.toString() };
|
|
231
|
+
}));
|
|
232
|
+
const rows = results.filter((holding) => holding !== undefined);
|
|
300
233
|
rows.sort((a, b) => {
|
|
301
234
|
const delta = BigInt(b.amount) - BigInt(a.amount);
|
|
302
235
|
if (delta !== 0n)
|
|
@@ -305,8 +238,27 @@ async function getAddressBalances(c, options) {
|
|
|
305
238
|
});
|
|
306
239
|
return rows;
|
|
307
240
|
});
|
|
308
|
-
|
|
309
|
-
|
|
241
|
+
const positioned = (() => {
|
|
242
|
+
if (!cursor)
|
|
243
|
+
return corrected.slice(offset);
|
|
244
|
+
const amount = BigInt(cursor[0]);
|
|
245
|
+
const address = String(cursor[1]);
|
|
246
|
+
return corrected.filter((holding) => BigInt(holding.amount) < amount ||
|
|
247
|
+
(BigInt(holding.amount) === amount && holding.address > address));
|
|
248
|
+
})();
|
|
249
|
+
const page = Cursor.paginate({
|
|
250
|
+
rows: positioned,
|
|
251
|
+
limit,
|
|
252
|
+
key: (holding) => [holding.amount, holding.address],
|
|
253
|
+
});
|
|
254
|
+
if (page.rows.length === 0)
|
|
255
|
+
return {
|
|
256
|
+
data: [],
|
|
257
|
+
...(includeTotalCount
|
|
258
|
+
? { meta: { totalCount: corrected.length, totalCountCapped: false } }
|
|
259
|
+
: {}),
|
|
260
|
+
nextCursor: page.nextCursor,
|
|
261
|
+
};
|
|
310
262
|
// Resolve token metadata for each balance. The endpoint's contract is a
|
|
311
263
|
// balance with its `token` reference inlined per row (and `formatted` needs
|
|
312
264
|
// the token `decimals`), so a row whose metadata cannot be resolved is
|
|
@@ -317,7 +269,7 @@ async function getAddressBalances(c, options) {
|
|
|
317
269
|
// The verified `snapshot` fetched above is reused across the page instead of
|
|
318
270
|
// re-resolved per row. `createdAt` is not part of this endpoint's response,
|
|
319
271
|
// so it is never fetched here.
|
|
320
|
-
const resolved = await Timing.time(c, 'tokens', () => Promise.all(
|
|
272
|
+
const resolved = await Timing.time(c, 'tokens', () => Promise.all(page.rows.map((holding) => Tokens.resolveToken(c, {
|
|
321
273
|
address: holding.address,
|
|
322
274
|
chainId,
|
|
323
275
|
snapshot,
|
|
@@ -347,7 +299,13 @@ async function getAddressBalances(c, options) {
|
|
|
347
299
|
},
|
|
348
300
|
});
|
|
349
301
|
}
|
|
350
|
-
return {
|
|
302
|
+
return {
|
|
303
|
+
data,
|
|
304
|
+
...(includeTotalCount
|
|
305
|
+
? { meta: { totalCount: corrected.length, totalCountCapped: false } }
|
|
306
|
+
: {}),
|
|
307
|
+
nextCursor: page.nextCursor,
|
|
308
|
+
};
|
|
351
309
|
}
|
|
352
310
|
/**
|
|
353
311
|
* Computes the optional set of allowed token addresses for the page's
|
|
@@ -381,44 +339,4 @@ function allowedTokens(options) {
|
|
|
381
339
|
}
|
|
382
340
|
return allowed;
|
|
383
341
|
}
|
|
384
|
-
/**
|
|
385
|
-
* Exact count of an address's matching TIP-20 holdings, sharing
|
|
386
|
-
* {@link getAddressBalances}'s `holder`/`verified`/`currency` filters (minus
|
|
387
|
-
* pagination) so the count matches the page it annotates. The `holder` equality
|
|
388
|
-
* prunes the `token_balances_snapshot` view by its sort key, so ClickHouse
|
|
389
|
-
* counts via the sparse primary index without a row scan — the count is exact
|
|
390
|
-
* and cheap with no cap (`totalCountCapped` is always `false`), verified at
|
|
391
|
-
* ~370k holdings in <1s. Feeds the opt-in `meta.totalCount`.
|
|
392
|
-
*/
|
|
393
|
-
async function countAddressBalances(c, options) {
|
|
394
|
-
const { address, chainId, currency, feeEligible, feeTokens, verified } = options;
|
|
395
|
-
const tidx = c.get('getTidx')(chainId);
|
|
396
|
-
// Same verified/currency/feeEligible `token IN (…)` restriction as the page; an
|
|
397
|
-
// empty filter means nothing matches, so the count is zero without a round
|
|
398
|
-
// trip.
|
|
399
|
-
const snapshot = await VerifiedTokens.snapshot(c, chainId);
|
|
400
|
-
const allowed = allowedTokens({ currency, feeEligible, feeTokens, snapshot, verified });
|
|
401
|
-
const tokenFilter = allowed?.map((address) => `'${address}'`);
|
|
402
|
-
if (tokenFilter?.length === 0)
|
|
403
|
-
return { totalCountCapped: false, totalCount: 0 };
|
|
404
|
-
const tokenIn = tokenFilter ? ` AND token IN (${tokenFilter.join(', ')})` : '';
|
|
405
|
-
return Timing.time(c, 'address_balances_count', async () => {
|
|
406
|
-
// Exact count over the holder-pruned `address_balances` rows (mirrors the
|
|
407
|
-
// page's WHERE, minus the keyset cursor). The `holder` sort-key prune lets
|
|
408
|
-
// ClickHouse count via the sparse index, so no cap is needed. The inline
|
|
409
|
-
// query is cast to `string` so TIDX treats it as a dynamic ClickHouse
|
|
410
|
-
// query needing no signature.
|
|
411
|
-
const result = await tidx.fetch({
|
|
412
|
-
chainId,
|
|
413
|
-
engine: 'clickhouse',
|
|
414
|
-
query: `
|
|
415
|
-
SELECT count(*) AS total
|
|
416
|
-
FROM address_balances
|
|
417
|
-
WHERE holder = '${address}' AND startsWith(token, '${tip20AddressPrefix}') AND balance > 0${tokenIn}
|
|
418
|
-
`,
|
|
419
|
-
});
|
|
420
|
-
const totalCount = Value.toNumber(result.rows[0]?.['total']) ?? 0;
|
|
421
|
-
return { totalCountCapped: false, totalCount };
|
|
422
|
-
});
|
|
423
|
-
}
|
|
424
342
|
//# sourceMappingURL=balances.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../../src/apps/data/routes/balances.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../../src/apps/data/routes/balances.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAgB,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,IAAI,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAG7B,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,cAAc,MAAM,qCAAqC,CAAA;AACrE,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC,2EAA2E;AAC3E,2EAA2E;AAC3E,yEAAyE;AACzE,mEAAmE;AACnE,MAAM,kBAAkB,GAAG,QAAQ,CAAA;AAEnC,iDAAiD;AACjD,MAAM,KAAW,MAAM,CAuHtB;AAvHD,WAAiB,MAAM;IACrB,oDAAoD;IACpD,IAAiB,kBAAkB,CAoHlC;IApHD,WAAiB,kBAAkB;QACjC,oDAAoD;QACvC,yBAAM,GAAG,CAAC;aACpB,MAAM,CAAC;YACN,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAC3B,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC,CACzE;SACF,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,0DAA0D,CAAC,CAAC,CAAA;QAEhF,qDAAqD;QACxC,wBAAK,GAAG,CAAC;aACnB,YAAY,CAAC;YACZ,OAAO,EAAE,MAAM,CAAC,YAAY;YAC5B,QAAQ,EAAE,CAAC;iBACR,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACpB,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,UAAU,EAAE,CAAC,EAC/C,CAAC,CAAC,QAAQ,CACR,0EAA0E;gBACxE,iEAAiE;gBACjE,0DAA0D;gBAC1D,0DAA0D,CAC7D,CACF;YACH,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,CAAC;iBACX,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;iBAC/B,KAAK,CACJ,CAAC,CAAC,QAAQ,CACR,8EAA8E;gBAC5E,uEAAuE;gBACvE,0EAA0E;gBAC1E,iCAAiC,CACpC,EACD,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAC7B;YACH,OAAO,EAAE,MAAM,CAAC,iBAAiB;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,CAAC;iBACR,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;iBAC/B,KAAK,CACJ,CAAC,CAAC,QAAQ,CACR,4EAA4E,CAC7E,EACD,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAC7B;SACJ,CAAC;aACD,KAAK,CACJ,GAAG,MAAM,CAAC,UAAU,EAAE,EACtB,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC,CACxE,CAAA;QAEH;;;;;WAKG;QACU,0BAAO,GAAG,MAAM,CAAC,QAAQ,CACpC,CAAC,CAAC,MAAM,CAAC;YACP,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,KAAK,CACJ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAChB,CAAC,CAAC,QAAQ,CACR,sJAAsJ,CACvJ,EACD,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAClC;YACH,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,KAAK,CACJ,CAAC,CAAC,QAAQ,CACR,gFAAgF,CACjF,EACD,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAC9B;YACH,EAAE,EAAE,CAAC;iBACF,MAAM,EAAE;iBACR,KAAK,CACJ,CAAC,CAAC,QAAQ,CACR,6EAA6E,CAC9E,EACD,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,4CAA4C,CAAC,EAAE,CAAC,CACrE;YACH,WAAW,EAAE,CAAC;iBACX,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;iBACrB,KAAK,CACJ,CAAC,CAAC,QAAQ,CACR,+EAA+E;gBAC7E,4EAA4E;gBAC5E,yEAAyE;gBACzE,0EAA0E;gBAC1E,iBAAiB,CACpB,EACD,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAC7B;YACH,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;SAC3B,CAAC,EACF,0FAA0F,CAC3F,CAAA;QAED,sFAAsF;QACzE,2BAAQ,GAAG,CAAC;aACtB,MAAM,CAAC;YACN,IAAI,EAAE,CAAC;iBACJ,KAAK,CAAC,0BAAO,CAAC;iBACd,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,qEAAqE,CAAC,CAAC;YAC3F,IAAI,EAAE,CAAC;iBACJ,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;iBAC1B,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC,CAAC;YAC1E,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC,CAAA;IAC/E,CAAC,EApHgB,kBAAkB,GAAlB,OAAA,kBAAkB,KAAlB,OAAA,kBAAkB,QAoHlC;AACH,CAAC,EAvHgB,MAAM,KAAN,MAAM,QAuHtB;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,IAAI,EAAmB,CAAC,GAAG,CACpC,iCAAiC,EACjC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAC3E,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE;QAC1D,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,yBAAyB;KACnC,CAAC,EACF,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE;QACzD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,0BAA0B;KACpC,CAAC,EACF,OAAO,CAAC,aAAa,CAAC;QACpB,WAAW,EACT,iKAAiK;QACnK,WAAW,EAAE,oBAAoB;QACjC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;YAC3B,MAAM,EAAE,EAAE,GAAG,EAAE,oDAAoD,EAAE;YACrE,OAAO,EAAE;gBACP,WAAW,EAAE,4CAA4C;gBACzD,MAAM,EAAE,MAAM,CAAC,kBAAkB,CAAC,QAAQ;aAC3C;SACF,CAAC;QACF,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,CAAC,UAAU,CAAC;KACnB,CAAC,EACF,KAAK,CAAC,QAAQ,CAAkB;QAC9B,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;QACpC,IAAI,EAAE,wBAAwB;QAC9B,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC;KAC7D,CAAC,EACF,KAAK,EAAE,CAAC,EAAE,EAAE;QACV,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QACrD,IAAI,OAAO,CAAC,gBAAgB;YAC1B,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE;gBAChC,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,4BAA4B;aACtC,CAAC,CAAA;QACJ,IAAI,OAAO,CAAC,gBAAgB;YAC1B,OAAO,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE;gBAChC,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,4BAA4B;aACtC,CAAC,CAAA;QAEJ,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAElC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACjD,qEAAqE;YACrE,iDAAiD;YACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAA;YAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,KAAK,CAAA;YAE9C,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,mEAAmE;YACnE,wEAAwE;YACxE,uEAAuE;YACvE,mEAAmE;YACnE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrE,IAAI,WAAW;oBAAE,MAAM,KAAK,CAAA;gBAC5B,OAAO,SAAS,CAAA;YAClB,CAAC,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,CAAC,EAAE;gBAC3C,OAAO;gBACP,OAAO;gBACP,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,WAAW;gBACX,SAAS;gBACT,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACvD,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ;aACT,CAAC,CAAA;YAEF,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAA;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CACF,CAAA;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,CAA2B,EAC3B,OAAmC;IAEnC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE,GAC9F,OAAO,CAAA;IACT,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC9F,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9F,yEAAyE;IACzE,gFAAgF;IAChF,6EAA6E;IAC7E,mEAAmE;IACnE,4EAA4E;IAC5E,4EAA4E;IAC5E,SAAS;IACT,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IACvF,MAAM,WAAW,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,GAAG,CAAC,CAAA;IAC7D,IAAI,WAAW,EAAE,MAAM,KAAK,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,EAAE;YACR,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,UAAU,EAAE,IAAI;SACjB,CAAA;IAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QAE9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YAC9B,OAAO;YACP,MAAM,EAAE,YAAY;YACpB,qEAAqE;YACrE,yEAAyE;YACzE,KAAK,EAAE;;;0BAGa,OAAO,4BAA4B,kBAAkB,KAAK,OAAO;OAC1E;SACZ,CAAC,CAAA;QAEF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YACpD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,EAAE;YACR,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,UAAU,EAAE,IAAI;SACjB,CAAA;IAEH,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE;QAChE,mEAAmE;QACnE,4EAA4E;QAC5E,mCAAmC;QACnC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;gBACxD,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,OAAO,CAAC,OAAO;aACvB,CAAC,CAAA;YACF,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC5F,CAAC,CAAC,CACH,CAAA;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAA;QAE/D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACjB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;YACjD,IAAI,KAAK,KAAK,EAAE;gBAAE,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5C,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE;QACvB,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAA;QAClC,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,OAAO,EAAE,EAAE,CACV,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM;YAC/B,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,MAAM,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,CACnE,CAAA;IACH,CAAC,CAAC,EAAE,CAAA;IACJ,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK;QACL,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC;KACpD,CAAC,CAAA;IAEF,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,EAAE;YACR,GAAG,CAAC,iBAAiB;gBACnB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE;gBACrE,CAAC,CAAC,EAAE,CAAC;YACP,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAA;IAEH,wEAAwE;IACxE,4EAA4E;IAC5E,uEAAuE;IACvE,0EAA0E;IAC1E,4EAA4E;IAC5E,oCAAoC;IACpC,EAAE;IACF,6EAA6E;IAC7E,4EAA4E;IAC5E,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CACnD,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACxB,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE;QACrB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO;QACP,QAAQ;KACT,CAAC;SACC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAU,CAAC;SACnE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAU,CAAC,CAC3E,CACF,CACF,CAAA;IAED,MAAM,IAAI,GAAyD,EAAE,CAAA;IACrE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,SAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC;YACR,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3E,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;YAC1B,sEAAsE;YACtE,2DAA2D;YAC3D,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1F,KAAK,EAAE;gBACL,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;gBAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;gBACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;gBACjC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACrB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;gBAC/B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;gBACzB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;gBAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;aAClC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,IAAI;QACJ,GAAG,CAAC,iBAAiB;YACnB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE;YACrE,CAAC,CAAC,EAAE,CAAC;QACP,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAA;AACH,CAAC;AA4BD;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAC,OAA8B;IACnD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IACxE,IAAI,OAA6B,CAAA;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,QAAQ;YACvB,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;YACzD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;QACjB,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,iFAAiF;IACjF,2EAA2E;IAC3E,6EAA6E;IAC7E,uBAAuB;IACvB,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS;YAAE,OAAO,GAAG,EAAE,CAAA;aACvB,IAAI,OAAO;YAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;;YAC1E,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|