tapimo 0.9.0 → 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/dist/App.d.ts +4887 -5074
- package/dist/App.d.ts.map +1 -1
- package/dist/Webhooks.d.ts +21 -20
- package/dist/Webhooks.d.ts.map +1 -1
- package/dist/Webhooks.js +66 -23
- package/dist/Webhooks.js.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +168 -168
- package/dist/apps/Zones.d.ts +34 -22
- package/dist/apps/Zones.d.ts.map +1 -1
- package/dist/apps/Zones.js +9 -8
- package/dist/apps/Zones.js.map +1 -1
- package/dist/apps/data/App.d.ts +5198 -5099
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/FxOracle.d.ts +4 -5
- package/dist/apps/data/FxOracle.d.ts.map +1 -1
- package/dist/apps/data/FxOracle.js +19 -4
- package/dist/apps/data/FxOracle.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +270 -270
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +32 -27
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +52 -52
- package/dist/apps/data/routes/balances.d.ts +36 -36
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +135 -81
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +125 -125
- package/dist/apps/data/routes/coingecko.d.ts +54 -54
- package/dist/apps/data/routes/earn.d.ts +512 -58
- package/dist/apps/data/routes/earn.d.ts.map +1 -1
- package/dist/apps/data/routes/earn.js +368 -44
- package/dist/apps/data/routes/earn.js.map +1 -1
- package/dist/apps/data/routes/exchanges.d.ts +120 -120
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +114 -118
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +68 -47
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/rpc.d.ts +31 -31
- package/dist/apps/data/routes/tokens.d.ts +461 -459
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +59 -51
- package/dist/apps/data/routes/transactions.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.js +25 -23
- package/dist/apps/data/routes/transactions.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +108 -86
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +618 -105
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +21 -21
- package/dist/apps/data/routes/valuation.d.ts.map +1 -1
- package/dist/apps/data/routes/valuation.js +2 -2
- package/dist/apps/data/routes/valuation.js.map +1 -1
- package/dist/apps/data/routes/verified-tokens.d.ts +37 -37
- package/dist/apps/data/routes/webhooks.d.ts +102 -505
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +484 -342
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/data/routes/zones.d.ts +12 -12
- package/dist/apps/data/routes/zones.d.ts.map +1 -1
- package/dist/apps/data/routes/zones.js +3 -1
- package/dist/apps/data/routes/zones.js.map +1 -1
- package/dist/apps/funding/App.d.ts +96 -96
- package/dist/apps/funding/routes/deposit-addresses.d.ts +52 -52
- package/dist/apps/funding/routes/quotes.d.ts +89 -89
- package/dist/apps/funding/routes/transfers.d.ts +4 -4
- package/dist/apps/management/App.d.ts +429 -727
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +24 -24
- package/dist/apps/management/routes/billing.d.ts +72 -72
- package/dist/apps/management/routes/faucet.d.ts +6 -6
- package/dist/apps/management/routes/invitations.d.ts +134 -134
- package/dist/apps/management/routes/invite-links.d.ts +38 -38
- package/dist/apps/management/routes/me.d.ts +6 -6
- package/dist/apps/management/routes/members.d.ts +30 -30
- package/dist/apps/management/routes/orgs.d.ts +98 -98
- package/dist/apps/management/routes/projects.d.ts +20 -20
- package/dist/apps/management/routes/usage.d.ts +24 -24
- package/dist/apps/management/routes/verified-token-requests.d.ts +83 -83
- package/dist/apps/management/routes/webhooks.d.ts +158 -573
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/mpp/App.d.ts +56 -44
- package/dist/apps/mpp/App.d.ts.map +1 -1
- package/dist/apps/mpp/Mpp.d.ts +3 -0
- package/dist/apps/mpp/Mpp.d.ts.map +1 -1
- package/dist/apps/mpp/Mpp.js +3 -0
- package/dist/apps/mpp/Mpp.js.map +1 -1
- package/dist/apps/mpp/internal/Adapter.d.ts.map +1 -1
- package/dist/apps/mpp/internal/Adapter.js +9 -2
- package/dist/apps/mpp/internal/Adapter.js.map +1 -1
- package/dist/db/Db.d.ts +2 -2
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +17 -15
- package/dist/db/Db.js.map +1 -1
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +4 -1
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/webhookSubscriptions.d.ts +56 -3
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +76 -3
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/internal/MetricSink.d.ts +112 -3
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +116 -3
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/Schema.js +1 -1
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Tidx.d.ts +1 -3
- package/dist/internal/Tidx.d.ts.map +1 -1
- package/dist/internal/Tidx.js +1 -3
- package/dist/internal/Tidx.js.map +1 -1
- package/dist/internal/Viem.d.ts.map +1 -1
- package/dist/internal/Viem.js +2 -1
- package/dist/internal/Viem.js.map +1 -1
- package/dist/internal/WebhookDestination.d.ts +2 -0
- package/dist/internal/WebhookDestination.d.ts.map +1 -1
- package/dist/internal/WebhookDestination.js +11 -0
- package/dist/internal/WebhookDestination.js.map +1 -1
- package/dist/internal/WebhookTransfer.d.ts +55 -0
- package/dist/internal/WebhookTransfer.d.ts.map +1 -0
- package/dist/internal/WebhookTransfer.js +296 -0
- package/dist/internal/WebhookTransfer.js.map +1 -0
- package/dist/internal/Webhooks.d.ts +37 -0
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +87 -13
- package/dist/internal/Webhooks.js.map +1 -1
- package/dist/internal/funding/Provider.d.ts +4 -0
- package/dist/internal/funding/Provider.d.ts.map +1 -1
- package/dist/internal/funding/Provider.js +11 -7
- package/dist/internal/funding/Provider.js.map +1 -1
- package/dist/internal/funding/Reconciliation.d.ts.map +1 -1
- package/dist/internal/funding/Reconciliation.js +128 -0
- package/dist/internal/funding/Reconciliation.js.map +1 -1
- package/dist/internal/funding/providers/relay.d.ts +3 -0
- package/dist/internal/funding/providers/relay.d.ts.map +1 -1
- package/dist/internal/funding/providers/relay.js +12 -1
- package/dist/internal/funding/providers/relay.js.map +1 -1
- package/package.json +3 -3
- package/src/Client.test-d.ts +60 -5
- package/src/Webhooks.bench.ts +714 -0
- package/src/Webhooks.memory.bench.ts +250 -0
- package/src/Webhooks.test.ts +77 -6
- package/src/Webhooks.ts +83 -29
- package/src/apps/Zones.test.ts +5 -4
- package/src/apps/Zones.ts +9 -8
- package/src/apps/data/FxOracle.test.ts +18 -0
- package/src/apps/data/FxOracle.ts +28 -5
- package/src/apps/data/routes/activities.test.ts +19 -0
- package/src/apps/data/routes/activities.ts +34 -30
- package/src/apps/data/routes/balances.test.ts +119 -10
- package/src/apps/data/routes/balances.ts +154 -95
- package/src/apps/data/routes/blocks.test.ts +12 -6
- package/src/apps/data/routes/earn.test.ts +197 -0
- package/src/apps/data/routes/earn.ts +486 -44
- package/src/apps/data/routes/exchanges.test.ts +7 -6
- package/src/apps/data/routes/exchanges.ts +124 -117
- package/src/apps/data/routes/receipts.test.ts +24 -7
- package/src/apps/data/routes/receipts.ts +67 -50
- package/src/apps/data/routes/tokens.test.ts +51 -0
- package/src/apps/data/routes/transactions.test.ts +42 -0
- package/src/apps/data/routes/transactions.ts +44 -39
- package/src/apps/data/routes/transfers.test.ts +402 -24
- package/src/apps/data/routes/transfers.ts +708 -101
- package/src/apps/data/routes/valuation.test.ts +26 -0
- package/src/apps/data/routes/valuation.ts +6 -2
- package/src/apps/data/routes/webhooks.test.ts +414 -130
- package/src/apps/data/routes/webhooks.ts +603 -419
- package/src/apps/data/routes/zones.ts +6 -1
- package/src/apps/funding/routes/quotes.test.ts +1 -1
- package/src/apps/mpp/Mpp.test.ts +13 -1
- package/src/apps/mpp/Mpp.ts +8 -0
- package/src/apps/mpp/internal/Adapter.ts +10 -2
- package/src/db/Db.test.ts +40 -6
- package/src/db/Db.ts +33 -19
- package/src/db/tables/sponsoredTransactions.ts +9 -2
- package/src/db/tables/webhookSubscriptions.ts +116 -4
- package/src/internal/EarnVaults.test.ts +2 -2
- package/src/internal/MetricSink.test.ts +518 -0
- package/src/internal/MetricSink.ts +266 -9
- package/src/internal/Schema.ts +1 -1
- package/src/internal/Tidx.test.ts +4 -4
- package/src/internal/Tidx.ts +1 -3
- package/src/internal/Viem.test.ts +8 -0
- package/src/internal/Viem.ts +2 -1
- package/src/internal/WebhookDestination.test.ts +20 -0
- package/src/internal/WebhookDestination.ts +10 -0
- package/src/internal/WebhookTransfer.ts +426 -0
- package/src/internal/Webhooks.test.ts +137 -0
- package/src/internal/Webhooks.ts +131 -17
- package/src/internal/funding/Provider.test.ts +47 -7
- package/src/internal/funding/Provider.ts +12 -7
- package/src/internal/funding/Reconciliation.local.test.ts +3 -1
- package/src/internal/funding/Reconciliation.test.ts +1240 -0
- package/src/internal/funding/Reconciliation.ts +136 -0
- package/src/internal/funding/SourceObservation.test.ts +1 -0
- package/src/internal/funding/providers/relay.test.ts +1 -4
- package/src/internal/funding/providers/relay.ts +16 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exchanges.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/exchanges.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"exchanges.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/exchanges.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
@@ -1120,30 +1120,38 @@ export function exchanges(options = {}) {
|
|
|
1120
1120
|
try {
|
|
1121
1121
|
// Value quoted amounts via their curated display currency; snapshot
|
|
1122
1122
|
// or rate failures degrade the values to `null`, never the quote.
|
|
1123
|
-
const denomination = query['valuation.currency']
|
|
1124
|
-
const snapshot =
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1123
|
+
const denomination = query['valuation.currency'];
|
|
1124
|
+
const snapshot = denomination
|
|
1125
|
+
? await VerifiedTokens.snapshot(c, chainId).catch(() => undefined)
|
|
1126
|
+
: undefined;
|
|
1127
|
+
const rates = denomination
|
|
1128
|
+
? await Valuation.ratesFor(c, {
|
|
1129
|
+
currencies: snapshot
|
|
1130
|
+
? [request.destinationToken, request.sourceToken].flatMap((address) => {
|
|
1131
|
+
const held = snapshot.byAddress.get(address.toLowerCase())?.currency;
|
|
1132
|
+
return held === undefined ? [] : [held];
|
|
1133
|
+
})
|
|
1134
|
+
: [],
|
|
1135
|
+
denomination,
|
|
1136
|
+
oracle,
|
|
1137
|
+
})
|
|
1138
|
+
: undefined;
|
|
1135
1139
|
const valued = (baseUnits, address, token) => ({
|
|
1136
1140
|
...Value.tokenAmount({
|
|
1137
1141
|
baseUnits,
|
|
1138
1142
|
currency: token.currency,
|
|
1139
1143
|
decimals: token.decimals,
|
|
1140
1144
|
}),
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1145
|
+
...(denomination
|
|
1146
|
+
? {
|
|
1147
|
+
valuation: Valuation.valuationFor({
|
|
1148
|
+
amount: BigInt(baseUnits),
|
|
1149
|
+
denomination,
|
|
1150
|
+
rates,
|
|
1151
|
+
token: snapshot?.byAddress.get(address.toLowerCase()),
|
|
1152
|
+
}),
|
|
1153
|
+
}
|
|
1154
|
+
: {}),
|
|
1147
1155
|
});
|
|
1148
1156
|
if (options.nativeDex === false || amount > maxSwapAmount)
|
|
1149
1157
|
throw new ExchangeProvider.RouteUnavailableError();
|
|
@@ -1496,20 +1504,22 @@ export function exchanges(options = {}) {
|
|
|
1496
1504
|
});
|
|
1497
1505
|
// Value amounts via their curated display currency; snapshot or rate
|
|
1498
1506
|
// failures degrade the values to `null`, never the feed.
|
|
1499
|
-
const denomination = options['valuation.currency']
|
|
1500
|
-
const snapshot = page.data.length > 0
|
|
1507
|
+
const denomination = options['valuation.currency'];
|
|
1508
|
+
const snapshot = denomination !== undefined && page.data.length > 0
|
|
1501
1509
|
? await VerifiedTokens.snapshot(c, chainId).catch(() => undefined)
|
|
1502
1510
|
: undefined;
|
|
1503
|
-
const rates =
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1511
|
+
const rates = denomination
|
|
1512
|
+
? await Valuation.ratesFor(c, {
|
|
1513
|
+
currencies: snapshot
|
|
1514
|
+
? page.data.flatMap((swap) => swap.route.flatMap((address) => {
|
|
1515
|
+
const held = snapshot.byAddress.get(address.toLowerCase())?.currency;
|
|
1516
|
+
return held === undefined ? [] : [held];
|
|
1517
|
+
}))
|
|
1518
|
+
: [],
|
|
1519
|
+
denomination,
|
|
1520
|
+
oracle,
|
|
1521
|
+
})
|
|
1522
|
+
: undefined;
|
|
1513
1523
|
const enrichSide = (side) => {
|
|
1514
1524
|
const token = tokensByAddress.get(side.address);
|
|
1515
1525
|
if (!token)
|
|
@@ -1521,12 +1531,16 @@ export function exchanges(options = {}) {
|
|
|
1521
1531
|
currency: token.currency,
|
|
1522
1532
|
decimals: token.decimals,
|
|
1523
1533
|
}),
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1534
|
+
...(denomination
|
|
1535
|
+
? {
|
|
1536
|
+
valuation: Valuation.valuationFor({
|
|
1537
|
+
amount: BigInt(side.amount),
|
|
1538
|
+
denomination,
|
|
1539
|
+
rates,
|
|
1540
|
+
token: snapshot?.byAddress.get(side.address.toLowerCase()),
|
|
1541
|
+
}),
|
|
1542
|
+
}
|
|
1543
|
+
: {}),
|
|
1530
1544
|
},
|
|
1531
1545
|
token: {
|
|
1532
1546
|
address: side.address,
|
|
@@ -2742,12 +2756,8 @@ async function getSwaps(c, options) {
|
|
|
2742
2756
|
return candidates;
|
|
2743
2757
|
};
|
|
2744
2758
|
// A selective row predicate (`taker`/`maker`/`participant`/`transactionHash`)
|
|
2745
|
-
// makes matching fills sparse across a wide block range
|
|
2746
|
-
//
|
|
2747
|
-
// no `GROUP BY`/`groupArray`) and lets the window sweep jump straight to the
|
|
2748
|
-
// next populated block instead of paying a full grouped round-trip for every
|
|
2749
|
-
// empty `swapWindowBlocks` gap between clusters. The block list also yields
|
|
2750
|
-
// the scan bounds, so no separate `min`/`max` query is needed.
|
|
2759
|
+
// makes matching fills sparse across a wide block range. Find the next
|
|
2760
|
+
// populated block before each window so the sweep skips empty gaps.
|
|
2751
2761
|
//
|
|
2752
2762
|
// The discovery predicate must be a *superset* of the grouped page query's
|
|
2753
2763
|
// matches. The page query applies `maker`/`participant` as existential
|
|
@@ -2772,23 +2782,31 @@ async function getSwaps(c, options) {
|
|
|
2772
2782
|
if (witnesses.length > 0)
|
|
2773
2783
|
blockFilters.push(`(${witnesses.join(' OR ')})`);
|
|
2774
2784
|
}
|
|
2775
|
-
|
|
2776
|
-
//
|
|
2777
|
-
//
|
|
2778
|
-
|
|
2785
|
+
const cursorBlock = cursor !== undefined ? Number(cursor[0]) : undefined;
|
|
2786
|
+
// Keep discovery bounded so TIDX response limits cannot truncate the scan
|
|
2787
|
+
// head. The predicate stays a superset of the grouped query.
|
|
2788
|
+
const findMatchingBlock = async (anchor) => {
|
|
2789
|
+
const filters = [...blockFilters];
|
|
2790
|
+
if (anchor !== undefined)
|
|
2791
|
+
filters.push(`f.block_num ${order === 'asc' ? '>=' : '<='} ${anchor}`);
|
|
2792
|
+
const result = await tidx.fetch({
|
|
2793
|
+
chainId,
|
|
2794
|
+
engine: 'clickhouse',
|
|
2795
|
+
query: `SELECT f.block_num AS block_num FROM dex_fills f WHERE ${filters.join(' AND ')} ORDER BY block_num ${direction} LIMIT 1`,
|
|
2796
|
+
});
|
|
2797
|
+
const row = result.rows[0];
|
|
2798
|
+
return row ? Value.toNumber(row['block_num']) : undefined;
|
|
2799
|
+
};
|
|
2779
2800
|
const bounds = await Timing.time(c, 'swap_bounds', async () => {
|
|
2780
2801
|
if (selective) {
|
|
2781
|
-
const
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
const lo = matchingBlocks[0];
|
|
2790
|
-
const hi = matchingBlocks.at(-1);
|
|
2791
|
-
return lo !== undefined && hi !== undefined ? { hi, lo } : undefined;
|
|
2802
|
+
const firstMatchingBlock = await findMatchingBlock(cursorBlock);
|
|
2803
|
+
return firstMatchingBlock !== undefined
|
|
2804
|
+
? {
|
|
2805
|
+
firstMatchingBlock,
|
|
2806
|
+
hi: toBlock ?? Number.MAX_SAFE_INTEGER,
|
|
2807
|
+
lo: fromBlock ?? 0,
|
|
2808
|
+
}
|
|
2809
|
+
: undefined;
|
|
2792
2810
|
}
|
|
2793
2811
|
const result = await tidx.fetch({
|
|
2794
2812
|
chainId,
|
|
@@ -2812,62 +2830,32 @@ async function getSwaps(c, options) {
|
|
|
2812
2830
|
// exhausts the window and slides the sweep to the next disjoint range.
|
|
2813
2831
|
const batchLimit = limit + 1;
|
|
2814
2832
|
let activeCursor = cursor;
|
|
2815
|
-
|
|
2816
|
-
//
|
|
2817
|
-
|
|
2818
|
-
// (asc). This collapses the empty gaps between fill clusters — `slideWindow`
|
|
2819
|
-
// jumps straight to the next populated block. `undefined` when no matching
|
|
2820
|
-
// block remains in range. `matchingBlocks` is ascending.
|
|
2821
|
-
const lastAtMost = (value) => {
|
|
2822
|
-
if (matchingBlocks === undefined)
|
|
2823
|
-
return value;
|
|
2824
|
-
let lo = 0;
|
|
2825
|
-
let hi = matchingBlocks.length;
|
|
2826
|
-
while (lo < hi) {
|
|
2827
|
-
const mid = (lo + hi) >> 1;
|
|
2828
|
-
if (matchingBlocks[mid] <= value)
|
|
2829
|
-
lo = mid + 1;
|
|
2830
|
-
else
|
|
2831
|
-
hi = mid;
|
|
2832
|
-
}
|
|
2833
|
-
return lo === 0 ? undefined : matchingBlocks[lo - 1];
|
|
2834
|
-
};
|
|
2835
|
-
const firstAtLeast = (value) => {
|
|
2836
|
-
if (matchingBlocks === undefined)
|
|
2837
|
-
return value;
|
|
2838
|
-
let lo = 0;
|
|
2839
|
-
let hi = matchingBlocks.length;
|
|
2840
|
-
while (lo < hi) {
|
|
2841
|
-
const mid = (lo + hi) >> 1;
|
|
2842
|
-
if (matchingBlocks[mid] < value)
|
|
2843
|
-
lo = mid + 1;
|
|
2844
|
-
else
|
|
2845
|
-
hi = mid;
|
|
2846
|
-
}
|
|
2847
|
-
return lo === matchingBlocks.length ? undefined : matchingBlocks[lo];
|
|
2848
|
-
};
|
|
2849
|
-
const windowFrom = (anchor) => {
|
|
2833
|
+
// Selective scans jump to the next populated block through a bounded
|
|
2834
|
+
// lookup. Unfiltered scans retain the fixed-stride min/max sweep.
|
|
2835
|
+
const windowFrom = async (anchor, knownMatchingBlock) => {
|
|
2850
2836
|
if (order === 'desc') {
|
|
2851
|
-
const
|
|
2837
|
+
const value = Math.min(upperBound, anchor ?? upperBound);
|
|
2838
|
+
const hi = selective ? (knownMatchingBlock ?? (await findMatchingBlock(value))) : value;
|
|
2852
2839
|
return hi !== undefined && hi >= lowerBound
|
|
2853
2840
|
? { hi, lo: Math.max(lowerBound, hi - swapWindowBlocks + 1) }
|
|
2854
2841
|
: undefined;
|
|
2855
2842
|
}
|
|
2856
|
-
const
|
|
2843
|
+
const value = Math.max(lowerBound, anchor ?? lowerBound);
|
|
2844
|
+
const lo = selective ? (knownMatchingBlock ?? (await findMatchingBlock(value))) : value;
|
|
2857
2845
|
return lo !== undefined && lo <= upperBound
|
|
2858
2846
|
? { hi: Math.min(upperBound, lo + swapWindowBlocks - 1), lo }
|
|
2859
2847
|
: undefined;
|
|
2860
2848
|
};
|
|
2861
|
-
let window = windowFrom(cursorBlock);
|
|
2849
|
+
let window = await windowFrom(cursorBlock, bounds.firstMatchingBlock);
|
|
2862
2850
|
// Slide to the next disjoint window away from the newest block and reset
|
|
2863
2851
|
// the cursor: every row in the next window is already past the cursor
|
|
2864
2852
|
// anchor in the requested order, so no anchor refinement is needed.
|
|
2865
|
-
const slideWindow = () => {
|
|
2853
|
+
const slideWindow = async () => {
|
|
2866
2854
|
activeCursor = undefined;
|
|
2867
2855
|
window =
|
|
2868
2856
|
window === undefined
|
|
2869
2857
|
? undefined
|
|
2870
|
-
: windowFrom(order === 'desc' ? window.lo - 1 : window.hi + 1);
|
|
2858
|
+
: await windowFrom(order === 'desc' ? window.lo - 1 : window.hi + 1);
|
|
2871
2859
|
};
|
|
2872
2860
|
while (accumulated.length <= limit && window !== undefined) {
|
|
2873
2861
|
const result = await fetchGroups(activeCursor, batchLimit, window);
|
|
@@ -2892,13 +2880,13 @@ async function getSwaps(c, options) {
|
|
|
2892
2880
|
if (tail === undefined) {
|
|
2893
2881
|
if (fetchedFull)
|
|
2894
2882
|
break;
|
|
2895
|
-
slideWindow();
|
|
2883
|
+
await slideWindow();
|
|
2896
2884
|
continue;
|
|
2897
2885
|
}
|
|
2898
2886
|
// A short batch exhausts this window; a full one may leave more groups
|
|
2899
2887
|
// in it, so advance the keyset cursor and re-query the same window.
|
|
2900
2888
|
if (!fetchedFull) {
|
|
2901
|
-
slideWindow();
|
|
2889
|
+
await slideWindow();
|
|
2902
2890
|
continue;
|
|
2903
2891
|
}
|
|
2904
2892
|
const next = cursorAfterWholeGroup(tail);
|
|
@@ -2907,7 +2895,7 @@ async function getSwaps(c, options) {
|
|
|
2907
2895
|
Number(activeCursor[0]) === next[0] &&
|
|
2908
2896
|
Number(activeCursor[1]) === next[1] &&
|
|
2909
2897
|
Number(activeCursor[2]) === next[2]) {
|
|
2910
|
-
slideWindow();
|
|
2898
|
+
await slideWindow();
|
|
2911
2899
|
continue;
|
|
2912
2900
|
}
|
|
2913
2901
|
activeCursor = [next[0], next[1], next[2]];
|
|
@@ -4207,26 +4195,34 @@ async function providerQuoteResponse(c, options) {
|
|
|
4207
4195
|
const sourceToken = tokensByAddress.get(request.sourceToken);
|
|
4208
4196
|
if (!destinationToken || !sourceToken)
|
|
4209
4197
|
throw new Error('Unable to resolve exchange quote token metadata');
|
|
4210
|
-
const denomination = query['valuation.currency']
|
|
4211
|
-
const snapshot =
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4198
|
+
const denomination = query['valuation.currency'];
|
|
4199
|
+
const snapshot = denomination
|
|
4200
|
+
? await VerifiedTokens.snapshot(c, chainId).catch(() => undefined)
|
|
4201
|
+
: undefined;
|
|
4202
|
+
const rates = denomination
|
|
4203
|
+
? await Valuation.ratesFor(c, {
|
|
4204
|
+
currencies: snapshot
|
|
4205
|
+
? [request.destinationToken, request.sourceToken].flatMap((address) => {
|
|
4206
|
+
const held = snapshot.byAddress.get(address.toLowerCase())?.currency;
|
|
4207
|
+
return held === undefined ? [] : [held];
|
|
4208
|
+
})
|
|
4209
|
+
: [],
|
|
4210
|
+
denomination,
|
|
4211
|
+
oracle,
|
|
4212
|
+
})
|
|
4213
|
+
: undefined;
|
|
4222
4214
|
const valued = (baseUnits, address, token) => ({
|
|
4223
4215
|
...Value.tokenAmount({ baseUnits, currency: token.currency, decimals: token.decimals }),
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4216
|
+
...(denomination
|
|
4217
|
+
? {
|
|
4218
|
+
valuation: Valuation.valuationFor({
|
|
4219
|
+
amount: BigInt(baseUnits),
|
|
4220
|
+
denomination,
|
|
4221
|
+
rates,
|
|
4222
|
+
token: snapshot?.byAddress.get(address.toLowerCase()),
|
|
4223
|
+
}),
|
|
4224
|
+
}
|
|
4225
|
+
: {}),
|
|
4230
4226
|
});
|
|
4231
4227
|
const execution = quote.status === 'ready'
|
|
4232
4228
|
? {
|