tapimo 0.5.3 → 0.7.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 +15830 -7220
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +9 -1
- package/dist/App.js.map +1 -1
- package/dist/Scope.d.ts +4 -0
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +5 -0
- package/dist/Scope.js.map +1 -1
- package/dist/admin/App.d.ts +1011 -412
- package/dist/admin/App.d.ts.map +1 -1
- package/dist/admin/App.js +4 -0
- package/dist/admin/App.js.map +1 -1
- package/dist/admin/apps/api-keys.d.ts +2 -1
- package/dist/admin/apps/api-keys.d.ts.map +1 -1
- package/dist/admin/apps/early-access.d.ts +148 -0
- package/dist/admin/apps/early-access.d.ts.map +1 -0
- package/dist/admin/apps/early-access.js +133 -0
- package/dist/admin/apps/early-access.js.map +1 -0
- package/dist/admin/apps/organizations.d.ts +124 -1
- package/dist/admin/apps/organizations.d.ts.map +1 -1
- package/dist/admin/apps/organizations.js +97 -6
- package/dist/admin/apps/organizations.js.map +1 -1
- package/dist/admin/apps/verified-tokens.d.ts +526 -1
- package/dist/admin/apps/verified-tokens.d.ts.map +1 -1
- package/dist/admin/apps/verified-tokens.js +214 -1
- package/dist/admin/apps/verified-tokens.js.map +1 -1
- package/dist/admin/ui.generated.d.ts +1 -1
- package/dist/admin/ui.generated.d.ts.map +1 -1
- package/dist/admin/ui.generated.js +95 -75
- package/dist/admin/ui.generated.js.map +1 -1
- package/dist/analytics/Analytics.d.ts.map +1 -1
- package/dist/analytics/Analytics.js +20 -0
- package/dist/analytics/Analytics.js.map +1 -1
- package/dist/analytics/tables/requestEvents.d.ts +18 -0
- package/dist/analytics/tables/requestEvents.d.ts.map +1 -1
- package/dist/analytics/tables/requestEvents.js +36 -7
- package/dist/analytics/tables/requestEvents.js.map +1 -1
- package/dist/apps/data/App.d.ts +6260 -4924
- package/dist/apps/data/App.d.ts.map +1 -1
- package/dist/apps/data/App.js +11 -6
- package/dist/apps/data/App.js.map +1 -1
- package/dist/apps/data/FundingQuoteProviders.d.ts +34 -1
- package/dist/apps/data/FundingQuoteProviders.d.ts.map +1 -1
- package/dist/apps/data/FundingQuoteProviders.js +194 -16
- package/dist/apps/data/FundingQuoteProviders.js.map +1 -1
- package/dist/apps/data/FxOracle.d.ts +71 -0
- package/dist/apps/data/FxOracle.d.ts.map +1 -0
- package/dist/apps/data/FxOracle.js +97 -0
- package/dist/apps/data/FxOracle.js.map +1 -0
- package/dist/apps/data/index.d.ts +1 -0
- package/dist/apps/data/index.d.ts.map +1 -1
- package/dist/apps/data/index.js +1 -0
- package/dist/apps/data/index.js.map +1 -1
- package/dist/apps/data/routes/activities.d.ts +3599 -1382
- package/dist/apps/data/routes/activities.d.ts.map +1 -1
- package/dist/apps/data/routes/activities.js +250 -88
- package/dist/apps/data/routes/activities.js.map +1 -1
- package/dist/apps/data/routes/addresses.d.ts +872 -251
- package/dist/apps/data/routes/addresses.d.ts.map +1 -1
- package/dist/apps/data/routes/addresses.js +11 -9
- package/dist/apps/data/routes/addresses.js.map +1 -1
- package/dist/apps/data/routes/balances.d.ts +77 -26
- package/dist/apps/data/routes/balances.d.ts.map +1 -1
- package/dist/apps/data/routes/balances.js +88 -45
- package/dist/apps/data/routes/balances.js.map +1 -1
- package/dist/apps/data/routes/blocks.d.ts +39 -39
- package/dist/apps/data/routes/coingecko.d.ts +54 -54
- package/dist/apps/data/routes/exchanges.d.ts +856 -105
- package/dist/apps/data/routes/exchanges.d.ts.map +1 -1
- package/dist/apps/data/routes/exchanges.js +518 -76
- package/dist/apps/data/routes/exchanges.js.map +1 -1
- package/dist/apps/data/routes/fee-amm.d.ts +81 -67
- package/dist/apps/data/routes/fee-amm.d.ts.map +1 -1
- package/dist/apps/data/routes/fee-amm.js +76 -91
- package/dist/apps/data/routes/fee-amm.js.map +1 -1
- package/dist/apps/data/routes/funding.d.ts +80 -36
- package/dist/apps/data/routes/funding.d.ts.map +1 -1
- package/dist/apps/data/routes/funding.js +65 -31
- package/dist/apps/data/routes/funding.js.map +1 -1
- package/dist/apps/data/routes/receipts.d.ts +392 -315
- package/dist/apps/data/routes/receipts.d.ts.map +1 -1
- package/dist/apps/data/routes/receipts.js +152 -77
- package/dist/apps/data/routes/receipts.js.map +1 -1
- package/dist/apps/data/routes/tokens.d.ts +167 -174
- package/dist/apps/data/routes/tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/tokens.js +15 -13
- package/dist/apps/data/routes/tokens.js.map +1 -1
- package/dist/apps/data/routes/transactions.d.ts +277 -536
- package/dist/apps/data/routes/transactions.d.ts.map +1 -1
- package/dist/apps/data/routes/transactions.js +96 -77
- package/dist/apps/data/routes/transactions.js.map +1 -1
- package/dist/apps/data/routes/transfers.d.ts +157 -81
- package/dist/apps/data/routes/transfers.d.ts.map +1 -1
- package/dist/apps/data/routes/transfers.js +272 -130
- package/dist/apps/data/routes/transfers.js.map +1 -1
- package/dist/apps/data/routes/valuation.d.ts +307 -0
- package/dist/apps/data/routes/valuation.d.ts.map +1 -0
- package/dist/apps/data/routes/valuation.js +292 -0
- package/dist/apps/data/routes/valuation.js.map +1 -0
- package/dist/apps/data/routes/verified-tokens.d.ts +36 -36
- package/dist/apps/data/routes/verified-tokens.d.ts.map +1 -1
- package/dist/apps/data/routes/verified-tokens.js +7 -5
- package/dist/apps/data/routes/verified-tokens.js.map +1 -1
- package/dist/apps/data/routes/webhooks.d.ts +103 -123
- package/dist/apps/data/routes/webhooks.d.ts.map +1 -1
- package/dist/apps/data/routes/webhooks.js +124 -25
- package/dist/apps/data/routes/webhooks.js.map +1 -1
- package/dist/apps/index.d.ts +2 -1
- package/dist/apps/index.d.ts.map +1 -1
- package/dist/apps/index.js +2 -1
- package/dist/apps/index.js.map +1 -1
- package/dist/apps/management/App.d.ts +8554 -1692
- package/dist/apps/management/App.d.ts.map +1 -1
- package/dist/apps/management/App.js +12 -1
- package/dist/apps/management/App.js.map +1 -1
- package/dist/apps/management/routes/api-keys.d.ts +7 -0
- package/dist/apps/management/routes/api-keys.d.ts.map +1 -1
- package/dist/apps/management/routes/api-keys.js +17 -3
- package/dist/apps/management/routes/api-keys.js.map +1 -1
- package/dist/apps/management/routes/billing.d.ts +157 -162
- package/dist/apps/management/routes/billing.d.ts.map +1 -1
- package/dist/apps/management/routes/billing.js +31 -23
- package/dist/apps/management/routes/billing.js.map +1 -1
- package/dist/apps/management/routes/faucet.d.ts +232 -0
- package/dist/apps/management/routes/faucet.d.ts.map +1 -0
- package/dist/apps/management/routes/faucet.js +154 -0
- package/dist/apps/management/routes/faucet.js.map +1 -0
- package/dist/apps/management/routes/invitations.d.ts +60 -60
- package/dist/apps/management/routes/invite-links.d.ts +49 -20
- package/dist/apps/management/routes/invite-links.d.ts.map +1 -1
- package/dist/apps/management/routes/invite-links.js +26 -1
- package/dist/apps/management/routes/invite-links.js.map +1 -1
- package/dist/apps/management/routes/me.d.ts +6 -6
- package/dist/apps/management/routes/members.d.ts +6 -6
- package/dist/apps/management/routes/orgs.d.ts +42 -42
- package/dist/apps/management/routes/orgs.d.ts.map +1 -1
- package/dist/apps/management/routes/orgs.js +5 -0
- package/dist/apps/management/routes/orgs.js.map +1 -1
- package/dist/apps/management/routes/projects.d.ts +44 -44
- package/dist/apps/management/routes/usage.d.ts +3 -0
- package/dist/apps/management/routes/usage.d.ts.map +1 -1
- package/dist/apps/management/routes/usage.js +4 -0
- package/dist/apps/management/routes/usage.js.map +1 -1
- package/dist/apps/management/routes/verified-token-requests.d.ts +697 -0
- package/dist/apps/management/routes/verified-token-requests.d.ts.map +1 -0
- package/dist/apps/management/routes/verified-token-requests.js +271 -0
- package/dist/apps/management/routes/verified-token-requests.js.map +1 -0
- package/dist/apps/management/routes/webhooks.d.ts +6977 -0
- package/dist/apps/management/routes/webhooks.d.ts.map +1 -0
- package/dist/apps/management/routes/webhooks.js +573 -0
- package/dist/apps/management/routes/webhooks.js.map +1 -0
- package/dist/apps/mpp/App.d.ts +363 -0
- package/dist/apps/mpp/App.d.ts.map +1 -0
- package/dist/apps/mpp/App.js +72 -0
- package/dist/apps/mpp/App.js.map +1 -0
- package/dist/apps/mpp/Mpp.d.ts +178 -0
- package/dist/apps/mpp/Mpp.d.ts.map +1 -0
- package/dist/apps/mpp/Mpp.js +183 -0
- package/dist/apps/mpp/Mpp.js.map +1 -0
- package/dist/apps/mpp/index.d.ts +3 -0
- package/dist/apps/mpp/index.d.ts.map +1 -0
- package/dist/apps/mpp/index.js +3 -0
- package/dist/apps/mpp/index.js.map +1 -0
- package/dist/apps/relay/App.d.ts.map +1 -1
- package/dist/apps/relay/App.js +56 -9
- package/dist/apps/relay/App.js.map +1 -1
- package/dist/db/Db.d.ts +6 -0
- package/dist/db/Db.d.ts.map +1 -1
- package/dist/db/Db.js +110 -0
- package/dist/db/Db.js.map +1 -1
- package/dist/db/Schema.d.ts +53 -0
- package/dist/db/Schema.d.ts.map +1 -1
- package/dist/db/Schema.js +56 -0
- package/dist/db/Schema.js.map +1 -1
- package/dist/db/tables/earlyAccess.d.ts +50 -0
- package/dist/db/tables/earlyAccess.d.ts.map +1 -0
- package/dist/db/tables/earlyAccess.js +63 -0
- package/dist/db/tables/earlyAccess.js.map +1 -0
- package/dist/db/tables/enabledBillingSources.d.ts +73 -0
- package/dist/db/tables/enabledBillingSources.d.ts.map +1 -0
- package/dist/db/tables/enabledBillingSources.js +69 -0
- package/dist/db/tables/enabledBillingSources.js.map +1 -0
- package/dist/db/tables/invitations.d.ts.map +1 -1
- package/dist/db/tables/invitations.js +3 -0
- package/dist/db/tables/invitations.js.map +1 -1
- package/dist/db/tables/inviteLinks.d.ts +10 -2
- package/dist/db/tables/inviteLinks.d.ts.map +1 -1
- package/dist/db/tables/inviteLinks.js +10 -1
- package/dist/db/tables/inviteLinks.js.map +1 -1
- package/dist/db/tables/organizations.d.ts +5 -2
- package/dist/db/tables/organizations.d.ts.map +1 -1
- package/dist/db/tables/organizations.js +13 -2
- package/dist/db/tables/organizations.js.map +1 -1
- package/dist/db/tables/sponsoredTransactions.d.ts +2 -0
- package/dist/db/tables/sponsoredTransactions.d.ts.map +1 -1
- package/dist/db/tables/sponsoredTransactions.js +2 -0
- package/dist/db/tables/sponsoredTransactions.js.map +1 -1
- package/dist/db/tables/verifiedTokenRequests.d.ts +94 -0
- package/dist/db/tables/verifiedTokenRequests.d.ts.map +1 -0
- package/dist/db/tables/verifiedTokenRequests.js +120 -0
- package/dist/db/tables/verifiedTokenRequests.js.map +1 -0
- package/dist/db/tables/webhookSubscriptions.d.ts +14 -0
- package/dist/db/tables/webhookSubscriptions.d.ts.map +1 -1
- package/dist/db/tables/webhookSubscriptions.js +16 -0
- package/dist/db/tables/webhookSubscriptions.js.map +1 -1
- package/dist/handlers/internal/utils.d.ts +1 -16
- package/dist/handlers/internal/utils.d.ts.map +1 -1
- package/dist/handlers/internal/utils.js +17 -6
- package/dist/handlers/internal/utils.js.map +1 -1
- package/dist/handlers/relay.d.ts.map +1 -1
- package/dist/handlers/relay.js +37 -5
- package/dist/handlers/relay.js.map +1 -1
- package/dist/internal/Auth.d.ts +11 -2
- package/dist/internal/Auth.d.ts.map +1 -1
- package/dist/internal/Auth.js +14 -47
- package/dist/internal/Auth.js.map +1 -1
- package/dist/internal/FundingQuotes.d.ts +147 -47
- package/dist/internal/FundingQuotes.d.ts.map +1 -1
- package/dist/internal/FundingQuotes.js +119 -33
- package/dist/internal/FundingQuotes.js.map +1 -1
- package/dist/internal/Log.d.ts +37 -5
- package/dist/internal/Log.d.ts.map +1 -1
- package/dist/internal/Log.js +52 -3
- package/dist/internal/Log.js.map +1 -1
- package/dist/internal/MetricSink.d.ts.map +1 -1
- package/dist/internal/MetricSink.js +24 -0
- package/dist/internal/MetricSink.js.map +1 -1
- package/dist/internal/OpenApi.d.ts +2 -2
- package/dist/internal/OpenApi.d.ts.map +1 -1
- package/dist/internal/OpenApi.js +3 -0
- package/dist/internal/OpenApi.js.map +1 -1
- package/dist/internal/Response.d.ts +2 -2
- package/dist/internal/Response.d.ts.map +1 -1
- package/dist/internal/Response.js +12 -4
- package/dist/internal/Response.js.map +1 -1
- package/dist/internal/Schema.d.ts +14 -5
- package/dist/internal/Schema.d.ts.map +1 -1
- package/dist/internal/Schema.js +23 -5
- package/dist/internal/Schema.js.map +1 -1
- package/dist/internal/Value.d.ts +18 -0
- package/dist/internal/Value.d.ts.map +1 -1
- package/dist/internal/Value.js +11 -1
- package/dist/internal/Value.js.map +1 -1
- package/dist/internal/VerifiedTokens.d.ts.map +1 -1
- package/dist/internal/VerifiedTokens.js +10 -1
- package/dist/internal/VerifiedTokens.js.map +1 -1
- package/dist/internal/Webhooks.d.ts +24 -3
- package/dist/internal/Webhooks.d.ts.map +1 -1
- package/dist/internal/Webhooks.js +34 -8
- package/dist/internal/Webhooks.js.map +1 -1
- package/package.json +7 -2
- package/src/App.test.ts +9 -4
- package/src/App.ts +23 -3
- package/src/Client.test-d.ts +733 -20
- package/src/Scope.ts +5 -0
- package/src/admin/App.test.ts +4 -0
- package/src/admin/App.ts +4 -0
- package/src/admin/apps/early-access.test.ts +125 -0
- package/src/admin/apps/early-access.ts +176 -0
- package/src/admin/apps/organizations.test.ts +86 -2
- package/src/admin/apps/organizations.ts +155 -31
- package/src/admin/apps/scopes.test.ts +5 -0
- package/src/admin/apps/verified-tokens.test.ts +201 -0
- package/src/admin/apps/verified-tokens.ts +532 -286
- package/src/admin/ui/plugin.ts +2 -1
- package/src/admin/ui/src/lib/early-access.ts +63 -0
- package/src/admin/ui/src/lib/organizations.test.ts +81 -1
- package/src/admin/ui/src/lib/organizations.ts +92 -0
- package/src/admin/ui/src/lib/verified-tokens.ts +79 -0
- package/src/admin/ui/src/routeTree.gen.ts +33 -2
- package/src/admin/ui/src/routes/__root.tsx +2 -1
- package/src/admin/ui/src/routes/api-keys.tsx +1 -1
- package/src/admin/ui/src/routes/early-access.tsx +162 -0
- package/src/admin/ui/src/routes/organizations_.$orgId.tsx +103 -0
- package/src/admin/ui/src/routes/verified-tokens.tsx +230 -19
- package/src/admin/ui.generated.ts +95 -94
- package/src/analytics/Analytics.test.ts +83 -0
- package/src/analytics/Analytics.ts +20 -0
- package/src/analytics/tables/requestEvents.ts +60 -7
- package/src/apps/composition.test.ts +11 -2
- package/src/apps/data/App.test.ts +1 -1
- package/src/apps/data/App.ts +22 -14
- package/src/apps/data/FundingQuoteProviders.test.ts +297 -4
- package/src/apps/data/FundingQuoteProviders.ts +255 -29
- package/src/apps/data/FxOracle.test.ts +118 -0
- package/src/apps/data/FxOracle.ts +153 -0
- package/src/apps/data/index.ts +1 -0
- package/src/apps/data/routes/activities.test.ts +177 -3
- package/src/apps/data/routes/activities.ts +441 -132
- package/src/apps/data/routes/addresses.ts +19 -9
- package/src/apps/data/routes/balances.test.ts +148 -11
- package/src/apps/data/routes/balances.ts +140 -51
- package/src/apps/data/routes/exchanges.test.ts +544 -9
- package/src/apps/data/routes/exchanges.ts +690 -103
- package/src/apps/data/routes/fee-amm.test.ts +47 -23
- package/src/apps/data/routes/fee-amm.ts +98 -119
- package/src/apps/data/routes/funding.test.ts +113 -8
- package/src/apps/data/routes/funding.ts +77 -51
- package/src/apps/data/routes/receipts.test.ts +129 -23
- package/src/apps/data/routes/receipts.ts +205 -100
- package/src/apps/data/routes/tokens.test.ts +43 -0
- package/src/apps/data/routes/tokens.ts +28 -13
- package/src/apps/data/routes/transactions.test.ts +72 -19
- package/src/apps/data/routes/transactions.ts +162 -92
- package/src/apps/data/routes/transfers.test.ts +341 -31
- package/src/apps/data/routes/transfers.ts +358 -158
- package/src/apps/data/routes/valuation.test.ts +437 -0
- package/src/apps/data/routes/valuation.ts +423 -0
- package/src/apps/data/routes/verified-tokens.ts +14 -2
- package/src/apps/data/routes/webhooks.test.ts +56 -8
- package/src/apps/data/routes/webhooks.ts +144 -27
- package/src/apps/index.ts +2 -1
- package/src/apps/management/App.ts +13 -0
- package/src/apps/management/routes/api-keys.test.ts +14 -0
- package/src/apps/management/routes/api-keys.ts +27 -3
- package/src/apps/management/routes/billing.test.ts +152 -20
- package/src/apps/management/routes/billing.ts +34 -18
- package/src/apps/management/routes/faucet.test.ts +87 -0
- package/src/apps/management/routes/faucet.ts +201 -0
- package/src/apps/management/routes/invite-links.test.ts +117 -0
- package/src/apps/management/routes/invite-links.ts +43 -1
- package/src/apps/management/routes/me.test.ts +9 -99
- package/src/apps/management/routes/orgs.test.ts +45 -2
- package/src/apps/management/routes/orgs.ts +6 -0
- package/src/apps/management/routes/scopes.test.ts +1 -0
- package/src/apps/management/routes/usage.test.ts +6 -0
- package/src/apps/management/routes/usage.ts +7 -0
- package/src/apps/management/routes/verified-token-requests.test.ts +377 -0
- package/src/apps/management/routes/verified-token-requests.ts +397 -0
- package/src/apps/management/routes/webhooks.test.ts +426 -0
- package/src/apps/management/routes/webhooks.ts +672 -0
- package/src/apps/mpp/App.ts +86 -0
- package/src/apps/mpp/Mpp.test.ts +193 -0
- package/src/apps/mpp/Mpp.ts +353 -0
- package/src/apps/mpp/index.ts +2 -0
- package/src/apps/mpp/internal/Adapter.ts +11 -0
- package/src/apps/mpp/internal/Error.ts +9 -0
- package/src/apps/mpp/internal/Idempotency.ts +7 -0
- package/src/apps/mpp/internal/Screening.ts +10 -0
- package/src/apps/relay/App.test.ts +88 -6
- package/src/apps/relay/App.ts +61 -9
- package/src/db/Db.test.ts +19 -0
- package/src/db/Db.ts +125 -0
- package/src/db/Schema.ts +68 -0
- package/src/db/tables/earlyAccess.ts +86 -0
- package/src/db/tables/enabledBillingSources.test.ts +303 -0
- package/src/db/tables/enabledBillingSources.ts +118 -0
- package/src/db/tables/invitations.ts +3 -0
- package/src/db/tables/inviteLinks.ts +22 -3
- package/src/db/tables/organizations.test.ts +103 -0
- package/src/db/tables/organizations.ts +18 -2
- package/src/db/tables/sponsoredTransactions.ts +4 -0
- package/src/db/tables/verifiedTokenRequests.test.ts +200 -0
- package/src/db/tables/verifiedTokenRequests.ts +182 -0
- package/src/db/tables/webhookSubscriptions.ts +31 -0
- package/src/handlers/internal/utils.ts +22 -6
- package/src/handlers/relay.errors.test.ts +153 -0
- package/src/handlers/relay.ts +42 -7
- package/src/internal/Auth.test.ts +3 -3
- package/src/internal/Auth.ts +15 -47
- package/src/internal/FundingQuotes.test.ts +161 -6
- package/src/internal/FundingQuotes.ts +141 -39
- package/src/internal/Log.test-d.ts +21 -0
- package/src/internal/Log.test.ts +141 -0
- package/src/internal/Log.ts +93 -6
- package/src/internal/MetricSink.test.ts +215 -0
- package/src/internal/MetricSink.ts +24 -0
- package/src/internal/OpenApi.ts +3 -0
- package/src/internal/Response.test.ts +28 -0
- package/src/internal/Response.ts +12 -4
- package/src/internal/Schema.ts +50 -5
- package/src/internal/Value.test.ts +20 -0
- package/src/internal/Value.ts +24 -1
- package/src/internal/VerifiedTokens.ts +9 -1
- package/src/internal/Webhooks.test.ts +140 -0
- package/src/internal/Webhooks.ts +53 -9
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { Hono } from 'hono';
|
|
2
|
+
import { Value as core_Value } from 'ox';
|
|
3
|
+
import { BaseError, ContractFunctionRevertedError, ContractFunctionZeroDataError } from 'viem';
|
|
4
|
+
import { Actions } from 'viem/tempo';
|
|
5
|
+
import * as z from 'zod/mini';
|
|
6
|
+
import * as Auth from '../../../internal/Auth.js';
|
|
7
|
+
import * as Cache from '../../../internal/Cache.js';
|
|
8
|
+
import * as OpenApi from '../../../internal/OpenApi.js';
|
|
9
|
+
import * as Response from '../../../internal/Response.js';
|
|
10
|
+
import * as Schema from '../../../internal/Schema.js';
|
|
11
|
+
import * as Store from '../../../internal/Store.js';
|
|
12
|
+
import * as Timing from '../../../internal/Timing.js';
|
|
13
|
+
import * as VerifiedTokens from '../../../internal/VerifiedTokens.js';
|
|
14
|
+
import * as FxOracle from '../FxOracle.js';
|
|
15
|
+
// How many balance reads to fan out per batch. Concurrent reads in one
|
|
16
|
+
// macrotask collapse into a single deployless multicall; small chunks keep
|
|
17
|
+
// each call under the Tempo RPC's per-call size limit.
|
|
18
|
+
const tokenReadChunkSize = 20;
|
|
19
|
+
/** Zod schemas owned by the valuation handlers. */
|
|
20
|
+
export var schema;
|
|
21
|
+
(function (schema) {
|
|
22
|
+
/** A holding's nominal value in the requested denomination. */
|
|
23
|
+
schema.Value = z
|
|
24
|
+
.object({
|
|
25
|
+
amount: z
|
|
26
|
+
.string()
|
|
27
|
+
.check(z.regex(/^\d+(\.\d+)?$/), z.describe('The holding’s nominal value, as a decimal string in `currency`.'), z.meta({ examples: ['1.50'] })),
|
|
28
|
+
currency: z
|
|
29
|
+
.string()
|
|
30
|
+
.check(z.describe('The denomination currency of this value.'), z.meta({ examples: ['USD'] })),
|
|
31
|
+
})
|
|
32
|
+
.check(z.describe('The holding’s nominal value in the requested denomination.'));
|
|
33
|
+
/** Rate provenance for a converted valuation. */
|
|
34
|
+
schema.Pricing = z
|
|
35
|
+
.object({
|
|
36
|
+
asOf: z.iso
|
|
37
|
+
.datetime()
|
|
38
|
+
.check(z.describe('Publication date of the rate set as an ISO 8601 timestamp.'), z.meta({ examples: ['2026-07-20T00:00:00.000Z'] })),
|
|
39
|
+
basis: z
|
|
40
|
+
.literal('nominal')
|
|
41
|
+
.check(z.describe('Valuation basis: one token unit counts as one unit of its display currency.'), z.meta({ examples: ['nominal'] })),
|
|
42
|
+
source: z
|
|
43
|
+
.string()
|
|
44
|
+
.check(z.describe('FX rate oracle that supplied the conversion rates.'), z.meta({ examples: ['ecb'] })),
|
|
45
|
+
})
|
|
46
|
+
.check(z.describe('Rate provenance for a converted valuation.'));
|
|
47
|
+
/** Schemas for the getAddressValuation operation. */
|
|
48
|
+
let getAddressValuation;
|
|
49
|
+
(function (getAddressValuation) {
|
|
50
|
+
/** Path parameters for address valuation requests. */
|
|
51
|
+
getAddressValuation.Params = z
|
|
52
|
+
.object({
|
|
53
|
+
address: Schema.Address.check(z.describe('The account address whose holdings you want to value.')),
|
|
54
|
+
})
|
|
55
|
+
.check(z.describe('Path parameters for valuing an account’s verified holdings.'));
|
|
56
|
+
/** Query parameters for address valuation requests. */
|
|
57
|
+
getAddressValuation.Query = z
|
|
58
|
+
.strictObject({
|
|
59
|
+
chainId: Schema.ChainIdQuery,
|
|
60
|
+
denomination: Schema.Denomination,
|
|
61
|
+
})
|
|
62
|
+
.check(z.describe('Query parameters for valuing an account’s verified holdings.'));
|
|
63
|
+
/** The nominal valuation of an account's verified holdings. */
|
|
64
|
+
getAddressValuation.Response = z
|
|
65
|
+
.object({
|
|
66
|
+
address: Schema.Address.check(z.describe('The account address this valuation covers.')),
|
|
67
|
+
amount: z
|
|
68
|
+
.string()
|
|
69
|
+
.check(z.regex(/^\d+(\.\d+)?$/), z.describe('The total value of the account’s verified holdings, as a decimal string in `currency`.'), z.meta({ examples: ['160.50'] })),
|
|
70
|
+
currency: z
|
|
71
|
+
.string()
|
|
72
|
+
.check(z.describe('The denomination currency of `amount`.'), z.meta({ examples: ['USD'] })),
|
|
73
|
+
id: z
|
|
74
|
+
.string()
|
|
75
|
+
.check(z.describe('A stable resource ID for this valuation, equal to the account address.'), z.meta({ examples: ['0xbe058e1c4df8a4366a387bf595b284246a93039e'] })),
|
|
76
|
+
pricing: z
|
|
77
|
+
.nullable(schema.Pricing)
|
|
78
|
+
.check(z.describe('Rate provenance, or `null` when every valued holding was already denominated in `currency`.')),
|
|
79
|
+
unpriced: z
|
|
80
|
+
.array(z.string())
|
|
81
|
+
.check(z.describe('Display currencies excluded from `amount` because the FX oracle has no rate for them.'), z.meta({ examples: [['BTC']] })),
|
|
82
|
+
})
|
|
83
|
+
.check(z.describe('The nominal valuation of an account’s verified token holdings.'));
|
|
84
|
+
})(getAddressValuation = schema.getAddressValuation || (schema.getAddressValuation = {}));
|
|
85
|
+
})(schema || (schema = {}));
|
|
86
|
+
/**
|
|
87
|
+
* Creates address-scoped valuation handlers, mounted under the `/addresses`
|
|
88
|
+
* composer. Exposes `GET /:address/valuation`, the holdings valuation.
|
|
89
|
+
*/
|
|
90
|
+
export function addresses(options = {}) {
|
|
91
|
+
const oracle = options.fx?.oracle ?? FxOracle.ecb();
|
|
92
|
+
return new Hono().get('/v1/addresses/:address/valuation', Auth.policy({ apiKey: { scopes: ['data:read'] }, mpp: true, public: true }), OpenApi.validate('param', schema.getAddressValuation.Params, {
|
|
93
|
+
code: 'address_invalid',
|
|
94
|
+
message: 'Invalid account address',
|
|
95
|
+
}), OpenApi.validate('query', schema.getAddressValuation.Query, {
|
|
96
|
+
code: 'query_invalid',
|
|
97
|
+
message: 'Invalid query parameters',
|
|
98
|
+
}), OpenApi.describeRoute({
|
|
99
|
+
description: 'Values every verified TIP-20 token an account holds as one unit of its display currency, converts each currency into the requested denomination using the configured FX rates, and returns the total.',
|
|
100
|
+
operationId: 'getAddressValuation',
|
|
101
|
+
responses: OpenApi.responses({
|
|
102
|
+
errors: { 502: 'Could not read balances or exchange rates from an upstream service.' },
|
|
103
|
+
success: {
|
|
104
|
+
description: 'The valuation of this account’s verified holdings.',
|
|
105
|
+
schema: schema.getAddressValuation.Response,
|
|
106
|
+
},
|
|
107
|
+
}),
|
|
108
|
+
summary: 'Get address valuation',
|
|
109
|
+
tags: ['Balances'],
|
|
110
|
+
}), Cache.response({
|
|
111
|
+
cacheControl: Cache.policies.noStore,
|
|
112
|
+
name: 'tempo-api:addresses:v1',
|
|
113
|
+
key: (c) => Cache.urlKey(c, schema.getAddressValuation.Query),
|
|
114
|
+
}), async (c) => {
|
|
115
|
+
if (Auth.narrowAccess)
|
|
116
|
+
return Auth.paidAccessError(c);
|
|
117
|
+
if (OpenApi.narrowValidation)
|
|
118
|
+
return OpenApi.validationError(c, {
|
|
119
|
+
code: 'address_invalid',
|
|
120
|
+
message: 'Invalid request parameters',
|
|
121
|
+
});
|
|
122
|
+
if (OpenApi.narrowValidation)
|
|
123
|
+
return OpenApi.validationError(c, {
|
|
124
|
+
code: 'query_invalid',
|
|
125
|
+
message: 'Invalid request parameters',
|
|
126
|
+
});
|
|
127
|
+
const { address } = c.req.valid('param');
|
|
128
|
+
const query = c.req.valid('query');
|
|
129
|
+
try {
|
|
130
|
+
const valuation = await getAddressValuation(c, {
|
|
131
|
+
address,
|
|
132
|
+
chainId: query.chainId ?? c.get('chainId'),
|
|
133
|
+
denomination: query.denomination ?? 'USD',
|
|
134
|
+
oracle,
|
|
135
|
+
});
|
|
136
|
+
return c.json(Response.validated(schema.getAddressValuation.Response, valuation), 200);
|
|
137
|
+
}
|
|
138
|
+
catch (cause) {
|
|
139
|
+
if (cause instanceof UnsupportedDenominationError)
|
|
140
|
+
return Response.error(c, { code: 'query_invalid', message: cause.message, status: 400 });
|
|
141
|
+
return Response.upstream(c, cause);
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
async function getAddressValuation(c, options) {
|
|
146
|
+
const { address, chainId, denomination, oracle } = options;
|
|
147
|
+
const [set, ratesCause] = await rateSet(c, oracle).then((set) => [set, undefined], (cause) => [undefined, cause]);
|
|
148
|
+
if (set && denomination !== set.base && set.rates[denomination] === undefined)
|
|
149
|
+
throw new UnsupportedDenominationError(denomination, oracle.name);
|
|
150
|
+
const snapshot = await VerifiedTokens.snapshot(c, chainId);
|
|
151
|
+
const holdings = await Timing.time(c, 'valuation_balances', async () => {
|
|
152
|
+
const client = c.get('getClient')(chainId);
|
|
153
|
+
if (snapshot.list.length === 0)
|
|
154
|
+
return [];
|
|
155
|
+
// Pin every chunk to one chain-state snapshot.
|
|
156
|
+
const blockNumber = await client.getBlockNumber({ cacheTime: 0 });
|
|
157
|
+
const rows = [];
|
|
158
|
+
for (let index = 0; index < snapshot.list.length; index += tokenReadChunkSize) {
|
|
159
|
+
const group = snapshot.list.slice(index, index + tokenReadChunkSize);
|
|
160
|
+
// Concurrent reads enter viem's shared batch window and become one
|
|
161
|
+
// deployless multicall. A failed read fails the request rather than
|
|
162
|
+
// serving a partial total.
|
|
163
|
+
const results = await Promise.all(group.map(async (token) => {
|
|
164
|
+
try {
|
|
165
|
+
const { amount } = await Actions.token.getBalance(client, {
|
|
166
|
+
account: address,
|
|
167
|
+
blockNumber,
|
|
168
|
+
decimals: token.decimals,
|
|
169
|
+
token: token.address,
|
|
170
|
+
});
|
|
171
|
+
return amount === 0n ? undefined : { amount, token };
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
// A verified token that is undeployed (zero data) or uninitialized
|
|
175
|
+
// on this chain cannot be held; count it as an empty holding
|
|
176
|
+
// rather than failing the valuation.
|
|
177
|
+
const empty = error instanceof BaseError &&
|
|
178
|
+
error.walk((cause) => cause instanceof ContractFunctionZeroDataError ||
|
|
179
|
+
(cause instanceof ContractFunctionRevertedError &&
|
|
180
|
+
cause.data?.errorName === 'Uninitialized'));
|
|
181
|
+
if (empty)
|
|
182
|
+
return undefined;
|
|
183
|
+
throw error;
|
|
184
|
+
}
|
|
185
|
+
}));
|
|
186
|
+
rows.push(...results.filter((row) => row !== undefined));
|
|
187
|
+
}
|
|
188
|
+
return rows;
|
|
189
|
+
});
|
|
190
|
+
const groups = new Map();
|
|
191
|
+
for (const { amount, token } of holdings) {
|
|
192
|
+
const group = groups.get(token.currency.toLowerCase()) ?? { currency: token.currency, sum: 0n };
|
|
193
|
+
group.sum +=
|
|
194
|
+
token.decimals <= FxOracle.precision
|
|
195
|
+
? amount * 10n ** BigInt(FxOracle.precision - token.decimals)
|
|
196
|
+
: amount / 10n ** BigInt(token.decimals - FxOracle.precision);
|
|
197
|
+
groups.set(token.currency.toLowerCase(), group);
|
|
198
|
+
}
|
|
199
|
+
let total = 0n;
|
|
200
|
+
const unpriced = [];
|
|
201
|
+
let pricing = null;
|
|
202
|
+
const pending = [...groups.values()].filter((group) => group.currency.toUpperCase() !== denomination);
|
|
203
|
+
for (const group of groups.values())
|
|
204
|
+
if (group.currency.toUpperCase() === denomination)
|
|
205
|
+
total += group.sum;
|
|
206
|
+
if (pending.length > 0) {
|
|
207
|
+
if (!set)
|
|
208
|
+
throw ratesCause;
|
|
209
|
+
for (const group of pending) {
|
|
210
|
+
const rate = FxOracle.rate(set, { from: group.currency.toUpperCase(), to: denomination });
|
|
211
|
+
if (rate === undefined)
|
|
212
|
+
unpriced.push(group.currency);
|
|
213
|
+
else
|
|
214
|
+
total += (group.sum * rate) / 10n ** BigInt(FxOracle.precision);
|
|
215
|
+
}
|
|
216
|
+
pricing = { asOf: set.asOf, basis: 'nominal', source: oracle.name };
|
|
217
|
+
}
|
|
218
|
+
unpriced.sort();
|
|
219
|
+
return {
|
|
220
|
+
address,
|
|
221
|
+
// Floor to 6 dp, the TIP-20 native precision; same-currency sums stay exact.
|
|
222
|
+
amount: core_Value.format(total / 10n ** BigInt(FxOracle.precision - 6), 6),
|
|
223
|
+
currency: denomination,
|
|
224
|
+
id: address,
|
|
225
|
+
pricing,
|
|
226
|
+
unpriced,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
/** Loads the oracle's rate set through the request's store cache. */
|
|
230
|
+
export function rateSet(c, oracle) {
|
|
231
|
+
return Timing.time(c, 'valuation_rates', () => Store.memoize(() => oracle.rates(), {
|
|
232
|
+
key: `fx:v1:${oracle.name}`,
|
|
233
|
+
store: c.get('store'),
|
|
234
|
+
ttl: oracle.ttl,
|
|
235
|
+
}));
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Loads rates best-effort to validate the denomination and value a page.
|
|
239
|
+
* Returns `undefined` when unavailable or unnecessary; a known unsupported denomination still throws.
|
|
240
|
+
*/
|
|
241
|
+
export async function ratesFor(c, options) {
|
|
242
|
+
const { denomination, oracle } = options;
|
|
243
|
+
const rates = await rateSet(c, oracle).catch(() => undefined);
|
|
244
|
+
if (!rates)
|
|
245
|
+
return undefined;
|
|
246
|
+
if (denomination !== rates.base && rates.rates[denomination] === undefined)
|
|
247
|
+
throw new UnsupportedDenominationError(denomination, oracle.name);
|
|
248
|
+
const conversion = [...options.currencies].some((currency) => currency.toUpperCase() !== denomination);
|
|
249
|
+
if (!conversion)
|
|
250
|
+
return undefined;
|
|
251
|
+
return rates;
|
|
252
|
+
}
|
|
253
|
+
/** Builds the `pricing` provenance block for a consulted rate set. */
|
|
254
|
+
export function pricing(rates, oracle) {
|
|
255
|
+
return { asOf: rates.asOf, basis: 'nominal', source: oracle.name };
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Values one holding in the requested denomination via its curated display
|
|
259
|
+
* currency. Returns `null` when the token is unverified, its currency has no
|
|
260
|
+
* rate, or the rate set is unavailable.
|
|
261
|
+
*/
|
|
262
|
+
export function valuationFor(options) {
|
|
263
|
+
const { amount, denomination, rates, token } = options;
|
|
264
|
+
if (!token)
|
|
265
|
+
return null;
|
|
266
|
+
const rate = (() => {
|
|
267
|
+
if (token.currency.toUpperCase() === denomination)
|
|
268
|
+
return 10n ** BigInt(FxOracle.precision);
|
|
269
|
+
if (!rates)
|
|
270
|
+
return undefined;
|
|
271
|
+
return FxOracle.rate(rates, { from: token.currency.toUpperCase(), to: denomination });
|
|
272
|
+
})();
|
|
273
|
+
if (rate === undefined)
|
|
274
|
+
return null;
|
|
275
|
+
// Normalize to the shared 18-dp scale, convert, then floor to 6 dp.
|
|
276
|
+
const scaled = token.decimals <= FxOracle.precision
|
|
277
|
+
? amount * 10n ** BigInt(FxOracle.precision - token.decimals)
|
|
278
|
+
: amount / 10n ** BigInt(token.decimals - FxOracle.precision);
|
|
279
|
+
const value = (scaled * rate) / 10n ** BigInt(FxOracle.precision);
|
|
280
|
+
return {
|
|
281
|
+
amount: core_Value.format(value / 10n ** BigInt(FxOracle.precision - 6), 6),
|
|
282
|
+
currency: denomination,
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
/** Thrown when the requested denomination is not priced by the FX oracle. */
|
|
286
|
+
export class UnsupportedDenominationError extends Error {
|
|
287
|
+
name = 'Valuation.UnsupportedDenominationError';
|
|
288
|
+
constructor(denomination, oracle) {
|
|
289
|
+
super(`Denomination "${denomination}" is not priced by the "${oracle}" FX oracle`);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=valuation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valuation.js","sourceRoot":"","sources":["../../../../src/apps/data/routes/valuation.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,14 +101,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
101
101
|
} | {
|
|
102
102
|
output: {
|
|
103
103
|
error: {
|
|
104
|
-
code: "
|
|
104
|
+
code: "upstream_error";
|
|
105
105
|
details?: readonly Response.error.Detail[] | undefined;
|
|
106
106
|
message: string;
|
|
107
107
|
};
|
|
108
108
|
requestId: string;
|
|
109
109
|
};
|
|
110
110
|
outputFormat: "json";
|
|
111
|
-
status:
|
|
111
|
+
status: 502;
|
|
112
112
|
input: {
|
|
113
113
|
query?: {
|
|
114
114
|
chainId?: string | string[];
|
|
@@ -118,14 +118,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
118
118
|
} | {
|
|
119
119
|
output: {
|
|
120
120
|
error: {
|
|
121
|
-
code: "
|
|
121
|
+
code: "api_key_malformed";
|
|
122
122
|
details?: readonly Response.error.Detail[] | undefined;
|
|
123
123
|
message: string;
|
|
124
124
|
};
|
|
125
125
|
requestId: string;
|
|
126
126
|
};
|
|
127
127
|
outputFormat: "json";
|
|
128
|
-
status:
|
|
128
|
+
status: 400;
|
|
129
129
|
input: {
|
|
130
130
|
query?: {
|
|
131
131
|
chainId?: string | string[];
|
|
@@ -135,14 +135,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
135
135
|
} | {
|
|
136
136
|
output: {
|
|
137
137
|
error: {
|
|
138
|
-
code: "
|
|
138
|
+
code: "api_key_invalid" | "api_key_missing";
|
|
139
139
|
details?: readonly Response.error.Detail[] | undefined;
|
|
140
140
|
message: string;
|
|
141
141
|
};
|
|
142
142
|
requestId: string;
|
|
143
143
|
};
|
|
144
144
|
outputFormat: "json";
|
|
145
|
-
status:
|
|
145
|
+
status: 401;
|
|
146
146
|
input: {
|
|
147
147
|
query?: {
|
|
148
148
|
chainId?: string | string[];
|
|
@@ -152,14 +152,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
152
152
|
} | {
|
|
153
153
|
output: {
|
|
154
154
|
error: {
|
|
155
|
-
code: "
|
|
155
|
+
code: "api_key_forbidden";
|
|
156
156
|
details?: readonly Response.error.Detail[] | undefined;
|
|
157
157
|
message: string;
|
|
158
158
|
};
|
|
159
159
|
requestId: string;
|
|
160
160
|
};
|
|
161
161
|
outputFormat: "json";
|
|
162
|
-
status:
|
|
162
|
+
status: 403;
|
|
163
163
|
input: {
|
|
164
164
|
query?: {
|
|
165
165
|
chainId?: string | string[];
|
|
@@ -169,14 +169,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
169
169
|
} | {
|
|
170
170
|
output: {
|
|
171
171
|
error: {
|
|
172
|
-
code: "
|
|
172
|
+
code: "payment_required" | "rate_limit_exceeded";
|
|
173
173
|
details?: readonly Response.error.Detail[] | undefined;
|
|
174
174
|
message: string;
|
|
175
175
|
};
|
|
176
176
|
requestId: string;
|
|
177
177
|
};
|
|
178
178
|
outputFormat: "json";
|
|
179
|
-
status:
|
|
179
|
+
status: 429;
|
|
180
180
|
input: {
|
|
181
181
|
query?: {
|
|
182
182
|
chainId?: string | string[];
|
|
@@ -186,14 +186,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
186
186
|
} | {
|
|
187
187
|
output: {
|
|
188
188
|
error: {
|
|
189
|
-
code: "
|
|
189
|
+
code: "query_invalid";
|
|
190
190
|
details?: readonly Response.error.Detail[] | undefined;
|
|
191
191
|
message: string;
|
|
192
192
|
};
|
|
193
193
|
requestId: string;
|
|
194
194
|
};
|
|
195
195
|
outputFormat: "json";
|
|
196
|
-
status:
|
|
196
|
+
status: 400;
|
|
197
197
|
input: {
|
|
198
198
|
query?: {
|
|
199
199
|
chainId?: string | string[];
|
|
@@ -236,14 +236,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
236
236
|
} | {
|
|
237
237
|
output: {
|
|
238
238
|
error: {
|
|
239
|
-
code: "
|
|
239
|
+
code: "upstream_error";
|
|
240
240
|
details?: readonly Response.error.Detail[] | undefined;
|
|
241
241
|
message: string;
|
|
242
242
|
};
|
|
243
243
|
requestId: string;
|
|
244
244
|
};
|
|
245
245
|
outputFormat: "json";
|
|
246
|
-
status:
|
|
246
|
+
status: 502;
|
|
247
247
|
input: {
|
|
248
248
|
query?: {
|
|
249
249
|
chainId?: string | string[];
|
|
@@ -252,14 +252,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
252
252
|
} | {
|
|
253
253
|
output: {
|
|
254
254
|
error: {
|
|
255
|
-
code: "
|
|
255
|
+
code: "api_key_malformed";
|
|
256
256
|
details?: readonly Response.error.Detail[] | undefined;
|
|
257
257
|
message: string;
|
|
258
258
|
};
|
|
259
259
|
requestId: string;
|
|
260
260
|
};
|
|
261
261
|
outputFormat: "json";
|
|
262
|
-
status:
|
|
262
|
+
status: 400;
|
|
263
263
|
input: {
|
|
264
264
|
query?: {
|
|
265
265
|
chainId?: string | string[];
|
|
@@ -268,14 +268,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
268
268
|
} | {
|
|
269
269
|
output: {
|
|
270
270
|
error: {
|
|
271
|
-
code: "
|
|
271
|
+
code: "api_key_invalid" | "api_key_missing";
|
|
272
272
|
details?: readonly Response.error.Detail[] | undefined;
|
|
273
273
|
message: string;
|
|
274
274
|
};
|
|
275
275
|
requestId: string;
|
|
276
276
|
};
|
|
277
277
|
outputFormat: "json";
|
|
278
|
-
status:
|
|
278
|
+
status: 401;
|
|
279
279
|
input: {
|
|
280
280
|
query?: {
|
|
281
281
|
chainId?: string | string[];
|
|
@@ -284,14 +284,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
284
284
|
} | {
|
|
285
285
|
output: {
|
|
286
286
|
error: {
|
|
287
|
-
code: "
|
|
287
|
+
code: "api_key_forbidden";
|
|
288
288
|
details?: readonly Response.error.Detail[] | undefined;
|
|
289
289
|
message: string;
|
|
290
290
|
};
|
|
291
291
|
requestId: string;
|
|
292
292
|
};
|
|
293
293
|
outputFormat: "json";
|
|
294
|
-
status:
|
|
294
|
+
status: 403;
|
|
295
295
|
input: {
|
|
296
296
|
query?: {
|
|
297
297
|
chainId?: string | string[];
|
|
@@ -300,14 +300,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
300
300
|
} | {
|
|
301
301
|
output: {
|
|
302
302
|
error: {
|
|
303
|
-
code: "
|
|
303
|
+
code: "payment_required" | "rate_limit_exceeded";
|
|
304
304
|
details?: readonly Response.error.Detail[] | undefined;
|
|
305
305
|
message: string;
|
|
306
306
|
};
|
|
307
307
|
requestId: string;
|
|
308
308
|
};
|
|
309
309
|
outputFormat: "json";
|
|
310
|
-
status:
|
|
310
|
+
status: 429;
|
|
311
311
|
input: {
|
|
312
312
|
query?: {
|
|
313
313
|
chainId?: string | string[];
|
|
@@ -316,14 +316,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
316
316
|
} | {
|
|
317
317
|
output: {
|
|
318
318
|
error: {
|
|
319
|
-
code: "
|
|
319
|
+
code: "query_invalid";
|
|
320
320
|
details?: readonly Response.error.Detail[] | undefined;
|
|
321
321
|
message: string;
|
|
322
322
|
};
|
|
323
323
|
requestId: string;
|
|
324
324
|
};
|
|
325
325
|
outputFormat: "json";
|
|
326
|
-
status:
|
|
326
|
+
status: 400;
|
|
327
327
|
input: {
|
|
328
328
|
query?: {
|
|
329
329
|
chainId?: string | string[];
|
|
@@ -360,14 +360,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
360
360
|
} | {
|
|
361
361
|
output: {
|
|
362
362
|
error: {
|
|
363
|
-
code: "
|
|
363
|
+
code: "upstream_error";
|
|
364
364
|
details?: readonly Response.error.Detail[] | undefined;
|
|
365
365
|
message: string;
|
|
366
366
|
};
|
|
367
367
|
requestId: string;
|
|
368
368
|
};
|
|
369
369
|
outputFormat: "json";
|
|
370
|
-
status:
|
|
370
|
+
status: 502;
|
|
371
371
|
input: {
|
|
372
372
|
param: {
|
|
373
373
|
address: `0x${string}`;
|
|
@@ -380,14 +380,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
380
380
|
} | {
|
|
381
381
|
output: {
|
|
382
382
|
error: {
|
|
383
|
-
code: "
|
|
383
|
+
code: "api_key_malformed";
|
|
384
384
|
details?: readonly Response.error.Detail[] | undefined;
|
|
385
385
|
message: string;
|
|
386
386
|
};
|
|
387
387
|
requestId: string;
|
|
388
388
|
};
|
|
389
389
|
outputFormat: "json";
|
|
390
|
-
status:
|
|
390
|
+
status: 400;
|
|
391
391
|
input: {
|
|
392
392
|
param: {
|
|
393
393
|
address: `0x${string}`;
|
|
@@ -400,14 +400,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
400
400
|
} | {
|
|
401
401
|
output: {
|
|
402
402
|
error: {
|
|
403
|
-
code: "
|
|
403
|
+
code: "api_key_invalid" | "api_key_missing";
|
|
404
404
|
details?: readonly Response.error.Detail[] | undefined;
|
|
405
405
|
message: string;
|
|
406
406
|
};
|
|
407
407
|
requestId: string;
|
|
408
408
|
};
|
|
409
409
|
outputFormat: "json";
|
|
410
|
-
status:
|
|
410
|
+
status: 401;
|
|
411
411
|
input: {
|
|
412
412
|
param: {
|
|
413
413
|
address: `0x${string}`;
|
|
@@ -420,14 +420,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
420
420
|
} | {
|
|
421
421
|
output: {
|
|
422
422
|
error: {
|
|
423
|
-
code: "
|
|
423
|
+
code: "api_key_forbidden";
|
|
424
424
|
details?: readonly Response.error.Detail[] | undefined;
|
|
425
425
|
message: string;
|
|
426
426
|
};
|
|
427
427
|
requestId: string;
|
|
428
428
|
};
|
|
429
429
|
outputFormat: "json";
|
|
430
|
-
status:
|
|
430
|
+
status: 403;
|
|
431
431
|
input: {
|
|
432
432
|
param: {
|
|
433
433
|
address: `0x${string}`;
|
|
@@ -440,14 +440,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
440
440
|
} | {
|
|
441
441
|
output: {
|
|
442
442
|
error: {
|
|
443
|
-
code: "
|
|
443
|
+
code: "payment_required" | "rate_limit_exceeded";
|
|
444
444
|
details?: readonly Response.error.Detail[] | undefined;
|
|
445
445
|
message: string;
|
|
446
446
|
};
|
|
447
447
|
requestId: string;
|
|
448
448
|
};
|
|
449
449
|
outputFormat: "json";
|
|
450
|
-
status:
|
|
450
|
+
status: 429;
|
|
451
451
|
input: {
|
|
452
452
|
param: {
|
|
453
453
|
address: `0x${string}`;
|
|
@@ -460,14 +460,14 @@ export declare function verifiedTokens(): import("hono/hono-base").HonoBase<App.
|
|
|
460
460
|
} | {
|
|
461
461
|
output: {
|
|
462
462
|
error: {
|
|
463
|
-
code: "
|
|
463
|
+
code: "query_invalid";
|
|
464
464
|
details?: readonly Response.error.Detail[] | undefined;
|
|
465
465
|
message: string;
|
|
466
466
|
};
|
|
467
467
|
requestId: string;
|
|
468
468
|
};
|
|
469
469
|
outputFormat: "json";
|
|
470
|
-
status:
|
|
470
|
+
status: 400;
|
|
471
471
|
input: {
|
|
472
472
|
param: {
|
|
473
473
|
address: `0x${string}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verified-tokens.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/verified-tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAI3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAIzD,yDAAyD;AACzD,yBAAiB,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"verified-tokens.d.ts","sourceRoot":"","sources":["../../../../src/apps/data/routes/verified-tokens.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAA;AAI3C,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AAIzD,yDAAyD;AACzD,yBAAiB,MAAM,CAAC;IA8CtB;;;;OAIG;IACI,MAAM,KAAK;;;;;;;qBAUjB,CAAA;IAED;;;OAGG;IACI,MAAM,KAAK;;;;;;;;qBAOjB,CAAA;IAED,0DAA0D;IACnD,MAAM,MAAM;;qBAIuD,CAAA;IAE1E,oDAAoD;IACpD,UAAiB,kBAAkB,CAAC;QAClC,oDAAoD;QAC7C,MAAM,KAAK;;;;;;0BAQmD,CAAA;QAErE,qDAAqD;QAC9C,MAAM,QAAQ;;;;;;;;;;yBAGpB,CAAA;KACF;IAED,4DAA4D;IAC5D,UAAiB,0BAA0B,CAAC;QAC1C,mEAAmE;QAC5D,MAAM,KAAK;;;;;0BAEsE,CAAA;QAExF,sEAAsE;QAC/D,MAAM,QAAQ;;yBASpB,CAAA;KACF;IAED,kDAAkD;IAClD,UAAiB,gBAAgB,CAAC;QAChC,oDAAoD;QAC7C,MAAM,KAAK;;;;;0BAEyD,CAAA;KAC5E;CACF;AAED;;;;GAIG;AACH,wBAAgB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAqJ7B"}
|
|
@@ -14,17 +14,19 @@ export var schema;
|
|
|
14
14
|
const fields = {
|
|
15
15
|
currency: z
|
|
16
16
|
.string()
|
|
17
|
-
.check(z.minLength(1), z.describe('The currency label for this token, such as `USD` for USD-denominated stablecoins.')),
|
|
17
|
+
.check(z.minLength(1), z.describe('The currency label for this token, such as `USD` for USD-denominated stablecoins.'), z.meta({ examples: ['USD'] })),
|
|
18
18
|
decimals: z
|
|
19
19
|
.number()
|
|
20
|
-
.check(z.int(), z.gte(0), z.lte(255), z.describe('The number of decimal places the token uses; Tempo stablecoins typically use 6.')),
|
|
20
|
+
.check(z.int(), z.gte(0), z.lte(255), z.describe('The number of decimal places the token uses; Tempo stablecoins typically use 6.'), z.meta({ examples: [6] })),
|
|
21
21
|
logoUri: z
|
|
22
22
|
.optional(z.url({ protocol: /^https$/ }))
|
|
23
|
-
.check(z.describe('The curated HTTPS URL for this token’s logo image, when one is set.')),
|
|
24
|
-
name: z
|
|
23
|
+
.check(z.describe('The curated HTTPS URL for this token’s logo image, when one is set.'), z.meta({ examples: ['https://assets.tempo.xyz/icons/usdc.svg'] })),
|
|
24
|
+
name: z
|
|
25
|
+
.string()
|
|
26
|
+
.check(z.minLength(1), z.describe('The token’s human-readable name.'), z.meta({ examples: ['USD Coin'] })),
|
|
25
27
|
symbol: z
|
|
26
28
|
.string()
|
|
27
|
-
.check(z.minLength(1), z.describe('The short ticker symbol wallets and apps show for this token.')),
|
|
29
|
+
.check(z.minLength(1), z.describe('The short ticker symbol wallets and apps show for this token.'), z.meta({ examples: ['USDC'] })),
|
|
28
30
|
};
|
|
29
31
|
/**
|
|
30
32
|
* Verified-token write/input fields, without the server-derived `id`. Reused
|